From a23fc0c3354d776f190a7c725467204b2c28071d Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 3 Jan 2025 17:51:02 +0800 Subject: [PATCH 01/65] Upgrade `MongoDB.Driver` to `3.1.0`. --- Directory.Packages.props | 6 +- .../domain-driven-design/repositories.md | 6 +- docs/en/guides/microservice-mongodb.md | 4 +- docs/en/tutorials/book-store/part-07.md | 3 +- .../MongoDB/IMongoDbRepository.cs | 5 +- .../Repositories/MongoDB/MongoDbRepository.cs | 11 +- .../MongoDbCoreRepositoryExtensions.cs | 5 +- .../MongoDB/AbpMongoDbDateTimeSerializer.cs | 2 +- .../Volo/Abp/MongoDB/AbpMongoDbModule.cs | 5 + .../MongoDbContextEventInbox.cs | 1 - .../MongoDbContextEventOutbox.cs | 1 - .../MongoDB/MongoDbAsyncQueryableProvider.cs | 141 +++++++++--------- .../Volo.Abp.MongoDB.Tests.csproj | 8 +- .../Volo/Abp/MongoDB/MongoDbFixture.cs | 5 +- .../Repositories/Repository_Basic_Tests.cs | 6 +- .../Abp/TestApp/MongoDb/CityRepository.cs | 1 + .../MongoDB/MongoAuditLogRepository.cs | 12 +- ...Volo.Abp.AuditLogging.MongoDB.Tests.csproj | 8 +- .../AuditLogging/MongoDB/MongoDbFixture.cs | 2 +- .../MongoDB/MongoBackgroundJobRepository.cs | 3 +- ...lo.Abp.BackgroundJobs.MongoDB.Tests.csproj | 8 +- .../BackgroundJobs/MongoDB/MongoDbFixture.cs | 2 +- .../MongoDB/MongoDbFixture.cs | 2 +- ....BlobStoring.Database.MongoDB.Tests.csproj | 8 +- .../Comments/MongoCommentRepository.cs | 1 + .../Blogging/Posts/MongoPostRepository.cs | 1 + .../Blogging/Users/MongoBlogUserRepository.cs | 1 + .../Volo.Blogging.MongoDB.Tests.csproj | 8 +- .../Volo/Blogging/MongoDB/MongoDbFixture.cs | 2 +- .../MongoDB/Blogs/MongoBlogPostRepository.cs | 12 +- .../MongoDB/Blogs/MongoBlogRepository.cs | 5 +- .../Comments/MongoCommentRepository.cs | 10 +- .../MongoDB/Pages/MongoPageRepository.cs | 7 +- .../CmsKit/MongoDB/Tags/MongoTagRepository.cs | 5 +- .../MongoDB/MongoDbFixture.cs | 2 +- .../Volo.CmsKit.MongoDB.Tests.csproj | 8 +- .../Docs/Documents/MongoDocumentRepository.cs | 92 ++++++------ .../Docs/Projects/MongoProjectRepository.cs | 3 +- .../Volo.Docs.MongoDB.Tests.csproj | 8 +- .../Volo/Docs/MongoDB/MongoDbFixture.cs | 2 +- .../MongoFeatureDefinitionRecordRepository.cs | 1 + ...Abp.FeatureManagement.MongoDB.Tests.csproj | 8 +- .../MongoDB/MongoDbFixture.cs | 2 +- .../MongoIdentityClaimTypeRepository.cs | 8 +- .../MongoDB/MongoIdentityRoleRepository.cs | 4 +- .../MongoIdentitySecurityLogRepository.cs | 6 +- .../MongoDB/MongoIdentitySessionRepository.cs | 5 - .../MongoIdentityUserDelegationRepository.cs | 2 - .../MongoDB/MongoIdentityUserRepository.cs | 37 +++-- .../MongoOrganizationUnitRepository.cs | 29 ++-- .../Volo.Abp.Identity.MongoDB.Tests.csproj | 8 +- .../Abp/Identity/MongoDB/MongoDbFixture.cs | 2 +- .../MongoDB/MongoApiResourceRepository.cs | 5 +- .../MongoDB/MongoApiScopeRepository.cs | 5 +- .../MongoDB/MongoClientRepository.cs | 5 +- .../MongoDB/MongoDeviceFlowCodesRepository.cs | 1 + .../MongoIdentityResourceRepository.cs | 5 +- .../MongoDB/MongoPersistentGrantRepository.cs | 11 +- ...lo.Abp.IdentityServer.MongoDB.Tests.csproj | 8 +- .../Volo/Abp/IdentityServer/MongoDbFixture.cs | 2 +- .../MongoOpenIddictApplicationRepository.cs | 5 +- .../MongoOpenIddictAuthorizationRepository.cs | 3 +- .../Scopes/MongoOpenIddictScopeRepository.cs | 5 - .../Tokens/MongoOpenIddictTokenRepository.cs | 5 - .../Volo.Abp.OpenIddict.MongoDB.Tests.csproj | 8 +- .../Abp/OpenIddict/MongoDB/MongoDbFixture.cs | 2 +- ...ngoPermissionDefinitionRecordRepository.cs | 1 + ....PermissionManagement.MongoDB.Tests.csproj | 8 +- .../MongoDb/MongoDbFixture.cs | 2 +- .../MongoSettingDefinitionRecordRepository.cs | 1 + ...Abp.SettingManagement.MongoDB.Tests.csproj | 8 +- .../MongoDB/MongoDbFixture.cs | 2 +- .../MongoDb/MongoTenantRepository.cs | 7 +- ....Abp.TenantManagement.MongoDB.Tests.csproj | 8 +- .../MongoDb/MongoDbFixture.cs | 2 +- .../Users/MongoDB/MongoUserRepositoryBase.cs | 7 +- .../MongoDb/MyProjectNameMongoDbFixture.cs | 2 +- ...anyName.MyProjectName.MongoDB.Tests.csproj | 8 +- .../MongoDB/MongoDbFixture.cs | 2 +- ...anyName.MyProjectName.MongoDB.Tests.csproj | 8 +- 80 files changed, 312 insertions(+), 358 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 0b60bf9e60..371b8edc4a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -37,6 +37,10 @@ + + + + @@ -111,7 +115,7 @@ - + diff --git a/docs/en/framework/architecture/domain-driven-design/repositories.md b/docs/en/framework/architecture/domain-driven-design/repositories.md index 9050e7d3c3..3b540d335f 100644 --- a/docs/en/framework/architecture/domain-driven-design/repositories.md +++ b/docs/en/framework/architecture/domain-driven-design/repositories.md @@ -395,13 +395,13 @@ This method is suggested; #### MongoDB Case -If you are using [MongoDB](../../data/mongodb), you need to add the [Volo.Abp.MongoDB](https://www.nuget.org/packages/Volo.Abp.MongoDB) NuGet package to your project. Even in this case, you can't directly use async LINQ extensions (like `ToListAsync`) because MongoDB doesn't provide async extension methods for `IQueryable`, but provides for `IMongoQueryable`. You need to cast the query to `IMongoQueryable` first to be able to use the async extension methods. +If you are using [MongoDB](../../data/mongodb), you need to add the [Volo.Abp.MongoDB](https://www.nuget.org/packages/Volo.Abp.MongoDB) NuGet package to your project. Even in this case, you can't directly use async LINQ extensions (like `ToListAsync`) because MongoDB doesn't provide async extension methods for `IQueryable`, but provides for `IQueryable`. You need to cast the query to `IQueryable` first to be able to use the async extension methods. -**Example: Cast `IQueryable` to `IMongoQueryable` and use `ToListAsync()`** +**Example: Cast `IQueryable` to `IQueryable` and use `ToListAsync()`** ````csharp var queryable = await _personRepository.GetQueryableAsync(); -var people = ((IMongoQueryable) queryable +var people = ((IQueryable) queryable .Where(p => p.Name.Contains(nameFilter))) .ToListAsync(); ```` diff --git a/docs/en/guides/microservice-mongodb.md b/docs/en/guides/microservice-mongodb.md index c9b63ecf4e..dfb32a2a81 100644 --- a/docs/en/guides/microservice-mongodb.md +++ b/docs/en/guides/microservice-mongodb.md @@ -99,7 +99,7 @@ Here we use `BookStore.ProductService` project as an example: { var query = ApplyFilter(await GetMongoQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); query = query.OrderBy(string.IsNullOrWhiteSpace(sorting) ? ProductConsts.GetDefaultSorting(false) : sorting); - return await query.As>().PageBy>(skipCount, maxResultCount).ToListAsync(cancellationToken); + return await query.PageBy>(skipCount, maxResultCount).ToListAsync(cancellationToken); } public async Task GetCountAsync( @@ -110,7 +110,7 @@ Here we use `BookStore.ProductService` project as an example: CancellationToken cancellationToken = default) { var query = ApplyFilter(await GetMongoQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); - return await query.As>().LongCountAsync(GetCancellationToken(cancellationToken)); + return await query.LongCountAsync(GetCancellationToken(cancellationToken)); } protected virtual IQueryable ApplyFilter( diff --git a/docs/en/tutorials/book-store/part-07.md b/docs/en/tutorials/book-store/part-07.md index 0708ecfcb9..8304cc4b46 100644 --- a/docs/en/tutorials/book-store/part-07.md +++ b/docs/en/tutorials/book-store/part-07.md @@ -192,12 +192,11 @@ public class MongoDbAuthorRepository { var queryable = await GetMongoQueryableAsync(); return await queryable - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), author => author.Name.Contains(filter) ) .OrderBy(sorting) - .As>() .Skip(skipCount) .Take(maxResultCount) .ToListAsync(); 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 a687ba2bf9..3adb9c52c1 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 @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; @@ -21,9 +22,9 @@ public interface IMongoDbRepository : IRepository Task> GetCollectionAsync(CancellationToken cancellationToken = default); [Obsolete("Use GetMongoQueryableAsync method.")] - IMongoQueryable GetMongoQueryable(); + IQueryable GetMongoQueryable(); - Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); + Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); Task> GetAggregateAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); } 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 45629f76e5..56c0d207e4 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 @@ -481,8 +481,7 @@ public class MongoDbRepository return await (await GetMongoQueryableAsync(cancellationToken)) .OrderByIf>(!sorting.IsNullOrWhiteSpace(), sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(cancellationToken); } @@ -548,7 +547,7 @@ public class MongoDbRepository } [Obsolete("Use GetMongoQueryableAsync method.")] - public virtual IMongoQueryable GetMongoQueryable() + public virtual IQueryable GetMongoQueryable() { return ApplyDataFilters( SessionHandle != null @@ -557,19 +556,19 @@ public class MongoDbRepository ); } - public virtual Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + public virtual Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) { return GetMongoQueryableAsync(cancellationToken, aggregateOptions); } - protected virtual async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + protected virtual async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) { cancellationToken = GetCancellationToken(cancellationToken); var dbContext = await GetDbContextAsync(cancellationToken); var collection = dbContext.Collection(); - return ApplyDataFilters, TOtherEntity>( + return ApplyDataFilters, TOtherEntity>( dbContext.SessionHandle != null ? collection.AsQueryable(dbContext.SessionHandle, aggregateOptions) : collection.AsQueryable(aggregateOptions) 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 676450a5b8..257092512f 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.Linq; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; @@ -37,13 +38,13 @@ public static class MongoDbCoreRepositoryExtensions } [Obsolete("Use GetMongoQueryableAsync method.")] - public static IMongoQueryable GetMongoQueryable(this IReadOnlyBasicRepository repository) + public static IQueryable GetMongoQueryable(this IReadOnlyBasicRepository repository) where TEntity : class, IEntity { return repository.ToMongoDbRepository().GetMongoQueryable(); } - public static Task> GetMongoQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + public static Task> GetMongoQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) where TEntity : class, IEntity { return repository.ToMongoDbRepository().GetMongoQueryableAsync(cancellationToken, aggregateOptions); diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbDateTimeSerializer.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbDateTimeSerializer.cs index c1d8b8f514..6ad2b0b359 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbDateTimeSerializer.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbDateTimeSerializer.cs @@ -5,7 +5,7 @@ using MongoDB.Bson.Serialization.Serializers; namespace Volo.Abp.MongoDB; -public class AbpMongoDbDateTimeSerializer : DateTimeSerializer +public class AbpMongoDbDateTimeSerializer : StructSerializerBase { protected DateTimeKind DateTimeKind { get; set; } protected bool DisableDateTimeNormalization { get; set; } diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbModule.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbModule.cs index f61e9ddb45..91d2808010 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbModule.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/AbpMongoDbModule.cs @@ -1,5 +1,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using MongoDB.Bson; +using MongoDB.Bson.Serialization; +using MongoDB.Bson.Serialization.Serializers; using Volo.Abp.Domain; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.Modularity; @@ -19,6 +22,8 @@ public class AbpMongoDbModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { + BsonSerializer.TryRegisterSerializer(new GuidSerializer(GuidRepresentation.Standard)); + context.Services.TryAddTransient( typeof(IMongoDbContextProvider<>), typeof(UnitOfWorkMongoDbContextProvider<>) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs index 6a73af27f5..9d1b706d8b 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs @@ -68,7 +68,6 @@ public class MongoDbContextEventInbox : IMongoDbContextEventInb .WhereIf(transformedFilter != null, transformedFilter!) .OrderBy(x => x.CreationTime) .Take(maxCount) - .As>() .ToListAsync(cancellationToken: cancellationToken); return outgoingEventRecords diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventOutbox.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventOutbox.cs index 57b59038b5..6dc8817f02 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventOutbox.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventOutbox.cs @@ -56,7 +56,6 @@ public class MongoDbContextEventOutbox : IMongoDbContextEventOu .WhereIf(transformedFilter != null, transformedFilter!) .OrderBy(x => x.CreationTime) .Take(maxCount) - .As>() .ToListAsync(cancellationToken: cancellationToken); return outgoingEventRecords diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbAsyncQueryableProvider.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbAsyncQueryableProvider.cs index 287f3ced0e..b7e896a27a 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbAsyncQueryableProvider.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbAsyncQueryableProvider.cs @@ -6,9 +6,7 @@ using System.Threading; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Linq; -using MongoDB.Driver; using MongoDB.Driver.Linq; -using Volo.Abp.DynamicProxy; namespace Volo.Abp.MongoDB; @@ -16,344 +14,339 @@ public class MongoDbAsyncQueryableProvider : IAsyncQueryableProvider, ISingleton { public bool CanExecute(IQueryable queryable) { - return ProxyHelper.UnProxy(queryable) is IMongoQueryable; - } - - protected virtual IMongoQueryable GetMongoQueryable(IQueryable queryable) - { - return ProxyHelper.UnProxy(queryable).As>(); + return queryable.Provider is IMongoQueryProvider; } public Task ContainsAsync(IQueryable queryable, T item, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).Contains(item)); + return Task.FromResult(queryable.Contains(item)); } public Task AnyAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AnyAsync(cancellationToken); + return queryable.AnyAsync(cancellationToken); } public Task AnyAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AnyAsync(predicate, cancellationToken); + return queryable.AnyAsync(predicate, cancellationToken); } public Task AllAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).All(predicate)); + return Task.FromResult(queryable.All(predicate)); } public Task CountAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).CountAsync(cancellationToken); + return queryable.CountAsync(cancellationToken); } public Task CountAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).CountAsync(predicate, cancellationToken); + return queryable.CountAsync(predicate, cancellationToken); } public Task LongCountAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).LongCountAsync(cancellationToken); + return queryable.LongCountAsync(cancellationToken); } public Task LongCountAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).LongCountAsync(predicate, cancellationToken); + return queryable.LongCountAsync(predicate, cancellationToken); } public Task FirstAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).FirstAsync(cancellationToken); + return queryable.FirstAsync(cancellationToken); } public Task FirstAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).FirstAsync(predicate, cancellationToken); + return queryable.FirstAsync(predicate, cancellationToken); } public Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).FirstOrDefaultAsync(cancellationToken)!; + return queryable.FirstOrDefaultAsync(cancellationToken)!; } public Task FirstOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).FirstOrDefaultAsync(predicate, cancellationToken)!; + return queryable.FirstOrDefaultAsync(predicate, cancellationToken)!; } public Task LastAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).Last()); + return Task.FromResult(queryable.Last()); } public Task LastAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).Last(predicate)); + return Task.FromResult(queryable.Last(predicate)); } public Task LastOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).LastOrDefault()); + return Task.FromResult(queryable.LastOrDefault()); } public Task LastOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return Task.FromResult(GetMongoQueryable(queryable).LastOrDefault(predicate)); + return Task.FromResult(queryable.LastOrDefault(predicate)); } public Task SingleAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SingleAsync(cancellationToken); + return queryable.SingleAsync(cancellationToken); } public Task SingleAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SingleAsync(predicate, cancellationToken); + return queryable.SingleAsync(predicate, cancellationToken); } public Task SingleOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SingleOrDefaultAsync(cancellationToken)!; + return queryable.SingleOrDefaultAsync(cancellationToken)!; } public Task SingleOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SingleOrDefaultAsync(predicate, cancellationToken)!; + return queryable.SingleOrDefaultAsync(predicate, cancellationToken)!; } public Task MinAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).MinAsync(cancellationToken); + return queryable.MinAsync(cancellationToken); } public Task MinAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).MinAsync(selector, cancellationToken); + return queryable.MinAsync(selector, cancellationToken); } public Task MaxAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).MaxAsync(cancellationToken); + return queryable.MaxAsync(cancellationToken); } public Task MaxAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).MaxAsync(selector, cancellationToken); + return queryable.MaxAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(cancellationToken); + return queryable.SumAsync(cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task SumAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).SumAsync(selector, cancellationToken); + return queryable.SumAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(cancellationToken); + return queryable.AverageAsync(cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task AverageAsync(IQueryable queryable, Expression> selector, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).AverageAsync(selector, cancellationToken); + return queryable.AverageAsync(selector, cancellationToken); } public Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return GetMongoQueryable(queryable).ToListAsync(cancellationToken); + return queryable.ToListAsync(cancellationToken); } public async Task ToArrayAsync(IQueryable queryable, CancellationToken cancellationToken = default) { - return (await GetMongoQueryable(queryable).ToListAsync(cancellationToken)).ToArray(); + return (await queryable.ToListAsync(cancellationToken)).ToArray(); } } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj index ae688f1640..e2328fdca3 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj @@ -15,10 +15,10 @@ - - - - + + + + diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs index 9b70fe2681..ff6fe1face 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.MongoDB; @@ -11,7 +11,8 @@ public class MongoDbFixture : IDisposable { MongoDbRunner = MongoRunner.Run(new MongoRunnerOptions { - UseSingleNodeReplicaSet = true + UseSingleNodeReplicaSet = true, + ReplicaSetSetupTimeout = TimeSpan.FromSeconds(30) }); } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs index 0d5122228d..a6976b3be6 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs @@ -18,9 +18,9 @@ public class Repository_Basic_Tests : Repository_Basic_Tests>().ShouldNotBeNull(); - ((IMongoQueryable)(await PersonRepository.GetQueryableAsync()).Where(p => p.Name == "Douglas")).ShouldNotBeNull(); - (await PersonRepository.GetQueryableAsync()).Where(p => p.Name == "Douglas").As>().ShouldNotBeNull(); + (await PersonRepository.GetQueryableAsync()).ShouldNotBeNull(); + ((IQueryable)(await PersonRepository.GetQueryableAsync()).Where(p => p.Name == "Douglas")).ShouldNotBeNull(); + (await PersonRepository.GetQueryableAsync()).Where(p => p.Name == "Douglas").ShouldNotBeNull(); } [Fact] diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/CityRepository.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/CityRepository.cs index f8355b5466..1f0c0aa24d 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/CityRepository.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/TestApp/MongoDb/CityRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; 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 b406e83d5c..860c8a2f4c 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 @@ -64,8 +64,7 @@ public class MongoAuditLogRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -104,8 +103,7 @@ public class MongoAuditLogRepository : MongoDbRepository>() - .LongCountAsync(GetCancellationToken(cancellationToken)); + var count = await query.LongCountAsync(GetCancellationToken(cancellationToken)); return count; } @@ -199,8 +197,7 @@ public class MongoAuditLogRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -215,7 +212,7 @@ public class MongoAuditLogRepository : MongoDbRepository>().LongCountAsync(GetCancellationToken(cancellationToken)); + var count = await query.LongCountAsync(GetCancellationToken(cancellationToken)); return count; } @@ -242,7 +239,6 @@ public class MongoAuditLogRepository : MongoDbRepository x.EntityChanges.Any(y => y.EntityId == entityId && y.EntityTypeFullName == entityTypeFullName)) - .As>() .OrderByDescending(x => x.ExecutionTime) .ToListAsync(GetCancellationToken(cancellationToken)); diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj index 41718fda4e..a33c1c74f8 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj @@ -14,10 +14,10 @@ - - - - + + + + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs index a68f246c78..569bf3ad2d 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.AuditLogging.MongoDB; 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 5993fdf9ba..16d49e980d 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 @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; @@ -29,7 +30,7 @@ public class MongoBackgroundJobRepository : MongoDbRepository> GetWaitingListQuery(int maxResultCount, CancellationToken cancellationToken = default) + protected virtual async Task> GetWaitingListQuery(int maxResultCount, CancellationToken cancellationToken = default) { var now = Clock.Now; return (await GetMongoQueryableAsync(cancellationToken)) diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj index c6a4b35a66..a3f84bb18a 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj @@ -14,10 +14,10 @@ - - - - + + + + diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs index 97bd35c6fa..b41e255cb8 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.BackgroundJobs.MongoDB; diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 8952236f43..7c086e0bb4 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.BlobStoring.Database.MongoDB; diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj index 1bd05f4357..61c0d81d02 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + 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 89e5b6b575..432cecb1b0 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 @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; 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 3cdcccc5fd..b53693722f 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 @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver; using MongoDB.Driver.Linq; using Nito.AsyncEx; 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 3595620f54..3fec9a2627 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 @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using System.Linq; using Volo.Abp.MongoDB; using Volo.Abp.Users.MongoDB; using Volo.Blogging.MongoDB; diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj index 88cd171a55..7dcac50e69 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs index ad1fce80e5..e1a4d00ce3 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; public class MongoDbFixture : IDisposable { diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs index 0212e5975c..22b9df51e5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs @@ -65,12 +65,12 @@ public class MongoBlogPostRepository : MongoDbRepository>(tagFilteredEntityIds.Any(), x => tagFilteredEntityIds.Contains(x.Id)) - .WhereIf>(favoriteUserFilteredEntityIds.Any(), x => favoriteUserFilteredEntityIds.Contains(x.Id)) - .WhereIf>(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) - .WhereIf>(blogId.HasValue, x => x.BlogId == blogId) - .WhereIf>(authorId.HasValue, x => x.AuthorId == authorId) - .WhereIf>(statusFilter.HasValue, x => x.Status == statusFilter) + .WhereIf>(tagFilteredEntityIds.Any(), x => tagFilteredEntityIds.Contains(x.Id)) + .WhereIf>(favoriteUserFilteredEntityIds.Any(), x => favoriteUserFilteredEntityIds.Contains(x.Id)) + .WhereIf>(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) + .WhereIf>(blogId.HasValue, x => x.BlogId == blogId) + .WhereIf>(authorId.HasValue, x => x.AuthorId == authorId) + .WhereIf>(statusFilter.HasValue, x => x.Status == statusFilter) .CountAsync(cancellationToken); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs index 98567899e5..ce86257a29 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs @@ -44,8 +44,7 @@ public class MongoBlogRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(token); } @@ -82,7 +81,7 @@ public class MongoBlogRepository : MongoDbRepository>().LongCountAsync(token); + return await query.LongCountAsync(token); } public virtual Task GetBySlugAsync([NotNull] string slug, CancellationToken cancellationToken = default) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs index fab729fcd2..66fc3137bd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs @@ -61,8 +61,7 @@ public class MongoCommentRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(token); var commentIds = comments.Select(x => x.Id).ToList(); @@ -73,7 +72,7 @@ public class MongoCommentRepository : MongoDbRepository, CmsUser>(authorsQuery).ToListAsync(token); + var authors = await ApplyDataFilters, CmsUser>(authorsQuery).ToListAsync(token); return comments .Select( @@ -104,8 +103,7 @@ public class MongoCommentRepository : MongoDbRepository>() - .LongCountAsync(GetCancellationToken(cancellationToken)); + return await query.LongCountAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetListWithAuthorsAsync( @@ -123,7 +121,7 @@ public class MongoCommentRepository : MongoDbRepository, CmsUser>(authorsQuery).ToListAsync(GetCancellationToken(cancellationToken)); + var authors = await ApplyDataFilters, CmsUser>(authorsQuery).ToListAsync(GetCancellationToken(cancellationToken)); var commentsQuery = (await GetMongoQueryableAsync(cancellationToken)) .Where(c => c.EntityId == entityId && c.EntityType == entityType); 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 1b49ac48bb..09b1f289a8 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 @@ -27,7 +27,7 @@ public class MongoPageRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Title.ToLower().Contains(filter.ToLower()) || u.Slug.Contains(filter) @@ -44,12 +44,11 @@ public class MongoPageRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Title.ToLower().Contains(filter) || u.Slug.Contains(filter)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(Page.Title) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(cancellation); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs index e8f702dbb2..fd6de60bc0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs @@ -116,8 +116,7 @@ public class MongoTagRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -126,7 +125,7 @@ public class MongoTagRepository : MongoDbRepository> GetQueryableByFilterAsync(string filter, CancellationToken cancellationToken = default) + private async Task> GetQueryableByFilterAsync(string filter, CancellationToken cancellationToken = default) { var mongoQueryable = await GetMongoQueryableAsync(cancellationToken: cancellationToken); diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 22f63a3780..53c9457a30 100644 --- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.CmsKit.MongoDB; diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj index 17c6dfe717..9c8dc44660 100644 --- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs index 7f55ef63b0..d9db61a0c4 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs @@ -89,12 +89,13 @@ namespace Volo.Docs.Documents bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.ProjectId == projectId && - x.Name == name && - x.LanguageCode == languageCode && - x.Version == version, GetCancellationToken(cancellationToken)); + return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => + x.ProjectId == projectId && + x.Name == name && + x.LanguageCode == languageCode && + x.Version == version, GetCancellationToken(cancellationToken)); } - + public virtual async Task FindAsync(Guid projectId, List possibleNames, string languageCode, string version, bool includeDetails = true, CancellationToken cancellationToken = default) @@ -118,7 +119,6 @@ namespace Volo.Docs.Documents .WhereIf(version != null, x => x.Version == version) .WhereIf(name != null, x => x.Name == name) .WhereIf(projectId.HasValue, x => x.ProjectId == projectId) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -142,26 +142,25 @@ namespace Volo.Docs.Documents int skipCount = 0, CancellationToken cancellationToken = default) { - return await (await ApplyFilterForGetAll( - await GetMongoQueryableAsync(cancellationToken), - projectId: projectId, - name: name, - version: version, - languageCode: languageCode, - fileName: fileName, - format: format, - creationTimeMin: creationTimeMin, - creationTimeMax: creationTimeMax, - lastUpdatedTimeMin: lastUpdatedTimeMin, - lastUpdatedTimeMax: lastUpdatedTimeMax, - lastSignificantUpdateTimeMin: lastSignificantUpdateTimeMin, - lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, - lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax)) - .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting).As>() - .PageBy>(skipCount, maxResultCount) - .ToListAsync(GetCancellationToken(cancellationToken)); + await GetMongoQueryableAsync(cancellationToken), + projectId: projectId, + name: name, + version: version, + languageCode: languageCode, + fileName: fileName, + format: format, + creationTimeMin: creationTimeMin, + creationTimeMax: creationTimeMax, + lastUpdatedTimeMin: lastUpdatedTimeMin, + lastUpdatedTimeMax: lastUpdatedTimeMax, + lastSignificantUpdateTimeMin: lastSignificantUpdateTimeMin, + lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, + lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax, cancellationToken: cancellationToken)) + .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting) + .PageBy>(skipCount, maxResultCount) + .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetAllCountAsync( @@ -184,36 +183,35 @@ namespace Volo.Docs.Documents int skipCount = 0, CancellationToken cancellationToken = default) { - - return await (await ApplyFilterForGetAll( - await GetMongoQueryableAsync(cancellationToken), - projectId: projectId, - name: name, - version: version, - languageCode: languageCode, - fileName: fileName, - format: format, - creationTimeMin: creationTimeMin, - creationTimeMax: creationTimeMax, - lastUpdatedTimeMin: lastUpdatedTimeMin, - lastUpdatedTimeMax: lastUpdatedTimeMax, - lastSignificantUpdateTimeMin: lastSignificantUpdateTimeMin, - lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, - lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax)) - .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting).As>() - .PageBy>(skipCount, maxResultCount) - .LongCountAsync(GetCancellationToken(cancellationToken)); + await GetMongoQueryableAsync(cancellationToken), + projectId: projectId, + name: name, + version: version, + languageCode: languageCode, + fileName: fileName, + format: format, + creationTimeMin: creationTimeMin, + creationTimeMax: creationTimeMax, + lastUpdatedTimeMin: lastUpdatedTimeMin, + lastUpdatedTimeMax: lastUpdatedTimeMax, + lastSignificantUpdateTimeMin: lastSignificantUpdateTimeMin, + lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, + lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax, + cancellationToken: cancellationToken)) + .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting) + .PageBy(skipCount, maxResultCount) + .LongCountAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetAsync(Guid id, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.Id == id).SingleAsync(GetCancellationToken(cancellationToken)); } - - protected virtual async Task> ApplyFilterForGetAll( - IMongoQueryable query, + + protected virtual async Task> ApplyFilterForGetAll( + IQueryable query, Guid? projectId, string name, string version, @@ -254,7 +252,7 @@ namespace Volo.Docs.Documents { query = query.Where(d => d.FileName != null && d.FileName.Contains(fileName)); } - + if (format != null) { query = query.Where(d => d.Format != null && d.Format == format); 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 3960b07eb3..52a9875936 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,8 +22,7 @@ namespace Volo.Docs.Projects public virtual async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { - var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).As>() - .PageBy>(skipCount, maxResultCount) + var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); return projects; diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj index 5c3f98c351..90df72d01d 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs index ad1fce80e5..e1a4d00ce3 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; public class MongoDbFixture : IDisposable { diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs index cb7f48aeb4..a564e7792d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs @@ -1,6 +1,7 @@ using System; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj index bfc01a429f..2f7f5ee7d0 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj @@ -14,10 +14,10 @@ - - - - + + + + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs index 8088afee7b..23a5403281 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.FeatureManagement.MongoDB; diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs index ac0b86dee9..899975f9c6 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs @@ -44,14 +44,13 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) ) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityClaimType.CreationTime) + " desc" : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -60,12 +59,11 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) ) - .As>() .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs index 3a57f69902..9979c0de0c 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs @@ -95,7 +95,6 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Name.Contains(filter) || x.NormalizedName.Contains(filter)) - .As>() .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -126,8 +125,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Name.Contains(filter) || x.NormalizedName.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityRole.CreationTime) + " desc" : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } } 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 f173272009..bfe4cf1983 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 @@ -51,8 +51,7 @@ public class MongoIdentitySecurityLogRepository : ); return await query.OrderBy(sorting.IsNullOrWhiteSpace() ? $"{nameof(IdentitySecurityLog.CreationTime)} desc" : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -83,8 +82,7 @@ public class MongoIdentitySecurityLogRepository : cancellationToken ); - return await query.As>() - .LongCountAsync(GetCancellationToken(cancellationToken)); + return await query.LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs index a1a8f94c49..23db911fe2 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs @@ -24,7 +24,6 @@ public class MongoIdentitySessionRepository : MongoDbRepository FindAsync(string sessionId, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) - .As>() .FirstOrDefaultAsync(x => x.SessionId == sessionId, GetCancellationToken(cancellationToken)); } @@ -42,14 +41,12 @@ public class MongoIdentitySessionRepository : MongoDbRepository ExistAsync(Guid id, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) - .As>() .AnyAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); } public virtual async Task ExistAsync(string sessionId, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) - .As>() .AnyAsync(x => x.SessionId == sessionId, GetCancellationToken(cancellationToken)); } @@ -68,7 +65,6 @@ public class MongoIdentitySessionRepository : MongoDbRepository x.ClientId == clientId) .OrderBy(sorting.IsNullOrWhiteSpace() ? $"{nameof(IdentitySession.LastAccessed)} desc" : sorting) .PageBy(skipCount, maxResultCount) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -82,7 +78,6 @@ public class MongoIdentitySessionRepository : MongoDbRepository x.UserId == userId) .WhereIf(!device.IsNullOrWhiteSpace(), x => x.Device == device) .WhereIf(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) - .As>() .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs index 56cc48121e..abdab16289 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs @@ -27,7 +27,6 @@ public class MongoIdentityUserDelegationRepository : MongoDbRepository x.SourceUserId == sourceUserId) .WhereIf(targetUserId.HasValue, x => x.TargetUserId == targetUserId) - .As>() .ToListAsync(cancellationToken: cancellationToken); } @@ -36,7 +35,6 @@ public class MongoIdentityUserDelegationRepository : MongoDbRepository x.TargetUserId == targetUserId) .Where(x => x.StartTime <= Clock.Now && x.EndTime >= Clock.Now) - .As>() .ToListAsync(cancellationToken: cancellationToken); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs index 58486893ec..624bf9dd3f 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs @@ -201,8 +201,7 @@ public class MongoIdentityUserRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -422,7 +421,7 @@ public class MongoIdentityUserRepository : MongoDbRepository> GetFilteredQueryableAsync( + protected virtual async Task> GetFilteredQueryableAsync( string filter = null, Guid? roleId = null, Guid? organizationUnitId = null, @@ -455,7 +454,7 @@ public class MongoIdentityUserRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.NormalizedUserName.Contains(upperFilter) || @@ -464,20 +463,20 @@ public class MongoIdentityUserRepository : MongoDbRepository>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) - .WhereIf>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) - .WhereIf>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) - .WhereIf>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) - .WhereIf>(!string.IsNullOrWhiteSpace(name), x => x.Name == name) - .WhereIf>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname) - .WhereIf>(isLockedOut.HasValue && isLockedOut.Value, x => x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow) - .WhereIf>(isLockedOut.HasValue && !isLockedOut.Value, x => !(x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow)) - .WhereIf>(notActive.HasValue, x => x.IsActive == !notActive.Value) - .WhereIf>(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value) - .WhereIf>(isExternal.HasValue, x => x.IsExternal == isExternal.Value) - .WhereIf>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) - .WhereIf>(minCreationTime != null, p => p.CreationTime >= minCreationTime) - .WhereIf>(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime) - .WhereIf>(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime); + .WhereIf>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) + .WhereIf>(!string.IsNullOrWhiteSpace(name), x => x.Name == name) + .WhereIf>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname) + .WhereIf>(isLockedOut.HasValue && isLockedOut.Value, x => x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow) + .WhereIf>(isLockedOut.HasValue && !isLockedOut.Value, x => !(x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow)) + .WhereIf>(notActive.HasValue, x => x.IsActive == !notActive.Value) + .WhereIf>(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value) + .WhereIf>(isExternal.HasValue, x => x.IsExternal == isExternal.Value) + .WhereIf>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf>(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf>(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime) + .WhereIf>(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime); } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs index c3a168033b..d871ca8b70 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs @@ -72,8 +72,7 @@ public class MongoOrganizationUnitRepository { return await (await GetMongoQueryableAsync(cancellationToken)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(OrganizationUnit.CreationTime) + " desc" : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -103,8 +102,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -125,8 +123,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -154,8 +151,7 @@ public class MongoOrganizationUnitRepository .Where(r => !roleIds.Contains(r.Id)) .WhereIf(!filter.IsNullOrWhiteSpace(), r => r.Name.Contains(filter)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -169,7 +165,6 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(r => !roleIds.Contains(r.Id)) .WhereIf(!filter.IsNullOrWhiteSpace(), r => r.Name.Contains(filter)) - .As>() .CountAsync(GetCancellationToken(cancellationToken)); } @@ -186,8 +181,7 @@ public class MongoOrganizationUnitRepository var query = await CreateGetMembersFilteredQueryAsync(organizationUnit, filter, cancellationToken); return await query .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityUser.UserName) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(cancellationToken); } @@ -221,7 +215,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || @@ -229,8 +223,7 @@ public class MongoOrganizationUnitRepository (u.PhoneNumber != null && u.PhoneNumber.Contains(filter)) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityUser.UserName) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -239,14 +232,13 @@ public class MongoOrganizationUnitRepository { return await (await GetMongoQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || u.Email.Contains(filter) || (u.PhoneNumber != null && u.PhoneNumber.Contains(filter)) ) - .As>() .CountAsync(GetCancellationToken(cancellationToken)); } @@ -263,7 +255,6 @@ public class MongoOrganizationUnitRepository var dbContext = await GetDbContextAsync(cancellationToken); var users = await userQueryable .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .As>() .ToListAsync(cancellationToken); foreach (var user in users) @@ -273,14 +264,14 @@ public class MongoOrganizationUnitRepository } } - protected virtual async Task> CreateGetMembersFilteredQueryAsync( + protected virtual async Task> CreateGetMembersFilteredQueryAsync( OrganizationUnit organizationUnit, string filter = null, CancellationToken cancellationToken = default) { return (await GetMongoQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj index cc463e1cc8..311ee9fa69 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs index 732500214c..90b0f60b14 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.Identity.MongoDB; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs index 24dc519a40..ff58d8b984 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs @@ -50,15 +50,14 @@ public class MongoApiResourceRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf>(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs index 01c1ecad07..90a4b214ae 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs @@ -45,15 +45,14 @@ public class MongoApiScopeRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf>(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs index c7f81f51e2..f26a6c7805 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs @@ -42,15 +42,14 @@ public class MongoClientRepository : MongoDbRepository x.ClientId.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(Client.ClientName) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf>(!filter.IsNullOrWhiteSpace(), x => x.ClientId.Contains(filter)) .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs index 921225a5ae..976b1478b7 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs index faf3d66d96..c2217c31dc 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs @@ -25,15 +25,14 @@ public class MongoIdentityResourceRepository : MongoDbRepository>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf>(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs index e3f3cc8368..9af3db126b 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs @@ -87,7 +87,7 @@ public class MongoPersistentGrantRepository : MongoDbRepository> FilterAsync( + private async Task> FilterAsync( string subjectId, string sessionId, string clientId, @@ -95,10 +95,9 @@ public class MongoPersistentGrantRepository : MongoDbRepository>(!subjectId.IsNullOrWhiteSpace(), x => x.SubjectId == subjectId) - .WhereIf>(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) - .WhereIf>(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) - .WhereIf>(!type.IsNullOrWhiteSpace(), x => x.Type == type) - .As>(); + .WhereIf>(!subjectId.IsNullOrWhiteSpace(), x => x.SubjectId == subjectId) + .WhereIf>(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) + .WhereIf>(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) + .WhereIf>(!type.IsNullOrWhiteSpace(), x => x.Type == type); } } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj index d2d7bf8a0e..07377805af 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs index 2f6d52d255..6611beb635 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.IdentityServer; diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs index ad9064e8cf..a07a1951c1 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs @@ -25,7 +25,6 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository x.ClientId.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(OpenIddictApplication.CreationTime) + " desc" : sorting) .PageBy(skipCount, maxResultCount) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -33,7 +32,6 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository x.ClientId.Contains(filter)) - .As>() .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -55,7 +53,7 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository GetAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken = default) { - return await query(await GetMongoQueryableAsync(cancellationToken), state).As>().FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + return await query(await GetMongoQueryableAsync(cancellationToken), state).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default) @@ -64,7 +62,6 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs index f4bd5f4817..d17fe36c0e 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs @@ -34,7 +34,6 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository x.ApplicationId == client) .WhereIf(!status.IsNullOrWhiteSpace(), x => x.Status == status) .WhereIf(!type.IsNullOrWhiteSpace(), x => x.Type == type) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -59,7 +58,7 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository authorization.Id!) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) - .As>().ToListAsync(GetCancellationToken(cancellationToken)); + .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task PruneAsync(DateTime date, CancellationToken cancellationToken = default) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs index 3e16df4e9b..40d6d56179 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs @@ -28,7 +28,6 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -39,7 +38,6 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository>() .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -57,7 +55,6 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository names.Contains(x.Name)) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -65,7 +62,6 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository x.Resources.Contains(resource)) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -75,7 +71,6 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs index 175b137515..4758a96920 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs @@ -54,7 +54,6 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.ApplicationId == client) .WhereIf(!status.IsNullOrWhiteSpace(), x => x.Status == status) .WhereIf(!type.IsNullOrWhiteSpace(), x => x.Type == type) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -62,7 +61,6 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.ApplicationId == applicationId) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -70,7 +68,6 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.AuthorizationId == authorizationId) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -88,7 +85,6 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.Subject == subject) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -98,7 +94,6 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) - .As>() .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo.Abp.OpenIddict.MongoDB.Tests.csproj b/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo.Abp.OpenIddict.MongoDB.Tests.csproj index 56512b464c..d5f8903293 100644 --- a/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo.Abp.OpenIddict.MongoDB.Tests.csproj +++ b/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo.Abp.OpenIddict.MongoDB.Tests.csproj @@ -9,10 +9,10 @@ - - - - + + + + diff --git a/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo/Abp/OpenIddict/MongoDB/MongoDbFixture.cs b/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo/Abp/OpenIddict/MongoDB/MongoDbFixture.cs index ddceaf8104..1716d478a5 100644 --- a/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo/Abp/OpenIddict/MongoDB/MongoDbFixture.cs +++ b/modules/openiddict/test/Volo.Abp.OpenIddict.MongoDB.Tests/Volo/Abp/OpenIddict/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.OpenIddict.MongoDB; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs index 529f56511c..2871c47e65 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs @@ -1,6 +1,7 @@ using System; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj index 757b0f164c..0f9e0169e8 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj @@ -19,10 +19,10 @@ - - - - + + + + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs index fc039d7ee2..05fae7288c 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.PermissionManagement.MongoDB; diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs index d2500cccd2..07d32bae81 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs @@ -1,6 +1,7 @@ using System; using System.Threading; using System.Threading.Tasks; +using System.Linq; using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj index 65ea9436ee..9c2c2f36a9 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj @@ -18,10 +18,10 @@ - - - - + + + + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs index 625b66b328..bc5feb98b1 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace Volo.Abp.SettingManagement.MongoDB; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs index 049dc5e57c..1762bcb666 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs @@ -51,21 +51,20 @@ public class MongoTenantRepository : MongoDbRepository>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(Tenant.Name) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj index c22da31998..2913a0ed53 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj @@ -18,10 +18,10 @@ - - - - + + + + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs index 7b12dc33e7..4610234bf6 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; using MongoDB.Driver; using Volo.Abp.MongoDB; diff --git a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs index d0e1e76873..335c46c94e 100644 --- a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs +++ b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs @@ -46,7 +46,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi { cancellationToken = GetCancellationToken(cancellationToken); return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || @@ -55,8 +55,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi (u.Surname != null && u.Surname.Contains(filter)) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IUserData.UserName) : sorting) - .As>() - .PageBy>(skipCount, maxResultCount) + .PageBy>(skipCount, maxResultCount) .ToListAsync(cancellationToken); } @@ -64,7 +63,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi { cancellationToken = GetCancellationToken(cancellationToken); return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf>( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs index 55387d7ba5..e69539eff8 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace MyCompanyName.MyProjectName.MongoDB; diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index 53cc18991c..e18c27a2de 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -15,10 +15,10 @@ - - - - + + + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 07cfd77583..63a2f598c5 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,5 +1,5 @@ using System; -using EphemeralMongo; +using MongoSandbox; namespace MyCompanyName.MyProjectName.MongoDB; diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index fed5495bbe..5e43f82146 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -10,10 +10,10 @@ - - - - + + + + From a0d75fc6fb7e894cf62253204037ee4c966c197a Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 3 Jan 2025 17:54:53 +0800 Subject: [PATCH 02/65] Update repositories.md --- .../domain-driven-design/repositories.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/docs/en/framework/architecture/domain-driven-design/repositories.md b/docs/en/framework/architecture/domain-driven-design/repositories.md index 3b540d335f..04848a59e8 100644 --- a/docs/en/framework/architecture/domain-driven-design/repositories.md +++ b/docs/en/framework/architecture/domain-driven-design/repositories.md @@ -393,19 +393,6 @@ This method is suggested; * If you are developing an application and you **don't plan to change** EF Core in the future, or you can **tolerate** it if you need to change it later. We believe that's reasonable if you are developing a final application. -#### MongoDB Case - -If you are using [MongoDB](../../data/mongodb), you need to add the [Volo.Abp.MongoDB](https://www.nuget.org/packages/Volo.Abp.MongoDB) NuGet package to your project. Even in this case, you can't directly use async LINQ extensions (like `ToListAsync`) because MongoDB doesn't provide async extension methods for `IQueryable`, but provides for `IQueryable`. You need to cast the query to `IQueryable` first to be able to use the async extension methods. - -**Example: Cast `IQueryable` to `IQueryable` and use `ToListAsync()`** - -````csharp -var queryable = await _personRepository.GetQueryableAsync(); -var people = ((IQueryable) queryable - .Where(p => p.Name.Contains(nameFilter))) - .ToListAsync(); -```` - ### Option-2: Use the IRepository Async Extension Methods ABP provides async extension methods for the repositories, just similar to async LINQ extension methods. From c2a5fa390c604ca29919b2a293c5796591a82cde Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 4 Jan 2025 12:44:15 +0800 Subject: [PATCH 03/65] Remove unnecessary generic type parameter. --- docs/en/guides/microservice-mongodb.md | 2 +- .../MongoDB/MongoAuditLogRepository.cs | 4 +-- .../MongoDB/Blogs/MongoBlogPostRepository.cs | 12 +++---- .../MongoDB/Blogs/MongoBlogRepository.cs | 2 +- .../Comments/MongoCommentRepository.cs | 2 +- .../MongoDB/Pages/MongoPageRepository.cs | 6 ++-- .../CmsKit/MongoDB/Tags/MongoTagRepository.cs | 2 +- .../Docs/Documents/MongoDocumentRepository.cs | 2 +- .../Docs/Projects/MongoProjectRepository.cs | 2 +- .../MongoIdentityClaimTypeRepository.cs | 6 ++-- .../MongoDB/MongoIdentityRoleRepository.cs | 2 +- .../MongoIdentitySecurityLogRepository.cs | 2 +- .../MongoDB/MongoIdentityUserRepository.cs | 34 +++++++++---------- .../MongoOrganizationUnitRepository.cs | 18 +++++----- .../MongoDB/MongoApiResourceRepository.cs | 4 +-- .../MongoDB/MongoApiScopeRepository.cs | 4 +-- .../MongoDB/MongoClientRepository.cs | 4 +-- .../MongoIdentityResourceRepository.cs | 4 +-- .../MongoDB/MongoPersistentGrantRepository.cs | 8 ++--- .../MongoDb/MongoTenantRepository.cs | 6 ++-- .../Users/MongoDB/MongoUserRepositoryBase.cs | 6 ++-- 21 files changed, 66 insertions(+), 66 deletions(-) diff --git a/docs/en/guides/microservice-mongodb.md b/docs/en/guides/microservice-mongodb.md index dfb32a2a81..476637f605 100644 --- a/docs/en/guides/microservice-mongodb.md +++ b/docs/en/guides/microservice-mongodb.md @@ -99,7 +99,7 @@ Here we use `BookStore.ProductService` project as an example: { var query = ApplyFilter(await GetMongoQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); query = query.OrderBy(string.IsNullOrWhiteSpace(sorting) ? ProductConsts.GetDefaultSorting(false) : sorting); - return await query.PageBy>(skipCount, maxResultCount).ToListAsync(cancellationToken); + return await query.PageBy(skipCount, maxResultCount).ToListAsync(cancellationToken); } public async Task GetCountAsync( 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 860c8a2f4c..50336aa8cc 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 @@ -64,7 +64,7 @@ public class MongoAuditLogRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -197,7 +197,7 @@ public class MongoAuditLogRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs index 22b9df51e5..3cd5d5dd82 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs @@ -65,12 +65,12 @@ public class MongoBlogPostRepository : MongoDbRepository>(tagFilteredEntityIds.Any(), x => tagFilteredEntityIds.Contains(x.Id)) - .WhereIf>(favoriteUserFilteredEntityIds.Any(), x => favoriteUserFilteredEntityIds.Contains(x.Id)) - .WhereIf>(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) - .WhereIf>(blogId.HasValue, x => x.BlogId == blogId) - .WhereIf>(authorId.HasValue, x => x.AuthorId == authorId) - .WhereIf>(statusFilter.HasValue, x => x.Status == statusFilter) + .WhereIf(tagFilteredEntityIds.Any(), x => tagFilteredEntityIds.Contains(x.Id)) + .WhereIf(favoriteUserFilteredEntityIds.Any(), x => favoriteUserFilteredEntityIds.Contains(x.Id)) + .WhereIf(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) + .WhereIf(blogId.HasValue, x => x.BlogId == blogId) + .WhereIf(authorId.HasValue, x => x.AuthorId == authorId) + .WhereIf(statusFilter.HasValue, x => x.Status == statusFilter) .CountAsync(cancellationToken); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs index ce86257a29..dfb33e5c16 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs @@ -44,7 +44,7 @@ public class MongoBlogRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(token); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs index 66fc3137bd..1cb38abc97 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs @@ -61,7 +61,7 @@ public class MongoCommentRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(token); var commentIds = comments.Select(x => x.Id).ToList(); 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 09b1f289a8..f1879090e5 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 @@ -27,7 +27,7 @@ public class MongoPageRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Title.ToLower().Contains(filter.ToLower()) || u.Slug.Contains(filter) @@ -44,11 +44,11 @@ public class MongoPageRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Title.ToLower().Contains(filter) || u.Slug.Contains(filter)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(Page.Title) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(cancellation); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs index fd6de60bc0..8f091f30c8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs @@ -116,7 +116,7 @@ public class MongoTagRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs index d9db61a0c4..1714773aec 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs @@ -159,7 +159,7 @@ namespace Volo.Docs.Documents lastSignificantUpdateTimeMax: lastSignificantUpdateTimeMax, lastCachedTimeMin: lastCachedTimeMin, lastCachedTimeMax: lastCachedTimeMax, cancellationToken: cancellationToken)) .OrderBy(string.IsNullOrWhiteSpace(sorting) ? "name asc" : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(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 52a9875936..e2df71ed84 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 virtual async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { - var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).PageBy>(skipCount, maxResultCount) + var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); return projects; diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs index 899975f9c6..fecda84465 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs @@ -44,13 +44,13 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) ) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityClaimType.CreationTime) + " desc" : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -59,7 +59,7 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs index 9979c0de0c..023d91396e 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs @@ -125,7 +125,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Name.Contains(filter) || x.NormalizedName.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityRole.CreationTime) + " desc" : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } } 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 bfe4cf1983..a8a984bb63 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 @@ -51,7 +51,7 @@ public class MongoIdentitySecurityLogRepository : ); return await query.OrderBy(sorting.IsNullOrWhiteSpace() ? $"{nameof(IdentitySecurityLog.CreationTime)} desc" : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs index 624bf9dd3f..4c085918cb 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs @@ -201,7 +201,7 @@ public class MongoIdentityUserRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -454,7 +454,7 @@ public class MongoIdentityUserRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.NormalizedUserName.Contains(upperFilter) || @@ -463,20 +463,20 @@ public class MongoIdentityUserRepository : MongoDbRepository>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) - .WhereIf>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) - .WhereIf>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) - .WhereIf>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) - .WhereIf>(!string.IsNullOrWhiteSpace(name), x => x.Name == name) - .WhereIf>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname) - .WhereIf>(isLockedOut.HasValue && isLockedOut.Value, x => x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow) - .WhereIf>(isLockedOut.HasValue && !isLockedOut.Value, x => !(x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow)) - .WhereIf>(notActive.HasValue, x => x.IsActive == !notActive.Value) - .WhereIf>(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value) - .WhereIf>(isExternal.HasValue, x => x.IsExternal == isExternal.Value) - .WhereIf>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) - .WhereIf>(minCreationTime != null, p => p.CreationTime >= minCreationTime) - .WhereIf>(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime) - .WhereIf>(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime); + .WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) + .WhereIf(!string.IsNullOrWhiteSpace(name), x => x.Name == name) + .WhereIf(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname) + .WhereIf(isLockedOut.HasValue && isLockedOut.Value, x => x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow) + .WhereIf(isLockedOut.HasValue && !isLockedOut.Value, x => !(x.LockoutEnabled && x.LockoutEnd != null && x.LockoutEnd > DateTimeOffset.UtcNow)) + .WhereIf(notActive.HasValue, x => x.IsActive == !notActive.Value) + .WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value) + .WhereIf(isExternal.HasValue, x => x.IsExternal == isExternal.Value) + .WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime) + .WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime) + .WhereIf(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime) + .WhereIf(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime); } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs index d871ca8b70..43d9f04f78 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs @@ -72,7 +72,7 @@ public class MongoOrganizationUnitRepository { return await (await GetMongoQueryableAsync(cancellationToken)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(OrganizationUnit.CreationTime) + " desc" : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -102,7 +102,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -123,7 +123,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -151,7 +151,7 @@ public class MongoOrganizationUnitRepository .Where(r => !roleIds.Contains(r.Id)) .WhereIf(!filter.IsNullOrWhiteSpace(), r => r.Name.Contains(filter)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -181,7 +181,7 @@ public class MongoOrganizationUnitRepository var query = await CreateGetMembersFilteredQueryAsync(organizationUnit, filter, cancellationToken); return await query .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityUser.UserName) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(cancellationToken); } @@ -215,7 +215,7 @@ public class MongoOrganizationUnitRepository return await (await GetMongoQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || @@ -223,7 +223,7 @@ public class MongoOrganizationUnitRepository (u.PhoneNumber != null && u.PhoneNumber.Contains(filter)) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityUser.UserName) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -232,7 +232,7 @@ public class MongoOrganizationUnitRepository { return await (await GetMongoQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || @@ -271,7 +271,7 @@ public class MongoOrganizationUnitRepository { return (await GetMongoQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs index ff58d8b984..d9b6f7af01 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs @@ -50,14 +50,14 @@ public class MongoApiResourceRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs index 90a4b214ae..218155e4c6 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs @@ -45,14 +45,14 @@ public class MongoApiScopeRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs index f26a6c7805..2fa2e1ccec 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs @@ -42,14 +42,14 @@ public class MongoClientRepository : MongoDbRepository x.ClientId.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(Client.ClientName) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.ClientId.Contains(filter)) .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs index c2217c31dc..1f672dc709 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs @@ -25,14 +25,14 @@ public class MongoIdentityResourceRepository : MongoDbRepository>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>(!filter.IsNullOrWhiteSpace(), + .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs index 9af3db126b..8763b80a2e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs @@ -95,9 +95,9 @@ public class MongoPersistentGrantRepository : MongoDbRepository>(!subjectId.IsNullOrWhiteSpace(), x => x.SubjectId == subjectId) - .WhereIf>(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) - .WhereIf>(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) - .WhereIf>(!type.IsNullOrWhiteSpace(), x => x.Type == type); + .WhereIf(!subjectId.IsNullOrWhiteSpace(), x => x.SubjectId == subjectId) + .WhereIf(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) + .WhereIf(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) + .WhereIf(!type.IsNullOrWhiteSpace(), x => x.Type == type); } } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs index 1762bcb666..04b87d40bb 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs @@ -51,20 +51,20 @@ public class MongoTenantRepository : MongoDbRepository>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(Tenant.Name) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.Name.Contains(filter) diff --git a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs index 335c46c94e..d700665c90 100644 --- a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs +++ b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs @@ -46,7 +46,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi { cancellationToken = GetCancellationToken(cancellationToken); return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || @@ -55,7 +55,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi (u.Surname != null && u.Surname.Contains(filter)) ) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IUserData.UserName) : sorting) - .PageBy>(skipCount, maxResultCount) + .PageBy(skipCount, maxResultCount) .ToListAsync(cancellationToken); } @@ -63,7 +63,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi { cancellationToken = GetCancellationToken(cancellationToken); return await (await GetMongoQueryableAsync(cancellationToken)) - .WhereIf>( + .WhereIf( !filter.IsNullOrWhiteSpace(), u => u.UserName.Contains(filter) || From 9ede7b43403440af3d526ce070e538d7a8e24e78 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 6 Jan 2025 13:37:37 +0800 Subject: [PATCH 04/65] Rename `GetMongoQueryable` to `GetQueryable`. --- .../best-practices/mongodb-integration.md | 8 +-- docs/en/guides/microservice-mongodb.md | 4 +- docs/en/tutorials/book-store/part-07.md | 4 +- .../MongoDB/IMongoDbRepository.cs | 5 +- .../Repositories/MongoDB/MongoDbRepository.cs | 42 +++++++-------- .../MongoDbCoreRepositoryExtensions.cs | 10 ++-- .../Repositories/Repository_Basic_Tests.cs | 6 +-- .../MongoDB/MongoAuditLogRepository.cs | 12 ++--- .../MongoDB/MongoBackgroundJobRepository.cs | 2 +- .../MongoDB/MongoDbDatabaseBlobRepository.cs | 4 +- .../Blogging/Blogs/MongoBlogRepository.cs | 2 +- .../Comments/MongoCommentRepository.cs | 8 +-- .../Blogging/Posts/MongoPostRepository.cs | 12 ++--- .../Blogging/Tagging/MongoTagRepository.cs | 10 ++-- .../Blogging/Users/MongoBlogUserRepository.cs | 2 +- .../Blogs/MongoBlogFeatureRepository.cs | 4 +- .../MongoDB/Blogs/MongoBlogPostRepository.cs | 10 ++-- .../MongoDB/Blogs/MongoBlogRepository.cs | 8 +-- .../Comments/MongoCommentRepository.cs | 14 ++--- .../MongoUserMarkedItemRepository.cs | 6 +-- .../MongoDB/Pages/MongoPageRepository.cs | 8 +-- .../MongoDB/Ratings/MongoRatingRepository.cs | 4 +- .../Reactions/MongoUserReactionRepository.cs | 6 +-- .../MongoDB/Tags/MongoEntityTagRepository.cs | 2 +- .../CmsKit/MongoDB/Tags/MongoTagRepository.cs | 12 ++--- .../Docs/Documents/MongoDocumentRepository.cs | 22 ++++---- .../Docs/Projects/MongoProjectRepository.cs | 8 +-- .../MongoFeatureDefinitionRecordRepository.cs | 2 +- .../MongoDB/MongoFeatureValueRepository.cs | 6 +-- .../MongoIdentityClaimTypeRepository.cs | 10 ++-- .../MongoIdentityLinkUserRepository.cs | 6 +-- .../MongoDB/MongoIdentityRoleRepository.cs | 14 ++--- .../MongoIdentitySecurityLogRepository.cs | 4 +- .../MongoDB/MongoIdentitySessionRepository.cs | 10 ++-- .../MongoIdentityUserDelegationRepository.cs | 6 +-- .../MongoDB/MongoIdentityUserRepository.cs | 54 +++++++++---------- .../MongoOrganizationUnitRepository.cs | 34 ++++++------ .../MongoDB/MongoApiResourceRepository.cs | 12 ++--- .../MongoDB/MongoApiScopeRepository.cs | 10 ++-- .../MongoDB/MongoClientRepository.cs | 10 ++-- .../MongoDB/MongoDeviceFlowCodesRepository.cs | 6 +-- .../MongoIdentityResourceRepository.cs | 10 ++-- .../MongoDB/MongoPersistentGrantRepository.cs | 8 +-- .../MongoOpenIddictApplicationRepository.cs | 14 ++--- .../MongoOpenIddictAuthorizationRepository.cs | 16 +++--- .../Scopes/MongoOpenIddictScopeRepository.cs | 14 ++--- .../Tokens/MongoOpenIddictTokenRepository.cs | 24 ++++----- ...ngoPermissionDefinitionRecordRepository.cs | 2 +- .../MongoDb/MongoPermissionGrantRepository.cs | 6 +-- .../MongoSettingDefinitionRecordRepository.cs | 2 +- .../MongoDB/MongoSettingRepository.cs | 6 +-- .../MongoDb/MongoTenantRepository.cs | 10 ++-- .../Users/MongoDB/MongoUserRepositoryBase.cs | 8 +-- .../MongoDb/Samples/SampleRepositoryTests.cs | 2 +- 54 files changed, 266 insertions(+), 275 deletions(-) diff --git a/docs/en/framework/architecture/best-practices/mongodb-integration.md b/docs/en/framework/architecture/best-practices/mongodb-integration.md index 1930984e2e..68793766f0 100644 --- a/docs/en/framework/architecture/best-practices/mongodb-integration.md +++ b/docs/en/framework/architecture/best-practices/mongodb-integration.md @@ -114,7 +114,7 @@ public async Task FindByNormalizedUserNameAsync( bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync()) + return await (await GetQueryableAsync()) .FirstOrDefaultAsync( u => u.NormalizedUserName == normalizedUserName, GetCancellationToken(cancellationToken) @@ -125,10 +125,10 @@ 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 `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). +* **Do** use the `GetQueryableAsync()` method to obtain an `IQueryable` to perform queries wherever possible. Because; + * `GetQueryableAsync()` 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. +* **Do** implement data filtering if it is not possible to use the `GetQueryable()` method. ## Module Class diff --git a/docs/en/guides/microservice-mongodb.md b/docs/en/guides/microservice-mongodb.md index 476637f605..087668ba7a 100644 --- a/docs/en/guides/microservice-mongodb.md +++ b/docs/en/guides/microservice-mongodb.md @@ -97,7 +97,7 @@ Here we use `BookStore.ProductService` project as an example: int skipCount = 0, CancellationToken cancellationToken = default) { - var query = ApplyFilter(await GetMongoQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); + var query = ApplyFilter(await GetQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); query = query.OrderBy(string.IsNullOrWhiteSpace(sorting) ? ProductConsts.GetDefaultSorting(false) : sorting); return await query.PageBy(skipCount, maxResultCount).ToListAsync(cancellationToken); } @@ -109,7 +109,7 @@ Here we use `BookStore.ProductService` project as an example: float? priceMax = null, CancellationToken cancellationToken = default) { - var query = ApplyFilter(await GetMongoQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); + var query = ApplyFilter(await GetQueryableAsync(cancellationToken), filterText, name, priceMin, priceMax); return await query.LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/docs/en/tutorials/book-store/part-07.md b/docs/en/tutorials/book-store/part-07.md index 8304cc4b46..92108c4a35 100644 --- a/docs/en/tutorials/book-store/part-07.md +++ b/docs/en/tutorials/book-store/part-07.md @@ -180,7 +180,7 @@ public class MongoDbAuthorRepository public async Task FindByNameAsync(string name) { - var queryable = await GetMongoQueryableAsync(); + var queryable = await GetQueryableAsync(); return await queryable.FirstOrDefaultAsync(author => author.Name == name); } @@ -190,7 +190,7 @@ public class MongoDbAuthorRepository string sorting, string filter = null) { - var queryable = await GetMongoQueryableAsync(); + var queryable = await GetQueryableAsync(); return await queryable .WhereIf>( !filter.IsNullOrWhiteSpace(), 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 3adb9c52c1..d1c152c98f 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 @@ -21,10 +21,7 @@ public interface IMongoDbRepository : IRepository Task> GetCollectionAsync(CancellationToken cancellationToken = default); - [Obsolete("Use GetMongoQueryableAsync method.")] - IQueryable GetMongoQueryable(); - - Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); + Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); Task> GetAggregateAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); } 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 56c0d207e4..dcbe447f99 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 @@ -455,19 +455,19 @@ public class MongoDbRepository public async override Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)).ToListAsync(cancellationToken); + return await (await GetQueryableAsync(cancellationToken)).ToListAsync(cancellationToken); } public async override Task> GetListAsync(Expression> predicate, bool includeDetails = false, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)).Where(predicate).ToListAsync(cancellationToken); + return await (await GetQueryableAsync(cancellationToken)).Where(predicate).ToListAsync(cancellationToken); } public async override Task GetCountAsync(CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)).LongCountAsync(cancellationToken); + return await (await GetQueryableAsync(cancellationToken)).LongCountAsync(cancellationToken); } public async override Task> GetPagedListAsync( @@ -479,7 +479,7 @@ public class MongoDbRepository { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderByIf>(!sorting.IsNullOrWhiteSpace(), sorting) .PageBy>(skipCount, maxResultCount) .ToListAsync(cancellationToken); @@ -492,7 +492,7 @@ public class MongoDbRepository { cancellationToken = GetCancellationToken(cancellationToken); - var entities = await (await GetMongoQueryableAsync(cancellationToken)) + var entities = await (await GetQueryableAsync(cancellationToken)) .Where(predicate) .ToListAsync(cancellationToken); @@ -523,17 +523,6 @@ public class MongoDbRepository } } - [Obsolete("Use GetQueryableAsync method.")] - protected override IQueryable GetQueryable() - { - return GetMongoQueryable(); - } - - public async override Task> GetQueryableAsync() - { - return await GetMongoQueryableAsync(); - } - public async override Task FindAsync( Expression> predicate, bool includeDetails = true, @@ -541,13 +530,13 @@ public class MongoDbRepository { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(predicate) .SingleOrDefaultAsync(cancellationToken); } - [Obsolete("Use GetMongoQueryableAsync method.")] - public virtual IQueryable GetMongoQueryable() + [Obsolete("Use GetQueryableAsync method.")] + protected override IQueryable GetQueryable() { return ApplyDataFilters( SessionHandle != null @@ -556,12 +545,17 @@ public class MongoDbRepository ); } - public virtual Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + public async override Task> GetQueryableAsync() + { + return await GetQueryableAsync(); + } + + public async Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null) { - return GetMongoQueryableAsync(cancellationToken, aggregateOptions); + return await GetQueryableAsync(cancellationToken, options); } - protected virtual async Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + protected virtual async Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) { cancellationToken = GetCancellationToken(cancellationToken); @@ -809,7 +803,7 @@ public class MongoDbRepository { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Id!.Equals(id)) .FirstOrDefaultAsync(cancellationToken); } @@ -826,7 +820,7 @@ public class MongoDbRepository { cancellationToken = GetCancellationToken(cancellationToken); - var entities = await (await GetMongoQueryableAsync(cancellationToken)) + var entities = await (await GetQueryableAsync(cancellationToken)) .Where(x => ids.Contains(x.Id)) .ToListAsync(cancellationToken); 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 257092512f..0c1f900066 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 @@ -37,17 +37,17 @@ public static class MongoDbCoreRepositoryExtensions return repository.ToMongoDbRepository().GetCollectionAsync(cancellationToken); } - [Obsolete("Use GetMongoQueryableAsync method.")] - public static IQueryable GetMongoQueryable(this IReadOnlyBasicRepository repository) + [Obsolete("Use GetQueryableAsync method.")] + public static IQueryable GetQueryable(this IReadOnlyBasicRepository repository) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetMongoQueryable(); + return repository.ToMongoDbRepository().GetQueryable(); } - public static Task> GetMongoQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + public static Task> GetQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetMongoQueryableAsync(cancellationToken, aggregateOptions); + return repository.ToMongoDbRepository().GetQueryableAsync(cancellationToken, aggregateOptions); } public static Task> GetAggregateAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs index a6976b3be6..e2ad9088cb 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs @@ -69,9 +69,9 @@ public class Repository_Basic_Tests : Repository_Basic_Tests c.Name == "ISTANBUL").ShouldBeNull(); - (await CityRepository.GetMongoQueryableAsync()).FirstOrDefault(c => c.Name == "istanbul").ShouldBeNull(); - (await CityRepository.GetMongoQueryableAsync()).FirstOrDefault(c => c.Name == "Istanbul").ShouldNotBeNull(); + (await CityRepository.GetQueryableAsync()).FirstOrDefault(c => c.Name == "ISTANBUL").ShouldBeNull(); + (await CityRepository.GetQueryableAsync()).FirstOrDefault(c => c.Name == "istanbul").ShouldBeNull(); + (await CityRepository.GetQueryableAsync()).FirstOrDefault(c => c.Name == "Istanbul").ShouldNotBeNull(); (await PersonRepository.GetQueryableAsync()).FirstOrDefault(p => p.Name == "douglas").ShouldNotBeNull(); (await PersonRepository.GetQueryableAsync()).FirstOrDefault(p => p.Name == "DOUGLAS").ShouldNotBeNull(); 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 50336aa8cc..92416174ae 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 @@ -126,7 +126,7 @@ public class MongoAuditLogRepository : MongoDbRepository auditLog.ExecutionTime >= startTime) .WhereIf(endTime.HasValue, auditLog => auditLog.ExecutionTime <= endTime) .WhereIf(hasException.HasValue && hasException.Value, auditLog => auditLog.Exceptions != null && auditLog.Exceptions != "") @@ -149,7 +149,7 @@ public class MongoAuditLogRepository : MongoDbRepository a.ExecutionTime < endDate.AddDays(1) && a.ExecutionTime > startDate) .OrderBy(t => t.ExecutionTime) .GroupBy(t => new { @@ -167,7 +167,7 @@ public class MongoAuditLogRepository : MongoDbRepository x.EntityChanges.Any(y => y.Id == entityChangeId)) .OrderBy(x => x.Id) .FirstAsync(GetCancellationToken(cancellationToken))).EntityChanges.FirstOrDefault(x => x.Id == entityChangeId); @@ -221,7 +221,7 @@ public class MongoAuditLogRepository : MongoDbRepository x.EntityChanges.Any(y => y.Id == entityChangeId)) .FirstAsync(GetCancellationToken(cancellationToken)); @@ -237,7 +237,7 @@ public class MongoAuditLogRepository : MongoDbRepository x.EntityChanges.Any(y => y.EntityId == entityId && y.EntityTypeFullName == entityTypeFullName)) .OrderByDescending(x => x.ExecutionTime) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -259,7 +259,7 @@ public class MongoAuditLogRepository : MongoDbRepository 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.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo/Abp/BackgroundJobs/MongoDB/MongoBackgroundJobRepository.cs index 16d49e980d..a3f46643fe 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 @@ -33,7 +33,7 @@ public class MongoBackgroundJobRepository : MongoDbRepository> GetWaitingListQuery(int maxResultCount, CancellationToken cancellationToken = default) { var now = Clock.Now; - return (await GetMongoQueryableAsync(cancellationToken)) + return (await GetQueryableAsync(cancellationToken)) .Where(t => !t.IsAbandoned && t.NextTryTime <= now) .OrderByDescending(t => t.Priority) .ThenBy(t => t.TryCount) diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs index 4610043405..6b2663013d 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs @@ -17,7 +17,7 @@ public class MongoDbDatabaseBlobRepository : MongoDbRepository x.ContainerId == containerId && x.Name == name, cancellationToken @@ -28,7 +28,7 @@ public class MongoDbDatabaseBlobRepository : MongoDbRepository x.ContainerId == containerId && x.Name == name, 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 42c8bb467a..c15ef4d0cb 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 virtual async Task FindByShortNameAsync(string shortName, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.ShortName == shortName, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(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 432cecb1b0..77c443e485 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 @@ -19,7 +19,7 @@ namespace Volo.Blogging.Comments public virtual async Task> GetListOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(a => a.PostId == postId) .OrderBy(a => a.CreationTime) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -27,19 +27,19 @@ namespace Volo.Blogging.Comments public virtual async Task GetCommentCountOfPostAsync(Guid postId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .CountAsync(a => a.PostId == postId, GetCancellationToken(cancellationToken)); } public virtual async Task> GetRepliesOfComment(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(a => a.RepliedCommentId == id).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task DeleteOfPost(Guid id, CancellationToken cancellationToken = default) { - var recordsToDelete = (await GetMongoQueryableAsync(cancellationToken)).Where(pt => pt.PostId == id); + var recordsToDelete = (await GetQueryableAsync(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 b53693722f..b3083cbd5f 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 @@ -21,13 +21,13 @@ namespace Volo.Blogging.Posts public virtual async Task> GetPostsByBlogId(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(p => p.BlogId == id).OrderByDescending(p => p.CreationTime).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task IsPostUrlInUseAsync(Guid blogId, string url, Guid? excludingPostId = null, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(cancellationToken)).Where(p => blogId == p.BlogId && p.Url == url); + var query = (await GetQueryableAsync(cancellationToken)).Where(p => blogId == p.BlogId && p.Url == url); if (excludingPostId != null) { @@ -39,7 +39,7 @@ namespace Volo.Blogging.Posts public virtual async Task GetPostByUrl(Guid blogId, string url, CancellationToken cancellationToken = default) { - var post = await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); + var post = await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.BlogId == blogId && p.Url == url, GetCancellationToken(cancellationToken)); if (post == null) { @@ -51,7 +51,7 @@ namespace Volo.Blogging.Posts public virtual async Task> GetOrderedList(Guid blogId, bool @descending = false, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.BlogId == blogId); + var query = (await GetQueryableAsync(cancellationToken)).Where(x => x.BlogId == blogId); if (!descending) { @@ -63,7 +63,7 @@ namespace Volo.Blogging.Posts public virtual async Task> GetListByUserIdAsync(Guid userId, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.CreatorId == userId) + var query = (await GetQueryableAsync(cancellationToken)).Where(x => x.CreatorId == userId) .OrderByDescending(x => x.CreationTime); return await query.ToListAsync(GetCancellationToken(cancellationToken)); @@ -71,7 +71,7 @@ namespace Volo.Blogging.Posts public virtual async Task> GetLatestBlogPostsAsync(Guid blogId, int count, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.BlogId == blogId) + var query = (await GetQueryableAsync(cancellationToken)).Where(x => x.BlogId == blogId) .OrderByDescending(x => x.CreationTime) .Take(count); 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 bfa0c9fb4d..2e60faaccc 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 virtual async Task> GetListAsync(Guid blogId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstAsync(GetCancellationToken(cancellationToken)); } public virtual async Task FindByNameAsync(Guid blogId, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(t => t.BlogId == blogId && t.Name == name).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(t => ids.Contains(t.Id)).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task DecreaseUsageCountOfTagsAsync(List ids, CancellationToken cancellationToken = default) { - var tags = await (await GetMongoQueryableAsync(cancellationToken)) + var tags = await (await GetQueryableAsync(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 3fec9a2627..b68e77c9fd 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 @@ -18,7 +18,7 @@ namespace Volo.Blogging.Users public virtual async Task> GetUsersAsync(int maxCount, string filter, CancellationToken cancellationToken = default) { - var query = await GetMongoQueryableAsync(cancellationToken); + var query = await GetQueryableAsync(cancellationToken); if (!string.IsNullOrWhiteSpace(filter)) { diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogFeatureRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogFeatureRepository.cs index 334debe8c8..606c3e28ff 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogFeatureRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogFeatureRepository.cs @@ -25,14 +25,14 @@ public class MongoBlogFeatureRepository : MongoDbRepository> GetListAsync(Guid blogId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.BlogId == blogId) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetListAsync(Guid blogId, List featureNames, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.BlogId == blogId && featureNames.Contains(x.FeatureName)) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs index 3cd5d5dd82..b47abe1115 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs @@ -44,7 +44,7 @@ public class MongoBlogPostRepository : MongoDbRepository(token)).FirstOrDefaultAsync(x => x.Id == blogPost.AuthorId, token); + blogPost.Author = await (await GetQueryableAsync(token)).FirstOrDefaultAsync(x => x.Id == blogPost.AuthorId, token); return blogPost; } @@ -64,7 +64,7 @@ public class MongoBlogPostRepository : MongoDbRepository tagFilteredEntityIds.Contains(x.Id)) .WhereIf(favoriteUserFilteredEntityIds.Any(), x => favoriteUserFilteredEntityIds.Contains(x.Id)) .WhereIf(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) @@ -174,7 +174,7 @@ public class MongoBlogPostRepository : MongoDbRepository x.BlogId == blogId && x.Slug.ToLower() == slug, cancellationToken); } @@ -225,14 +225,14 @@ public class MongoBlogPostRepository : MongoDbRepository x.Status == BlogPostStatus.WaitingForReview, cancellationToken); } public async Task UpdateBlogAsync(Guid sourceBlogId, Guid? targetBlogId, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - var blogPosts = await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.BlogId == sourceBlogId).ToListAsync(cancellationToken); + var blogPosts = await (await GetQueryableAsync(cancellationToken)).Where(x => x.BlogId == sourceBlogId).ToListAsync(cancellationToken); if (targetBlogId.HasValue) { foreach (var blogPost in blogPosts) diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs index dfb33e5c16..c25bc688b7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogRepository.cs @@ -23,13 +23,13 @@ public class MongoBlogRepository : MongoDbRepository ExistsAsync(Guid id, CancellationToken cancellationToken = default) { var token = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(token)).AnyAsync(x => x.Id == id, token); + return await (await GetQueryableAsync(token)).AnyAsync(x => x.Id == id, token); } public virtual async Task SlugExistsAsync(string slug, CancellationToken cancellationToken = default) { var token = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(token)).AnyAsync(x => x.Slug == slug, token); + return await (await GetQueryableAsync(token)).AnyAsync(x => x.Slug == slug, token); } public virtual async Task> GetListAsync( @@ -62,7 +62,7 @@ public class MongoBlogRepository : MongoDbRepository x.Id).ToList(); - var blogPostCount = await (await GetMongoQueryableAsync(token)) + var blogPostCount = await (await GetQueryableAsync(token)) .Where(blogPost => blogIds.Contains(blogPost.Id)) .GroupBy(blogPost => blogPost.BlogId) .Select(x => new @@ -92,7 +92,7 @@ public class MongoBlogRepository : MongoDbRepository> GetListQueryAsync(string filter = null, CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync(cancellationToken)) + return (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), b => b.Name.Contains(filter)); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs index 1cb38abc97..5b4566ecb8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs @@ -66,7 +66,7 @@ public class MongoCommentRepository : MongoDbRepository x.Id).ToList(); - var authorsQuery = from comment in (await GetMongoQueryableAsync(token)) + var authorsQuery = from comment in (await GetQueryableAsync(token)) join user in (await GetDbContextAsync(token)).CmsUsers on comment.CreatorId equals user.Id where commentIds.Contains(comment.Id) orderby comment.CreationTime @@ -115,7 +115,7 @@ public class MongoCommentRepository : MongoDbRepository, CmsUser>(authorsQuery).ToListAsync(GetCancellationToken(cancellationToken)); - var commentsQuery = (await GetMongoQueryableAsync(cancellationToken)) + var commentsQuery = (await GetQueryableAsync(cancellationToken)) .Where(c => c.EntityId == entityId && c.EntityType == entityType); commentsQuery = commentApproveState switch { @@ -150,7 +150,7 @@ public class MongoCommentRepository : MongoDbRepository x.RepliedCommentId == comment.Id) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -170,7 +170,7 @@ public class MongoCommentRepository : MongoDbRepository ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .AnyAsync(x => x.IdempotencyToken == idempotencyToken, GetCancellationToken(cancellationToken)); } @@ -185,11 +185,11 @@ public class MongoCommentRepository : MongoDbRepository(cancellationToken)).FirstOrDefaultAsync(x => x.UserName == authorUsername, cancellationToken: cancellationToken); + var author = await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.UserName == authorUsername, cancellationToken: cancellationToken); var authorId = author?.Id ?? Guid.Empty; diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/MarkedItems/MongoUserMarkedItemRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/MarkedItems/MongoUserMarkedItemRepository.cs index 91fbbf996e..ea81fe03ff 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/MarkedItems/MongoUserMarkedItemRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/MarkedItems/MongoUserMarkedItemRepository.cs @@ -24,7 +24,7 @@ public class MongoUserMarkedItemRepository : MongoDbRepository x.CreatorId == userId && x.EntityType == entityType && @@ -39,7 +39,7 @@ public class MongoUserMarkedItemRepository : MongoDbRepository x.CreatorId == userId && x.EntityType == entityType) @@ -49,7 +49,7 @@ public class MongoUserMarkedItemRepository : MongoDbRepository> GetEntityIdsFilteredByUserAsync([NotNull] Guid userId, [NotNull] string entityType, [CanBeNull] Guid? tenantId = null, CancellationToken cancellationToken = default) { var dbContext = await GetDbContextAsync(); - var userMarkedItemQueryable = await GetMongoQueryableAsync(GetCancellationToken(cancellationToken)); + var userMarkedItemQueryable = await GetQueryableAsync(GetCancellationToken(cancellationToken)); var resultQueryable = userMarkedItemQueryable .Where(x => x.CreatorId == userId 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 f1879090e5..7c2f9a3891 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 @@ -26,7 +26,7 @@ public class MongoPageRepository : MongoDbRepository @@ -43,7 +43,7 @@ public class MongoPageRepository : MongoDbRepository u.Title.ToLower().Contains(filter) || u.Slug.Contains(filter)) @@ -67,7 +67,7 @@ public class MongoPageRepository : MongoDbRepository ExistsAsync([NotNull] string slug, CancellationToken cancellationToken = default) { Check.NotNullOrEmpty(slug, nameof(slug)); - return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.Slug == slug, + return await (await GetQueryableAsync(cancellationToken)).AnyAsync(x => x.Slug == slug, GetCancellationToken(cancellationToken)); } @@ -78,7 +78,7 @@ public class MongoPageRepository : MongoDbRepository FindTitleAsync(Guid pageId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.Id == pageId).Select(x => x.Title) + return await (await GetQueryableAsync(cancellationToken)).Where(x => x.Id == pageId).Select(x => x.Title) .FirstOrDefaultAsync(cancellationToken); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Ratings/MongoRatingRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Ratings/MongoRatingRepository.cs index 3a18f31719..d93cad27be 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Ratings/MongoRatingRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Ratings/MongoRatingRepository.cs @@ -25,7 +25,7 @@ public class MongoRatingRepository : MongoDbRepository r.EntityType == entityType && r.EntityId == entityId && r.CreatorId == userId, GetCancellationToken(cancellationToken)); @@ -39,7 +39,7 @@ public class MongoRatingRepository : MongoDbRepository x.CreatorId == userId && x.EntityType == entityType && @@ -47,7 +47,7 @@ public class MongoUserReactionRepository : MongoDbRepository x.CreatorId == userId && x.EntityType == entityType && @@ -63,7 +63,7 @@ public class MongoUserReactionRepository : MongoDbRepository x.EntityType == entityType && x.EntityId == entityId) 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 2e8dc96d01..1ce2319a49 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 @@ -67,7 +67,7 @@ public class MongoEntityTagRepository : MongoDbRepository x.EntityType == entityType && x.Name == name, @@ -69,12 +69,12 @@ public class MongoTagRepository : MongoDbRepository(cancellationToken)) + var entityTagIds = await (await GetQueryableAsync(cancellationToken)) .Where(q => q.EntityId == entityId) .Select(q => q.TagId) .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); - var query = (await GetMongoQueryableAsync(cancellationToken)) + var query = (await GetQueryableAsync(cancellationToken)) .Where(x => x.EntityType == entityType && entityTagIds.Contains(x.Id)); @@ -86,14 +86,14 @@ public class MongoTagRepository : MongoDbRepository> GetPopularTagsAsync(string entityType, int maxCount, CancellationToken cancellationToken = default) { - var tags = await (await GetMongoQueryableAsync(cancellationToken)) + var tags = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.EntityType == entityType) .Select(x => new { x.Id, x.Name }) .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); var tagIds = tags.Select(x => x.Id); - var entityTagCounts = await (await GetMongoQueryableAsync(cancellationToken)) + var entityTagCounts = await (await GetQueryableAsync(cancellationToken)) .Where(q => tagIds.Contains(q.TagId)) .GroupBy(q => q.TagId) .Select(q => new { TagId = q.Key, Count = q.Count() }) @@ -127,7 +127,7 @@ public class MongoTagRepository : MongoDbRepository> GetQueryableByFilterAsync(string filter, CancellationToken cancellationToken = default) { - var mongoQueryable = await GetMongoQueryableAsync(cancellationToken: cancellationToken); + var mongoQueryable = await GetQueryableAsync(cancellationToken: cancellationToken); if (!filter.IsNullOrWhiteSpace()) { diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs index 1714773aec..081e920cff 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Documents/MongoDocumentRepository.cs @@ -22,7 +22,7 @@ namespace Volo.Docs.Documents public virtual async Task> GetListWithoutDetailsByProjectId(Guid projectId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(d => d.ProjectId == projectId) .Select(x => new DocumentWithoutDetails { @@ -37,7 +37,7 @@ namespace Volo.Docs.Documents public virtual async Task> GetUniqueListDocumentInfoAsync(CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Select(x=> new DocumentInfo { ProjectId = x.ProjectId, Version = x.Version, @@ -51,13 +51,13 @@ namespace Volo.Docs.Documents public virtual async Task> GetListByProjectId(Guid projectId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(d => d.ProjectId == projectId).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(d => d.ProjectId == projectId).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetUniqueDocumentsByProjectIdPagedAsync(Guid projectId, int skipCount, int maxResultCount, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(d => d.ProjectId == projectId) .OrderBy(x => x.LastCachedTime) .GroupBy(x => new { x.Name, x.LanguageCode, x.Version }) @@ -69,7 +69,7 @@ namespace Volo.Docs.Documents public virtual async Task GetUniqueDocumentCountByProjectIdAsync(Guid projectId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(d => d.ProjectId == projectId) + return await (await GetQueryableAsync(cancellationToken)).Where(d => d.ProjectId == projectId) .GroupBy(x => new { x.Name, x.LanguageCode, x.Version }) .LongCountAsync(GetCancellationToken(cancellationToken)); } @@ -89,7 +89,7 @@ namespace Volo.Docs.Documents bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => + return await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.ProjectId == projectId && x.Name == name && x.LanguageCode == languageCode && @@ -100,7 +100,7 @@ namespace Volo.Docs.Documents bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.ProjectId == projectId && + return await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.ProjectId == projectId && possibleNames.Contains(x.Name) && x.LanguageCode == languageCode && x.Version == version, GetCancellationToken(cancellationToken)); @@ -115,7 +115,7 @@ namespace Volo.Docs.Documents public virtual async Task> GetListAsync(Guid? projectId, string version, string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(version != null, x => x.Version == version) .WhereIf(name != null, x => x.Name == name) .WhereIf(projectId.HasValue, x => x.ProjectId == projectId) @@ -144,7 +144,7 @@ namespace Volo.Docs.Documents { return await (await ApplyFilterForGetAll( - await GetMongoQueryableAsync(cancellationToken), + await GetQueryableAsync(cancellationToken), projectId: projectId, name: name, version: version, @@ -185,7 +185,7 @@ namespace Volo.Docs.Documents { return await (await ApplyFilterForGetAll( - await GetMongoQueryableAsync(cancellationToken), + await GetQueryableAsync(cancellationToken), projectId: projectId, name: name, version: version, @@ -207,7 +207,7 @@ namespace Volo.Docs.Documents public virtual async Task GetAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.Id == id).SingleAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(x => x.Id == id).SingleAsync(GetCancellationToken(cancellationToken)); } protected virtual async Task> ApplyFilterForGetAll( 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 e2df71ed84..af54bd6bc5 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 virtual async Task> GetListAsync(string sorting, int maxResultCount, int skipCount, CancellationToken cancellationToken = default) { - var projects = await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).PageBy(skipCount, maxResultCount) + var projects = await (await GetQueryableAsync(cancellationToken)).OrderBy(sorting.IsNullOrEmpty() ? "Id desc" : sorting).PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); return projects; @@ -30,7 +30,7 @@ namespace Volo.Docs.Projects public virtual async Task> GetListWithoutDetailsAsync(CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Select(x=> new ProjectWithoutDetails { Id = x.Id, Name = x.Name, @@ -43,7 +43,7 @@ namespace Volo.Docs.Projects { var normalizeShortName = NormalizeShortName(shortName); - var project = await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); + var project = await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(p => p.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); if (project == null) { @@ -57,7 +57,7 @@ namespace Volo.Docs.Projects { var normalizeShortName = NormalizeShortName(shortName); - return await (await GetMongoQueryableAsync(cancellationToken)).AnyAsync(x => x.ShortName == normalizeShortName, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(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/MongoFeatureDefinitionRecordRepository.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs index a564e7792d..e89a68a710 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureDefinitionRecordRepository.cs @@ -21,7 +21,7 @@ public class MongoFeatureDefinitionRecordRepository : public virtual async Task FindByNameAsync(string name, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync( s => s.Name == name, 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 3b52fe2634..0eb4f07e2f 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 @@ -27,7 +27,7 @@ public class MongoFeatureValueRepository : string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, GetCancellationToken(cancellationToken)); } @@ -38,7 +38,7 @@ public class MongoFeatureValueRepository : string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey).ToListAsync(GetCancellationToken(cancellationToken)); } @@ -47,7 +47,7 @@ public class MongoFeatureValueRepository : string providerKey, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs index fecda84465..6a24fd8ed9 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityClaimTypeRepository.cs @@ -24,13 +24,13 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository ct.Name == name) .AnyAsync(GetCancellationToken(cancellationToken)); } else { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ct => ct.Id != ignoredId && ct.Name == name) .AnyAsync(GetCancellationToken(cancellationToken)); } @@ -43,7 +43,7 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository @@ -58,7 +58,7 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository @@ -69,7 +69,7 @@ public class MongoIdentityClaimTypeRepository : MongoDbRepository> GetListByNamesAsync(IEnumerable names, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => names.Contains(x.Name)) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs index 20116fdd0b..46cfc60eb3 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs @@ -18,7 +18,7 @@ public class MongoIdentityLinkUserRepository : MongoDbRepository FindAsync(IdentityLinkUserInfo sourceLinkUserInfo, IdentityLinkUserInfo targetLinkUserInfo, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id).FirstOrDefaultAsync(x => x.SourceUserId == sourceLinkUserInfo.UserId && x.SourceTenantId == sourceLinkUserInfo.TenantId && x.TargetUserId == targetLinkUserInfo.UserId && x.TargetTenantId == targetLinkUserInfo.TenantId || @@ -30,7 +30,7 @@ public class MongoIdentityLinkUserRepository : MongoDbRepository> GetListAsync(IdentityLinkUserInfo linkUserInfo, List excludes = null, CancellationToken cancellationToken = default) { - var query = (await GetMongoQueryableAsync(cancellationToken)).Where(x => + var query = (await GetQueryableAsync(cancellationToken)).Where(x => x.SourceUserId == linkUserInfo.UserId && x.SourceTenantId == linkUserInfo.TenantId || x.TargetUserId == linkUserInfo.UserId && x.TargetTenantId == linkUserInfo.TenantId); @@ -49,7 +49,7 @@ public class MongoIdentityLinkUserRepository : MongoDbRepository + var linkUsers = await (await GetQueryableAsync(cancellationToken)).Where(x => x.SourceUserId == linkUserInfo.UserId && x.SourceTenantId == linkUserInfo.TenantId || x.TargetUserId == linkUserInfo.UserId && x.TargetTenantId == linkUserInfo.TenantId) .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs index 023d91396e..f977572a04 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityRoleRepository.cs @@ -23,7 +23,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Id) .FirstOrDefaultAsync(r => r.NormalizedName == normalizedRoleName, GetCancellationToken(cancellationToken)); } @@ -38,7 +38,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Id).ToList(); - var userCount = await (await GetMongoQueryableAsync(cancellationToken)) + var userCount = await (await GetQueryableAsync(cancellationToken)) .Where(user => user.Roles.Any(role => roleIds.Contains(role.RoleId))) .SelectMany(user => user.Roles) .GroupBy(userRole => userRole.RoleId) @@ -73,7 +73,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository ids, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(t => ids.Contains(t.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -82,7 +82,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository r.IsDefault) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -91,7 +91,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Name.Contains(filter) || x.NormalizedName.Contains(filter)) @@ -100,7 +100,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository r.Claims.Any(c => c.ClaimType == claimType)) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -120,7 +120,7 @@ public class MongoIdentityRoleRepository : MongoDbRepository x.Name.Contains(filter) || x.NormalizedName.Contains(filter)) 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 a8a984bb63..388c059f1f 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 @@ -89,7 +89,7 @@ public class MongoIdentitySecurityLogRepository : public virtual async Task GetByUserIdAsync(Guid id, Guid userId, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).OrderBy(x => x.Id).FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, + return await (await GetQueryableAsync(cancellationToken)).OrderBy(x => x.Id).FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, GetCancellationToken(cancellationToken)); } @@ -106,7 +106,7 @@ public class MongoIdentitySecurityLogRepository : string clientIpAddress = null, CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync(cancellationToken)) + return (await GetQueryableAsync(cancellationToken)) .WhereIf(startTime.HasValue, securityLog => securityLog.CreationTime >= startTime.Value) .WhereIf(endTime.HasValue, securityLog => securityLog.CreationTime < endTime.Value.AddDays(1).Date) .WhereIf(!applicationName.IsNullOrWhiteSpace(), securityLog => securityLog.ApplicationName == applicationName) diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs index 23db911fe2..eb3f99e688 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentitySessionRepository.cs @@ -23,7 +23,7 @@ public class MongoIdentitySessionRepository : MongoDbRepository FindAsync(string sessionId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .FirstOrDefaultAsync(x => x.SessionId == sessionId, GetCancellationToken(cancellationToken)); } @@ -40,13 +40,13 @@ public class MongoIdentitySessionRepository : MongoDbRepository ExistAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .AnyAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); } public virtual async Task ExistAsync(string sessionId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .AnyAsync(x => x.SessionId == sessionId, GetCancellationToken(cancellationToken)); } @@ -59,7 +59,7 @@ public class MongoIdentitySessionRepository : MongoDbRepository x.UserId == userId) .WhereIf(!device.IsNullOrWhiteSpace(), x => x.Device == device) .WhereIf(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) @@ -74,7 +74,7 @@ public class MongoIdentitySessionRepository : MongoDbRepository x.UserId == userId) .WhereIf(!device.IsNullOrWhiteSpace(), x => x.Device == device) .WhereIf(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs index abdab16289..1855069b4a 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserDelegationRepository.cs @@ -24,7 +24,7 @@ public class MongoIdentityUserDelegationRepository : MongoDbRepository> GetListAsync(Guid? sourceUserId, Guid? targetUserId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(sourceUserId.HasValue, x => x.SourceUserId == sourceUserId) .WhereIf(targetUserId.HasValue, x => x.TargetUserId == targetUserId) .ToListAsync(cancellationToken: cancellationToken); @@ -32,7 +32,7 @@ public class MongoIdentityUserDelegationRepository : MongoDbRepository> GetActiveDelegationsAsync(Guid targetUserId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.TargetUserId == targetUserId) .Where(x => x.StartTime <= Clock.Now && x.EndTime >= Clock.Now) .ToListAsync(cancellationToken: cancellationToken); @@ -40,7 +40,7 @@ public class MongoIdentityUserDelegationRepository : MongoDbRepository FindActiveDelegationByIdAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .FirstOrDefaultAsync(x => x.Id == id && x.StartTime <= Clock.Now && diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs index 4c085918cb..c93a41e21d 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs @@ -25,7 +25,7 @@ public class MongoIdentityUserRepository : MongoDbRepository x.Id) .FirstOrDefaultAsync( u => u.NormalizedUserName == normalizedUserName, @@ -43,13 +43,13 @@ public class MongoIdentityUserRepository : MongoDbRepository r.OrganizationUnitId) .ToArray(); - var organizationUnits = await (await GetMongoQueryableAsync(cancellationToken)) + var organizationUnits = await (await GetQueryableAsync(cancellationToken)) .Where(ou => organizationUnitIds.Contains(ou.Id)) .ToListAsync(cancellationToken: cancellationToken); var orgUnitRoleIds = organizationUnits.SelectMany(x => x.Roles.Select(r => r.RoleId)).ToArray(); var roleIds = user.Roles.Select(r => r.RoleId).ToArray(); var allRoleIds = orgUnitRoleIds.Union(roleIds); - return await (await GetMongoQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).Select(r => r.Name).ToListAsync(cancellationToken); + return await (await GetQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).Select(r => r.Name).ToListAsync(cancellationToken); } public virtual async Task> GetRoleNamesInOrganizationUnitAsync( @@ -63,13 +63,13 @@ public class MongoIdentityUserRepository : MongoDbRepository r.OrganizationUnitId) .ToArray(); - var organizationUnits = await (await GetMongoQueryableAsync(cancellationToken)) + var organizationUnits = await (await GetQueryableAsync(cancellationToken)) .Where(ou => organizationUnitIds.Contains(ou.Id)) .ToListAsync(cancellationToken: cancellationToken); var roleIds = organizationUnits.SelectMany(x => x.Roles.Select(r => r.RoleId)).ToArray(); - var queryable = await GetMongoQueryableAsync(cancellationToken); + var queryable = await GetQueryableAsync(cancellationToken); return await queryable .Where(r => roleIds.Contains(r.Id)) @@ -83,7 +83,7 @@ public class MongoIdentityUserRepository : MongoDbRepository u.Logins.Any(login => login.LoginProvider == loginProvider && login.ProviderKey == providerKey)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); @@ -94,7 +94,7 @@ public class MongoIdentityUserRepository : MongoDbRepository x.Id).FirstOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail, GetCancellationToken(cancellationToken)); } @@ -103,14 +103,14 @@ public class MongoIdentityUserRepository : MongoDbRepository u.Claims.Any(c => c.ClaimType == claim.Type && c.ClaimValue == claim.Value)) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task RemoveClaimFromAllUsersAsync(string claimType, bool autoSave, CancellationToken cancellationToken = default) { - var users = await (await GetMongoQueryableAsync(cancellationToken)) + var users = await (await GetQueryableAsync(cancellationToken)) .Where(u => u.Claims.Any(c => c.ClaimType == claimType)) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -129,7 +129,7 @@ public class MongoIdentityUserRepository : MongoDbRepository(cancellationToken); + var queryable = await GetQueryableAsync(cancellationToken); var role = await queryable .Where(x => x.NormalizedName == normalizedRoleName) @@ -141,7 +141,7 @@ public class MongoIdentityUserRepository : MongoDbRepository(); } - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(u => u.Roles.Any(r => r.RoleId == role.Id)) .ToListAsync(cancellationToken); } @@ -150,7 +150,7 @@ public class MongoIdentityUserRepository : MongoDbRepository u.Roles.Any(r => r.RoleId == roleId)) .Select(x => x.Id) .ToListAsync(cancellationToken); @@ -216,13 +216,13 @@ public class MongoIdentityUserRepository : MongoDbRepository r.OrganizationUnitId) .ToArray(); - var organizationUnits = await (await GetMongoQueryableAsync(cancellationToken)) + var organizationUnits = await (await GetQueryableAsync(cancellationToken)) .Where(ou => organizationUnitIds.Contains(ou.Id)) .ToListAsync(cancellationToken: cancellationToken); var orgUnitRoleIds = organizationUnits.SelectMany(x => x.Roles.Select(r => r.RoleId)).ToArray(); var roleIds = user.Roles.Select(r => r.RoleId).ToArray(); var allRoleIds = orgUnitRoleIds.Union(roleIds); - return await (await GetMongoQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).ToListAsync(cancellationToken); + return await (await GetQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).ToListAsync(cancellationToken); } public virtual async Task> GetOrganizationUnitsAsync( @@ -234,7 +234,7 @@ public class MongoIdentityUserRepository : MongoDbRepository r.OrganizationUnitId); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ou => organizationUnitIds.Contains(ou.Id)) .ToListAsync(cancellationToken); } @@ -285,7 +285,7 @@ public class MongoIdentityUserRepository : MongoDbRepository u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnitId)) .ToListAsync(GetCancellationToken(cancellationToken)); return result; @@ -295,7 +295,7 @@ public class MongoIdentityUserRepository : MongoDbRepository organizationUnitIds, CancellationToken cancellationToken = default) { - var result = await (await GetMongoQueryableAsync(cancellationToken)) + var result = await (await GetQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => organizationUnitIds.Contains(uou.OrganizationUnitId))) .ToListAsync(GetCancellationToken(cancellationToken)); return result; @@ -307,12 +307,12 @@ public class MongoIdentityUserRepository : MongoDbRepository(cancellationToken)) + var organizationUnitIds = await (await GetQueryableAsync(cancellationToken)) .Where(ou => ou.Code.StartsWith(code)) .Select(ou => ou.Id) .ToListAsync(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => organizationUnitIds.Contains(uou.OrganizationUnitId))) .ToListAsync(cancellationToken); } @@ -323,7 +323,7 @@ public class MongoIdentityUserRepository : MongoDbRepository u.TenantId == tenantId && u.UserName == userName, GetCancellationToken(cancellationToken) @@ -332,14 +332,14 @@ public class MongoIdentityUserRepository : MongoDbRepository> GetListByIdsAsync(IEnumerable ids, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => ids.Contains(x.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task UpdateRoleAsync(Guid sourceRoleId, Guid? targetRoleId, CancellationToken cancellationToken = default) { - var users = await (await GetMongoQueryableAsync(cancellationToken)) + var users = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Roles.Any(r => r.RoleId == sourceRoleId)) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -357,7 +357,7 @@ public class MongoIdentityUserRepository : MongoDbRepository x.OrganizationUnits.Any(r => r.OrganizationUnitId == sourceOrganizationId)) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -389,7 +389,7 @@ public class MongoIdentityUserRepository : MongoDbRepository x.Value); var roleIds = userAndRoleIds.SelectMany(x => x.Value); - var organizationUnitAndRoleIds = await (await GetMongoQueryableAsync(cancellationToken)).Where(ou => organizationUnitIds.Contains(ou.Id)) + var organizationUnitAndRoleIds = await (await GetQueryableAsync(cancellationToken)).Where(ou => organizationUnitIds.Contains(ou.Id)) .Select(userOrganizationUnit => new { userOrganizationUnit.Id, @@ -398,7 +398,7 @@ public class MongoIdentityUserRepository : MongoDbRepository x.Roles.Select(r => r.RoleId)).ToList(); var allRoleIds = roleIds.Union(allOrganizationUnitRoleIds); - var roles = await (await GetMongoQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).Select(r => new{ r.Id, r.Name }).ToListAsync(cancellationToken); + var roles = await (await GetQueryableAsync(cancellationToken)).Where(r => allRoleIds.Contains(r.Id)).Select(r => new{ r.Id, r.Name }).ToListAsync(cancellationToken); var userRoles = userAndRoleIds.ToDictionary(x => x.Key, x => roles.Where(r => x.Value.Contains(r.Id)).Select(r => r.Name).ToArray()); var result = userRoles.Select(x => new IdentityUserIdWithRoleNames { Id = x.Key, RoleNames = x.Value }).ToList(); @@ -441,11 +441,11 @@ public class MongoIdentityUserRepository : MongoDbRepository(cancellationToken)) + var organizationUnitIds = (await GetQueryableAsync(cancellationToken)) .Where(ou => ou.Roles.Any(r => r.RoleId == roleId.Value)) .Select(userOrganizationUnit => userOrganizationUnit.Id) .ToArray(); diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs index 43d9f04f78..a59369005b 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs @@ -27,7 +27,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ou => ou.ParentId == parentId) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -38,7 +38,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ou => ou.Code.StartsWith(code) && ou.Id != parentId) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -48,7 +48,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(t => ids.Contains(t.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -58,7 +58,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Roles.Any(r => r.RoleId == roleId)) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -70,7 +70,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(OrganizationUnit.CreationTime) + " desc" : sorting) .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -81,7 +81,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync( ou => ou.DisplayName == displayName, @@ -99,7 +99,7 @@ public class MongoOrganizationUnitRepository { var roleIds = organizationUnit.Roles.Select(r => r.RoleId).ToArray(); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) .PageBy(skipCount, maxResultCount) @@ -114,13 +114,13 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - var organizationUnits = await (await GetMongoQueryableAsync(cancellationToken)) + var organizationUnits = await (await GetQueryableAsync(cancellationToken)) .Where(ou => organizationUnitIds.Contains(ou.Id)) .ToListAsync(GetCancellationToken(cancellationToken)); var roleIds = organizationUnits.SelectMany(ou => ou.Roles.Select(r => r.RoleId)).ToArray(); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(r => roleIds.Contains(r.Id)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) .PageBy(skipCount, maxResultCount) @@ -133,7 +133,7 @@ public class MongoOrganizationUnitRepository { var roleIds = organizationUnit.Roles.Select(r => r.RoleId).ToArray(); - return await (await GetMongoQueryableAsync(cancellationToken)).Where(r => roleIds.Contains(r.Id)).CountAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(r => roleIds.Contains(r.Id)).CountAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetUnaddedRolesAsync( @@ -147,7 +147,7 @@ public class MongoOrganizationUnitRepository { var roleIds = organizationUnit.Roles.Select(r => r.RoleId).ToArray(); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(r => !roleIds.Contains(r.Id)) .WhereIf(!filter.IsNullOrWhiteSpace(), r => r.Name.Contains(filter)) .OrderBy(sorting.IsNullOrEmpty() ? nameof(IdentityRole.Name) : sorting) @@ -162,7 +162,7 @@ public class MongoOrganizationUnitRepository { var roleIds = organizationUnit.Roles.Select(r => r.RoleId).ToArray(); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(r => !roleIds.Contains(r.Id)) .WhereIf(!filter.IsNullOrWhiteSpace(), r => r.Name.Contains(filter)) .CountAsync(GetCancellationToken(cancellationToken)); @@ -188,7 +188,7 @@ public class MongoOrganizationUnitRepository public virtual async Task> GetMemberIdsAsync(Guid id, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == id)).Select(x => x.Id) .ToListAsync(cancellationToken); } @@ -213,7 +213,7 @@ public class MongoOrganizationUnitRepository CancellationToken cancellationToken = default) { return await - (await GetMongoQueryableAsync(cancellationToken)) + (await GetQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) .WhereIf( !filter.IsNullOrWhiteSpace(), @@ -230,7 +230,7 @@ public class MongoOrganizationUnitRepository public virtual async Task GetUnaddedUsersCountAsync(OrganizationUnit organizationUnit, string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(u => !u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) .WhereIf( !filter.IsNullOrWhiteSpace(), @@ -251,7 +251,7 @@ public class MongoOrganizationUnitRepository public virtual async Task RemoveAllMembersAsync(OrganizationUnit organizationUnit, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - var userQueryable = await GetMongoQueryableAsync(cancellationToken); + var userQueryable = await GetQueryableAsync(cancellationToken); var dbContext = await GetDbContextAsync(cancellationToken); var users = await userQueryable .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) @@ -269,7 +269,7 @@ public class MongoOrganizationUnitRepository string filter = null, CancellationToken cancellationToken = default) { - return (await GetMongoQueryableAsync(cancellationToken)) + return (await GetQueryableAsync(cancellationToken)) .Where(u => u.OrganizationUnits.Any(uou => uou.OrganizationUnitId == organizationUnit.Id)) .WhereIf( !filter.IsNullOrWhiteSpace(), diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs index d9b6f7af01..42379b44f9 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiResourceRepository.cs @@ -20,7 +20,7 @@ public class MongoApiResourceRepository : MongoDbRepository FindByNameAsync(string apiResourceName, bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(ar => ar.Id) .FirstOrDefaultAsync(ar => ar.Name == apiResourceName, GetCancellationToken(cancellationToken)); } @@ -28,7 +28,7 @@ public class MongoApiResourceRepository : MongoDbRepository> FindByNameAsync(string[] apiResourceNames, bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ar => apiResourceNames.Contains(ar.Name)) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -36,7 +36,7 @@ public class MongoApiResourceRepository : MongoDbRepository> GetListByScopesAsync(string[] scopeNames, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ar => ar.Scopes.Any(x => scopeNames.Contains(x.Scope))) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -44,7 +44,7 @@ public class MongoApiResourceRepository : MongoDbRepository> GetListAsync(string sorting, int skipCount, int maxResultCount, string filter, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || @@ -56,7 +56,7 @@ public class MongoApiResourceRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || @@ -66,7 +66,7 @@ public class MongoApiResourceRepository : MongoDbRepository CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .AnyAsync(ar => ar.Id != expectedId && ar.Name == name, GetCancellationToken(cancellationToken)); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs index 218155e4c6..760bd0522c 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoApiScopeRepository.cs @@ -22,7 +22,7 @@ public class MongoApiScopeRepository : MongoDbRepository FindByNameAsync(string scopeName, bool includeDetails = true, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(x => x.Name == scopeName, GetCancellationToken(cancellationToken)); } @@ -30,7 +30,7 @@ public class MongoApiScopeRepository : MongoDbRepository> GetListByNameAsync(string[] scopeNames, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(scope => scopeNames.Contains(scope.Name)) .OrderBy(scope => scope.Id) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -39,7 +39,7 @@ public class MongoApiScopeRepository : MongoDbRepository> GetListAsync(string sorting, int skipCount, int maxResultCount, string filter = null, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || @@ -51,7 +51,7 @@ public class MongoApiScopeRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || @@ -61,7 +61,7 @@ public class MongoApiScopeRepository : MongoDbRepository CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .AnyAsync(x => x.Id != expectedId && x.Name == name, GetCancellationToken(cancellationToken)); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs index 2fa2e1ccec..d266ac7c52 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs @@ -26,7 +26,7 @@ public class MongoClientRepository : MongoDbRepository x.Id) .FirstOrDefaultAsync(x => x.ClientId == clientId, GetCancellationToken(cancellationToken)); } @@ -39,7 +39,7 @@ public class MongoClientRepository : MongoDbRepository x.ClientId.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(Client.ClientName) : sorting) .PageBy(skipCount, maxResultCount) @@ -48,7 +48,7 @@ public class MongoClientRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.ClientId.Contains(filter)) .LongCountAsync(GetCancellationToken(cancellationToken)); @@ -57,7 +57,7 @@ public class MongoClientRepository : MongoDbRepository> GetAllDistinctAllowedCorsOriginsAsync( CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .SelectMany(x => x.AllowedCorsOrigins) .Select(y => y.Origin) .Distinct() @@ -66,7 +66,7 @@ public class MongoClientRepository : MongoDbRepository CheckClientIdExistAsync(string clientId, Guid? expectedId = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .AnyAsync(c => c.Id != expectedId && c.ClientId == clientId, GetCancellationToken(cancellationToken)); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs index 976b1478b7..65d74b975a 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoDeviceFlowCodesRepository.cs @@ -24,7 +24,7 @@ public class MongoDeviceFlowCodesRepository : string userCode, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(d => d.UserCode == userCode) .OrderBy(x => x.Id) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); @@ -32,7 +32,7 @@ public class MongoDeviceFlowCodesRepository : public virtual async Task FindByDeviceCodeAsync(string deviceCode, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(d => d.DeviceCode == deviceCode) .OrderBy(x => x.Id) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); @@ -43,7 +43,7 @@ public class MongoDeviceFlowCodesRepository : int maxResultCount, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Expiration != null && x.Expiration < maxExpirationDate) .OrderBy(x => x.ClientId) .Take(maxResultCount) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs index 1f672dc709..9a3ee0f815 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoIdentityResourceRepository.cs @@ -20,7 +20,7 @@ public class MongoIdentityResourceRepository : MongoDbRepository> GetListAsync(string sorting, int skipCount, int maxResultCount, string filter, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || x.DisplayName.Contains(filter)) @@ -31,7 +31,7 @@ public class MongoIdentityResourceRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.Description.Contains(filter) || @@ -44,7 +44,7 @@ public class MongoIdentityResourceRepository : MongoDbRepository x.Name == name) .OrderBy(x => x.Id) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); @@ -53,14 +53,14 @@ public class MongoIdentityResourceRepository : MongoDbRepository> GetListByScopeNameAsync(string[] scopeNames, bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(ar => scopeNames.Contains(ar.Name)) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task CheckNameExistAsync(string name, Guid? expectedId = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .AnyAsync(ir => ir.Id != expectedId && ir.Name == name, GetCancellationToken(cancellationToken)); } } diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs index 8763b80a2e..4ac0844bbe 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoPersistentGrantRepository.cs @@ -27,7 +27,7 @@ public class MongoPersistentGrantRepository : MongoDbRepository FindByKeyAsync(string key, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Key == key) .OrderBy(x => x.Id) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); @@ -35,7 +35,7 @@ public class MongoPersistentGrantRepository : MongoDbRepository> GetListBySubjectIdAsync(string subjectId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.SubjectId == subjectId) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -43,7 +43,7 @@ public class MongoPersistentGrantRepository : MongoDbRepository> GetListByExpirationAsync(DateTime maxExpirationDate, int maxResultCount, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Expiration != null && x.Expiration < maxExpirationDate) .OrderBy(x => x.ClientId) .Take(maxResultCount) @@ -94,7 +94,7 @@ public class MongoPersistentGrantRepository : MongoDbRepository x.SubjectId == subjectId) .WhereIf(!sessionId.IsNullOrWhiteSpace(), x => x.SessionId == sessionId) .WhereIf(!clientId.IsNullOrWhiteSpace(), x => x.ClientId == clientId) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs index a07a1951c1..867bbe71c5 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Applications/MongoOpenIddictApplicationRepository.cs @@ -21,7 +21,7 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository> GetListAsync(string sorting, int skipCount, int maxResultCount, string filter = null, CancellationToken cancellationToken = default) { - return await ((await GetMongoQueryableAsync(cancellationToken))) + return await ((await GetQueryableAsync(cancellationToken))) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.ClientId.Contains(filter)) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(OpenIddictApplication.CreationTime) + " desc" : sorting) .PageBy(skipCount, maxResultCount) @@ -30,35 +30,35 @@ public class MongoOpenIddictApplicationRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await ((await GetMongoQueryableAsync(cancellationToken))) + return await ((await GetQueryableAsync(cancellationToken))) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.ClientId.Contains(filter)) .LongCountAsync(GetCancellationToken(cancellationToken)); } public virtual async Task FindByClientIdAsync(string clientId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .FirstOrDefaultAsync(x => x.ClientId == clientId, cancellationToken); } public virtual async Task> FindByPostLogoutRedirectUriAsync(string address, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.PostLogoutRedirectUris.Contains(address)).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(x => x.PostLogoutRedirectUris.Contains(address)).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> FindByRedirectUriAsync(string address, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).Where(x => x.RedirectUris.Contains(address)).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).Where(x => x.RedirectUris.Contains(address)).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task GetAsync(Func, TState, IQueryable> query, TState state, CancellationToken cancellationToken = default) { - return await query(await GetMongoQueryableAsync(cancellationToken), state).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + return await query(await GetQueryableAsync(cancellationToken), state).FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs index d17fe36c0e..87ed933f00 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Authorizations/MongoOpenIddictAuthorizationRepository.cs @@ -29,7 +29,7 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository> FindAsync(string subject, Guid? client, string status, string type, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!subject.IsNullOrWhiteSpace(), x => x.Subject == subject) .WhereIf(client.HasValue, x => x.ApplicationId == client) .WhereIf(!status.IsNullOrWhiteSpace(), x => x.Status == status) @@ -39,22 +39,22 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository> FindByApplicationIdAsync(Guid applicationId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.ApplicationId == applicationId).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.ApplicationId == applicationId).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task FindByIdAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); } public virtual async Task> FindBySubjectAsync(string subject, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.Subject == subject).ToListAsync(GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))).Where(x => x.Subject == subject).ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .OrderBy(authorization => authorization.Id!) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) @@ -63,18 +63,18 @@ public class MongoOpenIddictAuthorizationRepository : MongoDbRepository PruneAsync(DateTime date, CancellationToken cancellationToken = default) { - var tokenIds = await (await GetMongoQueryableAsync(cancellationToken)) + var tokenIds = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.AuthorizationId != null) .Select(x => x.AuthorizationId.Value) .ToListAsync(GetCancellationToken(cancellationToken)); - var authorizations = await (await GetMongoQueryableAsync(cancellationToken)) + var authorizations = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.CreationDate < date) .Where(x => x.Status != OpenIddictConstants.Statuses.Valid || (x.Type == OpenIddictConstants.AuthorizationTypes.AdHoc && !tokenIds.Contains(x.Id))) .Select(x => x.Id) .ToListAsync(cancellationToken: cancellationToken); - var tokens = await (await GetMongoQueryableAsync(cancellationToken)) + var tokens = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.AuthorizationId != null && authorizations.Contains(x.AuthorizationId.Value)) .ToListAsync(cancellationToken: cancellationToken); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs index 40d6d56179..7323b3f272 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Scopes/MongoOpenIddictScopeRepository.cs @@ -21,7 +21,7 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository> GetListAsync(string sorting, int skipCount, int maxResultCount, string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.DisplayName.Contains(filter) || @@ -33,7 +33,7 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!filter.IsNullOrWhiteSpace(), x => x.Name.Contains(filter) || x.DisplayName.Contains(filter) || @@ -43,31 +43,31 @@ public class MongoOpenIddictScopeRepository : MongoDbRepository FindByIdAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); } public virtual async Task FindByNameAsync(string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.Name == name, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(cancellationToken)).FirstOrDefaultAsync(x => x.Name == name, GetCancellationToken(cancellationToken)); } public virtual async Task> FindByNamesAsync(string[] names, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => names.Contains(x.Name)) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> FindByResourceAsync(string resource, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.Resources.Contains(resource)) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .OrderBy(x => x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs index 4758a96920..2b2a9bec12 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.MongoDB/Volo/Abp/OpenIddict/Tokens/MongoOpenIddictTokenRepository.cs @@ -21,7 +21,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.ApplicationId == applicationId) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -31,7 +31,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.AuthorizationId == authorizationId) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -40,7 +40,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository x.AuthorizationId != null && authorizationIds.Contains(x.AuthorizationId.Value)) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -49,7 +49,7 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository> FindAsync(string subject, Guid? client, string status, string type, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf(!subject.IsNullOrWhiteSpace(), x => x.Subject == subject) .WhereIf(client.HasValue, x => x.ApplicationId == client) .WhereIf(!status.IsNullOrWhiteSpace(), x => x.Status == status) @@ -59,38 +59,38 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository> FindByApplicationIdAsync(Guid applicationId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.ApplicationId == applicationId) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> FindByAuthorizationIdAsync(Guid authorizationId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.AuthorizationId == authorizationId) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task FindByIdAsync(Guid id, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.Id == id, GetCancellationToken(cancellationToken)); } public virtual async Task FindByReferenceIdAsync(string referenceId, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.ReferenceId == referenceId, GetCancellationToken(cancellationToken)); + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))).FirstOrDefaultAsync(x => x.ReferenceId == referenceId, GetCancellationToken(cancellationToken)); } public virtual async Task> FindBySubjectAsync(string subject, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.Subject == subject) .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> ListAsync(int? count, int? offset, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + return await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .OrderBy(x => x.Id) .SkipIf>(offset.HasValue, offset) .TakeIf>(count.HasValue, count) @@ -99,12 +99,12 @@ public class MongoOpenIddictTokenRepository : MongoDbRepository PruneAsync(DateTime date, CancellationToken cancellationToken = default) { - var authorizationIds = await (await GetMongoQueryableAsync(cancellationToken)) + var authorizationIds = await (await GetQueryableAsync(cancellationToken)) .Where(x => x.Status != OpenIddictConstants.Statuses.Valid) .Select(x => x.Id) .ToListAsync(GetCancellationToken(cancellationToken)); - var tokens = await (await GetMongoQueryableAsync(GetCancellationToken(cancellationToken))) + var tokens = await (await GetQueryableAsync(GetCancellationToken(cancellationToken))) .Where(x => x.CreationDate < date) .Where(x => (x.Status != OpenIddictConstants.Statuses.Inactive && x.Status != OpenIddictConstants.Statuses.Valid) || diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs index 2871c47e65..2f98db4f60 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionDefinitionRecordRepository.cs @@ -23,7 +23,7 @@ public class MongoPermissionDefinitionRecordRepository : CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync( s => s.Name == name, diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs index aa7694b7d5..d83d916890 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo/Abp/PermissionManagement/MongoDb/MongoPermissionGrantRepository.cs @@ -27,7 +27,7 @@ public class MongoPermissionGrantRepository : CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(s => s.Name == name && @@ -43,7 +43,7 @@ public class MongoPermissionGrantRepository : CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey @@ -54,7 +54,7 @@ public class MongoPermissionGrantRepository : CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(s => names.Contains(s.Name) && s.ProviderName == providerName && diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs index 07d32bae81..3ea0206759 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingDefinitionRecordRepository.cs @@ -17,7 +17,7 @@ public class MongoSettingDefinitionRecordRepository : MongoDbRepository FindByNameAsync(string name, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(s => s.Name == name, 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 74c680e7e2..ea264b254e 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 @@ public class MongoSettingRepository : MongoDbRepository x.Id) .FirstOrDefaultAsync( s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, @@ -36,7 +36,7 @@ public class MongoSettingRepository : MongoDbRepository s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } @@ -47,7 +47,7 @@ public class MongoSettingRepository : MongoDbRepository names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey) .ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs index 04b87d40bb..758ece4d71 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs @@ -24,21 +24,21 @@ public class MongoTenantRepository : MongoDbRepository t.NormalizedName == normalizedName, GetCancellationToken(cancellationToken)); } [Obsolete("Use FindByNameAsync method.")] public virtual Tenant FindByName(string normalizedName, bool includeDetails = true) { - return GetMongoQueryable() + return GetQueryable() .FirstOrDefault(t => t.NormalizedName == normalizedName); } [Obsolete("Use FindAsync method.")] public virtual Tenant FindById(Guid id, bool includeDetails = true) { - return GetMongoQueryable() + return GetQueryable() .FirstOrDefault(t => t.Id == id); } @@ -50,7 +50,7 @@ public class MongoTenantRepository : MongoDbRepository @@ -63,7 +63,7 @@ public class MongoTenantRepository : MongoDbRepository GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf( !filter.IsNullOrWhiteSpace(), u => diff --git a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs index d700665c90..2e657227b1 100644 --- a/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs +++ b/modules/users/src/Volo.Abp.Users.MongoDB/Volo/Abp/Users/MongoDB/MongoUserRepositoryBase.cs @@ -24,7 +24,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi public virtual async Task FindByUserNameAsync(string userName, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .OrderBy(x => x.Id) .FirstOrDefaultAsync(u => u.UserName == userName, cancellationToken); } @@ -32,7 +32,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi public virtual async Task> GetListAsync(IEnumerable ids, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(u => ids.Contains(u.Id)) .ToListAsync(cancellationToken); } @@ -45,7 +45,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf( !filter.IsNullOrWhiteSpace(), u => @@ -62,7 +62,7 @@ public abstract class MongoUserRepositoryBase : MongoDbReposi public async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .WhereIf( !filter.IsNullOrWhiteSpace(), u => 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 9f51c616ec..f705959e83 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,7 +32,7 @@ public class SampleRepositoryTests : MyProjectNameMongoDbTestBase await WithUnitOfWorkAsync(async () => { //Act - var adminUser = await (await _appUserRepository.GetMongoQueryableAsync()) + var adminUser = await (await _appUserRepository.GetQueryableAsync()) .FirstOrDefaultAsync(u => u.UserName == "admin"); //Assert From fd505f2090be0c034016a2ad24e9ad74834f73d6 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 6 Jan 2025 17:05:18 +0800 Subject: [PATCH 05/65] Remove `wpf` from build process if os is not windows. --- build/common.ps1 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build/common.ps1 b/build/common.ps1 index 85f18edb21..f1cc59cf6c 100644 --- a/build/common.ps1 +++ b/build/common.ps1 @@ -34,11 +34,13 @@ if ($full -eq "-f") "../templates/module/aspnet-core", "../templates/app/aspnet-core", "../templates/console", - "../templates/wpf", "../templates/app-nolayers/aspnet-core", "../abp_io/AbpIoLocalization", "../source-code" - ) + ) + if ($env:OS -eq "Windows_NT") { + solutionPaths += "../templates/wpf" + } }else{ Write-host "" Write-host ":::::::::::::: !!! You are in development mode !!! ::::::::::::::" -ForegroundColor red -BackgroundColor yellow From 4a34306c76855f90a5e75191d7720a4585d44e17 Mon Sep 17 00:00:00 2001 From: Mansur Besleney Date: Tue, 7 Jan 2025 15:23:00 +0300 Subject: [PATCH 06/65] added user clean up page and its permissions localization values --- .../Admin/Localization/Resources/en.json | 1340 +++++++++-------- 1 file changed, 671 insertions(+), 669 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index ea150de47e..0f6b724ee3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -1,672 +1,674 @@ { "culture": "en", - "texts": { - "Permission:Organizations": "Organizations", - "Permission:Manage": "Manage Organizations", - "Permission:DiscountRequests": "Discount Requests", - "Permission:DiscountManage": "Manage Discount Requests", - "Permission:Disable": "Disable", - "Permission:Enable": "Enable", - "Permission:EnableSendEmail": "Enable Send Email", - "Permission:SendEmail": "Send Email", - "Permission:NpmPackages": "NPM Packages", - "Permission:NugetPackages": "Nuget Packages", - "Permission:Maintenance": "Maintenance", - "Permission:Maintain": "Maintain", - "Permission:ClearCaches": "Clear caches", - "Permission:Modules": "Modules", - "Permission:Packages": "Packages", - "Permission:Edit": "Edit", - "Permission:Delete": "Delete", - "Permission:Create": "Create", - "Permission:Accounting": "Accounting", - "Permission:Accounting:Quotation": "Quotation", - "Permission:Accounting:Invoice": "Invoice", - "Permission:Export" : "Export", - "Menu:Organizations": "Organizations", - "Menu:Accounting": "Accounting", - "Menu:Packages": "Packages", - "Menu:DiscountRequests": "Discount Requests", - "NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Do you confirm that?", - "NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Do you confirm that?", - "NuGetPackages": "NuGet Packages", - "ModuleDeletionWarningMessage": "This Module will be deleted. Do you confirm that?", - "Name": "Name", - "DisplayName": "Display name", - "ShortDescription": "Short description", - "LongDescription": "Long description", - "NameFilter": "Name", - "CreationTime": "Creation time", - "IsPro": "Pro package", - "IsFreeToActiveLicenseOwners": "Free to license owners", - "ShowOnModuleList": "Show on module list", - "EfCoreConfigureMethodName": "Configure method name", - "IsProFilter": "Pro package", - "ShowOnModuleFilter": "Show on module list", - "ShowOnModuleListFilter": "Show on module list", - "ApplicationType": "Application type", - "Target": "Target", - "TargetFilter": "Target", - "ModuleClass": "Module class", - "NugetPackageTarget.DomainShared": "Domain Shared", - "NugetPackageTarget.Domain": "Domain", - "NugetPackageTarget.Application": "Application", - "NugetPackageTarget.ApplicationContracts": "Application Contracts", - "NugetPackageTarget.HttpApi": "Http Api", - "NugetPackageTarget.HttpApiClient": "Http Api Client", - "NugetPackageTarget.Web": "Web", - "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core", - "NugetPackageTarget.MongoDB": "MongoDB", - "Edit": "Edit", - "Delete": "Delete", - "Refresh": "Refresh", - "NpmPackages": "NPM Packages", - "NugetPackages": "Nuget Packages", - "NpmPackageCount": "NPM Package Count", - "NugetPackageCount": "Nuget Package Count", - "NuGetPackageCount": "NuGet Package Count", - "Module": "Modules", - "ModuleInfo": "Module info", - "CreateANpmPackage": "Create a NPM package", - "CreateAModule": "Create a module", - "CreateANugetPackage": "Create a Nuget package", - "AddNew": "Add new", - "PackageAlreadyExist{0}": "\"{0}\" package is already added.", - "ModuleAlreadyExist{0}": "\"{0}\" module is already added.", - "ClearCache": "Clear cache", - "SuccessfullyCleared": "Successfully cleared", - "Menu:NpmPackages": "NPM Packages", - "Menu:Modules": "Modules", - "Menu:Maintenance": "Maintenance", - "Menu:NugetPackages": "NuGet Packages", - "CreateAnOrganization": "Create an organization", - "Organizations": "Organizations", - "LongName": "Long name", - "LicenseType": "License type", - "MissingLicenseTypeField": "The license type field is required!", - "LicenseStartTime": "License start time", - "LicenseEndTime": "License end time", - "AllowedDeveloperCount": "Allowed developer count", - "UserNameOrEmailAddress": "Username or email address", - "AddOwner": "Add owner", - "UserName": "Username", - "Email": "Email", - "Developers": "Developers", - "AddDeveloper": "Add developer", - "Create": "Create", - "UserNotFound": "User not found", - "{0}WillBeRemovedFromDevelopers": "{0} Will be removed from developers, do you confirm?", - "{0}WillBeRemovedFromOwners": "{0} Will be removed from owners, do you confirm?", - "{0}WillBeRemovedFromMembers": "{0} Will be removed from members, do you confirm?", - "Computers": "Computers", - "UniqueComputerId": "Unique computer id", - "LastSeenDate": "Last seen date", - "{0}Computer{1}WillBeRemovedFromRecords": "Computer of {0} ({1}) will be removed from records", - "OrganizationDeletionWarningMessage": "Organization will be deleted", - "DeletingLastOwnerWarningMessage": "An organization must have at least one owner! Therefore you cannot remove this owner", - "This{0}AlreadyExistInThisOrganization": "This {0} already exist in this organization", - "AreYouSureYouWantToDeleteAllComputers": "Are you sure you want to delete all computers?", - "DeleteAll": "Delete all", - "DoYouWantToCreateNewUser": "Do you want to create new user?", - "MasterModules": "Master Modules", - "OrganizationName": "Organization name", - "CreationDate": "Creation date", - "LicenseStartDate": "License start date", - "LicenseEndDate": "License end date", - "OrganizationNamePlaceholder": "Organization name...", - "TotalQuestionCountPlaceholder": "Total question count...", - "RemainingQuestionCountPlaceholder": "Remaining question count...", - "LicenseTypePlaceholder": "License type...", - "CreationDatePlaceholder": "Creation date...", - "LicenseStartDatePlaceholder": "License start date...", - "LicenseEndDatePlaceholder": "License end date...", - "UsernameOrEmail": "Username or email", - "UsernameOrEmailPlaceholder": "Username or email...", - "Member": "Member", - "PurchaseOrderNo": "Purchase order no", - "QuotationDate": "Quotation date", - "CompanyName": "Company name", - "DownloadType": "Download type", - "UserDownloads": "User Downloads", - "AcceptNewsletter": "Accept newsletter", - "CompanyAddress": "Company address", - "Price": "Price", - "Unknown": "Unknown", - "DddEBook": "Ddd EBook", - "MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook", - "MicroserviceEBook": "Microservice EBook", - "DiscountText": "Discount text", - "DiscountQuantity": "Discount quantity", - "DiscountPrice": "Discount price", - "Quotation": "Quotation", - "ExtraText": "Extra Text", - "ExtraAmount": "Extra Amount", - "DownloadQuotation": "Download Quotation", - "Invoice": "Invoice", - "TaxNumber": "Tax Number", - "InvoiceNumber": "Invoice Number", - "InvoiceDate": "Invoice Date", - "InvoiceNote": "Invoice Note", - "Quantity": "Quantity", - "AddProduct": "Add Product", - "AddProductWarning": "You need to add product!", - "TotalPrice": "Total Price", - "Generate": "Generate", - "MissingQuantityField": "The quantity field is required!", - "MissingPriceField": "The Price field is required!", - "CodeUsageStatus": "Status", - "Country": "Country", - "DeveloperCount": "Developer Count", - "RequestCode": "Request Code", - "WebSite": "Web Site", - "GithubUsername": "Github Username", - "PhoneNumber": "Phone Number", - "ProjectDescription": "Project Description", - "Referrer": "Referrer", - "DiscountRequests": "Discount Request", - "Copylink": "Copy Link", - "Disable": "Disable", - "Enable": "Enable", - "EnableSendEmail": "Enable Send Email", - "SendEmail": "Send Email", - "SuccessfullyDisabled": "Successfully Disabled", - "SuccessfullyEnabled": "Successfully Enabled", - "EmailSent": "Email Sent", - "SuccessfullySent": "Successfully Sent", - "SuccessfullyDeleted": "Successfully Deleted", - "DiscountRequestDeletionWarningMessage": "Discount request will be deleted", - "BusinessType": "Business Type", - "TotalQuestionCount": "Total question count", - "RemainingQuestionCount": "Remaining question count", - "TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount must be greater than RemainingQuestionCount !", - "QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount and RemainingQuestionCount must be zero or greater than zero !", - "UnlimitedQuestionCount": "Unlimited question count", - "Notes": "Notes", - "Menu:Community": "Community", - "Menu:Posts": "Posts", - "Wait": "Wait", - "Approve": "Approve", - "Reject": "Reject", - "Details": "Details", - "Url": "Url", - "Title": "Title", - "ContentSource": "Content source", - "Status": "Status", - "ReadPost": "Read post", - "PostHasBeenWaiting": "Post has been waiting", - "PostHasBeenApproved": "Post has been approved", - "PostHasBeenRejected": "Post has been rejected", - "Permission:Community": "Community", - "Permission:CommunityPost": "Post", - "Link": "Link", - "Enum:ContentSource:0": "Github", - "Enum:ContentSource:1": "External", - "Enum:Status:0": "Waiting", - "Enum:Status:1": "Rejected", - "Enum:Status:2": "Approved", - "Summary": "Summary", - "AuthorName": "Author name", - "CoverImage": "Cover Image", - "RemoveCacheConfirmationMessage": "Are you sure you remove the cache for \"{0}\" post?", - "SuccessfullyRemoved": "Successfully cleared", - "RemoveCache": "Remove Cache", - "Language": "Language", - "Optional": "Optional", - "CreatePostLanguageInfo": "The language in which the post is written", - "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.", - "DeleteCoverImage": "Delete Cover Image", - "DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?", - "DeleteCoverImageSuccessMessage": "Cover image successfully deleted", - "PaymentsOf": "Payments of", - "ShowPaymentsOfOrganization": "Payments", - "Date": "Date", - "Products": "Products", - "TotalAmount": "Total amount", - "Currency": "Currency", - "Gateway": "Gateway", - "State": "State", - "FailReason": "Fail reason", - "ReIndexAllPosts": "Reindex All Posts", - "ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?", - "SuccessfullyReIndexAllPosts": "All posts have been successfully reindexed.", - "Permission:FullSearch": "Full text search", - "Menu:CliAnalytics": "CLI Analytics", - "Menu:Reports": "Dynamic Reports", - "TemplateName": "Template name", - "TemplateVersion": "Template version", - "DatabaseProvider": "Database provider", - "IsTiered": "Is Tiered", - "ProjectName": "Project name", - "Username": "User name", - "Tool": "Tool", - "Command": "Command", - "UiFramework": "Ui framework", - "Options": "Options", - "CliAnalytics": "Cli Analytics", - "Reports": "Dynamic Reports", - "Permission:CliAnalyticses": "Cli Analyticses", - "Permission:CliAnalytics": "Cli Analytics", - "Permission:Reports": "Reports", - "Search": "Search", - "ClearFilter": "Clear filter", - "LicensePrivateKey": "License private key", - "LicensePublicKey": "License public key", - "ApiKey": "NuGet API key", - "ShowInvoiceRequestsOfOrganization": "Invoice requests", - "ShowQuestionsOfOrganization": "Questions", - "Question": "Question", - "Open": "Open", - "Questions": "Questions", - "InvoiceRequests": "Invoice Requests", - "Address": "Address", - "TaxNo": "Tax No", - "Permission:InvoiceRequest": "Invoice Request", - "Permission:Question": "Question", - "AddNoteSuccessMessage": "Note successfully added", - "NameSurname": "Name Surname", - "Note": "Note", - "Add": "Add", - "ProjectDownloads": "Project Downloads", - "ShowProjectDownloadsOfOrganization": "Project Downloads", - "ShowAuditLogsOfOrganization": "Audit Logs", - "Enum:EntityChangeType:0": "Created", - "Enum:EntityChangeType:1": "Updated", - "Enum:EntityChangeType:2": "Deleted", - "TenantId": "Tenant ID", - "ChangeTime": "Change time", - "EntityTypeFullName": "Entity type full name", - "AuditLogsFor{0}Organization": "Audit logs for \"{0}\" organization", - "Permission:EntityChange": "Entity Change", - "Permission:ProjectDownload": "Project Download", - "Permission:PaymentRequest": "Payment Request", - "CreatorEmailAddress": "Creator email address", - "EmailSendDate": "Email send date", - "PaymentRequestsFor{0}Organization": "Payment requests for \"{0}\" organization", - "PaymentDetails": "Payment Details", - "PaymentProduct": "Payment Product", - "ProductName": "Product Name", - "Code": "Code", - "GenerateInvoice": "Generate Invoice", - "ExportOrganizationsToExcel": "Export to Excel", - "ThisExtensionIsNotAllowed": "This extension is not allowed.", - "TheFileIsTooLarge": "The file is too large!", - "PostDeletionConfirmationMessage": "Are you sure you want to hard delete this post?", - "ChooseCoverImage": "Choose a cover image...", - "Menu:Quotation": "Quotation", - "Menu:Invoice": "Invoice", - "Menu:Quotation/Invoice": "Quotation/Invoice", - "Menu:UserDownloads": "User Downloads", - "Menu:PaymentRequests": "Payment Requests", - "Permission:PaymentRequests": "Payment Requests", - "PaymentRequests": "Payment Requests", - "Creator": "Creator", - "ExtraProperties": "Extra Properties", - "Organization": "Organization", - "Waiting": "Waiting", - "Completed": "Completed", - "Failed": "Failed", - "PaymentRequestDeletionWarningMessage": "This payment request will be deleted. Do you confirm that?", - "Payment": "Payment", - "AddPayment": "Add Payment", - "Enum:PurchaseType:1": "New License", - "Enum:PurchaseType:2": "License Extend", - "Enum:PurchaseType:3": "License Upgrade", - "Enum:PurchaseType:4": "Additional Developer", - "LicenceType": "License Type", - "PurchaseType": "Purchase Type", - "ReceiptNo": "Receipt No", - "PaymentTime": "Payment Time", - "ProductPrice": "Product Price", - "AdditionalDeveloper": "Additional developer", - "ThisPaymentHasBeenAlreadyUsed": "This payment has been already used", - "PaymentTimeCannotBeFutureTime": "Payment time cannot be a future time!", - "SaveAndDownload": "Save and Download", - "BillingInfo": "Billing Info", - "DeleteInvoice": "Delete Invoice", - "PaymentStateSetTo": "Payment state set to {0}", - "ChangeState": "Change State", - "Permission:TrialLicense": "Trial License", - "Menu:TrialLicenses": "Trial Licenses", - "TrialLicenses": "Trial Licenses", - "UserNameFilter": "Username", - "TrialLicenseStatusFilter": "Status", - "TrialLicenseStartDateFilter": "Start date", - "TrialLicenseEndDateFilter": "End date", - "FirstName": "First name", - "LastName": "Last name", - "StartDate": "Start date", - "EndDate": "End date", - "PurchasedDate": "Purchased date", - "OrganizationDetail": "Organization Detail", - "TrialLicenseStatus": "Trial license status", - "TrialLicenseDetail": "Trial License Detail", - "AcceptsMarketingCommunications": "Marketing Communications", - "PurposeOfUsage": "Purpose of usage", - "CountryName": "Country name", - "CompanySize": "Company size", - "DetailTrialLicense": "Details", - "Requested": "Requested", - "Activated": "Activated", - "PurchasedToNormalLicense": "Purchased", - "Expired": "Expired", - "TrialLicenseDeletionWarningMessage": "Are you sure you want to delete the trial license? Trial license, organization, support accounts will be deleted!", - "LicenseCategoryFilter": "License category", - "Permission:SendWelcomeEmail": "Send Welcome Email", - "SendWelcomeEmail": "Send Welcome Email", - "SendWelcomeEmailWarningMessage": "Are you sure you want to send welcome email to the organization members?", - "SendWelcomeEmailSuccessMessage": "Welcome email sent successfully!", - "Activate": "Activate", - "ActivateTrialLicenseWarningMessage": " When you activate a trial license, a welcome e-mail will be sent to the user. Do you want to activate it?", - "ActivateTrialLicenseSuccessMessage": "Activated successfully and the welcome e-mail sent to the organization members.", - "PaymentRequestId": "Payment Request Id", - "AdditionalDeveloperCount": "Additional developer count", - "LicensePrice": "License price", - "PurchaseDate": "Purchase date", - "IsAbpBookDownloaded": "Mastering ABP Book downloaded?", - "IsMasteringAbpBookDownloadEnabled": "ABP Book download enabled", - "Permission:Accounting:CustomPaymentLinkGenerator": "Custom Payment Link", - "CustomPaymentLink": "Custom Payment Link", - "Menu:CustomPaymentLink": "Custom Payment Link", - "Amount": "Amount", - "GenerateCustomPaymentLink": "Generate Custom Payment Link", - "GeneratedPaymentLink": "Generated Payment Link", - "CopyText": "Copy Text", - "Permission:CommunityEvents": "Events", - "Menu:Events": "Events", - "Events": "Events", - "EventType": "Event Type", - "Number": "Number", - "RegistrationURL": "Registration URL", - "URL": "URL", - "EventDeletionConfirmationMessage": "Are you sure you want to delete this event?", - "Enum:EventType:0": "Community Talks", - "CreateAnEvent": "Create an event", - "Permission:CommunitySpeakers": "Speakers", - "CreateASpeaker": "Create a speaker", - "Speakers": "Speakers", - "Image": "Image", - "GithubURL": "Github URL", - "SpeakerDeletionConfirmationMessage": "Are you sure you want to delete this speaker?", - "Menu:Speakers": "Speakers", - "ChooseSpeakerImage": "Choose a speaker image...", - "SpeakerImage": "Speaker image", - "AddSpeaker": "Add Speaker", - "ShowPurchaseItemsOfOrganizations": "Purchase Items", - "Enum:OrganizationPurchaseState:0": "Not delivered", - "Enum:OrganizationPurchaseState:1": "Delivered", - "PurchaseItems": "Purchase Items", - "SuccessfullyUpdated": "Successfully updated", - "SuccessfullyAdded": "Successfully added", - "PurchaseState": "Purchase status", - "ShowBetweenDayCount": "Show Between Days", - "PurchaseOrder": "Purchase Order", - "ShowCreateInvoiceOfOrganization": "Create Invoice", - "ShowCreateQuotationOfOrganization": "Create Quotation/Invoice", - "BookDiscounts": "Book Discounts", - "Permission:BookDiscount": "Book Discount", - "Menu:BookDiscounts": "Book Discounts", - "BookType": "Book Type", - "PurchasePlatform": "Purchase Platform", - "StartTime": "Start Time", - "EndTime": "End Time", - "CreateABookDiscount": "Create a book discount", - "BookDiscountDeletionConfirmationMessage": "Are you sure you want to delete this book discount?", - "CustomPaymentFlexSwitchDescription": "With license", - "AllowFeatureUpgradeOnLicenseExpire": "Allow feature upgrade on license expire", - "Deleted{0}": "[Deleted {0}]", - "Tags": "Tags", - "SetTagsInfo": "Tags should be comma-separated. Eg: CSharp, Entity Framework", - "RejectTrialLicenseWarningMessage": "Are you sure you want to reject this trial license request?", - "ExportToExcel": "Export to Excel", - "OverallTotalPrice": "Overall Total Price", - "OverallDiscountPrice": "Overall Discount Price", - "OverallDiscountText": "Overall Discount Text", - "SelectReport": "- Select Report -", - "NoDataAvailable": "No data available", - "StatisticsOfCachedContents": "Statistics of cached NuGet package contents for nuget.abp.io", - "Compact": "Compact", - "EditSettings": "Edit Settings", - "CurrentEstimatedSize": "Current Estimated Size", - "CurrentEntryCount": "Current Entry Count", - "TotalHits": "Total Hits", - "TotalMisses": "Total Misses", - "NoResponseFrom": "No response from", - "ContentCacheSlidingExpirationByDay": "Content Cache Sliding Expiration By Day", - "MaxDaysForCaching": "Max Days For Caching", - "Enabled": "Enabled", - "Menu:NugetPackagesContentCache": "NuGet Cache", - "NugetPackagesContentCache": "NuGet Content Cache", - "SlidingExpritionByDayInfo": "Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed. This will not extend the entry lifetime beyond the absolute expiration.", - "MaxDaysForCachingInfo": "Gets or sets an absolute expiration time, relative to now.", - "CurrentEstimatedSizeInfo": "Indicates an estimated sum of all the NuGet packages' content size currently in the memory cache", - "CurrentEntryCountInfo": "Indicates the number of instances currently in the memory cache.", - "TotalHitsInfo": "Indicates the total number of cache misses. A cache hit occurs when a file is requested from a cache and the cache is able to fulfill that request.", - "TotalMissesInfo": "Indicates the total number of cache hits. A cache miss is when the cache does not contain the requested content.", - "Permission:VersionHistory": "Version History", - "Caches": "Caches", - "VersionHistories": "Version History", - "Version": "Version", - "PublishDate": "Publish Date", - "IsStableVersion": "Stable Version", - "IsActive": "Active", - "NewVersion": "New Version", - "VersionHistoryDeletionConfirmationMessage": "Are you sure you want to delete this version?", - "CreateAbpConsultantLogoInfo": "Maximum file size: 1MB
Supported file types: jpg, jpeg, png, SVG, WebP", - "UrlCode": "Url Code", - "Clear": "Clear", - "Permission:AbpConsultant": "ABP Consultant", - "Menu:AbpConsultants": "ABP Consultants", - "CreateAbpConsultant": "Create ABP Consultant", - "UrlCodeIsNotAvailable": "Url code is used by another ABP Consultant.", - "AbpConsultants": "ABP Consultants", - "AbpConsultant": "ABP Consultant", - "AbpConsultantEdit": "Edit ABP Consultant", - "AbpConsultantCreate": "Create ABP Consultant", - "WhoWeAreItem": "Who We Are Item", - "FieldIsRequired": "{0} is required.", - "FieldIsNotValid": " {0} is not valid.", - "InterestedLicenseType": "Interested License Type", - "MoveWaitList": "Move to wait list", - "CommunityLinkTitle": "Open on the community website", - "CommunityLink": "Link", - "IpAddress": "IP Address", - "ReloadFromSource": "Reload From the Source", - "ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?", - "UnitPrice": "Unit Price", - "OverallDiscountAmount": "Overall Discount Amount", - "DiscountAmount": "Discount Amount", - "FullChangeHistory": "Full Change History", - "Permission:RefreshReleaseLogs": "Refresh Release Logs", - "ReleaseLogs": "Release Logs", - "AuthorUserName": "Author User Name", - "Type": "Type", - "TotalDiscount": "Total Discount", - "SubTotal": "Sub Total", - "TotalDue": "Total Due", - "QuotationNo": "Quotation no", - "ValidTill": "Valid till", - "QuotationNote": "Quotation note", - "QuotationTemplate.Address:": "Address:", - "QuotationTemplate.VATNo:": "VAT No:", - "QuotationTemplate.Phone:": "Phone:", - "QuotationTemplate.E-mail:": "E-mail:", - "QuotationTemplate.Quotation": "Quotation", - "QuotationTemplate.To": "To", - "QuotationTemplate.Details": "Details", - "QuotationTemplate.QuotationNo:": "Quotation #:", - "QuotationTemplate.IssueDate:": "Issue Date:", - "QuotationTemplate.ValidTill:": "Valid Till:", - "QuotationTemplate.ValidDays": "{0} Days", - "QuotationTemplate.Description": "Description", - "QuotationTemplate.UnitPrice": "Unit Price", - "QuotationTemplate.Qty": "Qty", - "QuotationTemplate.Discount": "Discount", - "QuotationTemplate.Total": "Total", - "QuotationTemplate.Notes": "Notes", - "QuotationTemplate.SubTotal:": "Sub Total :", - "QuotationTemplate.Tax/VAT:": "Tax / Vat (%{0}) :", - "QuotationTemplate.TotalDiscount:": "Total Discount :", - "QuotationTemplate.TOTALDUE:": "TOTAL DUE :", - "QuotationTemplate.BankAccount": "Our bank account information can be found at {0}", - "Permission:Raffles": "Raffle", - "Permission:Draw": "Draw", - "Permission:ExportAttendeesAsExcel": "Export at attendees as Excel", - "Menu:Raffles": "Raffles", - "RaffleIsNotDrawable": "Raffle is not drawable", - "WinnerCountMustBeGreaterThanZero": "Winner count must be greater than zero", - "FullDescription": "Full Description", - "VisibilityStartDate": "Visibility Start Date", - "VisibilityEndDate": "Visibility End Date", - "RaffleDate": "Raffle Date", - "SubscriptionCode": "Subscription Code", - "GroupCode": "Group Code", - "MaxWinnerCount": "Max Winner Count", - "ReDraw": "Re-Draw", - "EditRaffle": "Edit Raffle", - "Raffles": "Raffles", - "CreateARaffle": "Create a raffle", - "Draw": "Draw", - "Enum:RaffleStatus:0": "Active", - "Enum:RaffleStatus:1": "Next", - "Enum:RaffleStatus:2": "Past", - "DrawDone": "Draw Done", - "HomePageShowType": "Home Page Show Type", - "None": "None", - "Card": "Card", - "Horizontal": "Horizontal", - "Winners": "Winners", - "StartDateMustBeLessThanEndDate": "Start date must be less than end date", - "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Visibility start date must be less than visibility end date", - "StartDateMustBeGreaterThanVisibilityStartDate": "Start date must be greater than visibility start date", - "EndDateMustBeLessThanVisibilityEndDate": "End date must be less than visibility end date", - "DrawnDone": "Drawn Done", - "AddColor": "Add Color", - "Colors": "Colors", - "RemoveColor": "Remove Color", - "MaxColorCountWarning": "You can add up to {0} colors", - "MinColorCountWarning": "You must add at least {0} colors", - "RaffleDeletionConfirmationMessage": "Are you sure you want to delete this raffle?", - "CreateRaffle": "Create Raffle", - "RemoveImage": "Remove Image", - "SavedSuccessfully": "Saved successfully", - "Menu:CommunityTalks": "Community Talks", - "Menu:Conferences": "Conferences", - "Menu:OtherLiveEvents": "Other Live Events", - "Menu:SponsoredConferences": "Sponsored Conferences", - "Logo": "Logo", - "Slug": "Slug", - "CompanyUrl": "Company Url", - "TalkTitle": "Talk Title", - "AbstractTopic": "Abstract Topic", - "Bio": "Bio", - "LinkedIn": "LinkedIn", - "Github": "Github", - "Twitch": "Twitch", - "Youtube": "Youtube", - "Twitter": "Twitter", - "PersonalWebsite": "Personal Website", - "VideoId": "Video Id", - "Order": "Order", - "Image1x1": "Image 1x1", - "Image16x9": "Image 16x9", - "Banner": "Banner", - "Speaker": "Speaker", - "SessionDate": "Session Date", - "AddSession": "Add Session", - "AddSponsor": "Add Sponsor", - "SponsorLogo": "Sponsor Logo", - "RegistrationUrl": "Registration Url", - "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", - "TotalQuestionCanNotBeNullMessage": "Total Question can not be null", - "Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", - "Permission:UserDownloads": "User Downloads", - "Permission:RetryFailedPayments": "Retry Failed Payments", - "AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!", - "LicenseIsNotExpired": "License is not expired!", - "PaymentNotFound": "Payment not found!", - "PaymentAlreadyTried": "Payment already tried!", - "PaymentIsNotFailed": "Payment is not failed!", - "OrganizationIdIsNull": "OrganizationId is null!", - "Menu:AutoRenewals": "Auto Renewals", - "OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", - "PaymentDate": "Payment Date", - "TryCount": "Try Count", - "ErrorMessage": "Error Message", - "ErrorCode": "Error Code", - "CreditCard": "Credit Card", - "BuyerName": "Buyer Name", - "BuyerSurname": "Buyer Surname", - "BuyerEmail": "Buyer Email", - "AutoRenewalStartTime": "Auto Renewal Start Time", - "AutoRenewalEndTime": "Auto Renewal End Time", - "AutoRenewalEnabled": "Auto Renewal Enabled", - "LastAutoRenewalPaymentTime": "Last Auto Renewal Payment Time", - "OrganizationDoesNotHaveACreditCard": "Organization does not have a credit card!", - "OrganizationDoesNotHaveACreditCardInGateway": "Organization does not have a credit card in the gateway!", - "Permission:EditWinners": "Edit Winners", - "Permission:ChangeDrawingStatus": "Change Drawing Status", - "Menu:Licenses": "Licensing", - "OrganizationId": "Organization Id", - "RemoveAllWinnersConfirmationMessage": "Are you sure you want to remove all winners?", - "AutoRenewals": "Auto Renewals", - "OrganizationHasCreditCard": "Organization has credit card. Please remove credit card first!", - "DisplayName:DontSendEmailForLicenseExpire": "Don't Send Email For License Expire", - "DontSendEmailForLicenseExpire": "Don't Send Email For License Expire", - "SuccessfullyChanged": "Successfully changed", - "WinnerCountMustBeLessThanMaxWinnerCount": "Winner count must be less than max winner count", - "NoChangesDetected": "No changes detected", - "ProductCount": "Product Count", - "Actions": "Actions", - "CreateInvoice": "Create Invoice", - "IsVisible": "Visible", - "Menu:Testimonials": "Testimonials", - "TestimonialDeletionConfirmationMessage": "Are you sure you want to delete this testimonial ?", - "FullName": "Full name", - "TestimonialText": "Testimonial text", - "ExperienceYear": "Experience year", - "Position": "Title", - "YearsOfExperience": "Experience year", - "AllowedLicenses": "Allowed Licenses", - "AllowedModules": "Allowed Modules", - "ModuleName": "Module name", - "NonYet": "Non yet", - "Permission:Testimonials": "Testimonials", - "SelectCompanySizePlaceholder": "Company Size", - "SelectExperienceYearPlaceholder": "Experience year", - "SelectCountryPlaceholder": "Country", - "DeleteImageConfirmationMessage": "Are you sure you want to delete the image for \"{0}\"?", - "DeleteImageSuccessMessage": "Image successfully deleted", - "DeleteImage": "Delete Image", - "NetTerms": "Terms (Days)", - "Menu:DynamicReports": "Dynamic Reports", - "Menu:Others": "Others", - "Menu:Packs&Modules": "Packs & Modules", - "ReleaseCaches": "Release Cache", - "Menu:HeroSections": "Hero Sections", - "HeroSections": "Hero Sections", - "DynamicReports": "Dynamic Reports", - "Menu:ReportsMenu": "Reports", - "Permission:HeroSections": "Hero Sections", - "RedirectLink": "Redirect link", - "HeroSectionsDeletionConfirmationMessage": "Are you sure you want to delete the hero section?", - "AbpStudioName": "ABP Studio name", - "Permission:EditAttendees": "Edit Attendees", - "AttendeesCount": "Attendees Count", - "CreateQRCode": "Create QR Code", - "DrawTV": "Public draw on the TV", - "DrawModal": "Private draw on the modal", - "SetAsDrawable": "Set as drawable", - "SetAsNoDrawable": "Set as non-drawable", - "SetAsCompleted": "Set as completed", - "RemoveAllWinners": "Remove all winners", - "EditWinners": "Edit winners", - "EditAttendees": "Edit attendees", - "ExportAttendeesAsExcel": "Export attendees as Excel", - "DuplicateRaffle": "Duplicate raffle", - "Menu:RedisManagement": "Redis Management", - "RedisManagement": "Redis Management", - "Permission:RedisManagement": "Redis Management" - } + "texts": { + "Permission:Organizations": "Organizations", + "Permission:Manage": "Manage Organizations", + "Permission:DiscountRequests": "Discount Requests", + "Permission:DiscountManage": "Manage Discount Requests", + "Permission:Disable": "Disable", + "Permission:Enable": "Enable", + "Permission:EnableSendEmail": "Enable Send Email", + "Permission:SendEmail": "Send Email", + "Permission:NpmPackages": "NPM Packages", + "Permission:NugetPackages": "Nuget Packages", + "Permission:Maintenance": "Maintenance", + "Permission:Maintain": "Maintain", + "Permission:ClearCaches": "Clear caches", + "Permission:UserCleanUp": "User Clean Up", + "Permission:Modules": "Modules", + "Permission:Packages": "Packages", + "Permission:Edit": "Edit", + "Permission:Delete": "Delete", + "Permission:Create": "Create", + "Permission:Accounting": "Accounting", + "Permission:Accounting:Quotation": "Quotation", + "Permission:Accounting:Invoice": "Invoice", + "Permission:Export": "Export", + "Menu:Organizations": "Organizations", + "Menu:Accounting": "Accounting", + "Menu:Packages": "Packages", + "Menu:DiscountRequests": "Discount Requests", + "NpmPackageDeletionWarningMessage": "This NPM Package will be deleted. Do you confirm that?", + "NugetPackageDeletionWarningMessage": "This Nuget Package will be deleted. Do you confirm that?", + "NuGetPackages": "NuGet Packages", + "ModuleDeletionWarningMessage": "This Module will be deleted. Do you confirm that?", + "Name": "Name", + "DisplayName": "Display name", + "ShortDescription": "Short description", + "LongDescription": "Long description", + "NameFilter": "Name", + "CreationTime": "Creation time", + "IsPro": "Pro package", + "IsFreeToActiveLicenseOwners": "Free to license owners", + "ShowOnModuleList": "Show on module list", + "EfCoreConfigureMethodName": "Configure method name", + "IsProFilter": "Pro package", + "ShowOnModuleFilter": "Show on module list", + "ShowOnModuleListFilter": "Show on module list", + "ApplicationType": "Application type", + "Target": "Target", + "TargetFilter": "Target", + "ModuleClass": "Module class", + "NugetPackageTarget.DomainShared": "Domain Shared", + "NugetPackageTarget.Domain": "Domain", + "NugetPackageTarget.Application": "Application", + "NugetPackageTarget.ApplicationContracts": "Application Contracts", + "NugetPackageTarget.HttpApi": "Http Api", + "NugetPackageTarget.HttpApiClient": "Http Api Client", + "NugetPackageTarget.Web": "Web", + "NugetPackageTarget.EntityFrameworkCore": "DeleteAllEntityFramework Core", + "NugetPackageTarget.MongoDB": "MongoDB", + "Edit": "Edit", + "Delete": "Delete", + "Refresh": "Refresh", + "NpmPackages": "NPM Packages", + "NugetPackages": "Nuget Packages", + "NpmPackageCount": "NPM Package Count", + "NugetPackageCount": "Nuget Package Count", + "NuGetPackageCount": "NuGet Package Count", + "Module": "Modules", + "ModuleInfo": "Module info", + "CreateANpmPackage": "Create a NPM package", + "CreateAModule": "Create a module", + "CreateANugetPackage": "Create a Nuget package", + "AddNew": "Add new", + "PackageAlreadyExist{0}": "\"{0}\" package is already added.", + "ModuleAlreadyExist{0}": "\"{0}\" module is already added.", + "ClearCache": "Clear cache", + "SuccessfullyCleared": "Successfully cleared", + "Menu:NpmPackages": "NPM Packages", + "Menu:Modules": "Modules", + "Menu:Maintenance": "Maintenance", + "Menu:NugetPackages": "NuGet Packages", + "CreateAnOrganization": "Create an organization", + "Organizations": "Organizations", + "LongName": "Long name", + "LicenseType": "License type", + "MissingLicenseTypeField": "The license type field is required!", + "LicenseStartTime": "License start time", + "LicenseEndTime": "License end time", + "AllowedDeveloperCount": "Allowed developer count", + "UserNameOrEmailAddress": "Username or email address", + "AddOwner": "Add owner", + "UserName": "Username", + "Email": "Email", + "Developers": "Developers", + "AddDeveloper": "Add developer", + "Create": "Create", + "UserNotFound": "User not found", + "{0}WillBeRemovedFromDevelopers": "{0} Will be removed from developers, do you confirm?", + "{0}WillBeRemovedFromOwners": "{0} Will be removed from owners, do you confirm?", + "{0}WillBeRemovedFromMembers": "{0} Will be removed from members, do you confirm?", + "Computers": "Computers", + "UniqueComputerId": "Unique computer id", + "LastSeenDate": "Last seen date", + "{0}Computer{1}WillBeRemovedFromRecords": "Computer of {0} ({1}) will be removed from records", + "OrganizationDeletionWarningMessage": "Organization will be deleted", + "DeletingLastOwnerWarningMessage": "An organization must have at least one owner! Therefore you cannot remove this owner", + "This{0}AlreadyExistInThisOrganization": "This {0} already exist in this organization", + "AreYouSureYouWantToDeleteAllComputers": "Are you sure you want to delete all computers?", + "DeleteAll": "Delete all", + "DoYouWantToCreateNewUser": "Do you want to create new user?", + "MasterModules": "Master Modules", + "OrganizationName": "Organization name", + "CreationDate": "Creation date", + "LicenseStartDate": "License start date", + "LicenseEndDate": "License end date", + "OrganizationNamePlaceholder": "Organization name...", + "TotalQuestionCountPlaceholder": "Total question count...", + "RemainingQuestionCountPlaceholder": "Remaining question count...", + "LicenseTypePlaceholder": "License type...", + "CreationDatePlaceholder": "Creation date...", + "LicenseStartDatePlaceholder": "License start date...", + "LicenseEndDatePlaceholder": "License end date...", + "UsernameOrEmail": "Username or email", + "UsernameOrEmailPlaceholder": "Username or email...", + "Member": "Member", + "PurchaseOrderNo": "Purchase order no", + "QuotationDate": "Quotation date", + "CompanyName": "Company name", + "DownloadType": "Download type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept newsletter", + "CompanyAddress": "Company address", + "Price": "Price", + "Unknown": "Unknown", + "DddEBook": "Ddd EBook", + "MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook", + "MicroserviceEBook": "Microservice EBook", + "DiscountText": "Discount text", + "DiscountQuantity": "Discount quantity", + "DiscountPrice": "Discount price", + "Quotation": "Quotation", + "ExtraText": "Extra Text", + "ExtraAmount": "Extra Amount", + "DownloadQuotation": "Download Quotation", + "Invoice": "Invoice", + "TaxNumber": "Tax Number", + "InvoiceNumber": "Invoice Number", + "InvoiceDate": "Invoice Date", + "InvoiceNote": "Invoice Note", + "Quantity": "Quantity", + "AddProduct": "Add Product", + "AddProductWarning": "You need to add product!", + "TotalPrice": "Total Price", + "Generate": "Generate", + "MissingQuantityField": "The quantity field is required!", + "MissingPriceField": "The Price field is required!", + "CodeUsageStatus": "Status", + "Country": "Country", + "DeveloperCount": "Developer Count", + "RequestCode": "Request Code", + "WebSite": "Web Site", + "GithubUsername": "Github Username", + "PhoneNumber": "Phone Number", + "ProjectDescription": "Project Description", + "Referrer": "Referrer", + "DiscountRequests": "Discount Request", + "Copylink": "Copy Link", + "Disable": "Disable", + "Enable": "Enable", + "EnableSendEmail": "Enable Send Email", + "SendEmail": "Send Email", + "SuccessfullyDisabled": "Successfully Disabled", + "SuccessfullyEnabled": "Successfully Enabled", + "EmailSent": "Email Sent", + "SuccessfullySent": "Successfully Sent", + "SuccessfullyDeleted": "Successfully Deleted", + "DiscountRequestDeletionWarningMessage": "Discount request will be deleted", + "BusinessType": "Business Type", + "TotalQuestionCount": "Total question count", + "RemainingQuestionCount": "Remaining question count", + "TotalQuestionMustBeGreaterWarningMessage": "TotalQuestionCount must be greater than RemainingQuestionCount !", + "QuestionCountsMustBeGreaterThanZero": "TotalQuestionCount and RemainingQuestionCount must be zero or greater than zero !", + "UnlimitedQuestionCount": "Unlimited question count", + "Notes": "Notes", + "Menu:Community": "Community", + "Menu:Posts": "Posts", + "Wait": "Wait", + "Approve": "Approve", + "Reject": "Reject", + "Details": "Details", + "Url": "Url", + "Title": "Title", + "ContentSource": "Content source", + "Status": "Status", + "ReadPost": "Read post", + "PostHasBeenWaiting": "Post has been waiting", + "PostHasBeenApproved": "Post has been approved", + "PostHasBeenRejected": "Post has been rejected", + "Permission:Community": "Community", + "Permission:CommunityPost": "Post", + "Link": "Link", + "Enum:ContentSource:0": "Github", + "Enum:ContentSource:1": "External", + "Enum:Status:0": "Waiting", + "Enum:Status:1": "Rejected", + "Enum:Status:2": "Approved", + "Summary": "Summary", + "AuthorName": "Author name", + "CoverImage": "Cover Image", + "RemoveCacheConfirmationMessage": "Are you sure you remove the cache for \"{0}\" post?", + "SuccessfullyRemoved": "Successfully cleared", + "RemoveCache": "Remove Cache", + "Language": "Language", + "Optional": "Optional", + "CreatePostLanguageInfo": "The language in which the post is written", + "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.", + "DeleteCoverImage": "Delete Cover Image", + "DeleteCoverImageConfirmationMessage": "Are you sure you want to delete the cover image for \"{0}\"?", + "DeleteCoverImageSuccessMessage": "Cover image successfully deleted", + "PaymentsOf": "Payments of", + "ShowPaymentsOfOrganization": "Payments", + "Date": "Date", + "Products": "Products", + "TotalAmount": "Total amount", + "Currency": "Currency", + "Gateway": "Gateway", + "State": "State", + "FailReason": "Fail reason", + "ReIndexAllPosts": "Reindex All Posts", + "ReIndexAllPostsConfirmationMessage": "Are you sure you want to reindex all posts?", + "SuccessfullyReIndexAllPosts": "All posts have been successfully reindexed.", + "Permission:FullSearch": "Full text search", + "Menu:CliAnalytics": "CLI Analytics", + "Menu:Reports": "Dynamic Reports", + "TemplateName": "Template name", + "TemplateVersion": "Template version", + "DatabaseProvider": "Database provider", + "IsTiered": "Is Tiered", + "ProjectName": "Project name", + "Username": "User name", + "Tool": "Tool", + "Command": "Command", + "UiFramework": "Ui framework", + "Options": "Options", + "CliAnalytics": "Cli Analytics", + "Reports": "Dynamic Reports", + "Permission:CliAnalyticses": "Cli Analyticses", + "Permission:CliAnalytics": "Cli Analytics", + "Permission:Reports": "Reports", + "Search": "Search", + "ClearFilter": "Clear filter", + "LicensePrivateKey": "License private key", + "LicensePublicKey": "License public key", + "ApiKey": "NuGet API key", + "ShowInvoiceRequestsOfOrganization": "Invoice requests", + "ShowQuestionsOfOrganization": "Questions", + "Question": "Question", + "Open": "Open", + "Questions": "Questions", + "InvoiceRequests": "Invoice Requests", + "Address": "Address", + "TaxNo": "Tax No", + "Permission:InvoiceRequest": "Invoice Request", + "Permission:Question": "Question", + "AddNoteSuccessMessage": "Note successfully added", + "NameSurname": "Name Surname", + "Note": "Note", + "Add": "Add", + "ProjectDownloads": "Project Downloads", + "ShowProjectDownloadsOfOrganization": "Project Downloads", + "ShowAuditLogsOfOrganization": "Audit Logs", + "Enum:EntityChangeType:0": "Created", + "Enum:EntityChangeType:1": "Updated", + "Enum:EntityChangeType:2": "Deleted", + "TenantId": "Tenant ID", + "ChangeTime": "Change time", + "EntityTypeFullName": "Entity type full name", + "AuditLogsFor{0}Organization": "Audit logs for \"{0}\" organization", + "Permission:EntityChange": "Entity Change", + "Permission:ProjectDownload": "Project Download", + "Permission:PaymentRequest": "Payment Request", + "CreatorEmailAddress": "Creator email address", + "EmailSendDate": "Email send date", + "PaymentRequestsFor{0}Organization": "Payment requests for \"{0}\" organization", + "PaymentDetails": "Payment Details", + "PaymentProduct": "Payment Product", + "ProductName": "Product Name", + "Code": "Code", + "GenerateInvoice": "Generate Invoice", + "ExportOrganizationsToExcel": "Export to Excel", + "ThisExtensionIsNotAllowed": "This extension is not allowed.", + "TheFileIsTooLarge": "The file is too large!", + "PostDeletionConfirmationMessage": "Are you sure you want to hard delete this post?", + "ChooseCoverImage": "Choose a cover image...", + "Menu:Quotation": "Quotation", + "Menu:Invoice": "Invoice", + "Menu:Quotation/Invoice": "Quotation/Invoice", + "Menu:UserDownloads": "User Downloads", + "Menu:PaymentRequests": "Payment Requests", + "Permission:PaymentRequests": "Payment Requests", + "PaymentRequests": "Payment Requests", + "Creator": "Creator", + "ExtraProperties": "Extra Properties", + "Organization": "Organization", + "Waiting": "Waiting", + "Completed": "Completed", + "Failed": "Failed", + "PaymentRequestDeletionWarningMessage": "This payment request will be deleted. Do you confirm that?", + "Payment": "Payment", + "AddPayment": "Add Payment", + "Enum:PurchaseType:1": "New License", + "Enum:PurchaseType:2": "License Extend", + "Enum:PurchaseType:3": "License Upgrade", + "Enum:PurchaseType:4": "Additional Developer", + "LicenceType": "License Type", + "PurchaseType": "Purchase Type", + "ReceiptNo": "Receipt No", + "PaymentTime": "Payment Time", + "ProductPrice": "Product Price", + "AdditionalDeveloper": "Additional developer", + "ThisPaymentHasBeenAlreadyUsed": "This payment has been already used", + "PaymentTimeCannotBeFutureTime": "Payment time cannot be a future time!", + "SaveAndDownload": "Save and Download", + "BillingInfo": "Billing Info", + "DeleteInvoice": "Delete Invoice", + "PaymentStateSetTo": "Payment state set to {0}", + "ChangeState": "Change State", + "Permission:TrialLicense": "Trial License", + "Menu:TrialLicenses": "Trial Licenses", + "TrialLicenses": "Trial Licenses", + "UserNameFilter": "Username", + "TrialLicenseStatusFilter": "Status", + "TrialLicenseStartDateFilter": "Start date", + "TrialLicenseEndDateFilter": "End date", + "FirstName": "First name", + "LastName": "Last name", + "StartDate": "Start date", + "EndDate": "End date", + "PurchasedDate": "Purchased date", + "OrganizationDetail": "Organization Detail", + "TrialLicenseStatus": "Trial license status", + "TrialLicenseDetail": "Trial License Detail", + "AcceptsMarketingCommunications": "Marketing Communications", + "PurposeOfUsage": "Purpose of usage", + "CountryName": "Country name", + "CompanySize": "Company size", + "DetailTrialLicense": "Details", + "Requested": "Requested", + "Activated": "Activated", + "PurchasedToNormalLicense": "Purchased", + "Expired": "Expired", + "TrialLicenseDeletionWarningMessage": "Are you sure you want to delete the trial license? Trial license, organization, support accounts will be deleted!", + "LicenseCategoryFilter": "License category", + "Permission:SendWelcomeEmail": "Send Welcome Email", + "SendWelcomeEmail": "Send Welcome Email", + "SendWelcomeEmailWarningMessage": "Are you sure you want to send welcome email to the organization members?", + "SendWelcomeEmailSuccessMessage": "Welcome email sent successfully!", + "Activate": "Activate", + "ActivateTrialLicenseWarningMessage": " When you activate a trial license, a welcome e-mail will be sent to the user. Do you want to activate it?", + "ActivateTrialLicenseSuccessMessage": "Activated successfully and the welcome e-mail sent to the organization members.", + "PaymentRequestId": "Payment Request Id", + "AdditionalDeveloperCount": "Additional developer count", + "LicensePrice": "License price", + "PurchaseDate": "Purchase date", + "IsAbpBookDownloaded": "Mastering ABP Book downloaded?", + "IsMasteringAbpBookDownloadEnabled": "ABP Book download enabled", + "Permission:Accounting:CustomPaymentLinkGenerator": "Custom Payment Link", + "CustomPaymentLink": "Custom Payment Link", + "Menu:CustomPaymentLink": "Custom Payment Link", + "Amount": "Amount", + "GenerateCustomPaymentLink": "Generate Custom Payment Link", + "GeneratedPaymentLink": "Generated Payment Link", + "CopyText": "Copy Text", + "Permission:CommunityEvents": "Events", + "Menu:Events": "Events", + "Events": "Events", + "EventType": "Event Type", + "Number": "Number", + "RegistrationURL": "Registration URL", + "URL": "URL", + "EventDeletionConfirmationMessage": "Are you sure you want to delete this event?", + "Enum:EventType:0": "Community Talks", + "CreateAnEvent": "Create an event", + "Permission:CommunitySpeakers": "Speakers", + "CreateASpeaker": "Create a speaker", + "Speakers": "Speakers", + "Image": "Image", + "GithubURL": "Github URL", + "SpeakerDeletionConfirmationMessage": "Are you sure you want to delete this speaker?", + "Menu:Speakers": "Speakers", + "ChooseSpeakerImage": "Choose a speaker image...", + "SpeakerImage": "Speaker image", + "AddSpeaker": "Add Speaker", + "ShowPurchaseItemsOfOrganizations": "Purchase Items", + "Enum:OrganizationPurchaseState:0": "Not delivered", + "Enum:OrganizationPurchaseState:1": "Delivered", + "PurchaseItems": "Purchase Items", + "SuccessfullyUpdated": "Successfully updated", + "SuccessfullyAdded": "Successfully added", + "PurchaseState": "Purchase status", + "ShowBetweenDayCount": "Show Between Days", + "PurchaseOrder": "Purchase Order", + "ShowCreateInvoiceOfOrganization": "Create Invoice", + "ShowCreateQuotationOfOrganization": "Create Quotation/Invoice", + "BookDiscounts": "Book Discounts", + "Permission:BookDiscount": "Book Discount", + "Menu:BookDiscounts": "Book Discounts", + "BookType": "Book Type", + "PurchasePlatform": "Purchase Platform", + "StartTime": "Start Time", + "EndTime": "End Time", + "CreateABookDiscount": "Create a book discount", + "BookDiscountDeletionConfirmationMessage": "Are you sure you want to delete this book discount?", + "CustomPaymentFlexSwitchDescription": "With license", + "AllowFeatureUpgradeOnLicenseExpire": "Allow feature upgrade on license expire", + "Deleted{0}": "[Deleted {0}]", + "Tags": "Tags", + "SetTagsInfo": "Tags should be comma-separated. Eg: CSharp, Entity Framework", + "RejectTrialLicenseWarningMessage": "Are you sure you want to reject this trial license request?", + "ExportToExcel": "Export to Excel", + "OverallTotalPrice": "Overall Total Price", + "OverallDiscountPrice": "Overall Discount Price", + "OverallDiscountText": "Overall Discount Text", + "SelectReport": "- Select Report -", + "NoDataAvailable": "No data available", + "StatisticsOfCachedContents": "Statistics of cached NuGet package contents for nuget.abp.io", + "Compact": "Compact", + "EditSettings": "Edit Settings", + "CurrentEstimatedSize": "Current Estimated Size", + "CurrentEntryCount": "Current Entry Count", + "TotalHits": "Total Hits", + "TotalMisses": "Total Misses", + "NoResponseFrom": "No response from", + "ContentCacheSlidingExpirationByDay": "Content Cache Sliding Expiration By Day", + "MaxDaysForCaching": "Max Days For Caching", + "Enabled": "Enabled", + "Menu:NugetPackagesContentCache": "NuGet Cache", + "NugetPackagesContentCache": "NuGet Content Cache", + "SlidingExpritionByDayInfo": "Gets or sets how long a cache entry can be inactive (e.g. not accessed) before it will be removed. This will not extend the entry lifetime beyond the absolute expiration.", + "MaxDaysForCachingInfo": "Gets or sets an absolute expiration time, relative to now.", + "CurrentEstimatedSizeInfo": "Indicates an estimated sum of all the NuGet packages' content size currently in the memory cache", + "CurrentEntryCountInfo": "Indicates the number of instances currently in the memory cache.", + "TotalHitsInfo": "Indicates the total number of cache misses. A cache hit occurs when a file is requested from a cache and the cache is able to fulfill that request.", + "TotalMissesInfo": "Indicates the total number of cache hits. A cache miss is when the cache does not contain the requested content.", + "Permission:VersionHistory": "Version History", + "Caches": "Caches", + "VersionHistories": "Version History", + "Version": "Version", + "PublishDate": "Publish Date", + "IsStableVersion": "Stable Version", + "IsActive": "Active", + "NewVersion": "New Version", + "VersionHistoryDeletionConfirmationMessage": "Are you sure you want to delete this version?", + "CreateAbpConsultantLogoInfo": "Maximum file size: 1MB
Supported file types: jpg, jpeg, png, SVG, WebP", + "UrlCode": "Url Code", + "Clear": "Clear", + "Permission:AbpConsultant": "ABP Consultant", + "Menu:AbpConsultants": "ABP Consultants", + "CreateAbpConsultant": "Create ABP Consultant", + "UrlCodeIsNotAvailable": "Url code is used by another ABP Consultant.", + "AbpConsultants": "ABP Consultants", + "AbpConsultant": "ABP Consultant", + "AbpConsultantEdit": "Edit ABP Consultant", + "AbpConsultantCreate": "Create ABP Consultant", + "WhoWeAreItem": "Who We Are Item", + "FieldIsRequired": "{0} is required.", + "FieldIsNotValid": " {0} is not valid.", + "InterestedLicenseType": "Interested License Type", + "MoveWaitList": "Move to wait list", + "CommunityLinkTitle": "Open on the community website", + "CommunityLink": "Link", + "IpAddress": "IP Address", + "ReloadFromSource": "Reload From the Source", + "ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?", + "UnitPrice": "Unit Price", + "OverallDiscountAmount": "Overall Discount Amount", + "DiscountAmount": "Discount Amount", + "FullChangeHistory": "Full Change History", + "Permission:RefreshReleaseLogs": "Refresh Release Logs", + "ReleaseLogs": "Release Logs", + "AuthorUserName": "Author User Name", + "Type": "Type", + "TotalDiscount": "Total Discount", + "SubTotal": "Sub Total", + "TotalDue": "Total Due", + "QuotationNo": "Quotation no", + "ValidTill": "Valid till", + "QuotationNote": "Quotation note", + "QuotationTemplate.Address:": "Address:", + "QuotationTemplate.VATNo:": "VAT No:", + "QuotationTemplate.Phone:": "Phone:", + "QuotationTemplate.E-mail:": "E-mail:", + "QuotationTemplate.Quotation": "Quotation", + "QuotationTemplate.To": "To", + "QuotationTemplate.Details": "Details", + "QuotationTemplate.QuotationNo:": "Quotation #:", + "QuotationTemplate.IssueDate:": "Issue Date:", + "QuotationTemplate.ValidTill:": "Valid Till:", + "QuotationTemplate.ValidDays": "{0} Days", + "QuotationTemplate.Description": "Description", + "QuotationTemplate.UnitPrice": "Unit Price", + "QuotationTemplate.Qty": "Qty", + "QuotationTemplate.Discount": "Discount", + "QuotationTemplate.Total": "Total", + "QuotationTemplate.Notes": "Notes", + "QuotationTemplate.SubTotal:": "Sub Total :", + "QuotationTemplate.Tax/VAT:": "Tax / Vat (%{0}) :", + "QuotationTemplate.TotalDiscount:": "Total Discount :", + "QuotationTemplate.TOTALDUE:": "TOTAL DUE :", + "QuotationTemplate.BankAccount": "Our bank account information can be found at {0}", + "Permission:Raffles": "Raffle", + "Permission:Draw": "Draw", + "Permission:ExportAttendeesAsExcel": "Export at attendees as Excel", + "Menu:Raffles": "Raffles", + "RaffleIsNotDrawable": "Raffle is not drawable", + "WinnerCountMustBeGreaterThanZero": "Winner count must be greater than zero", + "FullDescription": "Full Description", + "VisibilityStartDate": "Visibility Start Date", + "VisibilityEndDate": "Visibility End Date", + "RaffleDate": "Raffle Date", + "SubscriptionCode": "Subscription Code", + "GroupCode": "Group Code", + "MaxWinnerCount": "Max Winner Count", + "ReDraw": "Re-Draw", + "EditRaffle": "Edit Raffle", + "Raffles": "Raffles", + "CreateARaffle": "Create a raffle", + "Draw": "Draw", + "Enum:RaffleStatus:0": "Active", + "Enum:RaffleStatus:1": "Next", + "Enum:RaffleStatus:2": "Past", + "DrawDone": "Draw Done", + "HomePageShowType": "Home Page Show Type", + "None": "None", + "Card": "Card", + "Horizontal": "Horizontal", + "Winners": "Winners", + "StartDateMustBeLessThanEndDate": "Start date must be less than end date", + "VisibilityStartDateMustBeLessThanVisibilityEndDate": "Visibility start date must be less than visibility end date", + "StartDateMustBeGreaterThanVisibilityStartDate": "Start date must be greater than visibility start date", + "EndDateMustBeLessThanVisibilityEndDate": "End date must be less than visibility end date", + "DrawnDone": "Drawn Done", + "AddColor": "Add Color", + "Colors": "Colors", + "RemoveColor": "Remove Color", + "MaxColorCountWarning": "You can add up to {0} colors", + "MinColorCountWarning": "You must add at least {0} colors", + "RaffleDeletionConfirmationMessage": "Are you sure you want to delete this raffle?", + "CreateRaffle": "Create Raffle", + "RemoveImage": "Remove Image", + "SavedSuccessfully": "Saved successfully", + "Menu:CommunityTalks": "Community Talks", + "Menu:Conferences": "Conferences", + "Menu:OtherLiveEvents": "Other Live Events", + "Menu:SponsoredConferences": "Sponsored Conferences", + "Logo": "Logo", + "Slug": "Slug", + "CompanyUrl": "Company Url", + "TalkTitle": "Talk Title", + "AbstractTopic": "Abstract Topic", + "Bio": "Bio", + "LinkedIn": "LinkedIn", + "Github": "Github", + "Twitch": "Twitch", + "Youtube": "Youtube", + "Twitter": "Twitter", + "PersonalWebsite": "Personal Website", + "VideoId": "Video Id", + "Order": "Order", + "Image1x1": "Image 1x1", + "Image16x9": "Image 16x9", + "Banner": "Banner", + "Speaker": "Speaker", + "SessionDate": "Session Date", + "AddSession": "Add Session", + "AddSponsor": "Add Sponsor", + "SponsorLogo": "Sponsor Logo", + "RegistrationUrl": "Registration Url", + "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", + "TotalQuestionCanNotBeNullMessage": "Total Question can not be null", + "Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", + "Permission:UserDownloads": "User Downloads", + "Permission:RetryFailedPayments": "Retry Failed Payments", + "AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!", + "LicenseIsNotExpired": "License is not expired!", + "PaymentNotFound": "Payment not found!", + "PaymentAlreadyTried": "Payment already tried!", + "PaymentIsNotFailed": "Payment is not failed!", + "OrganizationIdIsNull": "OrganizationId is null!", + "Menu:AutoRenewals": "Auto Renewals", + "OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", + "PaymentDate": "Payment Date", + "TryCount": "Try Count", + "ErrorMessage": "Error Message", + "ErrorCode": "Error Code", + "CreditCard": "Credit Card", + "BuyerName": "Buyer Name", + "BuyerSurname": "Buyer Surname", + "BuyerEmail": "Buyer Email", + "AutoRenewalStartTime": "Auto Renewal Start Time", + "AutoRenewalEndTime": "Auto Renewal End Time", + "AutoRenewalEnabled": "Auto Renewal Enabled", + "LastAutoRenewalPaymentTime": "Last Auto Renewal Payment Time", + "OrganizationDoesNotHaveACreditCard": "Organization does not have a credit card!", + "OrganizationDoesNotHaveACreditCardInGateway": "Organization does not have a credit card in the gateway!", + "Permission:EditWinners": "Edit Winners", + "Permission:ChangeDrawingStatus": "Change Drawing Status", + "Menu:Licenses": "Licensing", + "OrganizationId": "Organization Id", + "RemoveAllWinnersConfirmationMessage": "Are you sure you want to remove all winners?", + "AutoRenewals": "Auto Renewals", + "OrganizationHasCreditCard": "Organization has credit card. Please remove credit card first!", + "DisplayName:DontSendEmailForLicenseExpire": "Don't Send Email For License Expire", + "DontSendEmailForLicenseExpire": "Don't Send Email For License Expire", + "SuccessfullyChanged": "Successfully changed", + "WinnerCountMustBeLessThanMaxWinnerCount": "Winner count must be less than max winner count", + "NoChangesDetected": "No changes detected", + "ProductCount": "Product Count", + "Actions": "Actions", + "CreateInvoice": "Create Invoice", + "IsVisible": "Visible", + "Menu:Testimonials": "Testimonials", + "TestimonialDeletionConfirmationMessage": "Are you sure you want to delete this testimonial ?", + "FullName": "Full name", + "TestimonialText": "Testimonial text", + "ExperienceYear": "Experience year", + "Position": "Title", + "YearsOfExperience": "Experience year", + "AllowedLicenses": "Allowed Licenses", + "AllowedModules": "Allowed Modules", + "ModuleName": "Module name", + "NonYet": "Non yet", + "Permission:Testimonials": "Testimonials", + "SelectCompanySizePlaceholder": "Company Size", + "SelectExperienceYearPlaceholder": "Experience year", + "SelectCountryPlaceholder": "Country", + "DeleteImageConfirmationMessage": "Are you sure you want to delete the image for \"{0}\"?", + "DeleteImageSuccessMessage": "Image successfully deleted", + "DeleteImage": "Delete Image", + "NetTerms": "Terms (Days)", + "Menu:DynamicReports": "Dynamic Reports", + "Menu:Others": "Others", + "Menu:Packs&Modules": "Packs & Modules", + "ReleaseCaches": "Release Cache", + "Menu:HeroSections": "Hero Sections", + "HeroSections": "Hero Sections", + "DynamicReports": "Dynamic Reports", + "Menu:ReportsMenu": "Reports", + "Permission:HeroSections": "Hero Sections", + "RedirectLink": "Redirect link", + "HeroSectionsDeletionConfirmationMessage": "Are you sure you want to delete the hero section?", + "AbpStudioName": "ABP Studio name", + "Permission:EditAttendees": "Edit Attendees", + "AttendeesCount": "Attendees Count", + "CreateQRCode": "Create QR Code", + "DrawTV": "Public draw on the TV", + "DrawModal": "Private draw on the modal", + "SetAsDrawable": "Set as drawable", + "SetAsNoDrawable": "Set as non-drawable", + "SetAsCompleted": "Set as completed", + "RemoveAllWinners": "Remove all winners", + "EditWinners": "Edit winners", + "EditAttendees": "Edit attendees", + "ExportAttendeesAsExcel": "Export attendees as Excel", + "DuplicateRaffle": "Duplicate raffle", + "Menu:RedisManagement": "Redis Management", + "RedisManagement": "Redis Management", + "Permission:RedisManagement": "Redis Management", + "UserCleanUp": "User Clean Up" + } } From 17c4e6be5364c13fe788216d68dbcab8a5b63fac Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 10 Jan 2025 20:13:10 +0800 Subject: [PATCH 07/65] Get the before and after changes of navigation properties. --- .../AbpEfCoreNavigationHelper.cs | 24 +++++++ .../ChangeTrackers/AbpEntityEntry.cs | 64 +++++++++++++++++ .../EntityHistory/EntityHistoryHelper.cs | 54 +++++++++++++- .../Volo/Abp/Auditing/Auditing_Tests.cs | 72 +++++++++++++++++-- 4 files changed, 206 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEfCoreNavigationHelper.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEfCoreNavigationHelper.cs index d56660be57..63ddc222bd 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEfCoreNavigationHelper.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEfCoreNavigationHelper.cs @@ -31,6 +31,14 @@ public class AbpEfCoreNavigationHelper : ITransientDependency protected virtual void EntityEntryTrackedOrStateChanged(EntityEntry entityEntry) { + if (entityEntry.State is EntityState.Unchanged or EntityState.Modified) + { + foreach (var entry in EntityEntries.Values.Where(x => x.NavigationEntries.Any())) + { + entry.UpdateNavigationEntries(); + } + } + if (entityEntry.State != EntityState.Unchanged) { return; @@ -189,6 +197,22 @@ public class AbpEfCoreNavigationHelper : ITransientDependency return navigationEntryProperty != null && navigationEntryProperty.IsModified; } + public virtual AbpNavigationEntry? GetNavigationEntry(EntityEntry entityEntry, int navigationEntryIndex) + { + var entryId = GetEntityEntryIdentity(entityEntry); + if (entryId == null) + { + return null; + } + + if (!EntityEntries.TryGetValue(entryId, out var abpEntityEntry)) + { + return null; + } + + return abpEntityEntry.NavigationEntries.ElementAtOrDefault(navigationEntryIndex); + } + protected virtual string? GetEntityEntryIdentity(EntityEntry entityEntry) { if (entityEntry.Entity is IEntity entryEntity && entryEntity.GetKeys().Length == 1) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEntityEntry.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEntityEntry.cs index 0aef48e0d1..4b8a531db1 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEntityEntry.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ChangeTrackers/AbpEntityEntry.cs @@ -1,3 +1,4 @@ +using System.Collections; using System.Collections.Generic; using System.Linq; using Microsoft.EntityFrameworkCore; @@ -32,6 +33,49 @@ public class AbpEntityEntry EntityEntry = entityEntry; NavigationEntries = EntityEntry.Navigations.Select(x => new AbpNavigationEntry(x, x.Metadata.Name)).ToList(); } + + public void UpdateNavigationEntries() + { + foreach (var navigationEntry in NavigationEntries) + { + if (IsModified || + EntityEntry.State == EntityState.Modified || + navigationEntry.IsModified || + navigationEntry.NavigationEntry.IsModified) + { + continue; + } + + var navigation = EntityEntry.Navigations.FirstOrDefault(n => n.Metadata.Name == navigationEntry.Name); + + var currentValue = AbpNavigationEntry.GetOriginalValue(navigation?.CurrentValue); + if (currentValue == null) + { + continue; + } + + switch (navigationEntry.OriginalValue) + { + case null: + navigationEntry.OriginalValue = currentValue; + break; + case IEnumerable originalValueCollection when currentValue is IEnumerable currentValueCollection: + { + var existingList = originalValueCollection.Cast().ToList(); + var newList = currentValueCollection.Cast().ToList(); + if (newList.Count > existingList.Count) + { + navigationEntry.OriginalValue = currentValue; + } + + break; + } + default: + navigationEntry.OriginalValue = currentValue; + break; + } + } + } } public class AbpNavigationEntry @@ -42,9 +86,29 @@ public class AbpNavigationEntry public bool IsModified { get; set; } + public List? OriginalValue { get; set; } + + public object? CurrentValue => NavigationEntry.CurrentValue; + public AbpNavigationEntry(NavigationEntry navigationEntry, string name) { NavigationEntry = navigationEntry; Name = name; + OriginalValue = GetOriginalValue(navigationEntry.CurrentValue); + } + + public static List? GetOriginalValue(object? currentValue) + { + if (currentValue is null) + { + return null; + } + + if (currentValue is IEnumerable enumerable) + { + return enumerable.Cast().ToList(); + } + + return new List { currentValue }; } } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs index a52ac2f437..e9dd794d73 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs @@ -1,4 +1,5 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -199,10 +200,14 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency { if (AbpEfCoreNavigationHelper.IsNavigationEntryModified(entityEntry, index)) { + var abpNavigationEntry = AbpEfCoreNavigationHelper.GetNavigationEntry(entityEntry, index); + var isCollection = navigationEntry.Metadata.IsCollection; propertyChanges.Add(new EntityPropertyChangeInfo { PropertyName = navigationEntry.Metadata.Name, - PropertyTypeFullName = navigationEntry.Metadata.ClrType.GetFirstGenericArgumentIfNullable().FullName! + PropertyTypeFullName = navigationEntry.Metadata.ClrType.GetFirstGenericArgumentIfNullable().FullName!, + OriginalValue = GetNavigationPropertyValue(abpNavigationEntry?.OriginalValue, isCollection), + NewValue = GetNavigationPropertyValue(abpNavigationEntry?.CurrentValue, isCollection) }); } } @@ -211,6 +216,53 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency return propertyChanges; } + protected virtual string? GetNavigationPropertyValue(object? entity, bool isCollection) + { + switch (entity) + { + case null: + return null; + + case IEntity entryEntity: + var keys = entryEntity.GetKeys(); + if (keys.Length == 0) + { + return null; + } + + var serializedKeys = keys.Length == 1 && !isCollection + ? keys[0]?.ToString() + : JsonSerializer.Serialize(keys); + + return serializedKeys?.TruncateWithPostfix(EntityPropertyChangeInfo.MaxValueLength); + + case IEnumerable enumerable: + var keysList = new List(); + foreach (var item in enumerable) + { + var id = GetNavigationPropertyValue(item, false); + if (id != null) + { + keysList.Add(id); + } + } + + if (keysList.Count == 0) + { + return null; + } + + var serializedKeysEnumerable = keysList.Count == 1 && !isCollection + ? keysList.First() + : JsonSerializer.Serialize(keysList); + + return serializedKeysEnumerable.TruncateWithPostfix(EntityPropertyChangeInfo.MaxValueLength); + + default: + return null; + } + } + protected virtual bool IsCreated(EntityEntry entityEntry) { return entityEntry.State == EntityState.Added; diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs b/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs index 954e6222ee..aa11d7ffde 100644 --- a/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs +++ b/framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.Json; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -512,7 +513,9 @@ public class Auditing_Tests : AbpAuditingTestBase x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && x.EntityChanges[1].PropertyChanges.Count == 1 && x.EntityChanges[1].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.OneToOne) && - x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(AppEntityWithNavigationChildOneToOne).FullName)); + x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(AppEntityWithNavigationChildOneToOne).FullName && + x.EntityChanges[1].PropertyChanges[0].OriginalValue == null && + x.EntityChanges[1].PropertyChanges[0].NewValue == entityId.ToString())); AuditingStore.ClearReceivedCalls(); #pragma warning restore 4014 @@ -539,10 +542,13 @@ public class Auditing_Tests : AbpAuditingTestBase x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && x.EntityChanges[1].PropertyChanges.Count == 1 && x.EntityChanges[1].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.OneToOne) && - x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(AppEntityWithNavigationChildOneToOne).FullName)); + x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(AppEntityWithNavigationChildOneToOne).FullName && + x.EntityChanges[1].PropertyChanges[0].OriginalValue == entityId.ToString() && + x.EntityChanges[1].PropertyChanges[0].NewValue == null)); AuditingStore.ClearReceivedCalls(); #pragma warning restore 4014 + var oneToManyId = ""; using (var scope = _auditingManager.BeginScope()) { using (var uow = _unitOfWorkManager.Begin()) @@ -561,6 +567,8 @@ public class Auditing_Tests : AbpAuditingTestBase await repository.UpdateAsync(entity); await uow.CompleteAsync(); await scope.SaveAsync(); + + oneToManyId = entity.OneToMany.First().Id.ToString(); } } @@ -572,36 +580,80 @@ public class Auditing_Tests : AbpAuditingTestBase x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && x.EntityChanges[1].PropertyChanges.Count == 1 && x.EntityChanges[1].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.OneToMany) && - x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName)); + x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName && + x.EntityChanges[1].PropertyChanges[0].OriginalValue == null && + x.EntityChanges[1].PropertyChanges[0].NewValue == $"[\"{oneToManyId}\"]")); AuditingStore.ClearReceivedCalls(); #pragma warning restore 4014 + var newOneToManyId = ""; using (var scope = _auditingManager.BeginScope()) { using (var uow = _unitOfWorkManager.Begin()) { var entity = await repository.GetAsync(entityId); - entity.OneToMany = null; + entity.OneToMany.Add(new AppEntityWithNavigationChildOneToMany + { + AppEntityWithNavigationId = entity.Id, + ChildName = "ChildName2" + }); await repository.UpdateAsync(entity); await uow.CompleteAsync(); await scope.SaveAsync(); + + newOneToManyId = JsonSerializer.Serialize(entity.OneToMany.Select(x => x.Id).ToList()); } } #pragma warning disable 4014 AuditingStore.Received().SaveAsync(Arg.Is(x => x.EntityChanges.Count == 2 && - x.EntityChanges[0].ChangeType == EntityChangeType.Deleted && + x.EntityChanges[0].ChangeType == EntityChangeType.Created && x.EntityChanges[0].EntityTypeFullName == typeof(AppEntityWithNavigationChildOneToMany).FullName && x.EntityChanges[1].ChangeType == EntityChangeType.Updated && x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && x.EntityChanges[1].PropertyChanges.Count == 1 && x.EntityChanges[1].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.OneToMany) && - x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName)); + x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName && + x.EntityChanges[1].PropertyChanges[0].OriginalValue == $"[\"{oneToManyId}\"]" && + x.EntityChanges[1].PropertyChanges[0].NewValue == newOneToManyId)); + AuditingStore.ClearReceivedCalls(); +#pragma warning restore 4014 + + using (var scope = _auditingManager.BeginScope()) + { + using (var uow = _unitOfWorkManager.Begin()) + { + var entity = await repository.GetAsync(entityId); + + newOneToManyId = JsonSerializer.Serialize(entity.OneToMany.Select(x => x.Id).ToList()); + + entity.OneToMany = null; + + await repository.UpdateAsync(entity); + await uow.CompleteAsync(); + await scope.SaveAsync(); + } + } + +#pragma warning disable 4014 + AuditingStore.Received().SaveAsync(Arg.Is(x => x.EntityChanges.Count == 3 && + x.EntityChanges[0].ChangeType == EntityChangeType.Deleted && + x.EntityChanges[0].EntityTypeFullName == typeof(AppEntityWithNavigationChildOneToMany).FullName && + x.EntityChanges[1].ChangeType == EntityChangeType.Deleted && + x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigationChildOneToMany).FullName && + x.EntityChanges[2].ChangeType == EntityChangeType.Updated && + x.EntityChanges[2].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && + x.EntityChanges[2].PropertyChanges.Count == 1 && + x.EntityChanges[2].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.OneToMany) && + x.EntityChanges[2].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName && + x.EntityChanges[2].PropertyChanges[0].OriginalValue == newOneToManyId && + x.EntityChanges[2].PropertyChanges[0].NewValue == null)); AuditingStore.ClearReceivedCalls(); #pragma warning restore 4014 + var manyToManyId = ""; using (var scope = _auditingManager.BeginScope()) { using (var uow = _unitOfWorkManager.Begin()) @@ -619,6 +671,8 @@ public class Auditing_Tests : AbpAuditingTestBase await repository.UpdateAsync(entity); await uow.CompleteAsync(); await scope.SaveAsync(); + + manyToManyId = entity.ManyToMany.First().Id.ToString(); } } @@ -630,7 +684,9 @@ public class Auditing_Tests : AbpAuditingTestBase x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigations).FullName && x.EntityChanges[1].PropertyChanges.Count == 1 && x.EntityChanges[1].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.ManyToMany) && - x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName)); + x.EntityChanges[1].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName && + x.EntityChanges[1].PropertyChanges[0].OriginalValue == null && + x.EntityChanges[1].PropertyChanges[0].NewValue == $"[\"{manyToManyId}\"]")); #pragma warning restore 4014 @@ -655,6 +711,8 @@ public class Auditing_Tests : AbpAuditingTestBase x.EntityChanges[0].PropertyChanges.Count == 1 && x.EntityChanges[0].PropertyChanges[0].PropertyName == nameof(AppEntityWithNavigations.ManyToMany) && x.EntityChanges[0].PropertyChanges[0].PropertyTypeFullName == typeof(List).FullName && + x.EntityChanges[0].PropertyChanges[0].OriginalValue == $"[\"{manyToManyId}\"]" && + x.EntityChanges[0].PropertyChanges[0].NewValue == null && x.EntityChanges[1].ChangeType == EntityChangeType.Updated && x.EntityChanges[1].EntityTypeFullName == typeof(AppEntityWithNavigationChildManyToMany).FullName && From bc4af031857d6dbe57f0b749cd1531a8ad752f2a Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 12 Jan 2025 13:59:53 +0800 Subject: [PATCH 08/65] Update EntityHistoryHelper.cs --- .../EntityHistory/EntityHistoryHelper.cs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs index e9dd794d73..6b64c0c51a 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs @@ -225,16 +225,7 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency case IEntity entryEntity: var keys = entryEntity.GetKeys(); - if (keys.Length == 0) - { - return null; - } - - var serializedKeys = keys.Length == 1 && !isCollection - ? keys[0]?.ToString() - : JsonSerializer.Serialize(keys); - - return serializedKeys?.TruncateWithPostfix(EntityPropertyChangeInfo.MaxValueLength); + return keys.Length == 0 ? null : string.Join(", ",keys).TruncateWithPostfix(EntityPropertyChangeInfo.MaxValueLength); case IEnumerable enumerable: var keysList = new List(); From 1806e30b59b85974cec92138cc57aeba8951d3dc Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 12 Jan 2025 16:49:08 +0800 Subject: [PATCH 09/65] Added `AuditLogEntityTypeFullNameConverter`. --- .../AuditLogEntityTypeFullNameConverter.cs | 39 ++++++++++++++++ .../AuditLogInfoToAuditLogConverter.cs | 18 +++++++- ...ditLogEntityTypeFullNameConverter_Tests.cs | 6 +++ ...ditLogEntityTypeFullNameConverter_Tests.cs | 9 ++++ ...ditLogEntityTypeFullNameConverter_Tests.cs | 46 +++++++++++++++++++ 5 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter.cs create mode 100644 modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AuditLogEntityTypeFullNameConverter_Tests.cs create mode 100644 modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogEntityTypeFullNameConverter_Tests.cs create mode 100644 modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter_Tests.cs diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter.cs new file mode 100644 index 0000000000..f50aec3d92 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter.cs @@ -0,0 +1,39 @@ +using System; +using System.Text.RegularExpressions; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AuditLogging; + +public class AuditLogEntityTypeFullNameConverter : ITransientDependency +{ + public virtual string Convert(string typeFullName) + { + var genericType = Regex.Match(typeFullName, @"(.+?)`1\[\["); + if (!genericType.Success) + { + return ReplaceGenericSymbol(typeFullName); + } + + var type = Regex.Match(typeFullName, @"`1\[\[(.+?), "); + if (!type.Success) + { + return typeFullName; + } + + if (type.Groups[1].Value.Contains("System.Nullable`1[[")) + { + return genericType.Groups[1].Value + "<" + type.Groups[1].Value.Replace("System.Nullable`1[[", "") + "?>"; + } + + return genericType.Groups[1].Value.Contains("System.Nullable") + ? type.Groups[1].Value + "?" + : genericType.Groups[1].Value + "<" + ReplaceGenericSymbol(type.Groups[1].Value) + ">"; + } + + protected virtual string ReplaceGenericSymbol(string typeFullName) + { + return typeFullName.Contains("`1+") + ? typeFullName.Substring(0, typeFullName.IndexOf("[[", StringComparison.Ordinal)).Replace("`1+", ".") + : typeFullName; + } +} diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs index 94f0622714..30b0495658 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo/Abp/AuditLogging/AuditLogInfoToAuditLogConverter.cs @@ -19,12 +19,19 @@ public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, protected IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; } protected IJsonSerializer JsonSerializer { get; } protected AbpExceptionHandlingOptions ExceptionHandlingOptions { get; } + protected AuditLogEntityTypeFullNameConverter AuditLogEntityTypeFullNameConverter { get; } - public AuditLogInfoToAuditLogConverter(IGuidGenerator guidGenerator, IExceptionToErrorInfoConverter exceptionToErrorInfoConverter, IJsonSerializer jsonSerializer, IOptions exceptionHandlingOptions) + public AuditLogInfoToAuditLogConverter( + IGuidGenerator guidGenerator, + IExceptionToErrorInfoConverter exceptionToErrorInfoConverter, + IJsonSerializer jsonSerializer, + IOptions exceptionHandlingOptions, + AuditLogEntityTypeFullNameConverter auditLogEntityTypeFullNameConverter) { GuidGenerator = guidGenerator; ExceptionToErrorInfoConverter = exceptionToErrorInfoConverter; JsonSerializer = jsonSerializer; + AuditLogEntityTypeFullNameConverter = auditLogEntityTypeFullNameConverter; ExceptionHandlingOptions = exceptionHandlingOptions.Value; } @@ -41,6 +48,15 @@ public class AuditLogInfoToAuditLogConverter : IAuditLogInfoToAuditLogConverter, } } + foreach (var entityChange in auditLogInfo.EntityChanges ?? Enumerable.Empty()) + { + entityChange.EntityTypeFullName = AuditLogEntityTypeFullNameConverter.Convert(entityChange.EntityTypeFullName); + foreach (var propertyChange in entityChange.PropertyChanges ?? Enumerable.Empty()) + { + propertyChange.PropertyTypeFullName = AuditLogEntityTypeFullNameConverter.Convert(propertyChange.PropertyTypeFullName); + } + } + var entityChanges = auditLogInfo .EntityChanges? .Select(entityChangeInfo => new EntityChange(GuidGenerator, auditLogId, entityChangeInfo, tenantId: auditLogInfo.TenantId)) diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AuditLogEntityTypeFullNameConverter_Tests.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AuditLogEntityTypeFullNameConverter_Tests.cs new file mode 100644 index 0000000000..db57347815 --- /dev/null +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo/Abp/AuditLogging/EntityFrameworkCore/AuditLogEntityTypeFullNameConverter_Tests.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.AuditLogging.EntityFrameworkCore; + +public class AuditLogEntityTypeFullNameConverter_Tests : AuditLogEntityTypeFullNameConverter_Tests +{ + +} diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogEntityTypeFullNameConverter_Tests.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogEntityTypeFullNameConverter_Tests.cs new file mode 100644 index 0000000000..5c803a2a44 --- /dev/null +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AuditLogEntityTypeFullNameConverter_Tests.cs @@ -0,0 +1,9 @@ +using Xunit; + +namespace Volo.Abp.AuditLogging.MongoDB; + +[Collection(MongoTestCollection.Name)] +public class AuditLogEntityTypeFullNameConverter_Tests : AuditLogEntityTypeFullNameConverter_Tests +{ + +} diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter_Tests.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter_Tests.cs new file mode 100644 index 0000000000..2aac19cd42 --- /dev/null +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo/Abp/AuditLogging/AuditLogEntityTypeFullNameConverter_Tests.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using Shouldly; +using Volo.Abp.Modularity; +using Xunit; + +namespace Volo.Abp.AuditLogging; + +public abstract class AuditLogEntityTypeFullNameConverter_Tests : AuditLoggingTestBase + where TStartupModule : IAbpModule +{ + private readonly AuditLogEntityTypeFullNameConverter _typeFullNameConverter; + + protected AuditLogEntityTypeFullNameConverter_Tests() + { + _typeFullNameConverter = GetRequiredService(); + } + + [Fact] + public void AuditLogEntityTypeFullNameConverter_Test() + { + _typeFullNameConverter.Convert("MyType").ShouldBe("MyType"); + + _typeFullNameConverter.Convert(typeof(string).FullName!).ShouldBe("System.String"); + _typeFullNameConverter.Convert(typeof(Guid).FullName!).ShouldBe("System.Guid"); + _typeFullNameConverter.Convert(typeof(Guid?).FullName!).ShouldBe("System.Guid?"); + _typeFullNameConverter.Convert(typeof(int).FullName!).ShouldBe("System.Int32"); + _typeFullNameConverter.Convert(typeof(long?).FullName!).ShouldBe("System.Int64?"); + _typeFullNameConverter.Convert(typeof(MyClass).FullName!).ShouldBe("Volo.Abp.AuditLogging.AuditLogEntityTypeFullNameConverter_Tests.MyClass"); + + _typeFullNameConverter.Convert(typeof(ICollection).FullName!).ShouldBe($"System.Collections.Generic.ICollection"); + _typeFullNameConverter.Convert(typeof(Collection).FullName!).ShouldBe($"System.Collections.ObjectModel.Collection"); + _typeFullNameConverter.Convert(typeof(List).FullName!).ShouldBe($"System.Collections.Generic.List"); + _typeFullNameConverter.Convert(typeof(List).FullName!).ShouldBe($"System.Collections.Generic.List"); + + _typeFullNameConverter.Convert(typeof(ICollection).FullName!).ShouldBe($"System.Collections.Generic.ICollection"); + _typeFullNameConverter.Convert(typeof(Collection).FullName!).ShouldBe($"System.Collections.ObjectModel.Collection"); + _typeFullNameConverter.Convert(typeof(List).FullName!).ShouldBe($"System.Collections.Generic.List"); + } + + public class MyClass + { + + } +} From 6dc51e21f01e4f18937ab5a0032515fd938841f5 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 13 Jan 2025 10:19:24 +0800 Subject: [PATCH 10/65] Update en.json --- .../Volo/Abp/AuditLogging/Localization/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json index d4b3ef586c..3351816d31 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo/Abp/AuditLogging/Localization/en.json @@ -48,7 +48,7 @@ "ChangeType": "Change type", "ChangeTime": "Time", "NewValue": "New value", - "OriginalValue": "Original value", + "OriginalValue": "Old value", "PropertyName": "Property name", "PropertyTypeFullName": "Property Type Full Name", "Yes": "Yes", From deba83b9eb6fe3a2246e75151a4bd9748f4cbd7f Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 13 Jan 2025 15:25:12 +0800 Subject: [PATCH 11/65] Create MongoDB-Driver-2-to-3.md --- .../migration-guides/MongoDB-Driver-2-to-3.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md diff --git a/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md new file mode 100644 index 0000000000..18392bc991 --- /dev/null +++ b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md @@ -0,0 +1,58 @@ +# Migrating from MongoDB Driver 2 to 3 + +## Introduction + +The release of MongoDB Driver 3 includes numerous user-requested fixes and improvements that were deferred in previous versions due to backward compatibility concerns. It also features internal improvements to reduce technical debt and enhance maintainability. One major update is the removal of a significant portion of the public API (primarily from `MongoDB.Driver.Core`), which was not intended for public use. The removed APIs were marked as deprecated in version 2.30.0. + +For a complete list of breaking changes and upgrade guidelines, please refer to the [upgrade guide](https://www.mongodb.com/docs/drivers/csharp/current/upgrade/v3/). + +## Repository Changes + +Some method signatures in the `MongoDbRepository` class have been updated, primarily to accommodate the removal of `IMongoQueryable`. The specific changes are as follows: + +- The `GetMongoQueryable` method has been renamed to `GetQueryable`. +- The `GetMongoQueryableAsync` method has been renamed to `GetQueryableAsync`. + +Please update your application by searching for and replacing these method calls. + +> The return value of the `GetQueryableAsync` method is `IQueryable`, which can be used directly to perform queries, similar to EF Core. Remove all instances of `IMongoQueryable` in your project and replace them with `IQueryable`. + +**Previous code example:** + +```csharp +var myEntity = await (await GetMongoQueryableAsync()).As>().FirstOrDefaultAsync(x => x.Id == id); +``` + +**Updated code example:** + +```csharp +var myEntity = await GetQueryableAsync().FirstOrDefaultAsync(x => x.Id == id); +``` + +## Unit Test Changes + +Previously, we used the [EphemeralMongo](https://github.com/asimmon/ephemeral-mongo) library for unit testing. However, it does not support the latest version of [MongoDB.Driver 3.x](https://github.com/mongodb/mongo-go-driver). You should replace it with [MongoSandbox](https://github.com/wassim-k/MongoSandbox). + +In your unit test project files, replace the following: + +```xml + + + + +``` + +With: + +```xml + + + + +``` + +In your unit test classes, replace `using EphemeralMongo` with `using MongoSandbox`. + +## Official Upgrade Guide + +We recommend reviewing the [upgrade guide](https://www.mongodb.com/docs/drivers/csharp/current/upgrade/v3/) for MongoDB Driver 3 to ensure a smooth migration process. From e2390f1460ff9012374d534e8a9aff23f061bd10 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 13 Jan 2025 16:39:27 +0800 Subject: [PATCH 12/65] Update MongoOrganizationUnitRepository.cs --- .../Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs index 037c6f39ac..14514e0ab4 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoOrganizationUnitRepository.cs @@ -68,7 +68,7 @@ public class MongoOrganizationUnitRepository bool includeDetails = false, CancellationToken cancellationToken = default) { - return await (await GetMongoQueryableAsync(cancellationToken)) + return await (await GetQueryableAsync(cancellationToken)) .Where(x => displayNames.Contains(x.DisplayName)) .ToListAsync(GetCancellationToken(cancellationToken)); } From 50ff4408d2668f1cf0ecd45c5e46a163a06677d2 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 13 Jan 2025 17:20:25 +0800 Subject: [PATCH 13/65] Update MongoDB-Driver-2-to-3.md --- .../en/release-info/migration-guides/MongoDB-Driver-2-to-3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md index 18392bc991..6e92356edc 100644 --- a/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md +++ b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md @@ -4,11 +4,11 @@ The release of MongoDB Driver 3 includes numerous user-requested fixes and improvements that were deferred in previous versions due to backward compatibility concerns. It also features internal improvements to reduce technical debt and enhance maintainability. One major update is the removal of a significant portion of the public API (primarily from `MongoDB.Driver.Core`), which was not intended for public use. The removed APIs were marked as deprecated in version 2.30.0. -For a complete list of breaking changes and upgrade guidelines, please refer to the [upgrade guide](https://www.mongodb.com/docs/drivers/csharp/current/upgrade/v3/). +Please refer to the [upgrade guide](https://www.mongodb.com/docs/drivers/csharp/current/upgrade/v3/) for a complete list of breaking changes and upgrade guidelines. ## Repository Changes -Some method signatures in the `MongoDbRepository` class have been updated, primarily to accommodate the removal of `IMongoQueryable`. The specific changes are as follows: +Some method signatures in the `MongoDbRepository` class have been updated because the `IMongoQueryable` has been removed. The specific changes are as follows: - The `GetMongoQueryable` method has been renamed to `GetQueryable`. - The `GetMongoQueryableAsync` method has been renamed to `GetQueryableAsync`. From 549095a5968a20b60db037911412c76cf7201217 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 17 Jan 2025 14:43:33 +0800 Subject: [PATCH 14/65] Update build-and-test.yml --- .github/workflows/build-and-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 42c241dd23..7073e826e3 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -47,7 +47,7 @@ permissions: jobs: build-test: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 timeout-minutes: 40 if: ${{ !github.event.pull_request.draft }} steps: From 59476b1d6ec06e0c74f40149d454fbc864ef0c5a Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 18 Jan 2025 18:35:03 +0800 Subject: [PATCH 15/65] Preserve `GetMongoQueryable/GetMongoQueryableAsync` for backward compatilibity. --- .../MongoDB/IMongoDbRepository.cs | 7 +++- .../Repositories/MongoDB/MongoDbRepository.cs | 32 +++++++++++++------ .../MongoDbCoreRepositoryExtensions.cs | 21 +++++++++--- 3 files changed, 45 insertions(+), 15 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 d1c152c98f..acd905b8c6 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 @@ -3,7 +3,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; -using MongoDB.Driver.Linq; using Volo.Abp.Domain.Entities; namespace Volo.Abp.Domain.Repositories.MongoDB; @@ -21,6 +20,12 @@ public interface IMongoDbRepository : IRepository Task> GetCollectionAsync(CancellationToken cancellationToken = default); + [Obsolete("Use GetQueryable method.")] + IQueryable GetMongoQueryable(); + + [Obsolete("Use GetQueryableAsync method.")] + Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); + Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); Task> GetAggregateAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null); 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 dcbe447f99..fdc7464d6b 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 @@ -499,7 +499,7 @@ public class MongoDbRepository await DeleteManyAsync(entities, autoSave, cancellationToken); } - public override async Task DeleteDirectAsync(Expression> predicate, CancellationToken cancellationToken = default) + public async override Task DeleteDirectAsync(Expression> predicate, CancellationToken cancellationToken = default) { cancellationToken = GetCancellationToken(cancellationToken); @@ -523,6 +523,21 @@ public class MongoDbRepository } } + [Obsolete("Use GetQueryableAsync method.")] + protected override IQueryable GetQueryable() + { + return ApplyDataFilters( + SessionHandle != null + ? Collection.AsQueryable(SessionHandle) + : Collection.AsQueryable() + ); + } + + public async override Task> GetQueryableAsync() + { + return await GetQueryableAsync(); + } + public async override Task FindAsync( Expression> predicate, bool includeDetails = true, @@ -536,21 +551,18 @@ public class MongoDbRepository } [Obsolete("Use GetQueryableAsync method.")] - protected override IQueryable GetQueryable() + public virtual IQueryable GetMongoQueryable() { - return ApplyDataFilters( - SessionHandle != null - ? Collection.AsQueryable(SessionHandle) - : Collection.AsQueryable() - ); + return GetQueryable(); } - public async override Task> GetQueryableAsync() + [Obsolete("Use GetQueryableAsync method.")] + public virtual Task> GetMongoQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null) { - return await GetQueryableAsync(); + return GetQueryableAsync(cancellationToken, options); } - public async Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null) + public virtual async Task> GetQueryableAsync(CancellationToken cancellationToken = default, AggregateOptions? options = null) { return await GetQueryableAsync(cancellationToken, options); } 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 0c1f900066..bbbe89b279 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 @@ -3,7 +3,6 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using MongoDB.Driver; -using MongoDB.Driver.Linq; using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories.MongoDB; @@ -37,17 +36,31 @@ public static class MongoDbCoreRepositoryExtensions return repository.ToMongoDbRepository().GetCollectionAsync(cancellationToken); } + [Obsolete("Use GetQueryableAsync method.")] + public static IQueryable GetMongoQueryable(this IReadOnlyBasicRepository repository) + where TEntity : class, IEntity + { + return repository.ToMongoDbRepository().GetMongoQueryable(); + } + + [Obsolete("Use GetQueryableAsync method.")] + public static Task> GetMongoQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + where TEntity : class, IEntity + { + return repository.ToMongoDbRepository().GetMongoQueryableAsync(cancellationToken, aggregateOptions); + } + [Obsolete("Use GetQueryableAsync method.")] public static IQueryable GetQueryable(this IReadOnlyBasicRepository repository) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetQueryable(); + return repository.ToMongoDbRepository().GetMongoQueryable(); } - public static Task> GetQueryableAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) + public static Task> GetQueryableAsync(this IReadOnlyBasicRepository repository) where TEntity : class, IEntity { - return repository.ToMongoDbRepository().GetQueryableAsync(cancellationToken, aggregateOptions); + return repository.ToMongoDbRepository().GetQueryableAsync(); } public static Task> GetAggregateAsync(this IReadOnlyBasicRepository repository, CancellationToken cancellationToken = default, AggregateOptions? aggregateOptions = null) From bda4215f2a1d77ab4e0158dec81219d506047931 Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 18 Jan 2025 18:47:23 +0800 Subject: [PATCH 16/65] Update MongoDB-Driver-2-to-3.md --- .../release-info/migration-guides/MongoDB-Driver-2-to-3.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md index 6e92356edc..79c0d70573 100644 --- a/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md +++ b/docs/en/release-info/migration-guides/MongoDB-Driver-2-to-3.md @@ -10,8 +10,9 @@ Please refer to the [upgrade guide](https://www.mongodb.com/docs/drivers/csharp/ Some method signatures in the `MongoDbRepository` class have been updated because the `IMongoQueryable` has been removed. The specific changes are as follows: -- The `GetMongoQueryable` method has been renamed to `GetQueryable`. -- The `GetMongoQueryableAsync` method has been renamed to `GetQueryableAsync`. +- The new `GetQueryableAsync` method has been added to return `IQueryable`. +- The `GetMongoQueryable` and `GetMongoQueryableAsync` methods return `IQueryable` instead of `IMongoQueryable`, +- The `GetMongoQueryable` and `GetMongoQueryableAsync` methods are marked as obsolete, You should use the new `GetQueryableAsync` method instead. Please update your application by searching for and replacing these method calls. From a3eaa8a204a7dfbee1a0978c9a09ace7b26585a4 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Sun, 19 Jan 2025 13:54:09 +0800 Subject: [PATCH 17/65] Update common.ps1 --- build/common.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/common.ps1 b/build/common.ps1 index f1cc59cf6c..51ab56d972 100644 --- a/build/common.ps1 +++ b/build/common.ps1 @@ -39,7 +39,7 @@ if ($full -eq "-f") "../source-code" ) if ($env:OS -eq "Windows_NT") { - solutionPaths += "../templates/wpf" + $solutionPaths += "../templates/wpf" } }else{ Write-host "" From 246a6f550053db5698b4b715729e8da20d5bf198 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 20 Jan 2025 09:16:35 +0800 Subject: [PATCH 18/65] Get navigation property even if `SaveEntityHistoryWhenNavigationChanges` is `false`. --- .../EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs index 6b64c0c51a..d50e6b89f6 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs @@ -194,7 +194,7 @@ public class EntityHistoryHelper : IEntityHistoryHelper, ITransientDependency } } - if (Options.SaveEntityHistoryWhenNavigationChanges && AbpEfCoreNavigationHelper != null) + if (AbpEfCoreNavigationHelper != null) { foreach (var (navigationEntry, index) in entityEntry.Navigations.Select((value, i) => ( value, i ))) { From 11233e58ab431af5bed48101e5dbf44d2b19f5fe Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 20 Jan 2025 15:58:40 +0800 Subject: [PATCH 19/65] Fix lazy-expand menu click problem --- modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js index 33f0f3b539..3012da1e56 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js @@ -376,7 +376,7 @@ var doc = doc || {}; var initLazyExpandNavigation = function(){ $("li .lazy-expand").off('click'); - $("li .lazy-expand a").on('click', function(e){ + $("li .lazy-expand").children("a").on('click', function(e){ if($(this).attr("href") !== "javascript:;"){ e.stopPropagation(); } From 3a4a8ee33b599c5f556359ecd49dd439c09295ba Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 21 Jan 2025 09:48:13 +0800 Subject: [PATCH 20/65] Add `LogoUrl ` and `AppName ` to account layout. Resolve #21941 --- .../Themes/Basic/Layouts/Account.cshtml | 4 ++++ .../wwwroot/themes/basic/logo.svg | 10 ++++++++++ 2 files changed, 14 insertions(+) create mode 100644 modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/logo.svg diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml index 02adac253b..1e743abf8a 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml @@ -57,6 +57,10 @@
+
+ @BrandingProvider.AppName +

@BrandingProvider.AppName

+
@if (MultiTenancyOptions.Value.IsEnabled && (TenantResolveResultAccessor.Result?.AppliedResolvers?.Contains(CookieTenantResolveContributor.ContributorName) == true || TenantResolveResultAccessor.Result?.AppliedResolvers?.Contains(QueryStringTenantResolveContributor.ContributorName) == true)) diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/logo.svg b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/logo.svg new file mode 100644 index 0000000000..2475fb48d1 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + From 69c80795d661bb9e003e44f554bc9cb1b2bce291 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 21 Jan 2025 11:51:08 +0300 Subject: [PATCH 21/65] Initial commit for v9.1 release post. --- .../2025-01-21 v9_1_Preview/POST.md | 82 ++++++++++++++++++ .../studio-switch-to-preview.png | Bin 0 -> 34416 bytes 2 files changed, 82 insertions(+) create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/studio-switch-to-preview.png diff --git a/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md new file mode 100644 index 0000000000..55ad92fee3 --- /dev/null +++ b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md @@ -0,0 +1,82 @@ +# ABP Platform 9.1 RC Has Been Released + +![](cover-image.png) + +We are happy to release [ABP](https://abp.io) version **9.1 RC** (Release Candidate). This blog post introduces the new features and important changes in this new version. + +Try this version and provide feedback for a more stable version of ABP v9.1! Thanks to you in advance. + +## Get Started with the 9.1 RC + +You can check the [Get Started page](https://abp.io/get-started) to see how to get started with ABP. You can either download [ABP Studio](https://abp.io/get-started#abp-studio-tab) (**recommended**, if you prefer a user-friendly GUI application - desktop application) or use the [ABP CLI](https://abp.io/docs/latest/cli). + +By default, ABP Studio uses stable versions to create solutions. Therefore, if you want to create a solution with a preview version, first you need to create a solution and then switch your solution to the preview version from the ABP Studio UI: + +![](studio-switch-to-preview.png) + +## Migration Guide + +There are no breaking changes in this version that would affect your application. + +## What's New with ABP v9.1? + +In this section, I will introduce some major features released in this version. +Here is a brief list of titles explained in the next sections: + +* Angular 19 Upgrade +* OpenIddict v6.0 Update +* New Blazor WASM Bundling System +* Improved Distributed Event Handler Performance +* Lazy Expandable Documentation Feature +* Idle Session Warning Feature + +### Angular 19 Upgrade + +We've upgraded the Angular templates and packages to Angular 19. This upgrade brings the latest features and improvements from the Angular ecosystem to ABP-based applications, including better performance and development experience. + +### OpenIddict v6.0 Update + +The OpenIddict integration has been updated to version 6.0, bringing enhanced security features and improved authentication capabilities. This update ensures your applications stay current with the latest security standards and best practices. + +### New Blazor WASM Bundling System + +We've implemented a new bundling system for Blazor WebAssembly applications that significantly improves the application loading performance and development experience. This new system provides better control over asset management and optimizes the delivery of your Blazor WASM applications. + +### Improved Distributed Event Handler Performance + +We've enhanced the distributed event handling system to avoid global blocking scenarios. This improvement allows for better scalability and performance in distributed systems by implementing a more efficient event handling mechanism that reduces bottlenecks in high-load scenarios. + +### Lazy Expandable Documentation Feature + +A new lazy expandable feature has been added to the documentation system, making it easier to navigate through large documentation sections. This feature improves the user experience by allowing readers to expand and collapse sections as needed, making documentation more manageable and easier to read. + +### Idle Session Warning Feature + +We've introduced a new idle session warning feature that helps manage user sessions more effectively. This feature alerts users when their session is about to expire due to inactivity, allowing them to take action to maintain their session, enhancing the user experience and security of your applications. + +### Others + +Some other highlights from this release: + +* Updated Iyzico NuGet packages to the latest version, which is used in the [ABP's Payment Module](https://abp.io/docs/latest/modules/payment#payment-module-pro). +* Removed optional _secondaryIds_ from path. See: [#21307](https://github.com/abpframework/abp/pull/21307) +* [CMS Kit Pro](https://abp.io/docs/latest/modules/cms-kit-pro): Added automatic deletion of comments when a blog post is deleted - comments are now automatically removed when their associated blog post is deleted. + +## Community News + +### New ABP Community Articles + +There are exciting articles contributed by the ABP community as always. I will highlight some of them here: + +* [Integrating ABP Modules in Your ASP.NET Core Web API Project. A Step-by-Step Guide](https://abp.io/community/articles/integrating-abp-modules-in-your-asp.net-core-web-api-project.-a-stepbystep-guide-jtbyosnr) by [Sajankumar Vijayan](https://abp.io/community/members/connect) +* [ABP Framework: Background Jobs vs Background Workers](https://abp.io/community/articles/abp-framework-background-jobs-vs-background-workers-when-to-use-which-t98pzjv6) — When to Use Which? by [Alper Ebiçoğlu](https://twitter.com/alperebicoglu) +* [The new Unit Test structure in ABP application](https://abp.io/community/articles/the-new-unit-test-structure-in-abp-application-4vvvp2oy) by [Liming Ma](https://github.com/maliming) +* [How to Use OpenAI API with ABP Framework](https://abp.io/community/articles/how-to-use-openai-api-with-abp-framework-rsfvihla) by [Berkan Şaşmaz](https://github.com/berkansasmaz) + +Thanks to the ABP Community for all the content they have published. You can also [post your ABP-related (text or video) content](https://abp.io/community/posts/submit) to the ABP Community. + +## Conclusion + +This version comes with some new features and a lot of enhancements to the existing features. You can see the [Road Map](https://abp.io/docs/9.1/release-info/road-map) documentation to learn about the release schedule and planned features for the next releases. Please try ABP v9.1 RC and provide feedback to help us release a more stable version. + +Thanks for being a part of this community! \ No newline at end of file diff --git a/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/studio-switch-to-preview.png b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/studio-switch-to-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..32f6d01edbdbc4538030cb3cb992348cf9beb4ab GIT binary patch literal 34416 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 literal 0 HcmV?d00001 From ac8e482d4f3101ec4ec87845dbf397c5562e2b23 Mon Sep 17 00:00:00 2001 From: voloagent Date: Tue, 21 Jan 2025 13:08:42 +0300 Subject: [PATCH 22/65] Update_NPM_Packages --- ...lo.Abp.Account.HttpApi.abppkg.analyze.json | 101 ----- .../Volo.Abp.Account.Web.abppkg.analyze.json | 41 -- ...ng.EntityFrameworkCore.abppkg.analyze.json | 9 +- ...bs.EntityFrameworkCore.abppkg.analyze.json | 9 +- .../package.json | 6 +- .../yarn.lock | 276 ++++++------ .../package.json | 4 +- .../yarn.lock | 280 ++++++------ ...se.EntityFrameworkCore.abppkg.analyze.json | 15 +- .../Volo.BloggingTestApp.abppkg.analyze.json | 2 +- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 318 +++++++------- ...Blogging.Admin.HttpApi.abppkg.analyze.json | 84 ---- .../Volo.Blogging.Domain.abppkg.analyze.json | 77 ++++ ...ng.EntityFrameworkCore.abppkg.analyze.json | 39 +- .../Volo.Blogging.HttpApi.abppkg.analyze.json | 294 ------------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 258 +++++------ modules/cms-kit/angular/package.json | 10 +- .../angular/projects/cms-kit/package.json | 4 +- ...lo.CmsKit.HttpApi.Host.abppkg.analyze.json | 2 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 258 +++++------ .../Volo.CmsKit.Web.Host.abppkg.analyze.json | 2 +- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 258 +++++------ .../host/Volo.CmsKit.Web.Unified/package.json | 4 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 404 +++++++++--------- ....Application.Contracts.abppkg.analyze.json | 196 --------- ...Kit.Common.Application.abppkg.analyze.json | 136 ++++++ ...o.CmsKit.Domain.Shared.abppkg.analyze.json | 11 - .../Volo.CmsKit.Domain.abppkg.analyze.json | 82 ++++ ...it.EntityFrameworkCore.abppkg.analyze.json | 87 +++- ....Application.Contracts.abppkg.analyze.json | 14 - ...Kit.Public.Application.abppkg.analyze.json | 41 ++ .../VoloDocs.Web.abppkg.analyze.json | 7 +- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 318 +++++++------- ....Application.Contracts.abppkg.analyze.json | 35 -- ...olo.Docs.Admin.HttpApi.abppkg.analyze.json | 263 ------------ .../Volo.Docs.Domain.abppkg.analyze.json | 77 ++++ ...cs.EntityFrameworkCore.abppkg.analyze.json | 21 +- .../Volo.Docs.HttpApi.abppkg.analyze.json | 222 ---------- .../Volo.Docs.Web.abppkg.analyze.json | 32 -- ...atureManagement.Domain.abppkg.analyze.json | 41 ++ ...nt.EntityFrameworkCore.abppkg.analyze.json | 21 +- ...tureManagement.HttpApi.abppkg.analyze.json | 62 --- ...lo.Abp.Identity.Domain.abppkg.analyze.json | 59 +++ ...ty.EntityFrameworkCore.abppkg.analyze.json | 51 ++- ...o.Abp.Identity.HttpApi.abppkg.analyze.json | 317 -------------- ....IdentityServer.Domain.abppkg.analyze.json | 172 ++++++++ ...er.EntityFrameworkCore.abppkg.analyze.json | 141 +++++- ...Iddict.Demo.Client.Mvc.abppkg.analyze.json | 68 +++ .../app/OpenIddict.Demo.Server/package.json | 2 +- modules/openiddict/app/angular/package.json | 20 +- ...ct.EntityFrameworkCore.abppkg.analyze.json | 27 +- ...ssionManagement.Domain.abppkg.analyze.json | 41 ++ ...nt.EntityFrameworkCore.abppkg.analyze.json | 21 +- ...sionManagement.HttpApi.abppkg.analyze.json | 45 -- .../package.json | 2 +- .../yarn.lock | 258 +++++------ ...Management.Application.abppkg.analyze.json | 41 ++ ...ttingManagement.Domain.abppkg.analyze.json | 41 ++ ...nt.EntityFrameworkCore.abppkg.analyze.json | 15 +- ...tingManagement.HttpApi.abppkg.analyze.json | 70 --- ...enantManagement.Domain.abppkg.analyze.json | 54 +++ ...nt.EntityFrameworkCore.abppkg.analyze.json | 15 +- ...nantManagement.HttpApi.abppkg.analyze.json | 131 ------ .../package.json | 4 +- .../yarn.lock | 292 ++++++------- npm/lerna.json | 2 +- npm/ng-packs/package.json | 4 +- .../packages/account-core/package.json | 6 +- npm/ng-packs/packages/account/package.json | 6 +- npm/ng-packs/packages/components/package.json | 6 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/generators/package.json | 2 +- npm/ng-packs/packages/identity/package.json | 8 +- npm/ng-packs/packages/oauth/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 6 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 6 +- .../packages/theme-shared/package.json | 4 +- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +- .../package.json | 4 +- .../package.json | 34 +- 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 +- .../bootstrap-daterangepicker/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.admin/package.json | 14 +- npm/packs/cms-kit.public/package.json | 6 +- npm/packs/cms-kit/package.json | 6 +- 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-bs5/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/flag-icons/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/moment/package.json | 2 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/qrcode/package.json | 4 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/slugify/package.json | 2 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert2/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 6 +- 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 +- npm/packs/zxcvbn/package.json | 4 +- .../Volo.Abp.Account.SourceCode.zip | Bin 227279 -> 226733 bytes .../Volo.Abp.AuditLogging.SourceCode.zip | Bin 91733 -> 91762 bytes .../Volo.Abp.BackgroundJobs.SourceCode.zip | Bin 62535 -> 62564 bytes .../Volo.Abp.BasicTheme.SourceCode.zip | Bin 456776 -> 456695 bytes ...lo.Abp.BlobStoring.Database.SourceCode.zip | Bin 69140 -> 69185 bytes .../Volo.Abp.FeatureManagement.SourceCode.zip | Bin 190982 -> 191057 bytes .../Volo.Abp.Identity.SourceCode.zip | Bin 444524 -> 444315 bytes .../Volo.Abp.IdentityServer.SourceCode.zip | Bin 166559 -> 167231 bytes .../Volo.Abp.OpenIddict.SourceCode.zip | Bin 2272473 -> 2273171 bytes ...lo.Abp.PermissionManagement.SourceCode.zip | Bin 184601 -> 184532 bytes .../Volo.Abp.SettingManagement.SourceCode.zip | Bin 243619 -> 243659 bytes .../Volo.Abp.TenantManagement.SourceCode.zip | Bin 167933 -> 167831 bytes .../Volo.Abp.Users.SourceCode.zip | Bin 31932 -> 31930 bytes ...olo.Abp.VirtualFileExplorer.SourceCode.zip | Bin 48173 -> 48181 bytes .../Volo.Blogging.SourceCode.zip | Bin 374254 -> 372469 bytes .../Volo.ClientSimulation.SourceCode.zip | Bin 38867 -> 38865 bytes .../Volo.CmsKit.SourceCode.zip | Bin 1298147 -> 1298664 bytes .../Volo.Docs.SourceCode.zip | Bin 571522 -> 570086 bytes templates/app-nolayers/angular/package.json | 20 +- .../package.json | 4 +- .../package.json | 4 +- .../Server.Mongo/package.json | 2 +- .../Server/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- templates/app/angular/package.json | 20 +- .../package.json | 2 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- templates/module/angular/package.json | 20 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../package.json | 4 +- .../package.json | 2 +- .../package.json | 2 +- 183 files changed, 3121 insertions(+), 3659 deletions(-) create mode 100644 modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.abppkg.analyze.json diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json index 3ee0c8975a..e0e93375af 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.abppkg.analyze.json @@ -68,107 +68,6 @@ "contentType": "abpModule", "name": "AbpAccountHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/account/register", - "method": "POST", - "groupName": "Account", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "RegisterDto" - } - ] - }, - { - "path": "api/account/send-password-reset-code", - "method": "POST", - "groupName": "Account", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "SendPasswordResetCodeDto" - } - ] - }, - { - "path": "api/account/verify-password-reset-token", - "method": "POST", - "groupName": "Account", - "responseType": "System.Boolean", - "responseTypeAsJson": "true", - "parameterDescriptions": [ - { - "name": "input", - "type": "VerifyPasswordResetTokenInput" - } - ] - }, - { - "path": "api/account/reset-password", - "method": "POST", - "groupName": "Account", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "ResetPasswordDto" - } - ] - }, - { - "path": "api/account/dynamic-claims/refresh", - "method": "POST", - "groupName": "DynamicClaims", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/account/my-profile", - "method": "GET", - "groupName": "Profile", - "responseType": "Volo.Abp.Account.ProfileDto", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/account/my-profile", - "method": "PUT", - "groupName": "Profile", - "responseType": "Volo.Abp.Account.ProfileDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "UpdateProfileDto" - } - ] - }, - { - "path": "api/account/my-profile/change-password", - "method": "POST", - "groupName": "Profile", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "ChangePasswordInput" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json index af62c4f131..230412ab0e 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.abppkg.analyze.json @@ -79,47 +79,6 @@ "name": "AbpAccountWebModule", "summary": null }, - { - "apis": [ - { - "path": "api/account/login", - "method": "POST", - "groupName": "Account", - "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "login", - "type": "UserLoginInfo" - } - ] - }, - { - "path": "api/account/logout", - "method": "GET", - "groupName": "Account", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/account/check-password", - "method": "POST", - "groupName": "Account", - "responseType": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "login", - "type": "UserLoginInfo" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null - }, { "namespace": "Volo.Abp.Account.Web.Pages.Account", "contentType": "webPage", diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json index 5d090598d4..ddf610f3c8 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,14 @@ { "namespace": "Volo.Abp.AuditLogging.EntityFrameworkCore", "connectionStringName": "AbpAuditLogging", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.AuditLogging.AuditLog", + "contentType": "databaseTable", + "name": "AuditLogs", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json index fd7de5ddf3..0107165048 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,14 @@ { "namespace": "Volo.Abp.BackgroundJobs.EntityFrameworkCore", "connectionStringName": "AbpBackgroundJobs", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.BackgroundJobs.BackgroundJobRecord", + "contentType": "databaseTable", + "name": "BackgroundJobs", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index ca24ffb511..e14ddc8125 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.3", - "@abp/prismjs": "~9.0.3", - "@abp/highlight.js": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.4", + "@abp/prismjs": "~9.0.4", + "@abp/highlight.js": "~9.0.4" } } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 481d54e59a..5c1d4c651f 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,212 +2,212 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/highlight.js@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.0.3.tgz#967b497badf854a9f0036082a39cf57eefd6d7c7" - integrity sha512-4/VhrgaiLb9kqO7HRAcmyoE63DFwMZToSjpSsXZPXMA2SM64cHjCz6cN5Ukh+GGOEolDVlbHoExON067rOz42w== +"@abp/highlight.js@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.0.4.tgz#d349d8991af83235ae694620f482a16b183b654a" + integrity sha512-Yzz1BDZRg6t79JLOSby9CrWJAQi2m2q3TvKqjJic+qx8E75h8m2RYpCdWOXMuMKs2zt2qY9bDTMLohuo+ASMCg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@highlightjs/cdn-assets" "~11.10.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 4d0012245b..5f514b259d 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/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": "~9.0.3", - "@abp/prismjs": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/prismjs": "~9.0.4" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 303743b39b..45d11fcfaa 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,211 +2,211 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json index 4cad523863..45eaef2a00 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,20 @@ { "namespace": "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", "connectionStringName": "AbpBlobStoring", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlobContainer", + "contentType": "databaseTable", + "name": "BlobContainers", + "summary": null + }, + { + "entityFullName": "Volo.Abp.BlobStoring.Database.DatabaseBlob", + "contentType": "databaseTable", + "name": "Blobs", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json index d5d9bb3eb1..4e811c43b5 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.BloggingTestApp", - "hash": "faf8c09c571a52e961d15c9dd9c7d7ac", + "hash": "", "contents": [ { "namespace": "Volo.BloggingTestApp", diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 02f2a1e2b6..c905d5f693 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": "~9.0.3", - "@abp/blogging": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/blogging": "~9.0.4" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index fc10d219c0..f2c3b1151a 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,237 +2,237 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/blogging@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-9.0.3.tgz#0ac6f5276b90487fc30514ac93d8d8b79620426b" - integrity sha512-D5T9IAlAkcMAomobvlG2d1ioLDv6fczLrxCqVtDB1a2yMad8aCZr6VtTjiWCSm2AtYkPjLKkIeXir3O7bzXEHw== +"@abp/blogging@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-9.0.4.tgz#df645b3e988e89598ad5b140f903a5d272f3c4b7" + integrity sha512-7ufZM8OqwlCpeAl8mozZSPq9IiCiUAoEb/8oTsNPlRaVLTfJtAyuqEOExymfkV6PMFbe2zDDimBHzb61auHDgQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - "@abp/owl.carousel" "~9.0.3" - "@abp/prismjs" "~9.0.3" - "@abp/tui-editor" "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + "@abp/owl.carousel" "~9.0.4" + "@abp/prismjs" "~9.0.4" + "@abp/tui-editor" "~9.0.4" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/owl.carousel@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-9.0.3.tgz#7201945d0c37f0df09bf5c7144aa4551da1ede42" - integrity sha512-BMTzvOGaQ00kQboCdrZN/DW2jAwyrTPxOBHaoEOl9sQexlzGULiQAe+jtY9kE5N834Fy4QjXTHTh0/srdZpEQw== +"@abp/owl.carousel@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-9.0.4.tgz#88424a08c84629872fca242e54cd102ee6b9348c" + integrity sha512-8vrDmXBghhbpMMY34jRY3m7FwSoBTPahBSW6zELutGk9TTN2V9sApWzJNzWl+bc4W2InUPG2jxrZXx+lqxqJgA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" owl.carousel "^2.3.4" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/tui-editor@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.0.3.tgz#f7d17844fa62562db99cc06d24ddeb6a80449a07" - integrity sha512-MS5lxKQBeGXT9PG/CliiOCtXYI6qpzI28icy3usIvzk9IaZRNedb+4HGhcmpoA61j5NaVow81S6pQo2KBaIBQw== +"@abp/tui-editor@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.0.4.tgz#0d75a891426753ae2ae17fe9744ac4b5ec5a7e85" + integrity sha512-pdRM4+J9NQ7ddMD9/yt43l0IaH1NWoQMsyuyEh0ZFbc8eBdsRpgXfqKPw8XS56q+hlYI2CYMxKktoEKQkbm2lQ== dependencies: - "@abp/jquery" "~9.0.3" - "@abp/prismjs" "~9.0.3" + "@abp/jquery" "~9.0.4" + "@abp/prismjs" "~9.0.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json index 1a6a317bd2..317439a0fb 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.abppkg.analyze.json @@ -63,90 +63,6 @@ "contentType": "abpModule", "name": "BloggingAdminHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/blogging/blogs/admin", - "method": "GET", - "groupName": "BlogManagement", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]", - "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [] - }, - { - "path": "api/blogging/blogs/admin/{id}", - "method": "GET", - "groupName": "BlogManagement", - "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/blogs/admin", - "method": "POST", - "groupName": "BlogManagement", - "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "input", - "type": "CreateBlogDto" - } - ] - }, - { - "path": "api/blogging/blogs/admin/{id}", - "method": "PUT", - "groupName": "BlogManagement", - "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "UpdateBlogDto" - } - ] - }, - { - "path": "api/blogging/blogs/admin/{id}", - "method": "DELETE", - "groupName": "BlogManagement", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/blogs/admin/clear-cache/{id}", - "method": "GET", - "groupName": "BlogManagement", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json index 64b65921d1..4fb8a11fb7 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.abppkg.analyze.json @@ -1717,6 +1717,83 @@ "contentType": "repositoryInterface", "name": "IBlogRepository", "summary": null + }, + { + "eventHandlerType": "Distributed", + "namespace": "Volo.Blogging.Users", + "subscribedEvents": [ + { + "underlyingType": { + "name": "UserEto", + "namespace": "Volo.Abp.Users", + "declaringAssemblyName": "Volo.Abp.Users.Abstractions", + "fullName": "Volo.Abp.Users.UserEto" + }, + "name": "EntityUpdatedEto`1", + "namespace": "Volo.Abp.Domain.Entities.Events.Distributed", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain.Shared", + "fullName": "Volo.Abp.Domain.Entities.Events.Distributed.EntityUpdatedEto`1" + } + ], + "implementingInterfaces": [ + { + "name": "IDistributedEventHandler", + "namespace": "Volo.Abp.EventBus.Distributed", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.Distributed.IDistributedEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "BlogUserSynchronizer", + "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Blogging.Posts", + "subscribedEvents": [ + { + "underlyingType": null, + "name": "PostChangedEvent", + "namespace": "Volo.Blogging.Posts", + "declaringAssemblyName": "Volo.Blogging.Domain", + "fullName": "Volo.Blogging.Posts.PostChangedEvent" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "PostCacheInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json index c891a76071..76c0f492fa 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,44 @@ { "namespace": "Volo.Blogging.EntityFrameworkCore", "connectionStringName": "Blogging", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Blogging.Users.BlogUser", + "contentType": "databaseTable", + "name": "Users", + "summary": null + }, + { + "entityFullName": "Volo.Blogging.Blogs.Blog", + "contentType": "databaseTable", + "name": "Blogs", + "summary": null + }, + { + "entityFullName": "Volo.Blogging.Posts.Post", + "contentType": "databaseTable", + "name": "Posts", + "summary": null + }, + { + "entityFullName": "Volo.Blogging.Tagging.Tag", + "contentType": "databaseTable", + "name": "Tags", + "summary": null + }, + { + "entityFullName": "Volo.Blogging.Posts.PostTag", + "contentType": "databaseTable", + "name": "PostTags", + "summary": null + }, + { + "entityFullName": "Volo.Blogging.Comments.Comment", + "contentType": "databaseTable", + "name": "Comments", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json index 7b15b827b0..e22ee4946c 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.abppkg.analyze.json @@ -63,300 +63,6 @@ "contentType": "abpModule", "name": "BloggingHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/blogging/files/{name}", - "method": "GET", - "groupName": "BlogFiles", - "responseType": "Volo.Blogging.Files.RawFileDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "name", - "type": "String" - } - ] - }, - { - "path": "api/blogging/files/www/{name}", - "method": "GET", - "groupName": "BlogFiles", - "responseType": "Volo.Abp.Content.IRemoteStreamContent", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "name", - "type": "String" - } - ] - }, - { - "path": "api/blogging/files/images/upload", - "method": "POST", - "groupName": "BlogFiles", - "responseType": "Volo.Blogging.Files.FileUploadOutputDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"webUrl\": \"string\"\r\n}", - "parameterDescriptions": [ - { - "name": "File", - "type": "IRemoteStreamContent" - }, - { - "name": "Name", - "type": "String" - } - ] - }, - { - "path": "api/blogging/blogs", - "method": "GET", - "groupName": "Blogs", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Blogs.Dtos.BlogDto]", - "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [] - }, - { - "path": "api/blogging/blogs/by-shortname/{shortName}", - "method": "GET", - "groupName": "Blogs", - "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "shortName", - "type": "String" - } - ] - }, - { - "path": "api/blogging/blogs/{id}", - "method": "GET", - "groupName": "Blogs", - "responseType": "Volo.Blogging.Blogs.Dtos.BlogDto", - "responseTypeAsJson": "{\r\n \"name\": \"string\",\r\n \"shortName\": \"string\",\r\n \"description\": \"string\",\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/comments/hierarchical/{postId}", - "method": "GET", - "groupName": "Comments", - "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Comments.Dtos.CommentWithRepliesDto]", - "responseTypeAsJson": "[\r\n {\r\n \"comment\": {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"replies\": [\r\n {\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n }\r\n]", - "parameterDescriptions": [ - { - "name": "postId", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/comments", - "method": "POST", - "groupName": "Comments", - "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto", - "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "input", - "type": "CreateCommentDto" - } - ] - }, - { - "path": "api/blogging/comments/{id}", - "method": "PUT", - "groupName": "Comments", - "responseType": "Volo.Blogging.Comments.Dtos.CommentWithDetailsDto", - "responseTypeAsJson": "{\r\n \"repliedCommentId\": null,\r\n \"text\": \"string\",\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "UpdateCommentDto" - } - ] - }, - { - "path": "api/blogging/comments/{id}", - "method": "DELETE", - "groupName": "Comments", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/posts/{blogId}/all", - "method": "GET", - "groupName": "Posts", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]", - "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "blogId", - "type": "Guid" - }, - { - "name": "tagName", - "type": "String" - } - ] - }, - { - "path": "api/blogging/posts/{blogId}/all/by-time", - "method": "GET", - "groupName": "Posts", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Blogging.Posts.PostWithDetailsDto]", - "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "blogId", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/posts/read", - "method": "GET", - "groupName": "Posts", - "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", - "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "Url", - "type": "String" - }, - { - "name": "BlogId", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/posts/{id}", - "method": "GET", - "groupName": "Posts", - "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", - "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/posts", - "method": "POST", - "groupName": "Posts", - "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", - "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "input", - "type": "CreatePostDto" - } - ] - }, - { - "path": "api/blogging/posts/{id}", - "method": "PUT", - "groupName": "Posts", - "responseType": "Volo.Blogging.Posts.PostWithDetailsDto", - "responseTypeAsJson": "{\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n}", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "UpdatePostDto" - } - ] - }, - { - "path": "api/blogging/posts/user/{userId}", - "method": "GET", - "groupName": "Posts", - "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]", - "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", - "parameterDescriptions": [ - { - "name": "userId", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/posts/{blogId}/latest/{count}", - "method": "GET", - "groupName": "Posts", - "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Posts.PostWithDetailsDto]", - "responseTypeAsJson": "[\r\n {\r\n \"blogId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"title\": \"string\",\r\n \"coverImage\": \"string\",\r\n \"url\": \"string\",\r\n \"content\": \"string\",\r\n \"description\": \"string\",\r\n \"readCount\": 0,\r\n \"commentCount\": 0,\r\n \"writer\": {\r\n \"tenantId\": null,\r\n \"name\": \"string\",\r\n \"surname\": \"string\",\r\n \"userName\": \"string\",\r\n \"email\": \"string\",\r\n \"emailConfirmed\": false,\r\n \"phoneNumber\": \"string\",\r\n \"phoneNumberConfirmed\": false,\r\n \"webSite\": \"string\",\r\n \"twitter\": \"string\",\r\n \"github\": \"string\",\r\n \"linkedin\": \"string\",\r\n \"company\": \"string\",\r\n \"jobTitle\": \"string\",\r\n \"biography\": \"string\",\r\n \"extraProperties\": {\r\n \"string\": \"object\"\r\n },\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n },\r\n \"tags\": [\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ],\r\n \"concurrencyStamp\": \"string\",\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", - "parameterDescriptions": [ - { - "name": "blogId", - "type": "Guid" - }, - { - "name": "count", - "type": "Int32" - } - ] - }, - { - "path": "api/blogging/posts/{id}", - "method": "DELETE", - "groupName": "Posts", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/blogging/tags/popular/{blogId}", - "method": "GET", - "groupName": "Tags", - "responseType": "System.Collections.Generic.List`1[Volo.Blogging.Tagging.Dtos.TagDto]", - "responseTypeAsJson": "[\r\n {\r\n \"name\": \"string\",\r\n \"description\": \"string\",\r\n \"usageCount\": 0,\r\n \"isDeleted\": false,\r\n \"deleterId\": null,\r\n \"deletionTime\": null,\r\n \"lastModificationTime\": null,\r\n \"lastModifierId\": null,\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"creatorId\": null,\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", - "parameterDescriptions": [ - { - "name": "blogId", - "type": "Guid" - }, - { - "name": "ResultCount", - "type": "Int32" - }, - { - "name": "MinimumPostCount", - "type": "Nullable" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 5393d31123..72e67ba989 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": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 3de1cb98c3..4a1144c569 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index fa29d30939..86b1932e43 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.0.3", - "@abp/ng.identity": "~9.0.3", - "@abp/ng.setting-management": "~9.0.3", - "@abp/ng.tenant-management": "~9.0.3", - "@abp/ng.theme.basic": "~9.0.3", + "@abp/ng.account": "~9.0.4", + "@abp/ng.identity": "~9.0.4", + "@abp/ng.setting-management": "~9.0.4", + "@abp/ng.tenant-management": "~9.0.4", + "@abp/ng.theme.basic": "~9.0.4", "@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 4a800fe89b..21a918edc7 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": ">=9.0.3", - "@abp/ng.theme.shared": ">=9.0.3" + "@abp/ng.core": ">=9.0.4", + "@abp/ng.theme.shared": ">=9.0.4" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json index 7a5076de44..4a31b29a5e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.HttpApi.Host", - "hash": "1b93c2e5623eede67e84115d4c3c3265", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 552cf134c8..c9fd4fb58c 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": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 3de1cb98c3..4a1144c569 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json index 2256dbb4e0..bb6aedfa41 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "Volo.CmsKit.Web.Host", - "hash": "4e765df6a6f987aba4c051f2106178ac", + "hash": "", "contents": [ { "namespace": "Volo.CmsKit", 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 10771644f8..48d931e19e 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": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } 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 3de1cb98c3..4a1144c569 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.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 0f3f3e2d3f..62f31dd498 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": "~9.0.3", - "@abp/cms-kit": "9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/cms-kit": "9.0.4" } } 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 e8b2551ae9..e24535e82e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,302 +2,302 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/cms-kit.admin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-9.0.3.tgz#4d2e175662b8e44eb0f894b0f5b1df09548e98fa" - integrity sha512-RmAl1TkmTi0zVRemBcHD4rNYFs2G6hhzFb2OHPZYpH5b6rFE6OPZjNHOXvH+gBVfuqDv2mc1FNuNc7RZGksKnw== +"@abp/cms-kit.admin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-9.0.4.tgz#40adc4c18987a6716436f8cf9696f9aeaf18fd25" + integrity sha512-NK0EUFpCyHqvC04KZeosZLv9B+YOBm29bPT/8pqIrHgTJE9uG0GmCX1qvBI9wJY7hNEM+3o2cyyRMRegc63bpw== dependencies: - "@abp/codemirror" "~9.0.3" - "@abp/jstree" "~9.0.3" - "@abp/markdown-it" "~9.0.3" - "@abp/slugify" "~9.0.3" - "@abp/tui-editor" "~9.0.3" - "@abp/uppy" "~9.0.3" + "@abp/codemirror" "~9.0.4" + "@abp/jstree" "~9.0.4" + "@abp/markdown-it" "~9.0.4" + "@abp/slugify" "~9.0.4" + "@abp/tui-editor" "~9.0.4" + "@abp/uppy" "~9.0.4" -"@abp/cms-kit.public@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-9.0.3.tgz#fd5478a953c8f84eaedc029dbb22071cc557d249" - integrity sha512-CFIidxnrBIo2AextML/Cdmt5wBRXmNjET9ZgkT6joItJTofu5U3hnTNRaliZ5sRFnowHBKC19UWmdxemBFZZSg== +"@abp/cms-kit.public@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-9.0.4.tgz#3894aa8fa71e9d992e650cf6d5823fc0acef2f96" + integrity sha512-QRceU3W6rb8Lf3+8utALyg+uUvW7tOUP8LwJyz9i3Ws+W458XZsL8XXptIZhn312Uj/57Bh5bmOOZnSJNOyOmA== dependencies: - "@abp/highlight.js" "~9.0.3" - "@abp/star-rating-svg" "~9.0.3" + "@abp/highlight.js" "~9.0.4" + "@abp/star-rating-svg" "~9.0.4" -"@abp/cms-kit@9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-9.0.3.tgz#998189b381c1d1c8c396a593309da734e5eb7964" - integrity sha512-Gi3V+8280pEmigZbxbAu0tMuNCjUCX1fVYEjH3NWWdw3dU0iHpAUqow7NU1psmqFe2Sfiesn1NtVYGVzYHKdYw== +"@abp/cms-kit@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-9.0.4.tgz#440efe3fd407024923fd7df41e1a14cb75069604" + integrity sha512-1DaZipjYHsIoDwWML44Y40XnesYLjF4LmeSWemcSJGi+o3xBxb4xkfxWHS/S3i5s5tPHH45TSZ2oCeD4TiNcgA== dependencies: - "@abp/cms-kit.admin" "~9.0.3" - "@abp/cms-kit.public" "~9.0.3" + "@abp/cms-kit.admin" "~9.0.4" + "@abp/cms-kit.public" "~9.0.4" -"@abp/codemirror@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-9.0.3.tgz#07337675159eabfb96549d9cc4624fae6466e7ff" - integrity sha512-y9pTi89Cp+8Os/E3tvU7oFABvYGbj5Wj1EBWRP6M+eojU1t2z95T7i4dGaOFEDht4UYNTiy10XnS3SZ0m7RDAw== +"@abp/codemirror@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-9.0.4.tgz#7e0069018d8c7953804101d537d9ee331e99cd15" + integrity sha512-EpXViPW5wg2wdDqJfmmVPvmvDkaTWwmHAiW6l4PXA8H1Eps5CFsiUeTF+q/dNO9WzEcKFATEOz4jPS2fgWoH/Q== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" codemirror "^5.65.1" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/highlight.js@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.0.3.tgz#967b497badf854a9f0036082a39cf57eefd6d7c7" - integrity sha512-4/VhrgaiLb9kqO7HRAcmyoE63DFwMZToSjpSsXZPXMA2SM64cHjCz6cN5Ukh+GGOEolDVlbHoExON067rOz42w== +"@abp/highlight.js@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.0.4.tgz#d349d8991af83235ae694620f482a16b183b654a" + integrity sha512-Yzz1BDZRg6t79JLOSby9CrWJAQi2m2q3TvKqjJic+qx8E75h8m2RYpCdWOXMuMKs2zt2qY9bDTMLohuo+ASMCg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@highlightjs/cdn-assets" "~11.10.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/jstree@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-9.0.3.tgz#9b59718dbeaacff6815964ed8e502c80d391ce22" - integrity sha512-+gge9T1G/n1edqDWRelyP+0V3jns1J6yObs7rg5ozpczwNwnJdZ74bHVT8phZqjF+ExpTkBI8GlyvtcUt93CAA== +"@abp/jstree@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-9.0.4.tgz#4b4a607a3a5214bdc4726dc0d905fb98ac21479c" + integrity sha512-oW5H97fH0Vtx0jpme6vT/fKJah20lBhn167C1BslN9dZBmVgTOm5UE94DZ6ngH8Y6NC5GnqTVEnsimktAZOvvw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jstree "^3.3.17" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-9.0.3.tgz#d753ccffd6fdd11cab6f318deaa332bd24fe5d3b" - integrity sha512-AKMVASGySUIbUgHs7jEhh2dXaQeqbL2300YhlL0UCovEGmhUcwN/hv+zkVOM36a1RWs0Ysh3vHb7WgRP0GQSAA== +"@abp/markdown-it@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-9.0.4.tgz#757de19e09aaa0f482192a141e51de2eeb7053f5" + integrity sha512-n6Wi8TLDXKgKfgqoKqxwl66oAyfgdVhMGuoxDYLZOm/SWfyeU5RmN5riwUPnLHRpMhjst6vIsQBy3qAkfHq5Zw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" markdown-it "^14.1.0" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/slugify@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-9.0.3.tgz#e073e5301b4c0d7bcb56272477e10f191a858a23" - integrity sha512-cCBjLW/Nc8FIP5U4U0fPq3zscS2N54evp2C5Zae/ADoPESBgR4F+p2q9+ieyMUCpyiHoYYhk+klHoSNibkxzQg== +"@abp/slugify@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-9.0.4.tgz#b2b5ddf7f35fb43be70d5edb35588d35e36911e7" + integrity sha512-VcSincvrPApUnpJnODIEoFkHFE8dKGluljLzdp1pVUNNE54l6d9Qgt94+npEXkDj3ccJi2nXDUHC1ErYaU8D/A== dependencies: slugify "^1.6.6" -"@abp/star-rating-svg@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-9.0.3.tgz#8e9943c5912fd8abb798c9ee04b497405397fb41" - integrity sha512-suEl3T+Nt91196pQ6GS4foojGQubsZjbPQ/N0TN7cqw0FPLBGQitb8V+7mG6Y5hGscWpTWXGfMR3iRiedlJ46A== +"@abp/star-rating-svg@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-9.0.4.tgz#917b891990eadf54a44a1aef2662c9f8ac863ca5" + integrity sha512-gOPiHS1dq0JGIfoUdfjMhvtnE3QvMx4CCOKWYuHojW5kTOzyWpD2fYgVa87k1ofO3INNu1G51shvTTPJM4yJTg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/tui-editor@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.0.3.tgz#f7d17844fa62562db99cc06d24ddeb6a80449a07" - integrity sha512-MS5lxKQBeGXT9PG/CliiOCtXYI6qpzI28icy3usIvzk9IaZRNedb+4HGhcmpoA61j5NaVow81S6pQo2KBaIBQw== +"@abp/tui-editor@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.0.4.tgz#0d75a891426753ae2ae17fe9744ac4b5ec5a7e85" + integrity sha512-pdRM4+J9NQ7ddMD9/yt43l0IaH1NWoQMsyuyEh0ZFbc8eBdsRpgXfqKPw8XS56q+hlYI2CYMxKktoEKQkbm2lQ== dependencies: - "@abp/jquery" "~9.0.3" - "@abp/prismjs" "~9.0.3" + "@abp/jquery" "~9.0.4" + "@abp/prismjs" "~9.0.4" -"@abp/uppy@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-9.0.3.tgz#d1013a4b382d181e473487d712f9db78cf0b6f7b" - integrity sha512-sZXEadlRBZCTO+Vbcd2TyzrjWV311DC045X91GkQmeu0Yqc6M5QE3TEo00FfutZovJA4MblY0EXktmgSIkoZkQ== +"@abp/uppy@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-9.0.4.tgz#fc8e1e62581c6d8a9b5431ad70c61f52f24eeb7e" + integrity sha512-kN0vVJM6/nvy7xvJKvLYGXnu4RZc9SALbyal8pRwaAKRXBhADgEJ9QWBh2bz5kR2y1s/2rVfPZzy2Yx+pUlP7w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" uppy "^4.4.1" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json index 1be9d68e1d..e63bfd863f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.analyze.json @@ -58,202 +58,6 @@ "contentType": "abpModule", "name": "CmsKitAdminApplicationContractsModule", "summary": null - }, - { - "displayName": "Comment management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Comments", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Comments.Delete", - "summary": null - }, - { - "displayName": "Permission:Comments.Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Comments.Update", - "summary": null - }, - { - "displayName": "Permission:Comments.SettingManagement", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Comments.SettingManagement", - "summary": null - }, - { - "displayName": "Tag management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Tags", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Tags.Create", - "summary": null - }, - { - "displayName": "Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Tags.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Tags.Delete", - "summary": null - }, - { - "displayName": "Page management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Pages", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Pages.Create", - "summary": null - }, - { - "displayName": "Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Pages.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Pages.Delete", - "summary": null - }, - { - "displayName": "Set as home page", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Pages.SetAsHomePage", - "summary": null - }, - { - "displayName": "Blog management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Blogs", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Blogs.Create", - "summary": null - }, - { - "displayName": "Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Blogs.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Blogs.Delete", - "summary": null - }, - { - "displayName": "Features", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Blogs.Features", - "summary": null - }, - { - "displayName": "Blog post management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.BlogPosts", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.BlogPosts.Create", - "summary": null - }, - { - "displayName": "Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.BlogPosts.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.BlogPosts.Delete", - "summary": null - }, - { - "displayName": "Publish", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.BlogPosts.Publish", - "summary": null - }, - { - "displayName": "Menu management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Menus", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Menus.Create", - "summary": null - }, - { - "displayName": "Update", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Menus.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.Menus.Delete", - "summary": null - }, - { - "displayName": "Global resources", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKit.GlobalResources", - "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json index 97e0500737..970db426d7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.analyze.json @@ -74,6 +74,142 @@ "name": "CmsKitCommonApplicationModule", "summary": null }, + { + "eventHandlerType": "Local", + "namespace": "Volo.CmsKit.Menus", + "subscribedEvents": [ + { + "underlyingType": { + "name": "MenuItem", + "namespace": "Volo.CmsKit.Menus", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Menus.MenuItem" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + }, + { + "underlyingType": { + "name": "MenuItem", + "namespace": "Volo.CmsKit.Menus", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Menus.MenuItem" + }, + "name": "EntityDeletedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityDeletedEventData`1" + }, + { + "underlyingType": { + "name": "MenuItem", + "namespace": "Volo.CmsKit.Menus", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Menus.MenuItem" + }, + "name": "EntityCreatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityCreatedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "MenuChangedHandler", + "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.CmsKit.Blogs", + "subscribedEvents": [ + { + "underlyingType": { + "name": "BlogFeature", + "namespace": "Volo.CmsKit.Blogs", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Blogs.BlogFeature" + }, + "name": "EntityCreatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityCreatedEventData`1" + }, + { + "underlyingType": { + "name": "BlogFeature", + "namespace": "Volo.CmsKit.Blogs", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Blogs.BlogFeature" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "BlogFeatureChangedHandler", + "summary": null + }, { "namespace": "Volo.CmsKit.Tags", "baseClass": { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json index a748e67a44..1a7b4bd11b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.analyze.json @@ -68,17 +68,6 @@ "contentType": "abpModule", "name": "CmsKitDomainSharedModule", "summary": null - }, - { - "defaultValue": "false", - "displayName": "CmsKit.Comments.RequireApprovement", - "description": "", - "isVisibleToClient": true, - "isInherited": true, - "isEncrypted": false, - "contentType": "setting", - "name": "CmsKit.Comments.RequireApprovement", - "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json index ab00cf8db6..3b127368a9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.analyze.json @@ -5627,6 +5627,88 @@ "contentType": "repositoryInterface", "name": "IBlogRepository", "summary": null + }, + { + "eventHandlerType": "Distributed", + "namespace": "Volo.CmsKit.Users", + "subscribedEvents": [ + { + "underlyingType": { + "name": "UserEto", + "namespace": "Volo.Abp.Users", + "declaringAssemblyName": "Volo.Abp.Users.Abstractions", + "fullName": "Volo.Abp.Users.UserEto" + }, + "name": "EntityUpdatedEto`1", + "namespace": "Volo.Abp.Domain.Entities.Events.Distributed", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain.Shared", + "fullName": "Volo.Abp.Domain.Entities.Events.Distributed.EntityUpdatedEto`1" + } + ], + "implementingInterfaces": [ + { + "name": "IDistributedEventHandler", + "namespace": "Volo.Abp.EventBus.Distributed", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.Distributed.IDistributedEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "CmsUserSynchronizer", + "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.CmsKit.Menus", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Page", + "namespace": "Volo.CmsKit.Pages", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.Pages.Page" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "PageChangedHandler", + "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json index 88283b8433..c558f2842d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.analyze.json @@ -72,7 +72,92 @@ { "namespace": "Volo.CmsKit.EntityFrameworkCore", "connectionStringName": "CmsKit", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.CmsKit.Comments.Comment", + "contentType": "databaseTable", + "name": "Comments", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Users.CmsUser", + "contentType": "databaseTable", + "name": "User", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Reactions.UserReaction", + "contentType": "databaseTable", + "name": "Reactions", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Ratings.Rating", + "contentType": "databaseTable", + "name": "Ratings", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Tags.Tag", + "contentType": "databaseTable", + "name": "Tags", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Tags.EntityTag", + "contentType": "databaseTable", + "name": "EntityTags", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Pages.Page", + "contentType": "databaseTable", + "name": "Pages", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Blogs.Blog", + "contentType": "databaseTable", + "name": "Blogs", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Blogs.BlogPost", + "contentType": "databaseTable", + "name": "BlogPosts", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Blogs.BlogFeature", + "contentType": "databaseTable", + "name": "BlogFeatures", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.MediaDescriptors.MediaDescriptor", + "contentType": "databaseTable", + "name": "MediaDescriptors", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.Menus.MenuItem", + "contentType": "databaseTable", + "name": "MenuItems", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.GlobalResources.GlobalResource", + "contentType": "databaseTable", + "name": "GlobalResources", + "summary": null + }, + { + "entityFullName": "Volo.CmsKit.MarkedItems.UserMarkedItem", + "contentType": "databaseTable", + "name": "UserMarkedItems", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json index 68bc9f6b6d..61c2d03247 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.analyze.json @@ -63,20 +63,6 @@ "contentType": "abpModule", "name": "CmsKitPublicApplicationContractsModule", "summary": null - }, - { - "displayName": "Comment management", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKitPublic.Comments", - "summary": null - }, - { - "displayName": "Delete all", - "isEnabled": true, - "contentType": "permission", - "name": "CmsKitPublic.Comments.DeleteAll", - "summary": null } ] } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json index 599b6913f4..8e10e6ce08 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.analyze.json @@ -69,6 +69,47 @@ "name": "CmsKitPublicApplicationModule", "summary": null }, + { + "eventHandlerType": "Local", + "namespace": "Volo.CmsKit.Public.GlobalResources.Handlers", + "subscribedEvents": [ + { + "underlyingType": { + "name": "GlobalResource", + "namespace": "Volo.CmsKit.GlobalResources", + "declaringAssemblyName": "Volo.CmsKit.Domain", + "fullName": "Volo.CmsKit.GlobalResources.GlobalResource" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "GlobalResourceEventHandler", + "summary": null + }, { "namespace": "Volo.CmsKit.Public.Reactions", "baseClass": { diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json index 2cec527fd8..14bbf07464 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.abppkg.analyze.json @@ -1,6 +1,6 @@ { "name": "VoloDocs.Web", - "hash": "b510ce34d8f9772fc2cbd0235c731ce4", + "hash": "", "contents": [ { "namespace": "VoloDocs.Web", @@ -94,6 +94,11 @@ "declaringAssemblyName": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", "namespace": "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", "name": "AbpAspNetCoreMvcUiBasicThemeModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Caching.StackExchangeRedis", + "namespace": "Volo.Abp.Caching.StackExchangeRedis", + "name": "AbpCachingStackExchangeRedisModule" } ], "implementingInterfaces": [ diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 0437f4319b..babeaa0862 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": "~9.0.3", - "@abp/docs": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/docs": "~9.0.4" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 21d865b050..59fcc42a00 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,238 +2,238 @@ # yarn lockfile v1 -"@abp/anchor-js@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-9.0.3.tgz#a6183929f07d778cf3deed99bc2dc71ca619a49e" - integrity sha512-0c1RiXvpauYXfY/RlVLsD6OUoLNbLJOJGMSqoSolEcLgVwv5NXDC/q+UQOnAFjDC7f/34FQvsoxtspNFfoLUuw== +"@abp/anchor-js@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-9.0.4.tgz#3ed982bec9c38acdd6dbc6132566d11c59a03280" + integrity sha512-O1o5CamkMx9d0mYyRB4BhKMHU8gUk5LJ/qLeMqIoDYwFSb4z2ehK6GUCAd0hzuglv+h/QzXYZGTNl6u6UIjHuw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" anchor-js "^5.0.0" -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/docs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-9.0.3.tgz#a7f873a4c40d1e4b99442e1ccaf40db074778164" - integrity sha512-uVLMBqMTHDDmzQ5PZB9xkA/moHGeIRjqkUXED/6JtE6iphkNySR+Uw+nvRQGwfym6HgGbTHc+77Cc87P13ylxA== +"@abp/docs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-9.0.4.tgz#c0bd065b56438f8197ae1714240c6a4e2dde8048" + integrity sha512-0ste5inPyQ7uN7WhDzrG5nhgM1V6zUaysN3hLVVjnw4azqdP13AKunhTO+Vba8VyAA5b1kWmowW+dOBLg/MzuA== dependencies: - "@abp/anchor-js" "~9.0.3" - "@abp/clipboard" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/popper.js" "~9.0.3" - "@abp/prismjs" "~9.0.3" + "@abp/anchor-js" "~9.0.4" + "@abp/clipboard" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/popper.js" "~9.0.4" + "@abp/prismjs" "~9.0.4" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/popper.js@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-9.0.3.tgz#cc383e54900aa087a5c97ffbc99733cd17ed9554" - integrity sha512-AVc7zBa/wU/fg0NSR90TV1zHYXXr/L5OxvoTK//YVNIERzd0/VhgYQ9ltzU2XmZZrCtrlkfAo4d1cOnrm773sg== +"@abp/popper.js@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-9.0.4.tgz#341667e9e43d7645237c34849ec7acaf820b462c" + integrity sha512-Uy1tdLi/X/TF6igTi3EgwSMm+m4t3iR5H7Y3ENJaHgOIBigTLKjf9HI1BaaJbiOZNR8n8L/k6dE2zsjRADxAUw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@popperjs/core" "^2.11.8" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json index e46f6f929a..a35f53f051 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.abppkg.analyze.json @@ -68,41 +68,6 @@ "contentType": "abpModule", "name": "DocsAdminApplicationContractsModule", "summary": null - }, - { - "displayName": "Projects", - "isEnabled": true, - "contentType": "permission", - "name": "Docs.Admin.Projects", - "summary": null - }, - { - "displayName": "Edit", - "isEnabled": true, - "contentType": "permission", - "name": "Docs.Admin.Projects.Update", - "summary": null - }, - { - "displayName": "Delete", - "isEnabled": true, - "contentType": "permission", - "name": "Docs.Admin.Projects.Delete", - "summary": null - }, - { - "displayName": "Create", - "isEnabled": true, - "contentType": "permission", - "name": "Docs.Admin.Projects.Create", - "summary": null - }, - { - "displayName": "Documents", - "isEnabled": true, - "contentType": "permission", - "name": "Docs.Admin.Documents", - "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json index 0123d894fc..63cd4e0e50 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.abppkg.analyze.json @@ -63,269 +63,6 @@ "contentType": "abpModule", "name": "DocsAdminHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/docs/admin/documents/ClearCache", - "method": "POST", - "groupName": "DocumentsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "ClearCacheInput" - } - ] - }, - { - "path": "api/docs/admin/documents/PullAll", - "method": "POST", - "groupName": "DocumentsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "PullAllDocumentInput" - } - ] - }, - { - "path": "api/docs/admin/documents/Pull", - "method": "POST", - "groupName": "DocumentsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "PullDocumentInput" - } - ] - }, - { - "path": "api/docs/admin/documents/GetAll", - "method": "GET", - "groupName": "DocumentsAdmin", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Documents.DocumentDto]", - "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"projectName\": \"string\",\r\n \"name\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"fileName\": \"string\",\r\n \"format\": \"string\",\r\n \"creationTime\": \"0001-01-01T00:00:00\",\r\n \"lastUpdatedTime\": \"0001-01-01T00:00:00\",\r\n \"lastSignificantUpdateTime\": null,\r\n \"lastCachedTime\": \"0001-01-01T00:00:00\",\r\n \"id\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Nullable" - }, - { - "name": "Name", - "type": "String" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - }, - { - "name": "FileName", - "type": "String" - }, - { - "name": "Format", - "type": "String" - }, - { - "name": "CreationTimeMin", - "type": "Nullable" - }, - { - "name": "CreationTimeMax", - "type": "Nullable" - }, - { - "name": "LastUpdatedTimeMin", - "type": "Nullable" - }, - { - "name": "LastUpdatedTimeMax", - "type": "Nullable" - }, - { - "name": "LastSignificantUpdateTimeMin", - "type": "Nullable" - }, - { - "name": "LastSignificantUpdateTimeMax", - "type": "Nullable" - }, - { - "name": "LastCachedTimeMin", - "type": "Nullable" - }, - { - "name": "LastCachedTimeMax", - "type": "Nullable" - }, - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - } - ] - }, - { - "path": "api/docs/admin/documents/RemoveDocumentFromCache", - "method": "PUT", - "groupName": "DocumentsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "documentId", - "type": "Guid" - } - ] - }, - { - "path": "api/docs/admin/documents/ReindexDocument", - "method": "PUT", - "groupName": "DocumentsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "documentId", - "type": "Guid" - } - ] - }, - { - "path": "api/docs/admin/documents/GetFilterItems", - "method": "GET", - "groupName": "DocumentsAdmin", - "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Documents.DocumentInfoDto]", - "responseTypeAsJson": "[\r\n {\r\n \"version\": \"string\",\r\n \"format\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"projectId\": \"00000000-0000-0000-0000-000000000000\"\r\n }\r\n]", - "parameterDescriptions": [] - }, - { - "path": "api/docs/admin/projects", - "method": "GET", - "groupName": "ProjectsAdmin", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Admin.Projects.ProjectDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - } - ] - }, - { - "path": "api/docs/admin/projects/{id}", - "method": "GET", - "groupName": "ProjectsAdmin", - "responseType": "Volo.Docs.Admin.Projects.ProjectDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/docs/admin/projects", - "method": "POST", - "groupName": "ProjectsAdmin", - "responseType": "Volo.Docs.Admin.Projects.ProjectDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "CreateProjectDto" - } - ] - }, - { - "path": "api/docs/admin/projects/{id}", - "method": "PUT", - "groupName": "ProjectsAdmin", - "responseType": "Volo.Docs.Admin.Projects.ProjectDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "UpdateProjectDto" - } - ] - }, - { - "path": "api/docs/admin/projects", - "method": "DELETE", - "groupName": "ProjectsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/docs/admin/projects/ReindexAll", - "method": "POST", - "groupName": "ProjectsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/docs/admin/projects/GetListProjectWithoutDetailsAsync", - "method": "GET", - "groupName": "ProjectsAdmin", - "responseType": "System.Collections.Generic.List`1[Volo.Docs.Admin.Projects.ProjectWithoutDetailsDto]", - "responseTypeAsJson": "[\r\n {\r\n \"id\": \"00000000-0000-0000-0000-000000000000\",\r\n \"name\": \"string\"\r\n }\r\n]", - "parameterDescriptions": [] - }, - { - "path": "api/docs/admin/projects/Reindex", - "method": "POST", - "groupName": "ProjectsAdmin", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "ReindexInput" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json index 3e6a93851c..43d97ded1c 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.abppkg.analyze.json @@ -1799,6 +1799,83 @@ "contentType": "repositoryInterface", "name": "IDocumentRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Docs.Documents.FullSearch.Elastic", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Document", + "namespace": "Volo.Docs.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.Document" + }, + "name": "EntityCreatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityCreatedEventData`1" + }, + { + "underlyingType": { + "name": "Document", + "namespace": "Volo.Docs.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.Document" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + }, + { + "underlyingType": { + "name": "Document", + "namespace": "Volo.Docs.Documents", + "declaringAssemblyName": "Volo.Docs.Domain", + "fullName": "Volo.Docs.Documents.Document" + }, + "name": "EntityDeletedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityDeletedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "DocumentChangedEventHandler", + "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json index df487b23e9..e4485ab78c 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,26 @@ { "namespace": "Volo.Docs.EntityFrameworkCore", "connectionStringName": "Docs", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Docs.Projects.Project", + "contentType": "databaseTable", + "name": "Projects", + "summary": null + }, + { + "entityFullName": "Volo.Docs.Documents.Document", + "contentType": "databaseTable", + "name": "Documents", + "summary": null + }, + { + "entityFullName": "Volo.Docs.Documents.DocumentContributor", + "contentType": "databaseTable", + "name": "DocumentContributors", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json index cc16357478..24a58380bf 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.abppkg.analyze.json @@ -63,228 +63,6 @@ "contentType": "abpModule", "name": "DocsHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/docs/projects", - "method": "GET", - "groupName": "DocsProject", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.ProjectDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/docs/projects/{shortName}", - "method": "GET", - "groupName": "DocsProject", - "responseType": "Volo.Docs.Projects.ProjectDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "shortName", - "type": "String" - } - ] - }, - { - "path": "api/docs/projects/{shortName}/defaultLanguage", - "method": "GET", - "groupName": "DocsProject", - "responseType": "System.String", - "responseTypeAsJson": "\"string\"", - "parameterDescriptions": [ - { - "name": "shortName", - "type": "String" - }, - { - "name": "version", - "type": "String" - } - ] - }, - { - "path": "api/docs/projects/{shortName}/versions", - "method": "GET", - "groupName": "DocsProject", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Docs.Projects.VersionInfoDto]", - "responseTypeAsJson": "{\r\n \"items\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"name\": \"string\"\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "shortName", - "type": "String" - } - ] - }, - { - "path": "api/docs/projects/{shortName}/{version}/languageList", - "method": "GET", - "groupName": "DocsProject", - "responseType": "Volo.Docs.Documents.LanguageConfig", - "responseTypeAsJson": "{\r\n \"languages\": [\r\n {\r\n \"displayName\": \"string\",\r\n \"code\": \"string\",\r\n \"isDefault\": false\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "shortName", - "type": "String" - }, - { - "name": "version", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Name", - "type": "String" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents/default", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "Volo.Docs.Documents.DocumentWithDetailsDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents/navigation", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "Volo.Docs.Documents.NavigationNode", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents/resource", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "Volo.Docs.Documents.DocumentResourceDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Name", - "type": "String" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents/search", - "method": "POST", - "groupName": "DocsDocument", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Docs.Documents.DocumentSearchOutput]", - "responseTypeAsJson": "{\r\n \"totalCount\": 0,\r\n \"items\": [\r\n {\r\n \"name\": \"string\",\r\n \"fileName\": \"string\",\r\n \"version\": \"string\",\r\n \"languageCode\": \"string\",\r\n \"highlight\": [\r\n \"string\"\r\n ]\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "input", - "type": "DocumentSearchInput" - } - ] - }, - { - "path": "api/docs/documents/full-search-enabled", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "System.Boolean", - "responseTypeAsJson": "true", - "parameterDescriptions": [] - }, - { - "path": "api/docs/documents/links", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "System.Collections.Generic.List`1[System.String]", - "responseTypeAsJson": "[\r\n \"string\"\r\n]", - "parameterDescriptions": [ - { - "name": "prefix", - "type": "String" - } - ] - }, - { - "path": "api/docs/documents/parameters", - "method": "GET", - "groupName": "DocsDocument", - "responseType": "Volo.Docs.Documents.DocumentParametersDto", - "responseTypeAsJson": "{\r\n \"parameters\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"values\": {\r\n \"string\": \"string\"\r\n }\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json index e05caa0b3c..754357e581 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.abppkg.analyze.json @@ -84,38 +84,6 @@ "name": "DocsWebModule", "summary": null }, - { - "apis": [ - { - "path": "document-resources", - "method": "GET", - "groupName": "DocumentResource", - "responseType": "Volo.Abp.Http.RemoteServiceErrorResponse", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "ProjectId", - "type": "Guid" - }, - { - "name": "Name", - "type": "String" - }, - { - "name": "Version", - "type": "String" - }, - { - "name": "LanguageCode", - "type": "String" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null - }, { "namespace": "Volo.Docs.Pages.Documents.Project", "contentType": "webPage", diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json index 3c2abaac23..3247a44ab8 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.abppkg.analyze.json @@ -667,6 +667,47 @@ "contentType": "repositoryInterface", "name": "IFeatureValueRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.FeatureManagement", + "subscribedEvents": [ + { + "underlyingType": { + "name": "FeatureValue", + "namespace": "Volo.Abp.FeatureManagement", + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Domain", + "fullName": "Volo.Abp.FeatureManagement.FeatureValue" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "FeatureValueCacheItemInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json index 39496c615c..c53ce86e71 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,26 @@ { "namespace": "Volo.Abp.FeatureManagement.EntityFrameworkCore", "connectionStringName": "AbpFeatureManagement", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.FeatureManagement.FeatureGroupDefinitionRecord", + "contentType": "databaseTable", + "name": "FeatureGroups", + "summary": null + }, + { + "entityFullName": "Volo.Abp.FeatureManagement.FeatureDefinitionRecord", + "contentType": "databaseTable", + "name": "Features", + "summary": null + }, + { + "entityFullName": "Volo.Abp.FeatureManagement.FeatureValue", + "contentType": "databaseTable", + "name": "FeatureValues", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json index 5f25516d3b..2d34f6665b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.abppkg.analyze.json @@ -63,68 +63,6 @@ "contentType": "abpModule", "name": "AbpFeatureManagementHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/feature-management/features", - "method": "GET", - "groupName": "Features", - "responseType": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "providerName", - "type": "String" - }, - { - "name": "providerKey", - "type": "String" - } - ] - }, - { - "path": "api/feature-management/features", - "method": "PUT", - "groupName": "Features", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "providerName", - "type": "String" - }, - { - "name": "providerKey", - "type": "String" - }, - { - "name": "input", - "type": "UpdateFeaturesDto" - } - ] - }, - { - "path": "api/feature-management/features", - "method": "DELETE", - "groupName": "Features", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "providerName", - "type": "String" - }, - { - "name": "providerKey", - "type": "String" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json index 3f952c8ba3..510b422ada 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json @@ -6055,6 +6055,65 @@ "name": "IOrganizationUnitRepository", "summary": null }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.Identity", + "subscribedEvents": [ + { + "underlyingType": { + "name": "IdentityUser", + "namespace": "Volo.Abp.Identity", + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUser" + }, + "name": "EntityUpdatedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityUpdatedEventData`1" + }, + { + "underlyingType": { + "name": "IdentityUser", + "namespace": "Volo.Abp.Identity", + "declaringAssemblyName": "Volo.Abp.Identity.Domain", + "fullName": "Volo.Abp.Identity.IdentityUser" + }, + "name": "EntityDeletedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityDeletedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "UserEntityUpdatedOrDeletedEventHandler", + "summary": null + }, { "defaultValue": "6", "displayName": "Required length", diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json index 06cd2fea51..f0b91802b4 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,56 @@ { "namespace": "Volo.Abp.Identity.EntityFrameworkCore", "connectionStringName": "AbpIdentity", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.Identity.IdentityUser", + "contentType": "databaseTable", + "name": "Users", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityRole", + "contentType": "databaseTable", + "name": "Roles", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityClaimType", + "contentType": "databaseTable", + "name": "ClaimTypes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.OrganizationUnit", + "contentType": "databaseTable", + "name": "OrganizationUnits", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", + "contentType": "databaseTable", + "name": "SecurityLogs", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", + "contentType": "databaseTable", + "name": "LinkUsers", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserDelegation", + "contentType": "databaseTable", + "name": "UserDelegations", + "summary": null + }, + { + "entityFullName": "Volo.Abp.Identity.IdentitySession", + "contentType": "databaseTable", + "name": "Sessions", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json index 60e2d18f17..846f79d7e4 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json @@ -63,323 +63,6 @@ "contentType": "abpModule", "name": "AbpIdentityHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/identity/roles/all", - "method": "GET", - "groupName": "IdentityRole", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/identity/roles", - "method": "GET", - "groupName": "IdentityRole", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "Filter", - "type": "String" - }, - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - }, - { - "name": "ExtraProperties", - "type": "ExtraPropertyDictionary" - } - ] - }, - { - "path": "api/identity/roles/{id}", - "method": "GET", - "groupName": "IdentityRole", - "responseType": "Volo.Abp.Identity.IdentityRoleDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/roles", - "method": "POST", - "groupName": "IdentityRole", - "responseType": "Volo.Abp.Identity.IdentityRoleDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "IdentityRoleCreateDto" - } - ] - }, - { - "path": "api/identity/roles/{id}", - "method": "PUT", - "groupName": "IdentityRole", - "responseType": "Volo.Abp.Identity.IdentityRoleDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "IdentityRoleUpdateDto" - } - ] - }, - { - "path": "api/identity/roles/{id}", - "method": "DELETE", - "groupName": "IdentityRole", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/users/{id}", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/users", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.Identity.IdentityUserDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "Filter", - "type": "String" - }, - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - }, - { - "name": "ExtraProperties", - "type": "ExtraPropertyDictionary" - } - ] - }, - { - "path": "api/identity/users", - "method": "POST", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "IdentityUserCreateDto" - } - ] - }, - { - "path": "api/identity/users/{id}", - "method": "PUT", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "IdentityUserUpdateDto" - } - ] - }, - { - "path": "api/identity/users/{id}", - "method": "DELETE", - "groupName": "IdentityUser", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/users/{id}/roles", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/users/assignable-roles", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Identity.IdentityRoleDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [] - }, - { - "path": "api/identity/users/{id}/roles", - "method": "PUT", - "groupName": "IdentityUser", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "IdentityUserUpdateRolesDto" - } - ] - }, - { - "path": "api/identity/users/by-username/{userName}", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "userName", - "type": "String" - } - ] - }, - { - "path": "api/identity/users/by-email/{email}", - "method": "GET", - "groupName": "IdentityUser", - "responseType": "Volo.Abp.Identity.IdentityUserDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "email", - "type": "String" - } - ] - }, - { - "path": "api/identity/users/lookup/{id}", - "method": "GET", - "groupName": "IdentityUserLookup", - "responseType": "Volo.Abp.Users.UserData", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/identity/users/lookup/by-username/{userName}", - "method": "GET", - "groupName": "IdentityUserLookup", - "responseType": "Volo.Abp.Users.UserData", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "userName", - "type": "String" - } - ] - }, - { - "path": "api/identity/users/lookup/search", - "method": "GET", - "groupName": "IdentityUserLookup", - "responseType": "Volo.Abp.Application.Dtos.ListResultDto`1[Volo.Abp.Users.UserData]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "Filter", - "type": "String" - }, - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - }, - { - "name": "ExtraProperties", - "type": "ExtraPropertyDictionary" - } - ] - }, - { - "path": "api/identity/users/lookup/count", - "method": "GET", - "groupName": "IdentityUserLookup", - "responseType": "System.Int64", - "responseTypeAsJson": "42", - "parameterDescriptions": [ - { - "name": "Filter", - "type": "String" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json index ee8a8e35db..096202cd42 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.abppkg.analyze.json @@ -3933,6 +3933,178 @@ "contentType": "repositoryInterface", "name": "IApiResourceRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.IdentityServer", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Client", + "namespace": "Volo.Abp.IdentityServer.Clients", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.Client" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": { + "name": "ClientCorsOrigin", + "namespace": "Volo.Abp.IdentityServer.Clients", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientCorsOrigin" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "AllowedCorsOriginsCacheItemInvalidator", + "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.IdentityServer", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Client", + "namespace": "Volo.Abp.IdentityServer.Clients", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.Client" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": { + "name": "ClientCorsOrigin", + "namespace": "Volo.Abp.IdentityServer.Clients", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.Clients.ClientCorsOrigin" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": { + "name": "IdentityResource", + "namespace": "Volo.Abp.IdentityServer.IdentityResources", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResource" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": { + "name": "ApiResource", + "namespace": "Volo.Abp.IdentityServer.ApiResources", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": { + "name": "ApiScope", + "namespace": "Volo.Abp.IdentityServer.ApiScopes", + "declaringAssemblyName": "Volo.Abp.IdentityServer.Domain", + "fullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "IdentityServerCacheItemInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json index 6e763e3e8b..1327d6382d 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,146 @@ { "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", "connectionStringName": "AbpIdentityServer", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResource", + "contentType": "databaseTable", + "name": "ApiResources", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", + "contentType": "databaseTable", + "name": "ApiResourceSecrets", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", + "contentType": "databaseTable", + "name": "ApiResourceClaims", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", + "contentType": "databaseTable", + "name": "ApiResourceScopes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", + "contentType": "databaseTable", + "name": "ApiResourceProperties", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScope", + "contentType": "databaseTable", + "name": "ApiScopes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", + "contentType": "databaseTable", + "name": "ApiScopeClaims", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", + "contentType": "databaseTable", + "name": "ApiScopeProperties", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResource", + "contentType": "databaseTable", + "name": "IdentityResources", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", + "contentType": "databaseTable", + "name": "IdentityClaims", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", + "contentType": "databaseTable", + "name": "IdentityResourceProperties", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.Client", + "contentType": "databaseTable", + "name": "Clients", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientGrantType", + "contentType": "databaseTable", + "name": "ClientGrantTypes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientRedirectUri", + "contentType": "databaseTable", + "name": "ClientRedirectUris", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", + "contentType": "databaseTable", + "name": "ClientPostLogoutRedirectUris", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientScope", + "contentType": "databaseTable", + "name": "ClientScopes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientSecret", + "contentType": "databaseTable", + "name": "ClientSecrets", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientClaim", + "contentType": "databaseTable", + "name": "ClientClaims", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", + "contentType": "databaseTable", + "name": "ClientIdPRestrictions", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", + "contentType": "databaseTable", + "name": "ClientCorsOrigins", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Clients.ClientProperty", + "contentType": "databaseTable", + "name": "ClientProperties", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Grants.PersistedGrant", + "contentType": "databaseTable", + "name": "PersistedGrants", + "summary": null + }, + { + "entityFullName": "Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", + "contentType": "databaseTable", + "name": "DeviceFlowCodes", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.abppkg.analyze.json b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.abppkg.analyze.json new file mode 100644 index 0000000000..c14575a4ec --- /dev/null +++ b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.abppkg.analyze.json @@ -0,0 +1,68 @@ +{ + "name": "OpenIddict.Demo.Client.Mvc", + "hash": "", + "contents": [ + { + "namespace": "OpenIddict.Demo.Client.Mvc", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Mvc", + "namespace": "Volo.Abp.AspNetCore.Mvc", + "name": "AbpAspNetCoreMvcModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AspNetCore.Authentication.OpenIdConnect", + "namespace": "Volo.Abp.AspNetCore.Authentication.OpenIdConnect", + "name": "AbpAspNetCoreAuthenticationOpenIdConnectModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "OpenIddictMvcModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index 10771644f8..48d931e19e 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 5aac38e3d8..b8ab2f1961 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.0.3", - "@abp/ng.components": "~9.0.3", - "@abp/ng.core": "~9.0.3", - "@abp/ng.oauth": "~9.0.3", - "@abp/ng.identity": "~9.0.3", - "@abp/ng.setting-management": "~9.0.3", - "@abp/ng.tenant-management": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", - "@abp/ng.theme.lepton-x": "~4.0.4", + "@abp/ng.account": "~9.0.4", + "@abp/ng.components": "~9.0.4", + "@abp/ng.core": "~9.0.4", + "@abp/ng.oauth": "~9.0.4", + "@abp/ng.identity": "~9.0.4", + "@abp/ng.setting-management": "~9.0.4", + "@abp/ng.tenant-management": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", + "@abp/ng.theme.lepton-x": "~4.0.5", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -36,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~9.0.3", + "@abp/ng.schematics": "~9.0.4", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json index 6978ff01a7..c00f6f067b 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.EntityFrameworkCore/Volo.Abp.OpenIddict.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,32 @@ { "namespace": "Volo.Abp.OpenIddict.EntityFrameworkCore", "connectionStringName": "AbpOpenIddict", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.OpenIddict.Applications.OpenIddictApplication", + "contentType": "databaseTable", + "name": "Applications", + "summary": null + }, + { + "entityFullName": "Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", + "contentType": "databaseTable", + "name": "Authorizations", + "summary": null + }, + { + "entityFullName": "Volo.Abp.OpenIddict.Scopes.OpenIddictScope", + "contentType": "databaseTable", + "name": "Scopes", + "summary": null + }, + { + "entityFullName": "Volo.Abp.OpenIddict.Tokens.OpenIddictToken", + "contentType": "databaseTable", + "name": "Tokens", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json index a6f3e6528d..f65a774ef5 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.abppkg.analyze.json @@ -605,6 +605,47 @@ "contentType": "repositoryInterface", "name": "IPermissionGroupDefinitionRecordRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.PermissionManagement", + "subscribedEvents": [ + { + "underlyingType": { + "name": "PermissionGrant", + "namespace": "Volo.Abp.PermissionManagement", + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Domain", + "fullName": "Volo.Abp.PermissionManagement.PermissionGrant" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "PermissionGrantCacheItemInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json index 099ce4d6cc..769b7bf6c4 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,26 @@ { "namespace": "Volo.Abp.PermissionManagement.EntityFrameworkCore", "connectionStringName": "AbpPermissionManagement", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.PermissionManagement.PermissionGroupDefinitionRecord", + "contentType": "databaseTable", + "name": "PermissionGroups", + "summary": null + }, + { + "entityFullName": "Volo.Abp.PermissionManagement.PermissionDefinitionRecord", + "contentType": "databaseTable", + "name": "Permissions", + "summary": null + }, + { + "entityFullName": "Volo.Abp.PermissionManagement.PermissionGrant", + "contentType": "databaseTable", + "name": "PermissionGrants", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json index 951b30cdbd..4268835513 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.abppkg.analyze.json @@ -63,51 +63,6 @@ "contentType": "abpModule", "name": "AbpPermissionManagementHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/permission-management/permissions", - "method": "GET", - "groupName": "Permissions", - "responseType": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "responseTypeAsJson": "{\r\n \"entityDisplayName\": \"string\",\r\n \"groups\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"displayNameKey\": \"string\",\r\n \"displayNameResource\": \"string\",\r\n \"permissions\": [\r\n {\r\n \"name\": \"string\",\r\n \"displayName\": \"string\",\r\n \"parentName\": \"string\",\r\n \"isGranted\": false,\r\n \"allowedProviders\": [\r\n \"string\"\r\n ],\r\n \"grantedProviders\": [\r\n {\r\n \"providerName\": \"string\",\r\n \"providerKey\": \"string\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}", - "parameterDescriptions": [ - { - "name": "providerName", - "type": "String" - }, - { - "name": "providerKey", - "type": "String" - } - ] - }, - { - "path": "api/permission-management/permissions", - "method": "PUT", - "groupName": "Permissions", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "providerName", - "type": "String" - }, - { - "name": "providerKey", - "type": "String" - }, - { - "name": "input", - "type": "UpdatePermissionsDto" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 9b6a8fed1f..4b2c48e314 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 3de1cb98c3..4a1144c569 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,194 +2,194 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json index 47160bc535..8123cb38d9 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo.Abp.SettingManagement.Application.abppkg.analyze.json @@ -84,6 +84,47 @@ "name": "AbpSettingManagementApplicationModule", "summary": null }, + { + "eventHandlerType": "Distributed", + "namespace": "Volo.Abp.SettingManagement", + "subscribedEvents": [ + { + "underlyingType": { + "name": "UserEto", + "namespace": "Volo.Abp.Users", + "declaringAssemblyName": "Volo.Abp.Users.Abstractions", + "fullName": "Volo.Abp.Users.UserEto" + }, + "name": "EntityDeletedEto`1", + "namespace": "Volo.Abp.Domain.Entities.Events.Distributed", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain.Shared", + "fullName": "Volo.Abp.Domain.Entities.Events.Distributed.EntityDeletedEto`1" + } + ], + "implementingInterfaces": [ + { + "name": "IDistributedEventHandler", + "namespace": "Volo.Abp.EventBus.Distributed", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.Distributed.IDistributedEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "UserDeletedEventHandler", + "summary": null + }, { "namespace": "Volo.Abp.SettingManagement", "baseClass": { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json index c3b545a078..33a15e01ee 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.abppkg.analyze.json @@ -494,6 +494,47 @@ "contentType": "repositoryInterface", "name": "ISettingRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.SettingManagement", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Setting", + "namespace": "Volo.Abp.SettingManagement", + "declaringAssemblyName": "Volo.Abp.SettingManagement.Domain", + "fullName": "Volo.Abp.SettingManagement.Setting" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "SettingCacheItemInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json index 82d123d7cf..fa1bfc4143 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,20 @@ { "namespace": "Volo.Abp.SettingManagement.EntityFrameworkCore", "connectionStringName": "AbpSettingManagement", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.SettingManagement.Setting", + "contentType": "databaseTable", + "name": "Settings", + "summary": null + }, + { + "entityFullName": "Volo.Abp.SettingManagement.SettingDefinitionRecord", + "contentType": "databaseTable", + "name": "SettingDefinitionRecords", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json index c448c0450e..3e70901871 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo.Abp.SettingManagement.HttpApi.abppkg.analyze.json @@ -63,76 +63,6 @@ "contentType": "abpModule", "name": "AbpSettingManagementHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/setting-management/emailing", - "method": "GET", - "groupName": "EmailSettings", - "responseType": "Volo.Abp.SettingManagement.EmailSettingsDto", - "responseTypeAsJson": "{\r\n \"smtpHost\": \"string\",\r\n \"smtpPort\": 0,\r\n \"smtpUserName\": \"string\",\r\n \"smtpPassword\": \"string\",\r\n \"smtpDomain\": \"string\",\r\n \"smtpEnableSsl\": false,\r\n \"smtpUseDefaultCredentials\": false,\r\n \"defaultFromAddress\": \"string\",\r\n \"defaultFromDisplayName\": \"string\"\r\n}", - "parameterDescriptions": [] - }, - { - "path": "api/setting-management/emailing", - "method": "POST", - "groupName": "EmailSettings", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "UpdateEmailSettingsDto" - } - ] - }, - { - "path": "api/setting-management/emailing/send-test-email", - "method": "POST", - "groupName": "EmailSettings", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "SendTestEmailInput" - } - ] - }, - { - "path": "api/setting-management/timezone", - "method": "GET", - "groupName": "TimeZoneSettings", - "responseType": "System.String", - "responseTypeAsJson": "\"string\"", - "parameterDescriptions": [] - }, - { - "path": "api/setting-management/timezone/timezones", - "method": "GET", - "groupName": "TimeZoneSettings", - "responseType": "System.Collections.Generic.List`1[Volo.Abp.NameValue]", - "responseTypeAsJson": "[\r\n {\r\n \"name\": \"string\",\r\n \"value\": \"string\"\r\n }\r\n]", - "parameterDescriptions": [] - }, - { - "path": "api/setting-management/timezone", - "method": "POST", - "groupName": "TimeZoneSettings", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "timezone", - "type": "String" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json index aeb603a65d..d35d66ab49 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.analyze.json @@ -614,6 +614,60 @@ "contentType": "repositoryInterface", "name": "ITenantRepository", "summary": null + }, + { + "eventHandlerType": "Local", + "namespace": "Volo.Abp.TenantManagement", + "subscribedEvents": [ + { + "underlyingType": { + "name": "Tenant", + "namespace": "Volo.Abp.TenantManagement", + "declaringAssemblyName": "Volo.Abp.TenantManagement.Domain", + "fullName": "Volo.Abp.TenantManagement.Tenant" + }, + "name": "EntityChangedEventData`1", + "namespace": "Volo.Abp.Domain.Entities.Events", + "declaringAssemblyName": "Volo.Abp.Ddd.Domain", + "fullName": "Volo.Abp.Domain.Entities.Events.EntityChangedEventData`1" + }, + { + "underlyingType": null, + "name": "TenantChangedEvent", + "namespace": "Volo.Abp.MultiTenancy", + "declaringAssemblyName": "Volo.Abp.MultiTenancy.Abstractions", + "fullName": "Volo.Abp.MultiTenancy.TenantChangedEvent" + } + ], + "implementingInterfaces": [ + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "IEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.IEventHandler" + }, + { + "name": "ILocalEventHandler", + "namespace": "Volo.Abp.EventBus", + "declaringAssemblyName": "Volo.Abp.EventBus.Abstractions", + "fullName": "Volo.Abp.EventBus.ILocalEventHandler" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "eventHandler", + "name": "TenantConfigurationCacheItemInvalidator", + "summary": null } ] } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json index 9fa4137df7..5b66280917 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.analyze.json @@ -67,7 +67,20 @@ { "namespace": "Volo.Abp.TenantManagement.EntityFrameworkCore", "connectionStringName": "AbpTenantManagement", - "databaseTables": [], + "databaseTables": [ + { + "entityFullName": "Volo.Abp.TenantManagement.Tenant", + "contentType": "databaseTable", + "name": "Tenants", + "summary": null + }, + { + "entityFullName": "Volo.Abp.TenantManagement.TenantConnectionString", + "contentType": "databaseTable", + "name": "TenantConnectionStrings", + "summary": null + } + ], "replacedDbContexts": [], "modelBuilderExtensionMethods": [ { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json index 43cb2a091f..2dd6769ce4 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.analyze.json @@ -68,137 +68,6 @@ "contentType": "abpModule", "name": "AbpTenantManagementHttpApiModule", "summary": null - }, - { - "apis": [ - { - "path": "api/multi-tenancy/tenants/{id}", - "method": "GET", - "groupName": "Tenant", - "responseType": "Volo.Abp.TenantManagement.TenantDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/multi-tenancy/tenants", - "method": "GET", - "groupName": "Tenant", - "responseType": "Volo.Abp.Application.Dtos.PagedResultDto`1[Volo.Abp.TenantManagement.TenantDto]", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "Filter", - "type": "String" - }, - { - "name": "Sorting", - "type": "String" - }, - { - "name": "SkipCount", - "type": "Int32" - }, - { - "name": "MaxResultCount", - "type": "Int32" - } - ] - }, - { - "path": "api/multi-tenancy/tenants", - "method": "POST", - "groupName": "Tenant", - "responseType": "Volo.Abp.TenantManagement.TenantDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "input", - "type": "TenantCreateDto" - } - ] - }, - { - "path": "api/multi-tenancy/tenants/{id}", - "method": "PUT", - "groupName": "Tenant", - "responseType": "Volo.Abp.TenantManagement.TenantDto", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "input", - "type": "TenantUpdateDto" - } - ] - }, - { - "path": "api/multi-tenancy/tenants/{id}", - "method": "DELETE", - "groupName": "Tenant", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/multi-tenancy/tenants/{id}/default-connection-string", - "method": "GET", - "groupName": "Tenant", - "responseType": "System.String", - "responseTypeAsJson": "\"string\"", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - }, - { - "path": "api/multi-tenancy/tenants/{id}/default-connection-string", - "method": "PUT", - "groupName": "Tenant", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - }, - { - "name": "defaultConnectionString", - "type": "String" - } - ] - }, - { - "path": "api/multi-tenancy/tenants/{id}/default-connection-string", - "method": "DELETE", - "groupName": "Tenant", - "responseType": "System.Void", - "responseTypeAsJson": "", - "parameterDescriptions": [ - { - "name": "id", - "type": "Guid" - } - ] - } - ], - "contentType": "httpApi", - "name": "Defined Http Apis", - "summary": null } ] } \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index c62b2d3f68..aa5584afaf 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.3", - "@abp/virtual-file-explorer": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/virtual-file-explorer": "~9.0.4" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index e9d7d29803..63b14d8ed3 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,221 +2,221 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.3.tgz#dcb95764ee11fc11ca593b722575275837cc58a9" - integrity sha512-NwTunUVwfaoZsNp1Js6B+jGPBw96taBhQ5hloKhtZFZxG2VMAN9Gy9fGxzUByYlpRB8CASR3kL+GRhrK2Ufc3A== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.3.tgz#18f0d27cbba7ff22576c1c6e54891190c7d900bb" - integrity sha512-WHMvMiZhqvPLQtqo3aI+wkhNbZ3gCkWqwhIiXHvRks+tO92ww52evPlZUNDSWSSkhcB9vJddx5Eqv4phJgcMAA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.3" - "@abp/bootstrap" "~9.0.3" - "@abp/bootstrap-datepicker" "~9.0.3" - "@abp/bootstrap-daterangepicker" "~9.0.3" - "@abp/datatables.net-bs5" "~9.0.3" - "@abp/font-awesome" "~9.0.3" - "@abp/jquery-form" "~9.0.3" - "@abp/jquery-validation-unobtrusive" "~9.0.3" - "@abp/lodash" "~9.0.3" - "@abp/luxon" "~9.0.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.3" - "@abp/moment" "~9.0.3" - "@abp/select2" "~9.0.3" - "@abp/sweetalert2" "~9.0.3" - "@abp/timeago" "~9.0.3" - "@abp/toastr" "~9.0.3" - -"@abp/aspnetcore.mvc.ui@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.3.tgz#a4e2e92cddca77d81d8445bcc1d2cc129ec4b486" - integrity sha512-wkn7R8sx5lhbaZeTAy5aJxLbR1f3TD8lNaNtM1Lsc7wWq9dI19wyJZiAWqCZij2HOr2IK5izSROVfTqoXyUwXQ== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.4.tgz#c6e92b45156a6815062a024c7e247803bc0f2bdb" + integrity sha512-iZ0Uyo/O79QKxcgNrnMolDNpFTNZIoWwWuspRCZ8slRzdeMAtHFxnsRr02L1dWz9dmE9qyeohN2vnqKYEz8pWg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.4.tgz#d079650bcd82f09fb2354d5515a45842314f7566" + integrity sha512-kRnOGDDFt0sK1XmIq2fYmMiZcPozDFkBHpMtUNSV2uzZBqZD9EzTp6ce863UuQxUYlboQvERvPrtnGBrexGj2w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.0.4" + "@abp/bootstrap" "~9.0.4" + "@abp/bootstrap-datepicker" "~9.0.4" + "@abp/bootstrap-daterangepicker" "~9.0.4" + "@abp/datatables.net-bs5" "~9.0.4" + "@abp/font-awesome" "~9.0.4" + "@abp/jquery-form" "~9.0.4" + "@abp/jquery-validation-unobtrusive" "~9.0.4" + "@abp/lodash" "~9.0.4" + "@abp/luxon" "~9.0.4" + "@abp/malihu-custom-scrollbar-plugin" "~9.0.4" + "@abp/moment" "~9.0.4" + "@abp/select2" "~9.0.4" + "@abp/sweetalert2" "~9.0.4" + "@abp/timeago" "~9.0.4" + "@abp/toastr" "~9.0.4" + +"@abp/aspnetcore.mvc.ui@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.4.tgz#42ff116e65b481a76b0ba972a09bd0d2a2d588ba" + integrity sha512-FZQUOBjrti6pET7MJE1ajAUrFGcGXlgkeVfGRjyqXuimUzCuXi+VIYQgjHIwQF4EJLk3TA2gna8A3ZBcoxf3aQ== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.3.tgz#aa40f5a31eb5c06224c165129a882658f4a0a9a5" - integrity sha512-Jg4oeBPtX7G41JdYjHVhB/6KQcMJO4WWXbUvkNetSUGTZGqacmgWRAIA5abmRWaHMJP1A1soZ9Ny1GNy0Qu65Q== +"@abp/bootstrap-datepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.4.tgz#b0379d65aa3c6206064d87960fecde8217b2e275" + integrity sha512-BT0gXuF7wkNO9wtTmOmAMH3FvMvK09FdqVtJkSj+6/Mod7dNOpovTW0dQwozDDy+F4E7XqORdQKEWWRW2kPoiQ== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.3.tgz#a1c17721a1ff6613a3ee4ff971174b32a93d98de" - integrity sha512-wrvjb0bJudohxiYtecCGEa4VsvL/Kn/Z3q9w1jvIoallrTXQaACPtZDU+9yxK5mRf6zonwYI8JtNn4xKa+D1VA== +"@abp/bootstrap-daterangepicker@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.4.tgz#884350ad59299efb96a1917b457d28bf85f88362" + integrity sha512-/8IyTX/+t8AIpBpfS3V0nQcDY9K9hrXZ5hUegyYchZjPi3MIDw8QTp+07ol7aXS/HpKp2eE/eIpa47//jti85Q== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.3.tgz#dc0325c23282086c9d2be79588b228e8b2c66eb2" - integrity sha512-ypl0R3jky6qKmnEZjnSniwgN8unNmWD9d4bOtV5RgDF2MlBQT+CvfUcYnGom0JOsL+5RjSNvzFH/Q5aH/yuy7Q== +"@abp/bootstrap@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.0.4.tgz#5bc38f06330f093d1a3bd3f8545b417dfef45e9e" + integrity sha512-PNibZLfMvHz5Y1oZ2ZGIfKZ41lF9v1Ncdh2wugP4ASUkF5Hp3IadubiG9NXpqPtn3OnqfRIWfZlSJAJT1sAgkQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" bootstrap "^5.3.3" -"@abp/clipboard@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.3.tgz#bda02ce6da876890ef117697f30348b8c16aaf70" - integrity sha512-iprJtnshdpRgLIPxa5Tgj1IqkLvkl2QxTmjrqeiuRhU3S1ry0GnE6dx3jAealWUOoYr/bqXPbpXi3RN7R4baHw== +"@abp/clipboard@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.0.4.tgz#ad9daa27ffc514fdf70c33ee275a885164e69e1e" + integrity sha512-qnwtH/+8/ID2r7VhRlsMGkg6k9X+VRJj/NyfpStwzehaMRJ4t0zkz3Fy58YRPlFC+XyNEz3oSjR2YhrpocS6yQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" clipboard "^2.0.11" -"@abp/core@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.3.tgz#8c508dc60628fbd9e8a9ba35d153316cacbf1fb4" - integrity sha512-4bHiyP2qPrEeXb/Ynl17b6LtfygWdkwsjHaadUbym7Lg5qYUQZ3KjW4U2DihYWCO46gsr/ckTEbV9edcRd+NxA== +"@abp/core@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.0.4.tgz#a0d089c45e4b61bb256dce610f714116d67c87a1" + integrity sha512-hxk7VSFEEtJ9O/JFnL5SDjNJhLNhsJdNN8TlOXHQwkFSQKFttb3hxDQYz8XhCYX8RA79H7A7W4P4pMevaq8qMg== dependencies: - "@abp/utils" "~9.0.3" + "@abp/utils" "~9.0.4" -"@abp/datatables.net-bs5@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.3.tgz#c89813a69a1b568a171cb2a4b1bcc4b7a4ef1bef" - integrity sha512-SD6N4apScOR22S7EntengOTQ1HSm2WnvzUuP/6HG50isXyMheRalZxJ6zAsBwiWyYyJtA+UHkiQzwVhdV40aBQ== +"@abp/datatables.net-bs5@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.4.tgz#3661564cf708413585ff99def7afbc2fd5c1f363" + integrity sha512-r72tlVbN8MbKOA/jxG1NPfHOuY7R0DZAr+3pEw3wqdIfKL7+8YreMXHzaIbtLmAFRdK9DLs04mHohBkrCmlT4A== dependencies: - "@abp/datatables.net" "~9.0.3" + "@abp/datatables.net" "~9.0.4" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.3.tgz#9cc09127ff6269476b6b0de16048e1e6480227c4" - integrity sha512-zLzHxdXnmL8pWKVzf3m4SIUMiPHHe3I9Cw8vezk5fK1v18Fk364o3Q8o8C1l1YDGEa7Sx1wsUoLDN+p4FzagXg== +"@abp/datatables.net@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.0.4.tgz#3627c3d62bfb91e4fc0090754f564fc259bd3f56" + integrity sha512-mo/6RiaKcgzo8MTccgtfznrB05LdNrbcx7GbHzubym1mEIGc8w8mwjEQc8mif8CQ6YAf5ODVmT5xy/gG3EDB7g== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" datatables.net "^2.1.8" -"@abp/font-awesome@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.3.tgz#db6ece04fcdb4880cac8174deffb4fa04d43d2de" - integrity sha512-toI2zGayMeI4EUUMmittRWKBY/mLjiiX1zA2z70q/Hpm9zoCly2KwbN7zwtWbayhESO7edci9T7CXF5kNdiNow== +"@abp/font-awesome@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.0.4.tgz#76f7ec1e33bcbc6eb6570db6f126dfd3778d8528" + integrity sha512-LjeI1nJbGRTe2jfQo+MMM9jVaI+OFHvzhKjS4eclCfR3tWy/+MjKqPpkz208z8fbnPwX9fwaF3uQNijR7y5Myg== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.3.tgz#907033a496af127bfbe4e220f43cda65331e7b98" - integrity sha512-kD/9S25kJSAj5f7bfHVMfzfF5/0OrLDj8E55M27zbusdcaFS/nYElzrU3DeAEusASdnssRAwyJCWyp2vvRIMzA== +"@abp/jquery-form@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.0.4.tgz#ac3fd6d93b94a865d98894c04991646e797293e4" + integrity sha512-J2z6lFDvFaTGLVE1DzRDqrxZKnYgcHvY1bwm1JUEhfQkhxrBQIkweQQTGqSpQl126bLptSY10r51e+pLB1id4Q== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.3.tgz#b9449d222d4855f941dbe7445f73fff1541975a4" - integrity sha512-U/zUDYyJnUYDmmloOx/rViVyg7b4Gxd4zgcEi1E1YP0zryQQh5CkoSEvzv7GyurB1/rVZuRszmo/nRgn3pHOKg== +"@abp/jquery-validation-unobtrusive@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.4.tgz#0c6a83864044de79490ff3f92e5c1f874fecb680" + integrity sha512-48OwOnGPno2yuhC3AafQDrpBTXqxS9T0ES9mmD4xBLnCqJ03uyRgLHhzSW2fLJiZfaiXqyAjo70Kcl4rl0eIHQ== dependencies: - "@abp/jquery-validation" "~9.0.3" + "@abp/jquery-validation" "~9.0.4" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.3.tgz#02eb010267121fd9310cdcf5ca7c7b54091fd5de" - integrity sha512-tqjM5S0/jDS88CIt8oCQbHYJTytA7Y+KdTsnRkrA+BWy2A5bjrd6YUZXa/2UUwXHa3tQgv/uXl9HpDEaqRtfYQ== +"@abp/jquery-validation@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.0.4.tgz#2f45396956b11b2bd409af18953adec0f2d72d14" + integrity sha512-edod+PDQqVufBcPGzKnest7pdDCe36APQiPj9pLAEgmNape9kIwgwSQkjsOnf0LKsHlbL/ydutFzs7EGliWWHg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" jquery-validation "^1.21.0" -"@abp/jquery@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.3.tgz#ba8b4f4c0825ccb55c793024d3bbeb9ee817b19c" - integrity sha512-lZoyiyz83VOQKbN+9gD8JC+WI+OACc3y2hU+v30v220DLKhwoiVQM6d5yfA2QEugTPTjm/s40Ocmh/nVjm5mtg== +"@abp/jquery@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.0.4.tgz#ad19d4329fd3dfc8cfe2090afcd92f1fe44e6905" + integrity sha512-Mc/GnjQq80Ux9s+4+yq+MJWlSARyp9z1eF4UPvpJEXN4s2vbn5gmSmQmyU5RKcIkm785SfX55kT1mvWSoK40gQ== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" jquery "~3.7.1" -"@abp/lodash@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.3.tgz#daadfb98339f1d6982a12b655b840f105b324830" - integrity sha512-wt4ZJmRlhnK9W3o8lex7LyL/7rzgu4STLtZ2Ga8Ec5uZ9kN0CDTYjIw0zVqB8iGNKcW8MCxIGB7u9JMU9tphiQ== +"@abp/lodash@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.0.4.tgz#9235e27b51cf19388bb228a098b63e140336e38b" + integrity sha512-tvsjQ/fvWzS6mX2WucTipd5eXs1aUwLBLaT7WIayAm5cyY3gdFPMlFrn3hHJV8RQCc7TJcEPOVcuy+8zm+iBmw== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" lodash "^4.17.21" -"@abp/luxon@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.3.tgz#62a5e395c92cadcf0985453eee065fcbe5354402" - integrity sha512-qTPw2vhgkgNldFJziHiL+c2vF7p+7RW1orev8K8XLSe3dguzlXBL2dicyDWCX9ay4zYfEpXbA0oKFgJvhBfK/w== +"@abp/luxon@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.0.4.tgz#174da78a638a659a487ea027db7bb64026bb46d4" + integrity sha512-u3iyQwYTAdKThSFKlQ4+sZ85bZon+NUlYbY+KY2tW5YBI2LzOST/0pYcgn/fbRm5Ap4QoDwZDEqhbjjI1LJgng== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.3.tgz#b3723f777b61c47ed64527b4295df33cca5cae26" - integrity sha512-aRearvDO1OaV7wfsWR2/cieWR/hG9cX78YGE08goRq0xLcGnBkmraQHSGGSZbMwId5zf5Kh3ePVXChO7llitkQ== +"@abp/malihu-custom-scrollbar-plugin@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.4.tgz#1d26a9c87f8d33a6a274a6f0bc3c192929582c52" + integrity sha512-pB0p4YuS38H7gNr6JsJnctmqnGlAvjgUVOo0kAlGeBicwk339CztcyRARS2t37wzqAwGGtktesMO7ldKKxJu2A== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.3.tgz#696748659e036a1bf707684340703a861f340a92" - integrity sha512-7SRIjSHOyDTbuZ41vpisft+c5L+E3fk0G+V5+rpsACGTm6SpRqnVuAl5egbrDcm9rQeP0+VSV+/6UXdM7koOCQ== +"@abp/moment@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.0.4.tgz#541938e3af7fcd5661ba2f2423f84f38c3d2ccdd" + integrity sha512-EAue5A3Ft/wDBY8QNTDyRo0gzp9NzEQxUI2E8bBBxVqUwg0S8gaq3FqqNf7OtzMdG4rVZmAILis0ZaD2I8fDfg== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.3.tgz#9675dacd5df511120dffde76e925a8344ca9bace" - integrity sha512-5nMAKRADa6BQh3orquGHCUzqoZyDhmvoQ7RBCJsM3e0W+wBPeV9qmF+dJjOf9d+c9dr2mpU2SrH45fO/BNqgWg== +"@abp/prismjs@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.0.4.tgz#52943436bbaf55979b87291fe0a4ee9e9a87b9c9" + integrity sha512-b5chHFO7sCPM5OCcltK5xw7p9ktEhkzoYSKJh5a79+VqW0XhN2UAWulIC0R9srxd+0v40HvWjFGcTh28WVL9CQ== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/core" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/core" "~9.0.4" prismjs "^1.29.0" -"@abp/select2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.3.tgz#d75afa45decc4ce5a25ecb257f76a9f4c4c1b1fd" - integrity sha512-Cs/cQHdqV0U/c3RXbTTfIQoTaJqjBZMGon8cHX6rmvCDhWKOU/B2E+R2wNlcMjl0Tkhfy3Jl1mwlD0KZ/LePbA== +"@abp/select2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.0.4.tgz#059dda64ced7c3712c949c8031bde6a86d415e20" + integrity sha512-/oW+Qro7/6vzH/pwRCFzr8Kon0OGGx+BIODp3vAqtI/K/717m3HriiRJrBLWSy99A3N9hHEgvVZrOsAA4hundA== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" select2 "^4.0.13" -"@abp/sweetalert2@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.3.tgz#b7619bcf664b7aaf51f096df1b60f604db36c84c" - integrity sha512-W9fQu1jGhzqliyqKU/OFtAHiS3b8kar3LN9Pij2g/Q8zS2esjdgdt4LoaI5SytRi7zXUqn2tCi/cDEDXf/X3zQ== +"@abp/sweetalert2@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.0.4.tgz#d02e59a91f4f7e8c42f6c43b24824ec3ccc8e47b" + integrity sha512-F5bHbGaltUETGKtSjp9H9QzSR3oavFdRmeqVkSma4tlYP4CaSUIqRQzjge5oT6cEjmleK4JVcZpEzTDf0YZt5w== dependencies: - "@abp/core" "~9.0.3" + "@abp/core" "~9.0.4" sweetalert2 "^11.14.1" -"@abp/timeago@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.3.tgz#8e675aafcc862643303909c27bbb982aa1c3c22c" - integrity sha512-B2ZHs4IfZyy+YHLlS/KLhxbqvxTkEEz1y+Sk8HtVSk0Ula5UD+U1FvwcxOiYGIghmHlkqFBtegifZosPOMB9VQ== +"@abp/timeago@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.0.4.tgz#795b1278fa832391e776f5d77d38f945b92e5a23" + integrity sha512-1+2+oPYWEV4BEAm/91WWIeDxHI4V1NVxUvLWPy8DMjs2eRIRgiu23wgVQDMUvwxFikgjYabTcoKnAbYwpjChpg== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" timeago "^1.6.7" -"@abp/toastr@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.3.tgz#1863fea4d709b524f8fea0233dfd0ff8b1bc5bb2" - integrity sha512-3eV17OBB8XLJC9dZWW6xzi4fpu5NZqNrRiKiYJf79IUvmuS0cBVKpNJVKRaDTp4DeDBHxCQOWmMnrNI/mh3bDQ== +"@abp/toastr@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-9.0.4.tgz#fcbd664f3b2a385cb9d578368c33f15eaf01c8ab" + integrity sha512-mtHfzpibiigApfb1ksoskBHlh3dtnSSjRKCniPD0r5xUKi15OhEIa2BQ8hwO6cbqPJs4LbFzH1yrKcdGM+Cwgw== dependencies: - "@abp/jquery" "~9.0.3" + "@abp/jquery" "~9.0.4" toastr "^2.1.4" -"@abp/utils@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.3.tgz#02dfd981d210be8229d65f802f0721b42c9e17d7" - integrity sha512-45sQQ6IV3cB9KAIVtRn3IH1wVr9DfM0PMFiwVt3F+wKwNBAPsKNcMPt4/EhZCNY3IMaEseJ7K/lxt33O3sURuA== +"@abp/utils@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.0.4.tgz#f656623fb6d19413267f950f5d844ee49923deff" + integrity sha512-NATCHtrqjdHFdjmfe2SejkLDRsFdDa2I4I5sX2fyjS1xFaSCcBZJQ0T4+jrsb1+X2mPX97K1fqGsFowBPbeMKA== dependencies: just-compare "^2.3.0" -"@abp/virtual-file-explorer@~9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-9.0.3.tgz#8545982f2157746af70d8e9f989d817dff23ff80" - integrity sha512-2iR5AhRcjHDrk0fWwqTfpnlK7FVCJOYuc2Hi32qm/TKs6yfEgtMFtx1Ol2ucd4Fc3L3VzUJvj36YeokXJDg+dA== +"@abp/virtual-file-explorer@~9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-9.0.4.tgz#e63e0a9d4a498cfc70ed58d3404009ab3dfac818" + integrity sha512-tBg8fxCtmIP02AxjYGt6fp6suyosKNjaU0kBZSFRj1XH4S/tAzEQ0Z0vIMOYafZuGAz5qFxVnBsLJmch+liM5w== dependencies: - "@abp/clipboard" "~9.0.3" - "@abp/prismjs" "~9.0.3" + "@abp/clipboard" "~9.0.4" + "@abp/prismjs" "~9.0.4" "@fortawesome/fontawesome-free@^6.6.0": version "6.6.0" diff --git a/npm/lerna.json b/npm/lerna.json index 777bed196f..e076840888 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 85ecbfe260..91c58dfa8f 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -44,8 +44,8 @@ }, "private": true, "devDependencies": { - "@abp/ng.theme.lepton-x": "~4.0.4", - "@abp/utils": "~9.0.3", + "@abp/ng.theme.lepton-x": "~4.0.5", + "@abp/utils": "~9.0.4", "@angular-devkit/build-angular": "~18.1.0", "@angular-devkit/core": "~18.1.0", "@angular-devkit/schematics": "~18.1.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index 13585121bd..313ddd2ee9 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.core": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index cb9a6f223b..591b47ffc6 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.account.core": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 1fc6380c17..ccb1fafada 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=9.0.3", - "@abp/ng.theme.shared": ">=9.0.3" + "@abp/ng.core": ">=9.0.4", + "@abp/ng.theme.shared": ">=9.0.4" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 770b13e36c..d6d1fbfb3f 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": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~9.0.3", + "@abp/utils": "~9.0.4", "just-clone": "^6.0.0", "just-compare": "^2.0.0", "ts-toolbelt": "^9.0.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 8cdece4f9e..6050dac7d9 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": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.theme.shared": "~9.0.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json index 765c2f8977..346e2c7db7 100644 --- a/npm/ng-packs/packages/generators/package.json +++ b/npm/ng-packs/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@abp/nx.generators", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "generators": "./generators.json", "type": "commonjs", diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index 64a1d94c6a..2eaf254a14 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.identity", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~9.0.3", - "@abp/ng.permission-management": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.components": "~9.0.4", + "@abp/ng.permission-management": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json index 178d50bb49..0d91ffa228 100644 --- a/npm/ng-packs/packages/oauth/package.json +++ b/npm/ng-packs/packages/oauth/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.oauth", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~9.0.3", - "@abp/utils": "~9.0.3", + "@abp/ng.core": "~9.0.4", + "@abp/utils": "~9.0.4", "angular-oauth2-oidc": "^17.0.0", "just-clone": "^6.0.0", "just-compare": "^2.0.0", diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index fe4bac0ab1..0952ea424f 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": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.theme.shared": "~9.0.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index a1604ae52b..da8402c705 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": "9.0.3", + "version": "9.0.4", "author": "", "schematics": "./collection.json", "dependencies": { diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 9bb11a6c44..9b9a9caf05 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.components": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "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 042a1fc74b..2b5d5ebadc 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": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.feature-management": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "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 6db56c3b30..7706a0ee5e 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.account.core": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "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 10d9e6e4c2..5f88913f03 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": "9.0.3", + "version": "9.0.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~9.0.3", + "@abp/ng.core": "~9.0.4", "@fortawesome/fontawesome-free": "^5.0.0", "@ng-bootstrap/ng-bootstrap": "~17.0.0", "@ngx-validate/core": "^0.2.0", diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index a2f5772e25..f1c65e682a 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "anchor-js": "^5.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index b23652e0e3..dd9e0e68e0 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~9.0.3" + "@abp/aspnetcore.components.server.theming": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index d3edbcccdb..f4853a3c22 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~9.0.3", - "@abp/font-awesome": "~9.0.3" + "@abp/bootstrap": "~9.0.4", + "@abp/font-awesome": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index ab0c959247..279cab39fd 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 49553ce8de..51a48fc2ef 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,22 +10,22 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~9.0.3", - "@abp/bootstrap": "~9.0.3", - "@abp/bootstrap-datepicker": "~9.0.3", - "@abp/bootstrap-daterangepicker": "~9.0.3", - "@abp/datatables.net-bs5": "~9.0.3", - "@abp/font-awesome": "~9.0.3", - "@abp/jquery-form": "~9.0.3", - "@abp/jquery-validation-unobtrusive": "~9.0.3", - "@abp/lodash": "~9.0.3", - "@abp/luxon": "~9.0.3", - "@abp/malihu-custom-scrollbar-plugin": "~9.0.3", - "@abp/moment": "~9.0.3", - "@abp/select2": "~9.0.3", - "@abp/sweetalert2": "~9.0.3", - "@abp/timeago": "~9.0.3", - "@abp/toastr": "~9.0.3" + "@abp/aspnetcore.mvc.ui": "~9.0.4", + "@abp/bootstrap": "~9.0.4", + "@abp/bootstrap-datepicker": "~9.0.4", + "@abp/bootstrap-daterangepicker": "~9.0.4", + "@abp/datatables.net-bs5": "~9.0.4", + "@abp/font-awesome": "~9.0.4", + "@abp/jquery-form": "~9.0.4", + "@abp/jquery-validation-unobtrusive": "~9.0.4", + "@abp/lodash": "~9.0.4", + "@abp/luxon": "~9.0.4", + "@abp/malihu-custom-scrollbar-plugin": "~9.0.4", + "@abp/moment": "~9.0.4", + "@abp/select2": "~9.0.4", + "@abp/sweetalert2": "~9.0.4", + "@abp/timeago": "~9.0.4", + "@abp/toastr": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 1a4266359a..b3e32cab6a 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": "9.0.3", + "version": "9.0.4", "lockfileVersion": 1, "requires": true, "packages": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index f3becbd4f1..ce8079319d 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 31dfe5bf25..f6b504947b 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.3", - "@abp/owl.carousel": "~9.0.3", - "@abp/prismjs": "~9.0.3", - "@abp/tui-editor": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~9.0.4", + "@abp/owl.carousel": "~9.0.4", + "@abp/prismjs": "~9.0.4", + "@abp/tui-editor": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 5d0a6faa42..0e5328953b 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json index 8ce078f9a2..4073b5e73a 100644 --- a/npm/packs/bootstrap-daterangepicker/package.json +++ b/npm/packs/bootstrap-daterangepicker/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/bootstrap-daterangepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index cf9af47b39..3f79d054a1 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "bootstrap": "^5.3.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index f2a6594887..f62db6a4f5 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index c696292fa4..9dee91d3fc 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "clipboard": "^2.0.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 1c97c6a0d7..ce8a51a5d9 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,16 +1,16 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~9.0.3", - "@abp/jstree": "~9.0.3", - "@abp/markdown-it": "~9.0.3", - "@abp/slugify": "~9.0.3", - "@abp/tui-editor": "~9.0.3", - "@abp/uppy": "~9.0.3" + "@abp/codemirror": "~9.0.4", + "@abp/jstree": "~9.0.4", + "@abp/markdown-it": "~9.0.4", + "@abp/slugify": "~9.0.4", + "@abp/tui-editor": "~9.0.4", + "@abp/uppy": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index 40d8a42d37..1d2c5dd30b 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~9.0.3", - "@abp/star-rating-svg": "~9.0.3" + "@abp/highlight.js": "~9.0.4", + "@abp/star-rating-svg": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index a30712f955..1b5cc76584 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~9.0.3", - "@abp/cms-kit.public": "~9.0.3" + "@abp/cms-kit.admin": "~9.0.4", + "@abp/cms-kit.public": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index b2404eb7c2..683f5cc48b 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "codemirror": "^5.65.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 843493450e..396a27e843 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~9.0.3" + "@abp/utils": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 1c8bdf2c90..2431c5c4a3 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "cropperjs": "^1.6.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 4e7b4b1a42..21bf102fb5 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~9.0.3", + "@abp/datatables.net": "~9.0.4", "datatables.net-bs4": "^2.1.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index 6d8eceb6de..1a98418673 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~9.0.3", + "@abp/datatables.net": "~9.0.4", "datatables.net-bs5": "^2.1.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 12f92bbcd1..997cd28983 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "datatables.net": "^2.1.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index ecd5157b20..b9c8a302c9 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~9.0.3", - "@abp/clipboard": "~9.0.3", - "@abp/malihu-custom-scrollbar-plugin": "~9.0.3", - "@abp/popper.js": "~9.0.3", - "@abp/prismjs": "~9.0.3" + "@abp/anchor-js": "~9.0.4", + "@abp/clipboard": "~9.0.4", + "@abp/malihu-custom-scrollbar-plugin": "~9.0.4", + "@abp/popper.js": "~9.0.4", + "@abp/prismjs": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index f7c8ba8cdd..7782d77b55 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json index f1f20217c8..5ef10bdb1d 100644 --- a/npm/packs/flag-icons/package.json +++ b/npm/packs/flag-icons/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/flag-icons", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index bd1cc280de..fb22f71369 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "@fortawesome/fontawesome-free": "^6.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index ede8f72b54..b95859f2e8 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "@highlightjs/cdn-assets": "~11.10.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 2b0a9186d2..931fad0e10 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "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 c46eb16949..225dbddb83 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~9.0.3", + "@abp/jquery-validation": "~9.0.4", "jquery-validation-unobtrusive": "^4.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 8c5c1971da..b940ebec04 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "jquery-validation": "^1.21.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index a6d809b152..91a6e4a99a 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "jquery": "~3.7.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 293292f0ac..85e8ac4cbb 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "jstree": "^3.3.17" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 340911dd1b..5c52322035 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index cecb2c8c68..c598bc0d42 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "luxon": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index a4b80b0df9..880cc5605f 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "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 0501ab1de6..228554f824 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "markdown-it": "^14.1.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json index 9d7a90debf..32deff4c5e 100644 --- a/npm/packs/moment/package.json +++ b/npm/packs/moment/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/moment", "repository": { "type": "git", diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index c335484964..0e4b6ba95f 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 73390b2428..6aba9bdf6d 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "@popperjs/core": "^2.11.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 30c5d8cccf..c62ad26fae 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~9.0.3", - "@abp/core": "~9.0.3", + "@abp/clipboard": "~9.0.4", + "@abp/core": "~9.0.4", "prismjs": "^1.29.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json index a6c3a2e881..887e401d28 100644 --- a/npm/packs/qrcode/package.json +++ b/npm/packs/qrcode/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/qrcode", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3" + "@abp/core": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 4603515e27..b182156ba4 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 94ba151cc4..10cbc29094 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "@microsoft/signalr": "~8.0.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 8e7d51da8b..69aa950d67 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 307d7bb6ae..a2391dc930 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index 55ae7603f8..68c2404965 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "sweetalert2": "^11.14.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 6afc631151..a1ed13b31f 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index deb4f86946..151493d3ac 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", + "@abp/jquery": "~9.0.4", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index ce9e67bcde..f626ea7a02 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~9.0.3", - "@abp/prismjs": "~9.0.3" + "@abp/jquery": "~9.0.4", + "@abp/prismjs": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index e10236ce24..f804b87b43 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "uppy": "^4.4.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index a2499d8d12..ceec4804d3 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "9.0.3", + "version": "9.0.4", "scripts": { "prepublishOnly": "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 3f5312fd8a..bf2bd6d105 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~9.0.3", + "@abp/vue": "~9.0.4", "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 64de7e7e4f..29b75c0e85 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~9.0.3", - "@abp/prismjs": "~9.0.3" + "@abp/clipboard": "~9.0.4", + "@abp/prismjs": "~9.0.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", "homepage": "https://abp.io", diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index cb617a1a05..5c999f029e 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json index 1043db320d..399d06c0a6 100644 --- a/npm/packs/zxcvbn/package.json +++ b/npm/packs/zxcvbn/package.json @@ -1,11 +1,11 @@ { - "version": "9.0.3", + "version": "9.0.4", "name": "@abp/zxcvbn", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~9.0.3", + "@abp/core": "~9.0.4", "zxcvbn": "^4.4.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431", diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip index cf6b67d2d61d63e452244a0bd3bff412df1cffff..51eb5077250b749db0ef2135c4832eb1aaf764a8 100644 GIT binary patch delta 17721 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 diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip index e8e51ce0a659545e67450f2cd86848c2ec451797..c0dfe68278fe2d5b7841374797c35f5ab76dec7f 100644 GIT binary patch delta 8688 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 delta 8534 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 BBE$dy diff --git a/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/source-code/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip index f3eb63e68b3f87603eb4737ce10974a909ea0008..a8e061c4b076f12d420c5c314ee12d960e4c4cf3 100644 GIT binary patch delta 35149 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

G?89zgC#7uN$md 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 S|01p;|6s#&(g!zCR_1@}tUgTu delta 7599 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 JxS6{7{{j63POty~ diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip index 6522c836aaa1a2dfd93c46bd975ae0c2d4ffce7d..0e880c6c136b45483df6088343e910fb624085c4 100644 GIT binary patch delta 21244 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 bwB8>4yY^f9OJF0S^#Nw3`Dz3FL-BtA;vY(% diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip index ccc5ab00b9c50ea5baa7f283a705fe289859ce6e..41a183d86e63de5d5e4e258c4c590c5a3711cb66 100644 GIT binary patch delta 42327 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 delta 42459 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 Sphe8ir=qyXX6Zo!ME?gqy~Nc3 delta 20011 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 BAu<2} diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip index d8bc7ca23eb30d359ea2f98e1198cad1ec28c6e2..185f8b3e091ebc5d35a6d1fe3924eeb8c1928ae6 100644 GIT binary patch delta 24461 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

Ok7%bi=3-tSLh^zy$fO`89 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 M$;e*q1&$>9KU)ur1ONa4 delta 20802 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 diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip index b8f4763354dd5ababec23d1317aad4466a139ffb..ca51f2ba100f483676ba1ab472a8cf4ef0939cde 100644 GIT binary patch delta 31251 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 delta 31090 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 diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip index 17d8837466c7b236b831fac92499fc992a9baa35..0511a17d159d88f9612b65b4c775d6e4e51a0320 100644 GIT binary patch delta 4418 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 E|Nm>m0{{R3 delta 4423 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 M64ZF)=*v0&KQ#S`cK`qY diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip index db7ffcaa2aec854a51b5b11fd8bb529d8b2f2119..fbbbe6493c37fccf0aec2a27690c6526c50fcc05 100644 GIT binary patch delta 12005 zcmZX41yqzl_ctsZ(g?UpBVCGgcXxM(v~;e3bhC6zNO!j&ozmSP-3Um?w=RDF_xQeh z&YZc=Z+`dQxp!t~&U2nyb_1xp0X$QbfrH0`fq_AWIn#R=`^*?lS^Ztr2SHdk$YV_% ztOvp$0nCcD1nseqBcKCW$gkj_LI)Zc03A`o=!XKNn7dB^8qNYkzBKprKxFmNqzX zs!e4ch?ydiI?g+f#c1rE4TGyCgza+M^ER-5WjY)Uo#jvyU?Hm(-z5u7lkAt-jK#!mNv1b5c)xf$&c@ zYB&iLp;NC3Co+L11bp_w2^y3I@C^VO%tgV$<{T^x%y)Pg7*%L6a#>U$6DNlc_U{u^ z^z0V|vAip$9u0pjTPKkUQ<{Vlwg^kp(2@8IgjW&tb-F8f?GXO zy~PpdEJLhwA?bufh>c&`vD6RBmoZ8FNfJQ>oa#J>K{K0czJ@M~@&zs@cgxw!jz>HGI>-R`BiwLHq_!b>~+aauya`%Hdqna%^IXln3x_vo$|Hx0Kni zXih_}MVJru>Fc7o6Oh_7GdsTFEtT|R+W!+NNtK6#5DHRL#a+7bA zahOlN{T)S7x}RYqt``$AB$hcaYt4{lh*Wml{M;+|9oaU@`6|t2_7HfOsiLIVn0(sC zr>(u^?2;empM9b|`1QgC;}r}HxfBe{8_2E(Uy+D_P~#|@(r>Op19LW>;rA?l3za0r z#uI~8^5*P#NYgJK+MhVy*Kd<|mT1tG9ga_HG><1`|S=0b&u9U>P7EC0dta5 zfeMPuCXL0)WD@BR`yR+qx9f*dDpk+WUP{{beNUvuQZz|7AL#M+;#Ugu{QV8{n2Rd8 z47myNFD79oDmqtFA<{S4ra6Z5E}_EH7ntavS)w#*BX!<!U0til5)O@dF~1p~ zlCkqjuk>L@pdi@8=GzRhP79gLSO_1V4~fZ*9LhyIuTN9g{iafr_vWLqCX>SLXrrzj zsF8>;@1~WyzkE}1{#s#^tf@bN5E~z#EWyo8VcVmxNr1&97wp!hRXO5yKz}p=1RDEeGz7FK<68Wq4z77t#CzlPL8;2J9ZLx zdwxx?!W$OTIY(jmntyd}TSS}N;5N%7g1mo>ek$KtZF^vq)JLOG4jexuL+4hQ;7eG9n-c?n4frG+En@NLALAu;N6+}&li%*1S497kqrr2jaU(Obbc6&#nqb)))rKM%^-Z_;o?=xFwk-6W#dFQnojtBZ_TRRMBVi)0z z`Cg>Z-gsOf_qQ`Jtml6T;rHu zu2>zna&mr}jA%;mObE+mvv(?c$MH?aCHlDs#TTV`bZVbsHP3n32ATJcmaz%jGJWoC zS?uxV=H)#i;fc;{o~;GEhge^uK}I>NVvi(3cdwcorb7DwjtC4ifC|a-eH09^S`JMV zDGmB>7phRME+4jVxo#czDuz5;>$>vM=LenKOJj0o4eS~wdOt-A(jr6N%~}gn(_IJW zOCK*DJL^Sjc-N%W%XDj_58rFPZRG!qsBwt;>x{R3%{k0{6>+CR4^9`w8Fa+{u~Dhf z(Kz*9J?gSf>Fdvf9iZ;3=yU%e%4oXkyh7d!BTwn#Llffguw22~?5U(*ca1@5c`0R+ zUl%nmTyx#BO*sv+dtK*8lVZOMplgJi4s~VV&$)k$^RK8ViF5mk7CCNdSr@nU!$lJitKhs6=FWunD9Q@eN zgNKWW9TB^wJbM;<5^^1j_lknSv#UNyb-sK3%K`F0)YRy`G5=NKowJeR{=9ru+@e!; z#=--U9b<0}KJ&cl3NwZ9A52}k(3XGtl{FPiTxNZK^qMSQ(`>}=oh`)K~~YsR6!0~O)eFqs+9P0V4W|BQeTzOIIi#% zKq-%D{(qqXzpnesPhk69iyeBZ zatGSJ<|+O_a*;n;1n0+)24^eeeN)f6eNg@>w3-}2ywt!vhD=6 zVYHm!SHWC#CY30hk}f9{z>y7dhA32GmpjHjh9W0DD|P8j@uCtnU0q~9y+PJ25!uPb zGDDK!TwjTE$#rYtj^;E>uWvnJGGgrqQ_Uz z^TocNpM%z2(GY?TMH+iGf5uW5g$c&4Nq*u)wImIpj&Tl0^^F-keCs%)tEE(FS7h>% z9-F8CC}(6~z_A?{>6_hS1d&|*M7Q@f zCMEN)kwH{qt(OPnECVbY_T#)#;12v@l>ll6g-6h;AT3HfODPUP9v3Qoh6X-44i*a` zGxn+rVW%kGFQoY^*SSSB4;F*bk^Yi*(VwyFWy)h_x8$Vidy%;_=o!r>h*=It-1;n) z?a=ghpWimVQL-W&V7$H~nLTm*$S~SYxigNyh>qpjBsmb=DC?{dEMBDTuBun;j%CZcS}mhxm@zC)&SL!GX9-RyZ(z<dagJ{s81E|pyVeD9?DaDnop>w~jQE>#N1 zeF_1vhWjbzt5^F8s}?{nOA#SF#|uYz3F+`-DUbHhgfm^j9c&c%sN7EVaFaa~-?MUX zv)v|vexx>lNPy{Rh>u;lp+tMYnyI;cKS2;#_S1ClbHq?s_^P3Vkt6T>Z+wSpOw9(o zO&pFD5A9fpjSd0VbrBalXYK4L?gj#&K0b7SRlw0Vvrnj>{9Xu~8YC8?ngS?& zk&x$oTIp$buAbTRY}k(W%ybiBJctVrPyBFI%5>R3({_vujW0b9BaYC~OQT1dj-xsp z=|5s1_iaSK2XIi-E=X{%raIcrIQhocFTq_dRMB6HHJne%?Hx4u-_9JO%r)eK7FpMlI4X)H9|X%)A*vMw(Mf zWb3q5ITBj88vU8DDQLLYmFAT)7iATI9yW}+z1h7|9$1R=p2r;+un38L^Vm3kG}&;IqWmS4zeQRKV%;Hm}{FNlz2v z(g@3@vV_mm-?MtGDi&!=at&li%k_99VE4q@#V&On9?Cvu>hP|6{5~Bm2ay_ODUE|Y zrpf$w=^eV!2))|-?%F@ZiG^Mi68g_04=jHmLe{Lw@vJ%1nc zXN1yHLvyR2!bCv;DHcx)7{LFbHxWN5Y9UM^G9SqFR<6n#0 zm;-POP6mRaiDHV2rYkDR`z2whR3M@ofT9k}1Ao7;B{pN_Qs8H5nH7?g1`$wAl=cT( zRV&v59t{>@1{;l~$^_{^gA9udZCAl%$+@OXO(#cSbd>8`14FC9jqSXmF`3M(Yr?LC zXWlwIzcO!r&8ppc3t)jNKJ4xwZFr3}?hiE-WR58`4!eAz%Nc{4BiH` z!sz+C5TXylD#g>cUvP4yeY<5u=&e(0G#p1$lvd8gmyeXnReL2cg1KgwL}#+KGico> zc2h&Tf8j^9sK=E&18wlJ7?fdWiT|*$p-h@#F2arzl=Va2ySXpIKq7t>v<}bd_O<`( zONkG923UJ=pWl1;BdUx|-Y!Sxy5RF9BZ@EDN|8IvI`V3A<`wO{1)j^~E|f^UFn1OH z-Y8}rIOn7XERs7goXz){?qy`|*Y<7qkUclpE`0or=?nYe*Cpt2Woo)_CN_L*ov*cG zCfGpqy5>vlg$WajiJw$ETp;myY-M+g;lk%)3GYzPC~30r4ZqlGB&yKlD+?qm^%;}V zw3MDae$>D%!Tpj2Q$oClde_tHUf0;V+`W)1+m4DliivcW)RFnB??Bx7(0kz}8*{$0 z(3_?S*sx9?#2=tZ(O>6ej6NfAE9eviW8b_Y3~aFkqR)6_$3}F|DS}W$R1=ZoBhB`U z$;Z$PH@1WtKj6{yTmbTNZ(xJM#>?F|J+R$=vcY`<^vCM*YQvlZqIwQ-2$zi*f!Dc#a5AWHTz+4~7vn%;<5&jPh_@s__1yq5HS z$K?GY?Cv;9hDU=8lQ!GzG>XnElaf}k4S`I=RIt8t3zl8OZ}6)Z@mvQT)oH71gN&;U z$HcUIjKrSl*J}@px}_1f^RAyf&&rgUw793HfPKCudsLFDSF(z1AgrE;`t6Y%tF!|J z$a@MHA=nypSrx+(ZF0ipuV4Lh`kJa0`J}ohoapdifI*jF>`?WPcNMgMZPvSd#;m*F zwhHj2g$2Dh8RI4xeP&P?-93c7znQ(2RqZUMN*dw6jzOn|AxTA^58!(?^Z=VI{?n(p z5)tG2<%D|K7r*$4S|?q{tJY)5s#Nl-d^Pwg0nv1j@T_C4^8P_Adqs=a;z%Su#te-r z+eDVl&S;`bY0v;M^RB)1miVerIb%)L3s7@sC4~qBbtQBg)5(d=|S@Ve`^IGHrwj(h4upL!oHhyvm0rk7Ju-_dNmQs zs+~AXCkVCP+M4=nIf+pTS6N)m1ep}ZoFxl6DmJ_WJs14@(suOQj1A=#e8GFg*h@om zc4JUgdZLA(&-pt6<(Y%p$twQ0)SB^W&R=O0i{aAl^;pOe~wg3SU%GMS!Q; zh{DJFUwvg+8^#DXiP8pfy$T}Nb5f3wb1Uu82!9ZVFm%lo|LfW7LTU@v`1MLU<1E2Y z+|c4XLnhm^s3^MWs@Y@tBWaOy_Ad?BAg+1andTzCYjz#l^|zk=`##3(NJGc0SK(*U zx;D)%uTzLy)qvA4^6V4psd5>NzQNqzX6d+|DCzXH#2>-+=5)v}#e!n_&pT_Bf7R@^ zy}J)uUu=2{E2<$ReBK!^>`e(9$)&Y|96&|O#lMac{aKXZt5pBWv4~a{d_dsp5eT1K z$HhHUmR^lQ;I&%WtJ+KP<}nO76GIeP8^^s-!go3&-#Uw@qB-@hp8qf!*S#z%j?6yB zl_TKVU&Ef`t~lJj%M~z zIC|k%A?iaKOOd!Wsm++QfXg)B4;r$W)py&SU^%#d&BoYP+59X&b}c*dT;Ie%^aa|W zWZK3D<`nkXK33w2tIfP*Tbb?L8T=){)qsO8UvpA=1WQm-^uTWqwAJ(N7^y<76S2HqqElH@TD=T}?)N zYqR=|3WZnv&Vyq>TK-mZhwd}tq}px#>LD_ls7K%14^Bb4lYPu5$KX{GpQWPwn$%z5 zwRSR3yS4XNeqlVjY^XRwpW#8p7#N5QMT*e`*}QvzPDc+vWX$x6rfk)|V*VNHwA_*s zJ)Gww121(5$+wHSDMt+3EQ#-~N==-dq+Hnpf~wRM+qjo6hf|c8LW2&Q9U;>#m zy~>KyGA-T|>KS0WCz*o8e!R)(Al5G>TitMW48MPtp6w?yr^>>!7b*z4Q>9aKkndUw z_|=Ps3PaP`&WJ+Iv+a|vPCkO0Z%IF-HloUIwK4U+PA$dyMiN~Pr{sXoVs!RE-b#zp z)5#=XyNVcPdukQEVBkC5MA4Detz;6t%pykg#rBt@j-V0X_?2j|z+r#Io8uj&Mys<= zJtJg_>$7}BIA|xA#Q6T8`y@k}mXCR2-on_L`9@wrbvw7ixtQ^`w9kxX*e{Jxcq46j znJ3piKCj`%=slv`weqEnn@!+*=4@Xmf5{*}v|p{XX)!Rq67yU2EY+k#Kw7d|-fMAc z;6YMAAG;~lU;h~sNnU%&!S3&LyQ9=cGkncb8OrgVs1ubz5MFG^nx*5%6{GL> zES!N@o{AoWf%*DoqCrbejp2nWb1C2S{mO*X8xG{Gf|@xia?IXj4G&WuB`wq$Efc;H zM{}EyiCx0@csY|&@XpEXjfhq|X`T0JSl9fp)7cmA76vBQgfY0&(O#$DxA_-QTOyaF zv_M@1sG(Br>pNx5o;9CnT{dI-R=-fv_kbb}Eg=+)}zL}D!AQ8P|wHpKG zhZVVb9%O1x2Zl(WU9ucA(1R^sRf^E!U$xlr6zf*xWm>Qt#`7t=(-Zfc2t zO`FzUqy>5o-+Nq0IBx{$={qZ~Ra@*k{G8O)qaYz4?~yw9i0C+*(ADM)_(9Laz^fnh zrnwX*1%XjT4S@!fk2}mm4yT8KM-$5*(%-UA_ZCj#|d21V%9f2@-gZ9`k z_Q5yTSe$hZDeQ(iKSHx>5*&673SZfMxfbLLB#^FnhtJk;s$FEzLCjHc-W!D?I$UhXz85yMkEwcEMaZGC1Ed$7T?idcsC+A614TXS!L)5Lc>h z%$YR^Z|g3@s`_m*j;{<|PEX*4lieD-&hCp(`aV1waD#nI+dIl_(U}=CKmuQY6Rb$a zNFTrHAP$W`6AKQCGG9!w=;@V^&=f(B1d$Xt0iP=YWDExG2m6Aw2axi#!|%lS>e)Jo2&{Q()K~DYk(hcZTjKCPBK!54)m@{UJLE6GIR3_>v3Vy^*wBAy;L&y znAQfN`d1*Qqe^NR1zNm$&D+?WTyl!xuZ4-WiAV79a|pTrC-eyb%fiwL$gP72quH12 z6(TJisB?n@oZc{)aa`p$eT8U$$LKW&jP#tz*+_|Jd&YFEwa#v4MWI(8zi!!HEo`!i zuLHKEtQDD_ls#H_1lEj~sQdsDj#7i@=y>a2=mA?k0>m+}JsCwf@qFOVuvxL2B8>OZ z?)Q9*)YOrE1?A&?cN#fWUDrK3gr)1mYHdQMVaQMNN9$U*TIKSyXcl$2ZYE zkQV36&oa()a#d+L7k+;7@~QMG+}1R%E7If_y5AEsll z%;So|4d1Nau2eNOr*XW%0%_{?Z<~OoQ3{--DHv;=QcSfN_sXOO$HHwdxtbm+*}g{K zKK}D%70k!C2>sp;wzC{|^4rM_fPwlcpyU83pjD*Q`s2 z;(eLb5Q+&IfIah-ooklIIa69Rel`_vsgg_dLVlwnwV{j+|0~7ByH;|wB7}Ao4yk*+ z>njkeCh6yA2aH=>Te%a0Z>Q^*qyz`2gmDb6+`j{2EdciEqog6xVjCB)2R?m1#!ova zoj_nPM1oh>&zu{s{h}aN8^JB6@a1=I=LBI?lvsq{ocrS4ssW+WbP&3*32}Ey#s!FT>_G-3J)D zeT8=sNd!2f>_cfu@i7Z)YW*2Fx8FYiEI+CHZNUe5SAlTCcoxl*r|9DqI@F8a6JDa}i?=1$?e2gVndbSe8GGG{H#L2VLcFY>SS`?(#T$L#9OE^&vXF|9~V+8Xb$jK#LJ zxhkxC56e^EuMYA4Hq%KYV=rx$^y1{fUev64_@GVO!MoDV-E_W<`TM_WBX}8(-7X;8 z;|HWj#<(U{!T71N=t@!HNsv_jTUt}DQU~2M=BlwzBe!aQg(wa0r|O$$T02n6wHDD6 z1y|?vX#`R4H*^F^KMeNSpB-m$KpIE}aVZ1F)@J}4mJrwM8qhxtjmN-EKZ6WCfMK0P zYD|oXpI{ug&4EkEL^r@E<{~xY#>h`DmP{0%1ZK0ECt=(C^^<^MN%|zPS}8x-_zX~P zCxV!!hI;*8L0B{Oo)*ffwh@2gO4%ws2^n^IPfD6E;{5((=ny)eSO<7m=t)P2xL^Gn ztY9lqv+aoaq;ma1<4I6*7W)6Oj5}{ZbeI0OFC}-Tyj_^3Z%j z_B>Obw2QHp*a#rgMTJfm%Z;FB!kgxa^WY=W$0ye(fivjs(>Y=n!tx}14kLkw zn)?<-^i*`V3U2!YfV1LHq2~L>QHHi5Gw6qy*9VVB34<4!Nx-m)Cs5W!Vh>ckB`E^x z0xX@v{->A?9FQUiCG@7eh4%L;^3Yx`^{LNHm4QAVrfNWY@wE5Qz9!8R+OwpaK>NhM z{e8Lt^ica##|AdZ(18wiX6QqE^310`AQJ?AM#zeQt|qij44j(fLHcKR{&&F;B&ff? zc@l6{7Co4R6oo-i1{Qz^^MAE@+Nst6`5*}GPwgD{|K~${4nDAu2nE=lj|e=LjSls@ zk_`ml^Z$hjzz69VP{+{g6Ouk6I2ahse{2K@{w1S=V?J|1Z47?~0^SNkU_S8coaazT zAO{Fw6oEie^#47*X@|+JKU1rLG`4?CbArF;h(O&RJ1Ts}fLt;C?mH?0Eu>IdW zJL6piDZN|`+^B|yqu=x`DeMlLz?hEHi}gKk`ckjD!5>e z7IdgWwP$?+GsIylB-s-GC>W_i6|z-{!5IZlPD=}bfS+oRMWqIx7CbG~76EAlB1At4 z(scgO57mGYS=6z?;f1WwP0>*Zx#qRNMgeSKtRgxn#8(6aoNGaujM_kOdeM`o5(tc; z1BFkDc%e+DVjuuk?=M6S*4IM@rx*WaLxuqQ;Liy(;L~DSDEnmz5D;wuam5dIE5U_A zkq`*m2ny}~g?>XI$otP9mR9L=XhI&P-WZ=l0$G9tB=S!{vnEjDNGa~q8hcqOsX<6N zkj(u{q%#9MmI;6b%5X^j{D-SnnF4wsmg*p6@qa9?fgQ@!pvGLMR!h4eW3~U|6~z)_ zOb|>}jtvchs~iYmu!7nLSs{Yc%AYb&41xXLL+6K3@f0qw0tmRXhC*^SNMN6eCuRf$ z7PW=KJAauE5GdIW3Tak8Dce;70Rj$CXy7lj3W30mP>8$giKSQtS-cNWsN^ry34vst zp-`qX(*Nx7@tD8Y(Er34;{sKRtbWR_Z62T4JtQGJ|C6+7S19p!_0xJ;@1|LtLWl?d zLwx5BC4Q)RI+4O_fPhdBD75H-3O=oQ%Eu!F-tvUP+OO*D8P=5-uI)h_5B*Ol5+EqC>@V^E?!*5f#(snniR*Ep8%2+cDjXL=+W#NoJXo<_ z8Or(R=7f0v&rc5AS^sn|0ULmT=1&mQqG0a^9O$-*g+OnEApZ~{@JRy&)RO%$4QwmK z6A7dsS?fP$Ad(fBwb2r)mfi>iq=!M(ZW{@qYG3kzN|g|md`uV^`G3^f!K_VsPu`k< zfCccAwaPIhR{(4^B_w1b1Ox;$1b#c_cx-c|aWm#>S1Cj! z=xJ>|q7TX+0mA!e9ya2kMZpvw(5R4L!WT>k0H)E#>4gEbxLa@llVAe|oDrD8fmg&A z1W;f4pWZV`BtmDLgB}715V|aONJSPFB!vVQT<8T_FSRu4lmb7SOZqzcy3qrO)+}=E zdQ$E=tvH zaIe*|{~h9AC8-r6RfEM}8%b^fs|w_p!VQ+$Yaky0mQi*!)%G+Z0>UUV0)iGiBX%GY z*uu@(^^IMU=77_R6kc0p-Gk}%!Ba%pFiQ^MZeuzo4t?skeO;;DE>#P8*)INHMojTA zJAq+O3bWJGD@vSRcb$F*QqRL$4hb02?NU~^Y{MYM%w;N=_L#&9Z5p<7DF2R-* zk8nZOq!go1ux~xnP4lW|#FLL?6%t7LP>fa$+*j*fDa??2J{uR#ciD5R7MQ(s(>TTK zh?GcJP2pzv0dXfrs3yAkkkLui+@>+c7oqxT`)A;kphC>oucvRZ#t~l{^Si5@~Z?tepOX`gP!J^rJb-mOs4A+9%BUddbb0aQQ7h; zmMy+v+YJkAJP1=Cxe~>3G1|8j-wCwT8m`s)Y;19jENU}3oiqb1M`tsjeTaO9+alJt zcLHiR=8rFF{H*_L!Mla#uXUnNQA8ezMumVtuYiES2VL4`kSm&JV5Nlj$SUt{JD*9T z9D1!U%St8C_A7Vne!t%Tb*5pYljNy;x#N*5noCsNNh$2Mk!lfhGd*5phV^0T%dC$^ zPo9&};TDp|CwoAykeA&ip?cFs>4V@`w`x=Tx1M`qAHjE(CxharCilA|lG)h} z90Ng&emAboo-K*hV(5*7zBe_j5lOF@=7_P1u0>y$^v!1byZgQ#>%~;7H)gQ6jek{;|ob zs}<0Fi@7hCaecrpYxqi^g;k;NU48l~=WKbMXsG(rE=8eqZd;Sr$;~sm&-HRQW(;*7 zy?_3RqjsAjCDcc#c#j>j0KRtvr4DG2v~m<64vd6}i~G`8T&a+|eG&6*{`PxSyZLwb zLsyMq_F0xk^Sm>-mWL>OFusa`F9PjFoPDHh9dR1p;`8^%7|(Lq`&aIQ^~_?{si&h| z)^sO|R)xmNDhHZKwLEfoUTeCr#qQecOeLiCdvw*j{si*S0F z6jx$y4{~+?0$av6kJqUT5;K^8>mm-f6ngM&VBr>+~&MSI^~zjltX#sxbH`tx`UarS4hK~}L5F}jz&9t7-}ph@f=!EaieCt4 z->xFHTyp&a3|e-oqvPw6u(}aFB7BLaBcw~f))pw+ZUiy%_=gV~gBnWL~D|jq8|X=;e@%gumbEPwW%qKG}fU#dzB8)P^+{~564>th0O|b&eu=i!gSX{1_V8lVFX(_hJqCe= zmz&>UiAf*3D^r*9RnJ23?(~{XknuKM$kAnmgdQ;X6l6tM0Vf}vVqej5YEv%jc zP!)A7B!HXZjAvlMZUVFV@dU1$M(4Vx(ar;)0{p80wdur}D#yTdnbeQHfM*e1<;o?9 z@lYOMX+SR>MsGck%TA};AO|#~N1Iq?N`o-o_|NOw`hv=03;RC{CF(mo+nr2MF#z%# zgBHpfZA1c+%DYb&#C8M<7G5$8$3w^r&>kWsFRa? zSk``tIJvxWqK&2ucg{PrRpt`>N57s>E=<*VWa^6ChcHS{UK&y~ z&gKs{Q)M+>1kiqZK{+!~PmpRy1 zl#AB)_5$^FtSAc4I-&rh=Hi9JUNaZb$Id+Jj(z;JY;u0!t`^tI2gxmw@b0wMG7C~z$o(|XYoiHkSzK`$KYQfLz1$W;j@$Q% zvE)l!=$GFp9{R_8bK{041v^%I?w1eXxYs8k%JYd{UkJ}L%n;8qyaZE`+@Go=2dsvh z&QW`WG0@Rcydo-I5yoL*$o5xrqdBdxqNKQ6{;0DDvil)?Fcq0Dw<0F+2)M2$iq!+L zOug9v8KHxo7ysxgYy1!#4bph|w3|}pWxb%%Q9*J>yEG>!@Xn}x=Rw2a*ULjgaO%=q zv|p964~T<@l3O0c2VlQiu2&~vovnP_qGUk_-+ZWF(4nJeJBYsDjB|Kf!yvWC~#VEd5P4+sV0a*Mo|RT;aI z8Q(Hw+m#?G1c&NXDUC}4uIAe+S@7kipK)Cy({SkR!&q=jt57B8N`zFc6@EjQBmbP7 zR4ZHTGQ|qYAQIy1_v&~8hurc(b7RhR3SMd5Kl>d7w|6E52rdIXv6!>m+qb)da+d6y zXK_KvPQnTDYiZz_$1Mn|Hr<*(P zFM;m}ceq^fLz(bPq@R(K5P$6+tY?~b!P`_2tK@m1Mg57klK&UIV@65qCkm>jpt3-ny5X({aNv3-%Crm(piT`ss1*&;5mu& zC)V>;>z`ov$=MhWIrK>!-_Mznqx`Cgs^pzrkqxLP^qN z);@RiG-x|l{Vn({FGz}^5oj!s~9%e``gLcDXLUNU7r`c|Ts<0sZkN11x;`Ud#}nPN0O;pjd?ms8(xHhWdVNNM&ht9oC( zbzj7c}mb=6tkPpmfiRBTW^V3RmVlx z$yPF`?tQ5)y#T-OSP)OZzrHN%^nM2vR%yCA6Qirh_jKnL3W*U~1|uENvqdT3Bp-64 zOJX#(<6{!Pj3Wl!gFf#%ud6Uk#dPA>Olokt1Y2j;+jb&#EqiuMDt+Wyoz)QKdN*4g zh*n;35W=2dXqxskWnkAtFX3?HvgB!aqrJz}2zWO=^M#lh*w4iPyf-rwAQO|~h@+W7 z$Vh*RvE}`-l8ui?mp%O3D+bJf~pD7IIGpV1=);*E$ml2pI zVyYW#=u(Z*ehB?BA8F|R#mAM~x$^Wg9_rN+>Y+Vw(`&_-3QTbH`E$!x1J?kjufjd( z*?|rQD?FKQVT34qEl0+9V%-)f;$a#&yh@_&)=TKbLqtEOa!2(RZ z?30p%N_sDQ{4%~Pm*&u9edjqTV2yrSYhyMY1_Vw@9vG5-HUNCgpv^_354U;+z_P*pu;1E zV4Zw&?kf-9BX-*hYuCcCU>uC9aNzsO_V2&K4?N_hE^fd(IzSXFq8|uBcWnxqW99=@0S;iXZk%-bfe9+bT9p^bvG6fbd#h+ZGyCTj%(C)3x@{7 z+V9N9rH)@2HU#A!xKDy0rFB_sF}{&pQP&zNr3TqLo?o=23=2Jn0c(0Ka%c0-cjf-s zFT|F8{9M2Wv1}dRD5p21Y&Ov1k!>P`Ixxgk66nUCHGxJ?PWK+=-chraJbP(BnH9CZ zV>-GwSO=Q0xd`#8ueT1>)}?sDKEsOnDd9b+Yi1-FqNq+T%(4D%FtpVDLunfNr|HK% zwdvIyU0-x!jjTP1SKkAljP#!!BA<%Un)=-PAmw9$Gk$7{EqeG*e6u|i5?dx>^acdT z(CCknF-U8S`m(;x8=7@0Xf5!{v=q=-e-gF6?mQJ1;jYDBPMcMD%X&25DA- zY7~8~z_&yclV2K{K$nOJI}5vwb0%w!>R$munX+3ON`uE_M1=H3LKq{MiGYDX!rg$d zvWikB^l`3~(v0+JGR(QVwy`&b%5CU(zR4+3#$(0UEY*bMplpFcWi_$Oa%S6UWG`KE z%-fKcEz5>0nb`tp9^j=3rMoXZcohyyzK3gX!7H04y4$Dw&)Rx(KA40Zim#S%|1!P- z`F-;t7eZaAtgbAUx3!4RkNlj#U_@4L4;*nMSYnP;Ot>+TwJVj8)hnEe+{TfrdG7p6eE}yo2fIE+rGxT#fh7^bJg)~CV>G^@Pk2hZ zF{Y*n>BcdU3tuj?LX4XG^NinX^)&?2Kj~Ca+fddhJr{NLFPUR77MO@A5fMdsGmzyx z=g!h`lW*q%;#f5`cslOPGvT4s&7U_XZ4Rz!|K>8S=vpt`hO&_%url8JJ1TmO?`CpH z3hz+pWk?H+tQ+u30*|RDr^22+RTwA7bPAuEQh3?j1Z%UR^rE#m&vX6Q{IgA+4Fs*N zx1i5?JFK9gzMD2)@XR>6C^ecNUpd2bpZ1KEilK{gug9Ziyr*fKE25xLnTAG~+Z8+k zet0B_)co!ST)DGjvD@3Vc|@{Ey8E3w_f~Jb_nMb9l^2(aX0tPdl4r+%PdO*bwM%n% zNL|X?EHg~(!hep%^Vck4X)cr1^bV!l7@LHxk{362 z>_p0?j_Fg!AIbUq(A$IJ3UpKj@HfE&jt0&H9|Eq4SWP4n^SQNul$x!r_;^PiM`EvR z^7;jB`=nxu0?3o-4CqG-v=}oU10KmLEUP>YM{=cI_7>WsVPkU5)AlI5r?b7yFw<2~ z^vol2C`)K(Rs2}(3Y_Pe?df|?VXfDabf#z}8Bwb*RJKu?CHjJ?-C!4&!FC+{lr+oF zV*SFVPR!zJlco|Uwp3x6li*hr=7*4#&#kL`!%W#9GteZ+ab|LMpKX%p8>(?)L_Nbb zLYz!HQj-+f3t-mgbcq=^s+_5|S{rk3!an^Ox9g@-2f)|U*Qj(XnpCv?xb0#_dE4DT z6i0hV#$CF|^YW%Vz&`j?r&&@GY-z7znCvp-_wvneMwc%kJW3=cz9zq0?T*b+Tg_IF zm)Ro&0S)7mS1#dAqW8f{UoOR$Qb>*pkMGOemc@>OO$d(6{CANu=}fsiI|k8gCv+TW zcX3vPw?t1qR*T>!PWZg~wa&-yT*b~HV3&@~n6j~Np+$Y`5z43-^S(fT9UOd*mSiQW z@=d;?hj6lTd?D2dh;Q7<8mC>2OGWs4Xcj5&JN28bOYsxkcZ*IJN(-mM+0LJ@e;syT zv6w!fU9->A8l7Z@S{57;oLpvI2U04XwpvX4wOk5E|5@s zu^fi=6;ZfM88zu{F>BT`L=?Q}IpOh`*`&JLP=l}Md2e{DM2=m)#mroOo{H>R;eA7L zBan0bs_BvQBaJXu8l2Dpv(7J)QM4UkjD}qsmW~SUfuZ;xb%9ZfS~w-t(Wr!7O& z+QvY)RSD)F zlDK2)%*wyoJz4%DdA}$O_G5MUoJQ^EYkR=eV>Pd&5|Xet(X}@dyXDW$&7Wi^AtW`@43pT?M=i`;$p~x!x>0|Gpeg$zWfp zfA{-jLt=ZsHI_v{xHL@?{eV4p6OpU1Zb+Ic$dWwZ$pzkTm|L}0-2o^EcSgdZ?Vtz zOlp6Cv`@;;CNIJ3On;_wCQ@8q-=i(Hp+-*iTrr18*XwCh*z^9ENV-yTdgKDb{V}Ur zdm~oUnV>rbW^0#4gU#V7%=%U0_)@m5uB8*{oz@m(iRhlUN~0cON{Ae69p=UI?;%!Q zNDmZ3V1MKt7o1U1taKXB@IXA@I9UtP{!zux*zqb)1IMxN4x z+_V_1OfBiWWN1iB)0}d}U-aAPaOgUKG@r~RQT;Jr)h6AH^k}8&lDo6)mNh{)Vv`gf z5%_`@J+zh0>H2x`?AUC36U!C_%`9WuVd1{E2T3<(1NZuGr*TJ4JNAZXEi4RRd z1uG8qBxkdDDbq5lBh0`NG1i`Mr$aPj;XqHHG3kJT?Bef}s%{?9?|NlPS^A*w5S#hU zQO?_+WY`JRRa_Yj5&{MTlZ#o!Tmrx@G2jlV6eJYIDjLhRXlmlD;5?67+sdaLoby)Y z`o}n<#ThK2tF$Oewh9J?+8Q(b)RQsSMUx+d_7!{{pT}e^N9_#^=SIXlF8EE>A7T;2 z!3C~$!9-+DJj6$M6MA%sClu{0;3YykeNt2AjRjg7`W8$p z8&O`uw|9^t(=TXeIk#RKIwZe~Y_Oml(^f5>YVE6FU1RN9=6Q6IH++t?z=={@R6})n zR98*IWgmSq)vK*?=uCOee;v^gDYLa>b=`r@-M?SRd$onr66F$(WK$ECYcr5t?%ydT zoyoMs>h2&EBh;0jJ$P(txO|v5IuA}6Q(@laQ_6VqIF+$MBrQ8iarvbRdvW_h(eP9z zjySDqE9iLvzqBS|0{ zanTfBuHVS!h%z7c&saW=Dj~|n0T}4ib^^4RmLLmRK7mI?^t^g<$*u|R{S08oUxy>5 zb2&xR3HN5AbPkIR94b~NYE1%;68lRL`i&nilj&>?i<=KpF@5Vhun(#-m&w^`wY|b| z2JATuKkqfSpQ&5>jOl|h0^guzQpoF?1tUF#_Wqo((%PUzR>uXdCX)K+paB8{vHAhQ zVyR%Sl$a2sL#d1Jlu4$iUNvA&!J@j>7f9^oM3uKg$3=o^XQ%@ubJcRS>MEch)2!P0 zUR`CMC&zixqca}C8yuNOzc85943qRq!porvj-+Bzp9vpOGDw(cg z{YW@G(THlk;o}_eoBV3hB;Bi}J~80%?7m_V`i-;toM(v!HP>@(+diY9l`b0h>gKlC zh{)6RanpD1s9B*+Razs&rh-Qi*c?$`!x1i&7L#+9;@Q?PVm6tsKY`{$Ka!Mf)#UZ& zoA#|s*V4Ug3A8s;Kfrbd=i1tvt%MXMdJ%y^vg--LrLVm$gjbi%7g@RW6UL24)o0y) zj8aB2G!RjmZNF0yzR@8wUIIDF8iGV=hLb*UG`@KuhIDyz!Qo}%%I+*;z=*YmgRj12 zHh^5^D$5~b5ZaT9gswnDb5kNhoLe4OvUlfKnKd!3T`iK<71nbPK2zhN4qq6S-^Z{;UVgtM95J9iN@j(Q4iNt7V~P5>p`!ykcM_tmhw4HP&c^rs@bGEZ@L zkK9}z6m0yt&maE&_zsa3pTqgnGjP}PV}=BPfB-^)sESL}+Dp&_@c-bBFCK>pL%+O} zBOxHXf{dl`K}MxGz)Ihx@PZEmAL!Onzdt`>{Dc_aK;*#YxLus$$QR9c|^{Klk6jaR%rEnW+`UUp-F>2c>7!%kI~#!s*Q%Qp#mcN zZld88k^s}}giS~Y@* zp-}?DugiCwknd~I>w<)efbbG}T^J!e`Rw3)t*=fQQh4pUJCd{$GP^}eB?THKri|>a z^h%y~!cL$*tAOg-i<(I5N18Y1Mrb4<`)3V=);z^@)ZXinCms&DrcL-Q%$HqvPMbJJR*PCu2I z6BGi|SZ+!>&n%G?nd$CWUk|EEr-z1Vv)wx^5>xk(p((fBUNKzM5hN1wTHQSZaLu-^ zdiOJSwKK4lFZPB{jQ+U&*hk$ytrvz7l9K{^;&zj)^_S14!fX9y4_h{-r03m_RnnaZ zMMHgJ=J)I0Vr*J?iYz}EZydjwtHG)^TbG;t{xf{0JAFT8T=9DS_+qjzi5q-G`qwhj z7vnhaI)(N_Y#`Pqt6IVPitg1^;ewjRKRq=Kn)R?18jmkGf_*hvqR0k+zb7m{vWiy>?QAb6z^D!-bD7hH&A*RTnPkxl6-^ERSb! zKaQWo<$gn>+k|}dk*VeO!h^&1TN$s9pztmXj`c={nG`JA`&I4}2H=h=A z@V{w7H2fZ5$=6pDEp0>5fj`MZa=Ja?t%f|Q=;I2M%vRq9cYlqG%1+H za2h{sL{3+MjoSZ=1?ft#^Rska*r<|W2OC>6K(J9L(*ibT|1%HLC4Id-3!LW1e4^ilU$gsXHNbUz8+COLix4{Qmt$%(qG_WoARzAYCT{c{Mu4ogBF5Qb3a0Rbd0;0QM4O&$&m^@pOK3V%>YXC5mII)p;OiZEzY zkp-gv30@D|Pe1^M(tqH0O4yL-5AbyVdRF`u6|3?;26PbZd;*wzyL{-3s<3i*sR~1O z^WpAqpzyXD3_j9Cg~VxKL2#Pk?g^Iz)3aeT@_V0Xdrg zsK_Bag>YE15D3uIg26>v)c>mgU-zrOrrC##7TUvtmnZ@P0(7A{2|*TgnIPOnSTuhY z7JWjK^E;?X5A;y`%M<}(R?G^C3&Mtw6+eb?$E>5MKSMeB&}^js;_g7Xs<6ws{JlIw(=;U&K&|RH+6$jX0!9Y$)drdi?DS9a3GY0h^Ej zX|?YRI?)Q0^Zc&~z04uUo)QqVG7?x>L1jR|hy@IqEF*+LyHJSU3I;tdheL+tK){SO z3=(;bf%|{<4`dXoMzn#c*(=}{(iK1eqb&@|tRRHNlmpQCOb(5Qi*B_TMK z1TbRHW~ciWH0VDsL4PNBY7ZlVD+yqgFnZK#`seYu{x6~!q^c5Lt^Yhj{xxeHgsuu+ ztydHY0e}4L{mYM_Gc1L%DtHQHs5>?H|KABCU0}q0mq!qVYWU{KMX?OJhLXqs<#opu zMy{=f*Q&1?2#|G$L5wwou)F72+?e|s#J`Lf5at0>B-OyVr8PjnkS7$9hv3!1Hy2GU z5WwjTQTLYT_&*m$zwNvE>LoOUb7%;EFM|LdnA?L|5?IMOBw9*Dp`_@4RcRgsBTBq| z1hK7yCsu+t|AZ7u#`qW6`yGrtUI)(t_PB&)apVhA$kxNN(60vqB*8GK{vT)n3WfW_ zAm#=*ORND17z=E^K|B&mv?sLvI93IM5yWU!PDZ5z^75 z58EwN%|Jjy4AfK^(q4cIgVLbT4+zZLWiv4h!fgQp5)xsMV+#??dCwU7z@HmOFEnQ3 uznlj{KDIc*%ka3Fhy^G}_!hO(90~UjZxTIM{z4fS_L+|K3}_uKZOb z;tW9j73dHz{}r&4DE+gHAUi_&^M&>)HbYG4pP_aAxyVy`Q9$v4ndC?S*nT2pvB$s- z;uZ!K8I6l_4JFo~nX$8$PpNDk&cTU1xsCc-mY4<+OSp3fsQ}uP>uA2m3p6tRfm9-k(w9{JGfvjhv5G z=&x$t39~l<3?%Zn=D2+U6Z)pcsUXo(lAxh`L)NV6Yf(sz^3qGbpqG%md}*mO6u}FkSY?UQt^#6^2$o8*Gno23}_r2 zB8we0&1MQcSRI&}^OYPGg?eFb+nhL3e;sLGjww~HWnl%6S=8A{q}ozHrSuqZC71)1 zkrYSE8G&3XJ^tPp#qkt8ClUZ7jA$5K3!v4YuXzIT;e90%ObS4?P&Af4+FNzu7Tn%e zt_#_1ZNc$?J7BM2f+_d6VM$tts+T3T?8`g3r|fhr-ku-+I7qRzsz(US5jAf89K<+E zyBUTXi*HU~BJ}ebnls|cm>~n05sk8Fqn)rL&p$zxD?+gybKRM|P6R8?_pr(JHf%w zDHinw%4iEUF8}z6EA7OSzI4oD)339Bco?QWc}OO^TcXZt8ViOWEvXAIo?0+UuO_!+ z+Ci006%LfG_bzi;B@}F?Um#ikc1u9rSg4cwj87_2`+#i)dW(vFjx&1145`a+wqp;; z!K#TuT5qw&h?mVctd9xrm|smZ@(3%9KJTs-?#o5U@AV4(Uzx29LR_c@ z{U=!iVE#`YV*tAuut1IKml-}mVg6I6`!LP?X~1nJ27s>)Fn_G+{xwqbGcW(KpdBuO ztTprLAtH27PpRXqKSGiS1sxJp$&;)5Jwv~I{B-W}RKHRFF4Dd=HI+L&Ajesc3q7@@55*xJ0(ag#pW-I+x1at=;B-`pL- z0&b@z4sT*Uql{YlPN4UlTX)S3+>}1`Y4>!lt(7H#&?PBz*xKa*JV^p0240; zfi53Y@?5~+4|~aXgo5$ky@PRmmVTCg9|bZuTQnV7o~ou`Dv;|=wlw3hL3m>55oYTn zC_9WoW=)n6k*pADb;zt>?ODV#XN|ESdb)G1XR+qLw=h9j^>6T51Tn^rGxBCehe8lTM|tq5y~J2wSt=TafZU1q)|AQF@Cm zYuOGK%0{{N_0x#?lL;IP8$fVTzms1>=~Zc`mOQk!3hBZcd~w69-FS^(BUA><$C6pJ+P zu6aLXto?0)lRZh1jy|cJN$S?NgC-ftu54Zt5CraDc7~C&FY`Zthz791g?N# zq6cb_>9|2ejnXKg%OIme0oD@+=ynCtz0iMycW58aRd=qcV^v%@o)IR8)otTslvVTO zFUnAw{#>vT=A_CfPzI2@3_tklAaVLuq_|3({=~u2QnGQR$U|V*KEB!a^6foA&*(xT z+irtuLH)I62T}_zSSO4Fps9afqS|@6xJ9T=7V+vePY}V-QdZ4wW#T7Sb7%e`HmFRb zt#~^2=BN8kWnZ*D;F8~4H-An@{gqy$v{lEW&W$K_c-9=_DizR8=xM?y>NK_7tTxKM zmo#L_g#Xy*HKEn6wH;|LK!APot>Kpf=_kK#w;O^Z#txrwb59?Z0EUX?6$Is*OK_nv zn!b}QOi<;XcI+6@dmR-8A_+F>XmQga$ujB{DYZ6&;1yiEzpfc;RE7gMnT|50+wI|k z7GZ)~u(E~iAugb`o~-?OMR(`HnkE)<^YLh2S|Kr6YGU;lLG^QQTr=k{@-c-C)!mT^Ek0q%^UldV)}aw5_PTh4Kn zDs2p|%{Cn(+H~4?KKf7F`|gYB$J={9hiNn{ep)1n-5lJ&$6wtfHESF-B%sb(QgNy% z*!iZ{h$5)JMZ;3bXgWYnE`zo7TqB2O)9g6$$Le)shPc-Jyl-Lb zx6VN1=i}Mlt%X|um9eb}Tr09qq(w1+l4~L~ZdX~~RrLJJj}>7Yj?jGhTLzoR#p{;# z>v>luyOiUN;`*ESuQY6VanJb6-#M&N)Pr;_3F$-t42UNS`K=oG52jymx_A<3>v6Pj zV;w@e(ZajmAXnX9=GIjV4BAeI&RrirC8y_bIh=rr0E$!2Nw8m>63s3dDPGZKrP2$b z)b_2I!DPxidMN9NN%BS+qsiqP!@gB6r;0>pONu%uSY4Z`uA6;TD6vcw7UrmMND^bOnT>ztdsCBP?wzDKnf z0Lbktk~e#_rP1Wjbm6+|xzhOn-hD54|($dTUH_Ufqb-&NCQpqVWuFih};AKdwt zIWvgP@moFj6mE)aBkl`GF=g6M3uw|GpGl?wa`U7~Zd{e-Vie1_e!Ak0uf~Fsk#Zw; z(Bt&6IGqo}##3_31n{%(T{+Mfc9FN29{|_fOT?)dJ|d&2!wBf=nhTj3OZ?YX(+(LAV9+LX8vqxHgyDE4svG`Rsa`T|0l5)|1<7f5>O^auvwF zcFS8>GR`Kk@AMU^SfbE6nDwedhG;+IthXgNG(%c*uwb+ACYsC=7mBJIXo{@r7v^a= zrXU@3$Cz@2WaoM9u8?2Q>S?*jJlJ~ym6s_6AC`@~sPR{;xIfnA)p6^jQo2zd7~g|{ zPg?$6MO#>2cdWG?4PP|%1vc#SdgAoHEMr$NIFqTNP@&RAAj^OvKwLv4*emrSDW{3h zFlc88?bxlKqK8ZO#5z-6IXdgoJ?=R!NMQ+Q(WqsdW1X(;(7sr9Sra@N*U{1f{5LJv zRf=@DInKf2zD=8$%y_m#iPGqfU z>!;$3ELs_Zv|35Iy0XsZ$7G8Dt(p^?)@=1`0=CP^RTH%Bc9$M2Bdt0Xkii{VyMpT5 zf@nL0f-rHP*9gt=VB=u!W?$=sO{032$WS13WYAUjTCmp@K^v&i2!5@*_E=_~@Glgg zJ?~J=2ljx5%!3{;s`*gR-g+l#B<~sy6Y{$I>F7HcTXTfnzc?DXA<2aU&>5_JQtv72 zBbR}}JqpX+tnGk}?TR%~`{7gF`=7og|$2@umOj0#fDNNu{2l`x+pGLmiQsMTuQkIsrnp*>jVq{>F|`~@;K9()g6dFNyFF%{_ouJy+ocH-`r{cK&@l*1(lfXB4DcZvK_y7*Ku;9 zZbzdw9{4-*3=|q$Y6&FoH+6e5qOm@#}2;D0Ua> zhhohH_89HVz&$zj*-oo=&Z9BmMmA(baYGLcP(f`U`&bN2LX%;{9i0%|vje5=X<6m82CpsQykI`3&h(I9Mg zI-q6p14KI&9oFCyKLgO=&`*_CFhihAlS9QwQ8F$`re$u$DY2a|Vm%t%SDhNF)!`CT z!fcA-<-=_J@f2B>WK2}Y5g%%gr_Uyfnynzt^s3+iRWFw$vM-(XT3K)U3GNqb+^~|< zH}v@yw0$LD-uBla$Itz^q(4IR#Kk1S5Td{2SM;DT8lJZxUbT%$c~dME1fiLukv)!? z5w%uDp3)VooM=Af<6cD6u6(`jad^E=rmdKCYFb6|YUi_(5Vx5lQ1nBO;F%wfF&R9U zX_?=zN?t6tO7FaOO7moJ7U`+7K|Ng5E}tmjlJm9i9r=Yc_j#gUHx3VXodceROM<(7+trduokv?Q9`0|kBMOto1v#IrzvCa(#t&95)QmJ{Pb)G zXoEgN-;Ps&6$~Y5b)Me|qW<`7lOA?(@{I=y#_s>fc3M1kQ1Igy+znz;!I(YN1AW3Y zfiS|Q9#8_&`0DBnn;Fmy`U>4vIIs+9HrZl&R4CHeSt=T3R8U*3DG%nZUc+4t9iElw zUd9-oCu6k+Sh1doc3Fm#D_jg&U-3D8zU>bw+$|5v-(ePE zh0lg7wORc>X!quS@wPvOhYqvD6B33{^AH-4J+hD^s!w&1wPA!VxV5T}OB_NUB(sE?VoTV(FN)d_ot~Ka>s18F|;Pg9! zy;&PV7$uXhHqm~+3!LHPFYa&Mw=`$0YshAKIMOdLX(mVUJYmDDrkk6qAH=@76>l^E zvP}#z3(a$c+Lk)3n-n%d4Lj)pcvOd5E*a+pxHjvR>bEIaMo+4}H|D0AFiR)Q8s)Huaic60w zXrMYHKBkNIRnK`6_9eTQv*WmNt}npPYG~Cd$}$wlJ6d6Hl>eq3Wna+b;^%Z3^~0usSJEO; zbWiDppt|V*Su!IC5tIR?1!w$L9zkeW%Ep6X(KgY4=`46&W)#68{o${audls^uHyd# zSMfOg{LlzbB2AY*47$<)vBs8sc0abj0|%R?vIh+|29d#iE^`{Q}ILgdK$ z#xrVwbALEIujMMXwZR2LI37$J*`cg%Uort~(E&L~6iO6Fmc{TAvlO2968u%S2txj9 z%YHIao^@3=Tq|xOtYcIs@1noM7OhcQ5Ugc@8!6ta&B8#52pG7ugtJ>i=|zcT>j zNa#I|sxsmoJiI{;(7yOh+G>lQW5ZLcxlmCqZe@uk$TAkWWX2BLHu1$hpZ@H@$krkT z;h||ngUxu#UB+g(Ex5RsfbrKAKUB?Ahu(Qg<`J*Y@beJ>uskFP`sy=cu&Yi_aJnrC zswdSX^d5dEfs6un8*YMD3cZq$FPZRSsDO3oL`febHm0_`ouu)WD0?ED3#DSe)Xy8=7GG!OxXG#^N z0YeJO+?>@FpmFBq1-d}FeuHM#F4tD&&5fx6oT|<9spQY3krot0jL<@%%xn9J37nt} z+I2#Nx)?=7k^rY>h;Yvm^D?nh@HzS|4cHn8>}D|9@mae?{VMQfFoOd02j{TC^rYSc zVh}z2pb?h!Kpb^@^7%^KICnn06&n`}IdlX>wDY47Kr2keGzkyGmu51UJ&iFklucH= zc12fRMnw*ty{qelbCPWHanDS-UgD;34K?Y4LjBA&4#&rz!&;?%DG*lN;7mFl_mXgU zJVmHe9bZ1+?RmJ0@X)yEDO=iLE(uBGaV5gp{xm<0S2MH@QJkbD6w(nM_H;B2!A!O? za)n$GKq8)REto39+ff3Pb~| zuK3l-@fNvz*2)Shx~!_{+`Ay6O9mRltpx=G2qvc%LI|Sd3qx%Op(OTcM>6v}LeQ|U z$vLx~KlEa$QN`6l(P)faUdk9H=10Ws59}G>NIAy^s<*rGA=2D~QJ#H_aaC*60?XGR zPR)CLlkym{1Lz;d^!?BKTe-e<<=AwmX1?)5Pdz)On4Jr=2vZS{jpC87L zzUuaf&ACF&a43%7CQNVdcd~j!MMGZ(9Kk@=;x(E6G*lLX$iYb_GtD9a!>BbDT7=#v z3@$(^_Qi|N=wZ$BTjm&@N@%-x>+Gjj+%61G{>spBZCIY%V=-UzI5fiVKlgntj{sMF}FuctZe7^syu2<6uPI4FqzbC7!A- zmUz?C*y>%N2s%tAdj=3Y+n1Bh-85CG8^vO6iZcRDX>mAkc_9}oZc82LaPH@9mn1iK z!*(y2_d2TPtJg-o%!6O<5dt{@QjeUb4D+w+yMxxZ{PI|jliNKoI4vPckgOVN@@$Gl zsF0L26Jn`=j$Duc)bsrW$GVcOVJp%(I`x~_x~&Cxa%tlV^$NQ&-FdNmhd9Me0xpx* zO?R2IjX9lJqS>1ZQ7TG%w)Eiwq3ns_*kT3O);fY8@5ZgMJeM-qo$*Kjg}bLs#CH-Z zf4tBPOa;viJTP|u)dJ#KM|lS{VW$jAY-u_oCzOXFx|<&w6}d1h#r2#tgt~#3DHy!TwD`HwXh;GU#^Q zO3?jIFyP)}0L9uHI=T~(ODW<`qtd5SZAmTb*<)`~)1Wz+VBfO;45ITcQqi_a=xVXt z7#mf#aguhqf;=utrxt`tm=F}ZC?r#7yX|z}5Oi*3#>^_SZVN?{Z)!zLIDW+L`8F`? z>a^H#YLq#)ihGWy_mlvx+~6k zD2Yj*$bM@i`RX^4j4E6ZSZA6i5x~%O4jTvTqI4FKKLHt7hs`^Qh4XSwIy6kdg6VE zbQj@CSdLoOPvms1E$c;%IoVkqzKTP8WmT{F8Xj^$6Sc*@KsHBgzgktV*`(-x1=RHV zxMnNK?;$6*YuL_hpg&9)p;y&Zj2>8m+)oo)MV>)EPiocd2tYNF%E1Z=rS{zo3g zL4BiP=p?wy(Xc+0w*5jS*0uh7sxCPCRfo5}t*S=TPSq)oNe(+z`cxO0#VRa#RS+Y7vTtQfLZ39gy>dLPf%;no20#T@X5c=uDgK;y3{ZD25xL3?GK+r@%P4*FNk5cqXv$&9iZZF~y*b~5OurvAmh=M;cmuTvSD)Y;8%8>eiCMxSNjQ)2)N zwb|>$mNnr_zEK+P&2;$o+E1dGylk3cVJdi;>T%Vqm#u?SKAhKhx2DmpU z>UIt0CrHcikc$+2y(QpgzbAa9ClRtpREqwKmbViWft{fITXE?MGOfG=Hx1?UF98U4 zfE}O)UXA*hR^WOa!D$XH3z9+_5Fnzr9f3yqt!O|oWgg6_XsME5|Gf_fsnaX?mZxs< z{#X&Y$=@rL;!2-R#4j=fVw`Vo3t}$(#ku(`p z8w#igkGWxXkTG%Z4lnpR&yi3RsVF+ZcMO2I*4(nB$`6_PZG^LS*fLpj9kQK6HifhR z$!Y9(e^IKOl0A;nF#d+rx-sIlwZy8|7%hc8Kc$DxHTT&^==a6kcC?z>`_r%OEje2z z*D_HjKFuqwfih`hsI`y|{e7>LhQ3g>>fB$m$!DC2i36MiMpWa-lHjm>mp|oMQw}w7 zR+AHiWz*I-7rfUO?4@E54aR@t#JE0fqc31~upgbeFWCye8MzSy;aukLk7cC6CkZWB zq~^6Zwi7}Oj@oxjaId9m0}1axLI3M4yuMH&`yU%dObP8D-9ty^$3L#ih3eT~2Ftpd z**^x0h^8One@@05eVMxn!9hUOa8kA_L0MBAdB7o3;%*>l>zTATz`y**BzC=c257JA z0U+r3BK6HKDIm#MSfSIFW1gI1HKJan$l;12#M-7D6XW5I`StzCp@qm7Y*1fYHC~Vr zBX5vBDqM>q^I-VcA{(nM7xR0wM@U9fN~R}cj6T>Zs+_J2)VR@aCEPw1DV(QdQ}7x| zHQNBjK{9y6djfP{iclDldT0V={}6U$YyhObv1%tZ(M_mktA$imvSvX`wbI#~B{Qq; zjr(w$P|y`=NL>}_v;I$T88s;c(w(hy8V3o#xnmwkZ_u00JkIzlZ6XHwdVLV~qKmHS zBBxpe>_2H1n*dgCGXfw<0P`O2_Hf^yP!T_+;7Ou$vD!tK#y)3UAGySr+k1B(qH-q^ zsk{JnzbV-3ddLc*Z{#-bFi-&KZ5|Fd{8u1=aQfSSy?vpt_0QW!wRUnes-N7H{J z&`FqW7MEMn8TEjlEzYY)71ph1P)QH4fn1-2{^pWR_+B&Aj<0ArW07U_C3E0-&2}Bf zxo6tc+f%}t73nSaD&eU_V4d@O2P!@MkT5!6>IVQ?65t&6p_ACx9R$t3w{laI!N>Q`xClY11z=p*P?cE>xO?0Grnm#3k zz)?JxqahYD*?R37K5;=Jg^nJIArE91j24;5u6v$n44CbCMEtFY2)G$i!&srDh)to=7_h1EtveYb`TV$XO)Xx{kPSM;fmESNrP!e{OsFSNTB z;WF)B%x&%hgv+}VU6D3-zHb*loD_3EDO&iaOQMWVB%X7m7^jhFdCiyjPA=1$?#T)N zJ6-4P&;R=O(n%o?@eh~A0}{ApFI4Z4jPoxLw9dtU1F_(I`43+PT@(Moimv-+QqvG&3rKs2^sXDMTvUZmZG_#Lw=NQZ?``H1grDm7O#fxd`duqTX*e{Tc=&Ub? z*+bZOk^6xspXl$~HxD?tYX(;51?(-$H}ClRS1P#U)6DlxO>9&czM#J=wr0r|P37(a zkGg-NG~MJ+8%Y^a^NBA+iN8MP-$2|XQ)^&(Jf@8Ex_ecg^iUk)oxyv8xmn$=N=tOJ;jy;tR6{-aTtldKc^yLjch&<6H-2XES3Bb9-PfWi#DJX^ zoF=(}3UUO9NAR!nTHtl~yl~SK@@?|yloN&7)SI-yZa!Mxx#XLf-#r9+sbjRRH`|_c zbQYrbM`5kHxvOUjV)oWfjpmKhz&orf29tmlkox@wSgeu!#c#CYASCFYu6#%B1~c00XIZlGu^uOF*}x&D0FAp4g{fkSg- z0F}|~Zsdw7n+ZW={aFQ-^m`nrOuI&u&b%;z?{QmZup6wKx)Yd$m2-4x?bl}VnW#f{ z--68+S#a(>ZD-mm&Cjyi4!dk5pS$?``GXJuzN*V{uD*JE#An=Ot?+}ckrs_!o$iu! zJtqkecQ7mo>>|tUi;(HqU|0%MG8Q#nF?i>|v%Xj4x~PE20k{fC5T(;4M51VerlI4%fD zo!9hTeum5y;$E*k}$9jf{K zs>gakoSsns-!ZEn3S<3;S#RNE{~&5Kvg>akBBKERKny-+?XTb@M)jY?w>ZbYg8Dcv zu)m?Q(^2a{`U8xH&_JV;KLH1WBmuGlF#x$u$~x4dU<1{0n2`bYjJkL}-{B+dRuK~c z+b}i_Fq6f(7j8EKL(|g{SmGA}t%ie-!HyKEO6qp_X$nga5(ij?MmN_Y$OB&%3^z_@ zOOd1qP7B|>j)Lm=Ck@B8i#vrG#p>%Q;EnDje+5OK@h>$a*^m<&>uw3KUrx8G12ZT z?W3`@X%5TzDvK-G+qkTSr!;Wi{Q%9^3qrFk);a5_O@`lCz7!`Ml7|akg_>;-;UE2Q*i@qSinZ!gX?C?1XE$Ffy1lv4 zcKx#2u;@|h#(?csDn2A_Tsg729v`9=lgycADn6MV6O-xhk=yiFYP6U?v-38!uu0n(Fnr(` z)5Or0in|mjv01BfAKstc32q;+=(WO8o9rbIB1b=+LD7P)*7?br4G3&6+K$afTcsa! zgrqAqlD5BgI7vcmb3~<&PB_&f?dXuR@z+!@*4=>_TIq*5-^E*rA~sX2 zUMBy{z~HxEH+{Fl5_6WGx3-p59&zB|!Wb@WO=K8qL9@=-c*Y2J6taPDrlK(prt0y+ zUEvi>PZ6AVE83Oy)~xQHY$cI9dHMMODmBpBB{gbD-diTiYn%(wkt8an(N9!=AkJdq z_htrlxCs59+gwkb&Z$gGRZut;)C@DZ&U>Px)>$Ug3geG?BO{uU*29u1eU{rc=_k*e zjtCwf8tUsUq!xgJSiFFgf(qdrbX?-qk8togYph%D1*kJ^il z^9PB4-s(Y8h!eoDfpPhyKthMyzrME1H~d%EGll8@1VzjLFhQau=pO`3l%D_9w3k`@ zGbOJC{1uc`KKz3K*|crG`B|m8L~x{ch19D_xH@pG3mMa>gdUqIuFtV`Rxd zg5O4B9yG#R=^-tWa8dPV8xbfHR%~L%*9VdO%~0fa=G5CHHwX55HOnd>rrZ{9uRC*Q z3(^(`n!D2LCg!s4Q2mw{&QlEt=m7eo2JJ{%KnTe$yKp?V@#&RTDS zJMk0jzh_R#+U37(;s17+ARtsJyQmPjDLXKbi2qw3?hST->qjs!PN**Wdl|{G+16CJ6EAMNnh8`#IZT)BD5zI3dgJm@rPJ+983$2mMkD zc;4NlKq8xu?Eli|-_rI%`%a5X4<9!PKuU9$$KmGc8Gs=i@!5{x*TpGi(Og=3Ko0$g zVj2jK@pvQZUDm!r8JuFJGRuq%tCaiT#%IH46}x|FeV@*7r()y?bUWt4K$KCGOV6<$ z(-s29X0V&1O^D*U*)AaJQH7DRx`m%T=IAtT6MfL9lOvd%w`0YthvEx*7VH)P(AN2U z;qwh>1;JNmqW*>1Belp4-2f)}^$SKNu(&7Wm!?g14_?lak*&$}{u+PqPwA1eFQvIB zfxd;FC=l5;1ta&PkuC92e2)@0-PEXS0kstOS(1d&`qaj4H~0OP_F&2R8~S}`et6s; zIVuTufeDyuOyJ1^t8MM6d+fyu00vegH1r~51%7EEj3c3PWTj{AL@%=+!$e=PuFu9{ zKErGtX77$O+i9}12WJ?s?|E_=aDM}yQjLa(=m8JCq~CR)$G)0{RQ)gt zL0ZaK!Fcwngaq#{2cV;nYv8&C{ID!RtkH6v$f2Uu4rK}`qAy2)y`B>x2JAaT3|Z7z zG#7Y=le~>S7A!~47>q4Qb}FA`8;zT4T+S{*Vk*SokjaEN{F!d`JL(}+{i<#1^Vaph zMPP6jYr8XD^uu|tu`NMViCP7lDvgjCnMrA|3Iy-?b`99bHr}|0)?IQZewf7qhUO2HyoL5 z%Dg>aarBkJqk5-`vZW^wW)hoRF`N4P&&Zq&dj1{DD_-UBh&`%eGJuD!gWq<4sh5PV zExKsKafhr@lK0}GgMG`F9|K_yItQUGAJ--wfqpE$F_sg6!b`MZ_k2d#U8)n>CmbSJ z>|hTq6ZGNAv0`KLrFd9q<0)9vUwjalX6W*WK8g75{F`Y7Lk8<@>H#)28rR|dLCn74A_08viyCxZy{+4mWzRo6zMp-UTU9xQkCrq) zO#OD%%ja1jjF&aQzLEoKn9X4}dX9j_WR)!*mM+N(12+qva)6UOPWUL$OSsn`b}Iu_ z+zRnzM)fJURk<1FR_c)Y1JH&-M^(`0yD$Fg$x1Wg!SD>;uMRL)&6W8?CUVBZI0C#+ z7T`LSbr}V2wSC0q8`j8{3(IQZsg({SRp_K-gC%wgZ;PGx@VRAW3@wu^Kcg z8>Pt=Kyu8@FK3_mh*=#8^{BbWUr(6)yQUyH@)^8M@2&^z!Q$#eQ_U7bG5uJ}_7xNzweLT(6>BY4)DsGj`^JXzj8>#eO*Qrio3?3xS zVSZ%a+H^nnky=tJGde2EIu9Gg6bxy;N8j4y17T(IkL3@G^nsaYjHAW!XL-xS`NTDWhv z0k+eV@c@?tz>btHi#>sc&bJa(kK^gy4GNM}oz3loilJE!6bz z3+&2_j(0=t(ehUciHxPeu3h?G^qECamZW`s3H_ghPZ! z*NB~9wKROFiwp%1#YZ@ zX!Z3n_*rW*F|#$cn?pLT{82dfz`a1v;rbmZR_64MQHfM6G}ua?#gMPs2x}9DvkMXbMzU+t4OET0Ksmu7*_kP)3U10F7r;_5H2>)r zc#E&?gv-Md4(z2Zgc#SFHNUpV@cObwEi$bR=i_Qw@VtbS#pC zXiO}ernzruc7ezvnSkNge^RnWel})-i+dp?4Ha z&>TD(V&yX8IV${tHEk>=Y-P#@K0D?}z_jB$BWZyOTO0zLkNh1vQYJp*K}hO%Lt2E? zJU2yRi|?tqYk&}?@@;tLjDyc+Z-UcW5HpAy7R(qO+_%jKW9T@Hq3UN&Y3Y+SQdjW<0v&~5^y<4i8Og)-QMs5gX zh-*+)z%Z;zds40|Ig6x=UL+cY!K7dG#61n}snG$ss75J;0j2JTmR_LM16w0yf$$&j z`v8Q*QqN&IU2bUqyF`jqQVATZ*@Ng-22Kl~*<1vXV)#VLAJ+VbwzM}t&7#gBeZm5j zL2eU-`2Z#QK$|KHt*CR$xLM8uhy9i2h6(qlpBSDaDJDCz_O3rUVdgB*l!4}nXVDr{ zTO>GX!U$*!rOVN$sIxmXF)`W@zXpxJ!au=tQn0Y_h%v8xt3MX~0SPc4gySZraGsS0 zH@C!B9Xa7PpEb}LzZ=q5!ug#^iqWs$+@V_%RR++2{sAWlI@0`|i=deMfOn-{*#k|Y zMK@Tb;F}4ygXZceg8Sv_@3}GzG%lije4|u&UpaTkBKQ%%gJrW^eJhz!lA^|X%nYWo zWB8y$==g<=F(-E4`VCW8B17?`j%aUuw6VN?LeoP2q$A$bmXTT=fm@2}&|Ssxjo`nJ zcrBQ#d>6i%YBtjAuyTp2ok#8Skv_Bu8|POgX}8_5FNr^JW^60>YEhHK3_me!VvScG z%wI72WbvxV6%MYA=s1s&<1<1-yBB&Os2M@K(bd#>7ta{^03-Z7-u|!kfHvCcRRFNF zTNofD|DT;k((CXMq@Uc5Le30IxxL%?&j_m z$qM*g!SJiP?A%|M=kkW#a)HB;G04=_HFePv36NM#(}+I2-%xx}#2I^^apYzrK?EG# zzmu;Cb0O@GMj#5zu!jaZN;q)6#!`Bp@B>^c+<7BBYX>k-{Gzm%#phAn^Eoo{l@e@e zOi9^PPovER6@tDRuYC2SB{MyzrF{LGr~%qmuu)d~wX!!bVsC7uNh1zTdRyMEj$X?^<lj@cSt8i?CmWGP`5(VhD{`P^+QnSozya0m^DdNrztvY znSz|u68hAs9z-_U9q{|50ock~S(xHM@RN>)?8p1tlkWmR#25fWd8hR>HkJCb|Ea)$ z%tU<0QL34;*#QC^1x8voD?*SseQ`}TbC=oI=z;q=w8>=zp+NV7hbW9MpvFWlOlZXi zYjT7-dZ01YE**+NmS8NnY6n7BYjQGE;!Nd=DHm~O#JF-T_WPC40gz!+)CkjW}LsX7{ zYX_b%t|7X_X4|p;kUjk4B2bp~01{9E3FW;b@Xbj091#a3mLX=F_9HN9A zL+ByO8IfMi0hmYQA#>@Q?q3|Bb#tTubX=QtX*~s8#bnSXMwkGxL*_RT7d6U?69z>Le(?8Rj|vXxSg=y9PV_^#hKb$QFFBV}clhVda%w$QQ(g-D@ckMKY5d*6NPo$v4Yd!Enp zT<5&bIrpA>?!Nb(=b`I;-fSL{6tXm`=jW%Bg5DH}EtaP@te%zL#pCS88=IeI z$~;M2>*GHo$--r_Udhq^BO){_MV3$R%|CA9l=W@n=7a1iUyt0K%dd?K`8jz0l)Zzp z%-58Mx>e3d`)1gG_U#a{nZxJu-vwd$ZN@8@yKRe+*+<7DPj>n}s9uiB&pUbb##Uze zzzZW!f3Lrp{Oe7ZbeHk7balD}I))!gI=;X!rDWYk`)j9c>lxof_2q_q$8A$i> zT=izm#^IUQ>bw(|-(6a2_bSQZy+y>REmrm&LzYg6)0&>$Bg64|)l1())!KdgU-O^G z7A2gnsgpoM8Km3!V1HFQ%s zl%9IQepuHYNs||->KmHp$HzLh={{9KF6_mU)Tf@GR}T~Ky|B;D!X(hZuVaBW<;K!y z!#4*^UpVcQeM)9|bwgo6(bX=KqDNH>xxLnuTdq5{Ye}m;2K*rkdUl%o(|E z`qPuk@8x|OJ3UQq)la#aLnubj@s8_zTsu(ww%9)=3x+36kNM_*Oh3v!QtILrpGvVF z%a2;6YOH^Eew=As(BwRY*L6`VJPdA>93TD7xa|6@>IMy^kcg1oCm!Bhpme7Fh3y&9 z8@A_MxM`<1&}czTN}t+urt4m;pEr+o8ToeP{x+0%)Xvl=;}$7?uAHkF^fvr;Z0+}r znlYb7rmT|r5Oca(r`u?Q=?UeIp)+20NpU)Q_-}yo9y!Yazpso5^9@(@h*qf>Gvu9? znNjH8yRvo-lUy4|nTXEm)icxO~fY{tB)I@-xg_ubo_>W5j!4lyU6 z+>Oucd?$zYAEJD9!=K8jvwJLDv0&e?HEDl$mAhpg`Jpf)xod@6>Gg)A7P+l~(_Y_K?YBh-J$)9`d)M3_ z)pts(&EvCt+-@#AIi|?dIC1?g8$Pbp$sLPvFI1dfFggU6FvmARdFI>8 zCEF8Lr{xUa8W-6$d}WVm1?8io{MvpKJqxULpK7in3Uc#pIR9awL*1PGwN5WTJX_Z> z&JXE$n2HPB_gr?*&uy1#?qWIhfm-mIwrEz3JDon#*7cj4a((>X48s!Tye%)! zC4ZQ^!FKxly@MB?8nC|c!M<+0yT>$czVYyaIQV73*;RLP?MkNqRoJc6E35y3N$#J0 z+)Z7)uMQpgSWQXeUqEUBO7vYetSVA&%c_cFLz406E-B}4@@TwVjR{FFUy)uj^6XeRzj+&i$y#H>$r2OGKlY*Byyc#9S z9TRxj@yW(pJrdd-Q#adQ= zVOO889W>L&AC^~0&E@SDYT@e{R^xNl!>ys(v2Qixs>T0K6f1vUu?)tS0LB?9cUOf!)csOYM zQs3!c6$M?exYL{4*w5eI_*3|xtkQShX7TuHznBkjAwm7gmX)p={n|Q5kDdE;+(VlePsIQBGnjYV8xqsf?$ugVOH*FUuv5FW~Ptc8+Xe5Z6}48u%dYhqeNZPrdQB2j12b3Md_@{n>#gVx#-rk zPaRh5iwzz=E#~cmJ0mUV;OsvAU(DU4_{8+i>dWUwy{T9=X>)zH_erzR4p&dxWuz`Q z+B)H4ef`bK9GeMmIvyVGJSE-BYGCfYj`e>YMa9;gebPOpEN;=?^*uM{9hgxPD_J31 zu4mH!W^ruvox>wTwkC`%)BI_8L!&rUUTI0j+>o1vXGYcjQqB<5j>pe!`>bCzX-@Bj zMMqz)R#_bK$;4}gMozk4{kLlx-|}Yk{>@(2>iO*ZcMYLO2bH!*CEBc-VR($9W4{h1Besdg`=ke)_3oZAF={3SQ6*#7~oNruA&=-9=%*zXt(d<&vj~>-HrS8c9wnmOBC|`K+*fBUs;*X$!6lg3Sb z6l1vi;^UF^!w-H=^qGIt^;zSn-mK50RomkgOFJvCjM@1y<>xQYXoBIRY9qfu-)v1g-O~O#Sy6?9SW2 zqsd{S*WY^_;Z!@(5DZ0;lxP=6k*Lt3UgZAYuj`8}+oEBt$Vu!ZR{r-Q!PK=>-1Tgu zPJb_G)T~{3NAqNEeEIdaKOVp6_ey2umr(^vD~j#*mR3B-{xP{Q^vY7#_nvj-(ScsB z?33hV`@|aOeJ>PIb>~p=-VL*6UVLO5T4XrAaIV5v?@v_x;cuInU)#Q1u2@)G;XY~4 z+D~_rV&0T?esg0$uY=P%+zm^y4c+Zjw0wP^p%ZsLHS+K&NvJJg$7#3EP7^SlLzQsznNfjo=CT_ly#b&F`msMKc zx_JA{?bBQLO`1C?sibY`C~w`XSN;4ambf?vO|GvRyxLdMBj#OjK=8mv%VjO|clm5a zZIl{MT(liEJ@lU8dtLj?$8MQ*z7A&HC)tm_P&LBf`<&wU;yN~>?L6~Od2>Be2hF-! zy)h^Cs@~|W(@;^}{CVzcvId{ac2E5{C~{!$=^M6CS`VJCn0TpE_Sx`XdJlh@4}5Gj z(87G<)nD&lO?{AIfB0;AOqlbXt+yiVeoS*4^>MYI*1;|+WBaX6v;OKAsru-l!a&k4IrcdMbQ>~wt8&P{O)ov5Jkg9mGMaZ z9<42oEYLt|H)+L0Bi0;^Q4(pzn5>O#Gv>&M60;fAzClIrzOMC-c=cSnx_r^bBRlmi zpWd}~?Cx~#=c;Pubn{Phw;ijxW5+&`A9P)DZGx4x&6fV2BUW_z<#{mRZa?+KcF((R zcK5z;c;f`M-G8q2esU?(J$k~4tEw-L)_0Obrrz~EzrT3xWc{oX-Syr-U#I+0-qUe; zOj%&^%q@B|6H2caYec+zrazm_TxXLR(Dg_M-TRgP)kYg~w`Tv1j~u$8N^gR@#_o~m zLsC>wg!*{>9g$(PSIV8-n7-k%=)Zg1aOIr*+6D9z~ft_|^SGe1UMDE~2Q$d)6e5jQNiPc3u%Zg!@0RD^s7RmJ)d z+XI7Gx0mY`ddyj1_e3kT^6J!sA1(AdpY*Y4e{yU8x#?EpZN=^T=%2oKCB7 ztnAXK3-#Xj7XJv6Eqz)SrT=a7Qhqbp^cd?BKK}3 z-ZMoV)3Aqgrxl8iriB1t+3l@mX<*|m8SkZGri(M|dM|6!|CmKvj zb!elgAHlufCL-?!BpZ=v7@<|9h`tfoCwoOfgywuyw2kELUYck!{+Oo3>9i=9==*h6 zrk=jS}zgD6)653onY7K)W{u)sZDmc}% z3+2gT58g@>4N+BrFI?86ylx^_6zj|yN~*h2<^-tbN`;ctq9N1MiOMKbtI6y5WxF4z1W|G=?i0VPOSB_HIBo%#};@e+XCiRZs z#$-2DobgGjBcXYnqLvYBwLbE+fnUmD$oF*+^=c)dLwkekiC#l~TD3+wye2OJn zlrK@iqKI0gOXe7(*tfK*O6soDCDsW{L);9%-{zrh}#ut9Ip&}FtQp^_mM2lP z4M{zxX);-mY+z}=9sQAQ!sW=*t4ND7|Af|z28;R7{r4v~-y+-6s;DG_Rg|n!q-PU# zzm#YaiD;7wU5x!VQI+O{Jx`5ZMPQz7=?Pgoc^Wf5{AK?Vyq<5Ke>N5UzYKDA|;b$8t7i^f+RFLwlNh zuvt=UPOA`Fg#~SdQ>Q!9Z3#)M6MdJY-dWPKNI@rbp}!N_cxyVD#Brk?{fW#JO2>w+ z)(7{#0rv)o8;ZN4$XH4N?XjjcB?Im0UPN+@1D!$Ibg$m@9-{ZDGp)|M#Dx?}($JSC zjR!64NB_V@nCDK164VP1`Zp%M7(i!{<#O8?*Ip>5AMK6y1h8!4LRJNp^`kXV8y|WV zhHmzudt$rj_F(!OCS4ms`%rke7?4qlQ9<{rYyF7xav%oEv$@;vqs_- z+B$I;ttjcVjZPv0*LTv|Bvp|@zaS6GBwK@K9FUWdIqoc8b`lpyTk`t=okQkKIcfAt zQhRQhH2y+3`jJT==Q4thX3>{%jv}+^BSfv?8JbKx(82R`8Lr|a{cY?c@YhoG_cGlb zWvpf8(2ZRBC6-LTKzm?G^yM=B1#A6qg?@n(rB?|>QgDsdAl@jyPJiZjhaTLZNx>f% z&;=wmQ*V>#LMesxH~h{}acZx|?MVGT-J5I6Mo6WQ)*9oos5gkCnq;DB*K~htn(a9twUqO>OiKOcb zx(AJ&GSXJrnr-wM9p*-92!-8>jKqTxPWY-S0$y~gXl<-_zQX!&7G6iF@i zYbwE~YduXaLQax-wBmT?4#{^#5R**M%R(4WlDZYfEF>wfNG6_GemswfBbLXShFB?s z<&{mPTFj80J;~E$%oKu=yPqQY2KG)746;dMUN)7g%avfWG!>Gc8*F1PEH*A(Gb;N zVKgN+M;H}S6|Tn^O|ljneS(Ql$5mf&g?U4|z5Mwzqh3NFrHPQqEZERUc*>}tpbVBp z-)}MX82s)w^MHi>m13pry`QlT#yettN!lHtecX>XX`#Mr^Nj6G)zJ%7tM(C~K~kWMw@iYeo&neI4|P|ftf ziR;x2{u2+VO%0zISi?AD*18(T3n%W^F#T{s{~a?JC&Jz_<8b2oJ7y$K7{6!yabn4P z#uq34wqXrW?RzK(mlw+q%usx?!2J;i6#Ic0h{;7Cm?1dPu9ibDq(Fc-*7k!w4L*7 zf-57Nj|^TuBiE0hsQnmXr|IhgjyTIVIoAGGtj=QFvC3#dBSWllA0OxhdH)J|_ZL|6 z_80235SRGNqNktu0u-vV2GqL%4r72yzA*CQc0tOh7G9fR+nw72yD(6|Rz>i)Hi+5B z@ju*P?JEO*m+3DsYdKLWW3eSz7Abt;4eEV?(rgxRHJZzTAN)f(cETtmRCr>NR3UMT z!dFma6e4z;(E%O*%CyLIILD!;G;s`YNp1sCG!aes#tcTqG^^B(i_4V?b@tidvMnYu zGNT3gf6pPO;K1kJ)1#tqj5eh)19T2T(TXgoeYfvm=;TasX+)o9m!)yU{SiRy+w7?D z0qQ%tf`QKP3ltbqngvK(RR4pqMSob{uV(|&#&Zk51bFu!E`Xns!o6{^oPUC~gL9g6 zSc$FY$|6NMUQhFTFBusdfu26|#NA>|#WUus;GAP`vI)*nKG=dp6fc^YdfaE)XEM#iC_bsIKDtK%SS>0$U8bATmpPps#Hv?~vEy+ToEl{M z1VWCzVKf>lC}hVgP4LdmV>rH74e)-@CWP8QUTuQwqIJrAGfPp1YB+fviR|f4|9c8$ zFR;7oMiab6Og+|Hn9cp2E?xKy5x^U7a_}zP2b&get2|iHlpQEm37P{;4!efyTxXl%>WRa`ysBYwZIG>S3vr zN(zMQvgJ@K9L~C+Of}X6gPN}r%E-72Ozq)7z0hEFRu5;KyVZtfszb)-Kj6&Si7z~B zF{0v`VDUro=F0Zmr7n^?Jpapj)I=ni!>uQdn;9yX0ml`o{oy;8UmP(}N|Z(1kcf?Q z_rFk#1{h!b3}gnNc7OSi{JjRqn3coKN)r`pvI;0xvt`HkJLk?LZD=YBVeKg#vl@gl z2H5l5{U=8VzF#0B9G-@~Y%t(Z75cIM>;rMUR+N(l}(%$akp<6s{?CR z86)@!t4XyAm1?p5vAJ$@A4a)BrmWRl*VA&0>M1U+B@=q=FYay;iq{5znb&Yi?9d}^ zzQKIZ28TtwLvE94J@M|3rYHeiiEUWJmkv)t;m1MOYAcL|_sDH3JoqpEB99VuSYuqI zEFDm^ueOP!g?{PqU9EyHaBAu?2ldruO|bfw6A)okD}E)=T3uFS+b~|qSx(8dW=uIC+ruoF-)J;MN0a-5d(c-$u~+_-EdCvy&-V+ zOxUfo7C55+A1Smgx~0#%w1U&JPX=8yX5lbEUSx;*8}O{L2EghllCpZDvp;!vx4a$U zCa|)VBKVRMtU4-cBQioh27HFy3_+hNE#&K<2?`=vtQk8glLL)mFsSAA6bBp|+!Yq& zVg#}A;a`Y3N;l#Mrb`3LRiT%t3wk>y~!x-leyY86g&fS9{hVr5J77Eq064FJR zjQ_(@FM%hv%X5}I@d#bZT@OL(?O=pfY{QZ5Q9wIh!^rol!?@F_(NJr`gUhml2l9~!`4G;t`l}FV zg$ZkgD@oZDDk)PHsdr`jqQ83J#5Jb;^i+QAo`!MYz@=?vWTprV9&0PbTOuPfJ}A1F zfvPxd!g^*TGDAn3SZ6ubB?BqT1lhM|b#MlTwg*;-8DSl3&vwSt#~k%fdnwfjMRXP^ zHrtwR4*cU*gnz@FwZ&4uIBGj6u;Leu^19K(2SEwyN6E+p3k<9dkm7Zb zac4e5{@M@DM1qIxV45ZL(1;KY-ybE-6tzQVI`bJS=nSUar%G8?*crIWn(w`|Ry93> z!%woFG`sb7+e|vUVK-#=_t@4BpB2T)EW{3t?+QkDL~{gJRJyXpM8odtNQ z3L0pjz^iXyrD@9s{zuWyg-)1J1cv^Ap{W9yHL%>YW#{6eRog-)pKRv{eUbGZXoQ_? z_^OY zck2!;`wYTb*PSIhzWE&WOSY71fn0j<5won{_hJ2MSb3YZ-t}|KCHP@CL?-{?kUK?= zcOwz%@KmdEDxX34q0pWZO5k7&!22O3irXo(Xamhn!&`=Q;;v&FTK zZGH|55+3XZ;G#g9;n)zLP-Jv|*eO*>nBP zX<0g)Bbak{*6^kqn&1jlhY=iAlY1ItgpRwiWX}7TW1aLz4TE9os^Z3a;(Qyf?;OWH zi79|;7VbeV43t9EQL-CrkMS*MF~XgIE)zJsF?R<}1MM*3J1vu89ZF_EAvVEJSeWM+ zuZt8zAp|z|3tPP--$!Q%9fUm$MIg?P9JB)g2;gn|c z8sx{j6ImUgM4O@Qc?s~*Asl`bu1SUFD(TM}Vrm`6 zh9S3cunKbVfbfAvg8U&tnT8{`5Vj|ZT>uxOZVdp(7kcn}oyBz%J}v?KPvAFFn2+f# zgoO6N3ou~UpILI zze|*mZ-Rb%vTC>_YF?cDED|{QI+E@}N*_gf@$xYozvCP}u)J7TTrYm(3PqP7o9kd* zEZlJOo-0*lj=a2CO>8B|8?;QFPgn`wtOwR|?a$@pk5J%mph-9o*hFI}tUffkuU)GU zAA8P$8=3=rSTn3M+y`_XSV(l*t_4p*MKGv*9xIDJETfcA@<86PfolzG9)gWFkXu(l zZQNZf6qiSR2E)CNt^@gcRFk*$Is}q>ASqnX%g3~kgliit8nl{H#x`;8(g#BBouu0c5``cwT>E6hCO+4lz`lqIs!pKH z@wxyD#Vd+Kv!G25fhC4;p`x~)>kT}x4|)v&A803V1Y5Lv2pIbtH==l&< z7ejw=&}cCSHRq^G==m~M72E1OsZe)36e~xkb*x?5#^H5QT@uylpT${XA$@5xh{eJE zVIP4 z=#IZ@#ZWWXKwTd}DJCD`@LJp(2OZKp(laT==IpEcg3=Mk{sSbB!hHGoZV1qKDh9P) z5RO9iy6LSYT}Hy?;xbkxeHm{4c>q?O^bj1PD$~$ zC~OozFsm(U+*%2!ONSLms|KT409cQ*F?u z(R_n3|2|o92Pk!f_#fUP8!|F~&v286ARM*of3GHe2h=Z^xC^(f<<4=a-l({mRz%yz z@C_hy3|O6>E1iAFBWSCRsOwn1A9fxK{PB6*=wyd%ZooaP!`Gl|$Oz>5=^X#YMQ)tx ziwq06?hiz9Rw|B;UZe{Zd`Z6bAnJXM!%xJh#Y=}B?h6_I0Y70saOVbR)f&~0W6d#i zTxI>kT~K;W)z-T-vu{eFvgmv%*F!-r@K*7?MUFPspt~(ZvWLKJ5$NJLXcJ0xa2fQ~ zc)p4K8V}`>ft_jIvMd_p&j(3_Kd_G6AuN0=`SW9Fei^}hdHW~7?RN;yO8ww~!(CuW z{yq`~u)}d7227T1uLE8=1YQyLm}=!5suv1;LusqFTBxFu05HDg1u+gcFcne7TfQE! zTFJZMmt|ly9f~SE2iX3KjQlWI$fDhWe6(E%1byX|goW>?6|!*iug`m~-*2jXS2$A@ zO+ZlrtO?5h3U{HQDilyk5I;w`z#X}sts**rCCm9z3t3O#W24Um;8(sC@)gj&34HA3 za{TMnE%^EkRNH3ry(R)*6ZU+$*$&n}^&_SHk83hH*bLa~#mUx;OE9o}VY8QK z8RFW)P5uJM+EB-_To7CsSNW$WZ@xP&BQr=)pVkdTZ1W`E6Pc4h*{P3&syLaStyw~X zy8ek!^?&h2!`0P%$-H%Aj{k!3aO2z*BfmA?`uP>CBZwJcE(Uz#kmP1latN3@2ph~? zLGcCMUm>g!E~vp2VAcHK`V~#?;T-Fkr~XND6Rft`Hh z%hw$4uSamVpoHVm7nVcyLjKeEt?{U7;I241j@koVn#ND!%Q@3G=k*PllG6P=cwo7bj7(2~ zzA$CfFrBqQaGhTsO$+C%c2PLwYO$J>rHjhL`C6^zSY_%`mOSdHN2~tRwkAvmSd9h; z>xpjYz;h)|1MXNatdx!80y7t~F6{2kpl;zX^D>#ik6g`<2U?#Ot7@at889ZnGlDkF z3zAb0i|e>`?Q+m8oaMvc8Ug$u9M>i@A#2{c9Kn{0Ni~$*uBDdcrOb~#poQ!Fg#(L^ zUJIcV6X+Jd&*THMw&ha=5N`fANS_ErdcdtKc)pyo^&6_~&OkqK5>1YRub%R$4jJ5r*-;HG}WAph2dY;YJY1kQSQ z0Y?ed`_M`#A)4<@RF?L;xDj;2{%Nae>osH>4ZH437eND;W=XW`j3w7)YC~AS&V7r2 z`JTiM;K?@Bkwsu#*$3By-~kO`8!QHP$v^?STl1K+N=Yeh0vKuohP+#tfw>!OvqAG| zRtb-3;6!sNtBu{EumtpK!v5KRV&qW7622|2=YXZKuhtr9g33nnAtG7|m=xcCG5GaP z2W&8!!)W@o!sIXI-SCcMFCNp1jb{q*l*bgS2#f)Y`uNtEVA=#nD-MR{=RGnq0|XA~ z5`Y?F*pV33{KBX8ZI}Sq<%@xax;2(1^P8Ht*KE1xcGn=ngj0deuwlnRBc{SEK)U0Q zQ5|xi24(=`VGF}SkbzRTU%LX9@$Kfr#?9eXd^Z@k3<{+h-h%aL8Q*u-bF8y7Td?{r z=SR-r%YpSKLdsJ6XJpLc5Z5C)gd-ZWo$s$k_PIA^Ds0*;)oeXNpN-|91F)kPt^nD2 zt2u%dy10T5nI}LMT}QSnV3);oC7;J$D*^g^BZ0=QY&t*Ss29bU3U8QHP~A#CRQ_-r zIM2bVJyx+A*x>k8K)tXViPpeaDRoUQM?INJs0yq3wfU`eAt$*rj5YAt=%hZozvTmVCmwk#-ikxQ2Dd;kGqNwQe(5@`O0D5m?-F3N2g9cKc_nmcF_IiS7c4 zrKdRwH>~$diu>S3u>KvcuLy5c9FlM-ctHmbMX-lWYl=LvOs9IJunNCh+0&L@I; z?sAUsZb}u3T??^Y7{~92R&esSE}({WFwKS=6z!4Pb*R_WVSEjaT?hQjc|yJp>N=cN z!q*J0UT92QhBj}2YX*<=In)%Kt#Ru?tmGm`=z}K2v*ePp=ewFXM`&+G(4)^6l>Y7| z0)@fU3oBT^0TiTMB~&~qsoTJBAE|Ey){bk01wDx|ib&v_0e)HrihsjTxM&eyN2Uqf zEQWh=CdE54TauFjD+_)aA;{3S8w4-Sd*qI9{-yxq?o0>=uKfiBS`p8Z)2f~K^;3cY z>IoAvFM(G3TLg+9K$dTUo3JxC@ndS-CMebK+d@9svXl)Ss=o{L{97uvh{Kbm*wO@0 zpioQ{NZo>+`GaGrmY{|$Y?o#aVAjmdz$x<{x&?+0!H*2D+AE`j$Y zuS;KX2Rhu$cc7r$)ME}m7V91?1_d3TpawB)h;9J;xGN5Y~h$STPLT%14DpOs^jZ@>2r85JA3%zu@q&EBBTjj8qo# z_?pGNL%E5EA9VK-0(|&ODSjYYw~*Dvc{h7eziuVu+ZO7(zX0FuHR^`g0nPn%_;1(O z{-Ambv;a>5RHurA`e7HvA-wc8O@y^*K4Qrgy3vz-UU8o>)C4R21fth!I8nHKxSc<$ zZhl(WdV!quoj>3$2j7+I?A_Ei1+w`Wvgt0cb-A8Em3P8E;_+3y z$2Rq@3FFqWw?RfYI$!=I#q*aOcY?tQUkLShBP<)^Ko$0*SHAee2e5V@H2Djx-v7?| zT?^F*LIA^qMzw8DjPgI7tKbEsK;HSMP@c@B({@2tf`18FvPdn7->d4D1pG~nLOzRX zXvPp_Ch-Gb9tQpX2gEQMnyog|#$CIf^avHDz+JMNf3QGe3XF>fceCU=W%H}c*0amw zf1Ba(3{x99C-de9CPN<6WzdV=tQX3J|KI>B;;67YF>yERfoxOw-J+o>K;1$S>iafK z8X01HQ3^UKlJ27=lXywZWD!bqQzwua_*BGAm|qC6DUz%!pA2SWu-_Ua@8 zz1ak{aQYb95w@zXz@$j%#D3EVG&vFqH{>W^^#Mo0;N1wqvY8L88^FR<-~7C`wW^@G z1n+c=FU;^`pyk0rLOs<)y~R=c#`3z;cpuFh;r=8D3bW>)YTmPoK#u?vS94w(D44dM zP}`^Ta{!lgpjIak>b@pwE=OIQ$hAUE>1PcTx%ax=acP$8P3+7)`W^(GuW+q6dJhqb zJ;XSoUB`LH96b*D;7@2`eX&m&UBtcS{b!+}mI1Kd2c$5#@sPo4VvEL??p@J^YEXgE z&RI}v!_$O#d9>#Q!~CPWg42CDw*}TFllOs7Ca}`rsRLJ9$Q?GzqU20|!kWeLU&Gr5 zp5G32ErcTIW$|?z;%`>^^?H+{TTDQ zBgFzr4b3{qul3e(yx=mPS9X%0XaDBNq0e~okW>6|RMaUTPb%lhX>VXOdUT3alTCgB IJ&DZ!0cDhL5dZ)H delta 42639 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 z%0A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 ZF1<>lhQdl|Ah<@ae_%#L7vDdj{|8<@-~s>u delta 9470 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 diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip index e32872ba3f1d47f29d0dd7770e1da5c2b4e03107..70203aa3694df5bca7e94db07444b4bd84383cf6 100644 GIT binary patch delta 106926 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 Hognr9SIyIw delta 108221 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 XZ^$oKd delta 45105 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

EcMdHuUKm~Wb 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 aNyq=d{ngEUGF$=vkE_h~cngb0q5lKO;Xd8~ diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index cbe588892c..61da4e8701 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.0.3", - "@abp/ng.components": "~9.0.3", - "@abp/ng.core": "~9.0.3", - "@abp/ng.identity": "~9.0.3", - "@abp/ng.oauth": "~9.0.3", - "@abp/ng.setting-management": "~9.0.3", - "@abp/ng.tenant-management": "~9.0.3", - "@abp/ng.theme.lepton-x": "~4.0.4", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.account": "~9.0.4", + "@abp/ng.components": "~9.0.4", + "@abp/ng.core": "~9.0.4", + "@abp/ng.identity": "~9.0.4", + "@abp/ng.oauth": "~9.0.4", + "@abp/ng.setting-management": "~9.0.4", + "@abp/ng.tenant-management": "~9.0.4", + "@abp/ng.theme.lepton-x": "~4.0.5", + "@abp/ng.theme.shared": "~9.0.4", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~9.0.3", + "@abp/ng.schematics": "~9.0.4", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index 9ab499ed12..451ab291d4 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4", - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index 0375d9ce91..7d7ca175a1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index de52df5ee3..1779fa8608 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index cbe588892c..61da4e8701 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.0.3", - "@abp/ng.components": "~9.0.3", - "@abp/ng.core": "~9.0.3", - "@abp/ng.identity": "~9.0.3", - "@abp/ng.oauth": "~9.0.3", - "@abp/ng.setting-management": "~9.0.3", - "@abp/ng.tenant-management": "~9.0.3", - "@abp/ng.theme.lepton-x": "~4.0.4", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.account": "~9.0.4", + "@abp/ng.components": "~9.0.4", + "@abp/ng.core": "~9.0.4", + "@abp/ng.identity": "~9.0.4", + "@abp/ng.oauth": "~9.0.4", + "@abp/ng.setting-management": "~9.0.4", + "@abp/ng.tenant-management": "~9.0.4", + "@abp/ng.theme.lepton-x": "~4.0.5", + "@abp/ng.theme.shared": "~9.0.4", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~9.0.3", + "@abp/ng.schematics": "~9.0.4", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index 374e2413dc..52416d525b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index 0375d9ce91..7d7ca175a1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index 0375d9ce91..7d7ca175a1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json index 0375d9ce91..7d7ca175a1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json index 0375d9ce91..7d7ca175a1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.4", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.0.5" } } 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 de52df5ee3..1779fa8608 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.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } 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 de52df5ee3..1779fa8608 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.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } 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 de52df5ee3..1779fa8608 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.leptonxlite": "~4.0.4" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.0.5" } } diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 5b67368e07..e7363af0c3 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -13,15 +13,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.0.3", - "@abp/ng.components": "~9.0.3", - "@abp/ng.core": "~9.0.3", - "@abp/ng.identity": "~9.0.3", - "@abp/ng.oauth": "~9.0.3", - "@abp/ng.setting-management": "~9.0.3", - "@abp/ng.tenant-management": "~9.0.3", - "@abp/ng.theme.basic": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3", + "@abp/ng.account": "~9.0.4", + "@abp/ng.components": "~9.0.4", + "@abp/ng.core": "~9.0.4", + "@abp/ng.identity": "~9.0.4", + "@abp/ng.oauth": "~9.0.4", + "@abp/ng.setting-management": "~9.0.4", + "@abp/ng.tenant-management": "~9.0.4", + "@abp/ng.theme.basic": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4", "@angular/animations": "~18.1.0", "@angular/common": "~18.1.0", "@angular/compiler": "~18.1.0", @@ -36,7 +36,7 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@abp/ng.schematics": "~9.0.3", + "@abp/ng.schematics": "~9.0.4", "@angular-devkit/build-angular": "~18.1.0", "@angular-eslint/builder": "~18.1.0", "@angular-eslint/eslint-plugin": "~18.1.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 1f478870d6..928e880dda 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": "~18.1.0", "@angular/core": "~18.1.0", - "@abp/ng.core": "~9.0.3", - "@abp/ng.theme.shared": "~9.0.3" + "@abp/ng.core": "~9.0.4", + "@abp/ng.theme.shared": "~9.0.4" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json index 0f347d3f42..0d1a3ff92b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index 3c58693d40..d727ec2526 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.3", - "@abp/aspnetcore.components.server.basictheme": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4", + "@abp/aspnetcore.components.server.basictheme": "~9.0.4" } } 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 10771644f8..48d931e19e 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": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } 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 10771644f8..48d931e19e 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": "~9.0.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.0.4" } } From daf69ac28378dede8c48aeba62fd82ef008fd665 Mon Sep 17 00:00:00 2001 From: Volosoft Agent <43883821+voloagent@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:12:08 +0300 Subject: [PATCH 23/65] Update latest-versions.json to version 9.0.4 --- latest-versions.json | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/latest-versions.json b/latest-versions.json index bfe7ef568c..392ed30068 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,29 +1,11 @@ [ { - "version": "9.0.3", + "version": "9.0.4", "releaseDate": "", "type": "stable", "message": "", "leptonx": { - "version": "4.0.4" - } - }, - { - "version": "9.0.2", - "releaseDate": "", - "type": "stable", - "message": "", - "leptonx": { - "version": "4.0.3" - } - }, - { - "version": "9.0.1", - "releaseDate": "", - "type": "stable", - "message": "", - "leptonx": { - "version": "4.0.2" + "version": "4.0.1" } }, { @@ -44,4 +26,4 @@ "version": "3.3.1" } } -] +] \ No newline at end of file From e2514fd39aa4b21553b080e6149f1deac1aad38d Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:14:45 +0300 Subject: [PATCH 24/65] Update latest-versions.json --- latest-versions.json | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/latest-versions.json b/latest-versions.json index 392ed30068..7cf305971d 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -5,7 +5,34 @@ "type": "stable", "message": "", "leptonx": { - "version": "4.0.1" + "version": "4.0.5" + } + }, + { + "version": "9.0.3", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.0.4" + } + }, + { + "version": "9.0.2", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.0.3" + } + }, + { + "version": "9.0.1", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.0.2" } }, { @@ -26,4 +53,4 @@ "version": "3.3.1" } } -] \ No newline at end of file +] From 11ac431817ab3c6baf41c54d0437912cb1b0a124 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Tue, 21 Jan 2025 13:34:46 +0300 Subject: [PATCH 25/65] Complete v9.1 release post --- .../2025-01-21 v9_1_Preview/POST.md | 101 +++++++++++++++--- .../2025-01-21 v9_1_Preview/cover-image.png | Bin 0 -> 493556 bytes .../idle-session-settings.png | Bin 0 -> 174637 bytes .../lazy-expandable.png | Bin 0 -> 50939 bytes .../session-expiration-warning.png | Bin 0 -> 44774 bytes 5 files changed, 84 insertions(+), 17 deletions(-) create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/cover-image.png create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/idle-session-settings.png create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/lazy-expandable.png create mode 100644 docs/en/Blog-Posts/2025-01-21 v9_1_Preview/session-expiration-warning.png diff --git a/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md index 55ad92fee3..6cdb586223 100644 --- a/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md +++ b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/POST.md @@ -16,43 +16,109 @@ By default, ABP Studio uses stable versions to create solutions. Therefore, if y ## Migration Guide -There are no breaking changes in this version that would affect your application. +There are no breaking changes in this version that would affect your application. Only you might need to update some constant names due to the OpenIddict 6.0 upgrade, which is explained in the [OpenIddict 6.0 migration guide](https://docs.abp.io/en/abp/9.1/Migration-Guides/OpenIddict-6_0). ## What's New with ABP v9.1? In this section, I will introduce some major features released in this version. Here is a brief list of titles explained in the next sections: -* Angular 19 Upgrade -* OpenIddict v6.0 Update +* Upgraded to Angular 19 +* Upgraded to OpenIddict 6.0 * New Blazor WASM Bundling System -* Improved Distributed Event Handler Performance -* Lazy Expandable Documentation Feature -* Idle Session Warning Feature +* Idle Session Warning +* Lazy Expandable Feature for Documentation -### Angular 19 Upgrade +### Upgraded to Angular 19 -We've upgraded the Angular templates and packages to Angular 19. This upgrade brings the latest features and improvements from the Angular ecosystem to ABP-based applications, including better performance and development experience. +We've upgraded the Angular templates and packages to **Angular 19**. This upgrade brings the latest features and improvements from the Angular ecosystem to ABP-based applications, including better performance and development experience. -### OpenIddict v6.0 Update +### Upgraded to OpenIddict 6.0 -The OpenIddict integration has been updated to version 6.0, bringing enhanced security features and improved authentication capabilities. This update ensures your applications stay current with the latest security standards and best practices. +OpenIddict 6.0 has been released and we've upgraded the OpenIddict packages to version 6.0 in ABP 9.1. This brings enhanced security features and improved authentication capabilities. The migration is straightforward and mainly involves updating some constant names: + +- `OpenIddictConstants.Permissions.Endpoints.Logout` is now `OpenIddictConstants.Permissions.Endpoints.EndSession` +- `OpenIddictConstants.Permissions.Endpoints.Device` is now `OpenIddictConstants.Permissions.Endpoints.DeviceAuthorization` + +If you're using IdentityModel packages directly, you'll need to upgrade them to the latest stable version (8.3.0). This update ensures your applications stay current with the latest security standards and best practices. + +> Please refer to the [OpenIddict 6.0 migration guide](https://docs.abp.io/en/abp/9.1/Migration-Guides/OpenIddict-6_0) for more information. ### New Blazor WASM Bundling System -We've implemented a new bundling system for Blazor WebAssembly applications that significantly improves the application loading performance and development experience. This new system provides better control over asset management and optimizes the delivery of your Blazor WASM applications. +We've implemented a new bundling system for Blazor WebAssembly applications that eliminates the need to manually run the `abp bundle` command. This system automatically handles JavaScript and CSS file bundling at runtime, significantly improving both development experience and application loading performance. + +**Key improvements include:** + +- Automatic bundling of JavaScript and CSS files without manual intervention +- Dynamic file generation through the host application +- Better integration with the ABP module system +- Improved asset management through virtual file system + +The new system is particularly beneficial for modular applications, as it allows modules to contribute their assets automatically to the global bundles. This results in a more maintainable and efficient asset management system for Blazor WebAssembly applications. + +> Please refer to [this documentation](https://abp.io/docs/9.1/framework/ui/blazor/global-scripts-styles) for more information. + +### Idle Session Warning + +We've introduced a new idle session warning feature that helps manage user sessions more effectively across MVC, Blazor, and Angular UIs. This security enhancement automatically monitors user activity and manages session timeouts in a user-friendly way. + +![Idle Session Settings](idle-session-settings.png) + +The feature can be easily configured through the administration interface, where administrators can: + +- Enable/disable the idle session timeout +- Set custom timeout duration in minutes +- Configure when users should be signed out + +When a user becomes inactive for the configured duration, they'll receive a warning dialog: + +![Session Expiration Warning](session-expiration-warning.png) + +**Key features and behaviors:** + +- Tracks real user activity (mouse movements, keyboard presses) across all tabs +- Works on a per-browser session basis - affects all tabs of the same session +- Maintains session if user is active in any tab of the application +- Provides a countdown timer before automatic sign-out +- Offers options to "Stay signed in" or "Sign out now" + +This feature significantly improves application security while maintaining a smooth user experience by preventing unexpected session expirations and data loss. + +### Lazy Expandable Feature for Documentation + +We've introduced a new lazy expandable feature to the documentation system that significantly improves navigation through large documentation sections. This enhancement addresses common challenges when dealing with extensive documentation hierarchies by introducing smart menu management. + +**Key benefits and features:** -### Improved Distributed Event Handler Performance +- **Cleaner Navigation:** The menu stays concise by hiding sub-items until they're needed, reducing visual clutter +- **Better Performance:** Reduces the initial load of the navigation tree by loading sub-items on demand +- **Improved Search Experience:** Makes filtering documentation items more efficient by showing only relevant top-level items +- **Context-Aware Expansion:** Automatically expands relevant sections when viewing specific documentation pages -We've enhanced the distributed event handling system to avoid global blocking scenarios. This improvement allows for better scalability and performance in distributed systems by implementing a more efficient event handling mechanism that reduces bottlenecks in high-load scenarios. +The feature works by marking certain documentation sections as "lazy expandable" in the navigation configuration. When users navigate to a document within a lazy expandable section, the system automatically expands the relevant menu items while keeping other sections collapsed. -### Lazy Expandable Documentation Feature +This improvement is particularly valuable for complex documentation areas like tutorials, solution templates, and extensive module documentation, where having all navigation items visible at once could be overwhelming. -A new lazy expandable feature has been added to the documentation system, making it easier to navigate through large documentation sections. This feature improves the user experience by allowing readers to expand and collapse sections as needed, making documentation more manageable and easier to read. +An example of lazy expandable feature from the [ABP's BookStore Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-01): -### Idle Session Warning Feature +```json + { + "text": "Book Store Application", + "isLazyExpandable": true, + "path": "tutorials/book-store", + "items": [ + { + "text": "Overview", + "path": "tutorials/book-store", + "isIndex": true + }, + //other items... + ] + } +``` -We've introduced a new idle session warning feature that helps manage user sessions more effectively. This feature alerts users when their session is about to expire due to inactivity, allowing them to take action to maintain their session, enhancing the user experience and security of your applications. +![Lazy Expandable Feature](lazy-expandable.png) ### Others @@ -61,6 +127,7 @@ Some other highlights from this release: * Updated Iyzico NuGet packages to the latest version, which is used in the [ABP's Payment Module](https://abp.io/docs/latest/modules/payment#payment-module-pro). * Removed optional _secondaryIds_ from path. See: [#21307](https://github.com/abpframework/abp/pull/21307) * [CMS Kit Pro](https://abp.io/docs/latest/modules/cms-kit-pro): Added automatic deletion of comments when a blog post is deleted - comments are now automatically removed when their associated blog post is deleted. +* Avoiding global blocking in distributed event handlers (See [#21716](https://github.com/abpframework/abp/pull/21716)). ## Community News diff --git a/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/cover-image.png b/docs/en/Blog-Posts/2025-01-21 v9_1_Preview/cover-image.png new file mode 100644 index 0000000000000000000000000000000000000000..0575db3f2783a6c2a78c04ebad883e276cb31c00 GIT binary patch literal 493556 zcmXtfQU*e%%F2w$h|CCiS+PG* zm{0%!0DmOJg%tq+Ko|B!mT&-2tz9ep89tpuoVAlDI`@CiFah)23S7 z+%lzIAm4cTc@Dk4jclO3TC1vv`61xtD=okKe)E1;kNN|E!C}9g^%$89vVMR=1}csc@YH<_9-3tv&fQnhYa)8< z3oiXgx@UduUeV!qVJ7G%mOb!kQO>LmB?Nq3qKSi+LwUbF%LNKl%$Gc%DH8jeFS-Ao zZ|fRt@yd2#WR6uQ(dKVANUJ2z@F^tvTE+@M?`9r4V%fSIz`SalFuf^RD;Wno?z;vv z*4fk?wC#xrw5sIguI)Une_a25^$G9%z@@igzdmxF4b@;#G?C%voCJ+g3;4y?F-dV2 zSZvN34Tu`s$z@NOoo`}YdQ&dr?=I0CC76KzK#eYA2cBqmX5aYQ&E@$N=EEgV`~>9U z)k14pZ}JCeyjbDz^L3ouaolR2ZSboVPyc1E1FpO70*K+BcVU7*4XjA~0eDycrJrdY ze3NaZ@WC!hf`bwv1-s1Es~+G_3#rX5x7%c}N>ehE3b<_<<(9-(QiVN&V?c{N%!arC zJFD$LmWTDw9k3l_9dX$l?O2Nl4Au5{VRdzS1bdoeBPZ18)@_u0$7JE}Wg;JT^$LIf zHLwoq{eg;{qSQ*hEQZOpICP-i+5Ip0%Jv+OO5L1yUj4~!dX*s#l9xnz{V4HkTNB9$ z>gTI+P;UMH+GPMUZ;OrQE+n$zk}YIxG1d|f$||}jb&327aX=6xK8O$9_8_x^qdG{{9qqsXs+#6gp;;X*Mm$O7j8`)EyXai+f9S_OQ+ zHJnktcirjSr+F$s_bzf84%2_|-9;@x6C(w~X7r;MudUkVIQHh4(R1&~=fwVL&Jku3 zemVye0W-()m2{jrYQn;3#8LW|1w{=wSbn~~j(H-8x_<5R7UEy<<<~7xVu+!n7L<8F zypb;@wBOo-JWcRc`TOU)IU9?lQ69vtqwaaa&b|5h&y#o~H1Kr6W(}HOk_}_@&aUx0 zbd>whsy@1Fy&zj)u#F&!i!=#xMdbl_HqgqywLsV&N)6msj^70{N@XKX#yGE7s&(Xr~06oBh+h zBv_PYo!g}8c$UBm%5Y&hSi-)gjiQr8fd0b%J^9lgIO@VHnCX&z7N+%>peR%P3KrH* ztV==B5{ijnJO{@L1?B9AYH|So=&#xq$yN!O?837L9F!qV)3w+DE=ls78y;M==-}8F zj_O2QXB{Z7OFq*C8)@cK#uExEjZ0uRwf-5{470pz5y`=}H%9J5v21>i#;_Mf71(QG z6q6q3pCW%3lt$XVhDxFg7^u(a!UT5odqJ~FDPm~7Oh|l+F8_D9&al7C4iD}9MyhC- z;>o8l+OQA)WLdXOj_@yf_6BJzxeftA`euWx z0%CJ=?bm@+k#cAFy|gMhu9%(65eCZkNdm$ds^@lb;1dv0N4-?xfmpx>pC5P(pqrGJ zo)>|tJ21vdW8Kc%7KK|j>&oW2CDS@{?a1*zNx=O9ML2T+mGAJ}(Jm9?KMAmV@&zn= zx_TiI?Q166&h!?Sl5t&guTlArJfPM800Q=##2#`T>{kLk8Ri#Cay&~>6P zg-a^p#H2l=;1@(EQzje#kVP~&zxq+5i!B~H0iFMB&P`baG+OIvWb zvZsNl*~KJdVOI;un|H1!I&ruWQf4pe@=Ea8#61#F6V;tES5^l=)h z4dJ{bN+hpcLOR6AUiuy}9pgg|*Uv|Xba?TjWI72X7I&gh2%?tbaK?m=@x^wCkXK5M zL9Hvnt~A(%Eh2UsS=kIQnJqN{B4)xY4~SgDO>b!}nMpje#QhM|ge@ z*x#|PwYWIKRPGfMIn>3U9)1)2?Br_U`4O+X8MvbR1a1&-@IB`~`Rl3}Jta0|m+sEE zxMAGJu|TAw02KZusbnhR!+9BPv_)RA&$fZAi^S+aUB!Tc&XL+v-6xo?e2x`rc2jm}|Ct&-g?c?_@3ySg&!(*eEp@+9C z!(1rE@xw~Z0$&9JdrdlGygt^WKhkh@QW03n>#~jfU=VwYg_6Vz!0^p}x_;&6RUY|C zFeA^jpP{oZPx|9vu7-1HVDgeY}xF@pid@Xl`R@oU>}^YqQou{7_J(I79j}F4(7Al4g*c(bgkWIR#Xku z`svQJh@{qG$NM5h$Dyr(B#F+EGN7JJ>>Gll^v>T~T6%wj6x!i!=4DMJaEnef4Eb=} zNc>dhuia!6q|q^(Z>MbNaX5y8soQE3-QlZ}j3Ye9Vewc&H=B9tUW?4x8n-#yr`kFpQ!2w7K#AzI`MM-{lT$Ds%SZeh2OQLH9kOM*GTfS~%{krr7Fpg+ z#tkgquxsv5IzHaf+IPhwBG@tpojwbn1b;=5$~EVpT!Z|#PzvSjX>&>i8_2)?Lz{-M zxJ?{E2E)&gK)GK3=&Rk(P5VU5UT3-mIaHXgj~Pni6a5uKI$S)3i)zG=8|^+xUjs8* zAa+Syg|RDL(gktj93>%lH$a%f2UDu|Se>VCmuyAL{cPs|dXfXY{2yoh5iF0J#%90s z3J}1LVMD(6q_O>8rFT}1CNIG@IsjgE7A|kW0^#>qNlM~^osz3OTEd@2>Ux6}NMevN zMh-H*(QRj>5NL1lr#VwpC<;CF?Sx371E)-`qK*CYDRB%Pq)18-_{QG9j86Q}EG2tE zElJw7GYh=EKz92eMXc;Rrbh4JgGr*=yfNZpQ`sk()*D+7sW;|h%_g_DsA-)SnqJRY?nV|gUaF|+ojnG zc>NyUmoCFe#f~!=f)H>3TgUe1PJZ5okNbudaU0-9Mk+&XJYv){1jI)((0(XwzY_qq zAcyy44ax0-=^%(9howX@dhIz0^JS>0tbIrasx1(^sa2Jgx<0e&bAJ+qbS z@w4u`kf7aOH-`QHqfN*jQU&bCEdOl^2#P==ddJJuh`1+!M=>_re{|_!hJTAXujgM2 zUp(ge{ETDUr}V8)c#6g}zk)nd)sFE<@i*yNwvW75+MT~&1)(6h1-XZQYg3>nDq93Q zIa5yxgONs7_+9xxE&o))Z0Cw(fSHyEdu7Xljf6?jd?|CM^_DQet-h*ohfZ=#9&-ad z0g{%GOm$*d>w!Jeh}WBN{rF;}FLgM@wT+e(PFBpKR`GU9e0@|8J){Msmv{yWIBHN8 zHaW_Y@EX>WV(tnCW-Lc`)Lh!Vx)Ec?)@Q_f!JaL2OQhPaZ~R%8x&$a)QrdrdOEkg>M|u zBjk34+R>m2dW*P2)3{yt?c3qPfkzf1g0ql+$I_ti8YaY-LI_0LF(kSJf3J~mjjkF+1{UrbJZb8f2atv93l8BVjuep0@CnFH!)E80?Ps49 zeB9+W#zu>={G-+vb+gj$@CFNAeGSpXt|==i!U3v}#)_g__dMq>%xecnF%~ zl{rzvF5V!a4#4D#`aWmgvi2l%;ZfgNaa_>!9D8t^y|@(3;L#MwydMcy;V#nH+oNxs zEpXdawU*{0*JT>l-*ZR)|dlH2ZNHu|SIWl@(H1oEMV>FBphgQ)kO#~yn%y1fp*_{}f zmvXV7*ft3k@-Hm<3~7j}g4Z8TQS>$-K1ctBKM&@A;lBkyk2{iJAH~NcvPnv%U*;#C zQHm~Fcr9{9UuYsW%8uXPe*fe`PR||FHTJCL^Lh`vos%Cjh5(aE$nWoXex>%_9;y4h zMR>~N))A?{#G!#>$AvNs<}>cU%`L={PJE;fPR*t^KY-RwFYq7$`gn7eb?avexab~P zM|l#A&J3squpvHSUhR7i2PH-q31Da~UCJk2Zx!^R6DBVl#F5Wjq)Ljla`oN+Oi6UP zh0*`Ys8Hb`VAkw6)zBuF@F6uFhw}-jMtqWB1SHY1H$ejI@rnw*pv9IbrHPkU!%)>} z!QPVE!%5H#jXn%5G`ss`DAe;qiFhRz5Ud1}$V3kP=(2Y7-szT3R>{(Nn1(GuucCVn zC!L>I)P{ni=tTLfGl$ZZ<34B56UY)tq&1>(<(iWhH?!H15h8JiuN&yzdQ^vI3-Its z`z#&&bjzJ3ca6C7N(R$Qln%IB#4`ch4s``iuDFn@n8)52rKm*Xh)QnIAA0U&O*a=B zZR$OY6Sj|Aab~`07BW@G%;zy?Agfr(LUs-UjK_4Jm#tpAiwU=1F_hDt z;#JSjEaizh3TFci;9UBQQ(cPnk_M={tt2n_Ci(^Q?m57s3_FK0m!^PTr8rSO*S@-8 zvLdEs|Bv-2f{g{jkfdKIdS|A)f)~lT4Hz_7&x&7jXG$|f6x{Zgh*~|$$stM0<#T20~;v2la z8!5%cJl{xHHz!xE`F+acYI4G#6c{v8B69@nn%Q?c~T6HfZ}(aXjZ!iMxEmA z9_@2E*UJJ3i+wZ8-E;^^SNt+Tta_9RiU1!I!g@=CBJOM-yv*oO5U`X5utQae?4v{} zmFS~}xF9)aSDzx%`n%}p;7<6-_>@G`-dW55^e#?Y@KGZ_{J0F33>kKK)!rOI^1XJq zN)^?dW%KVtL{r}#9ICJ3UWa{S369hhNa_FnB@^t+O}52x9YXk|w}M>y5nS8F{)(YR4HwpH_zuzL)9g~&SlgiM zBl{n_1Nj&4Nt=tI5Rt0U?r_>b`dC37y5M1q9;1JzcGD5Ir-kc{pA&cz);K_aNicbp zkO*6Ove@k)J@|lLSb%NqLME`lR-b3+O$MY$`?i_P@8Zexykb|nJrU@jwd3OY$nSXK z>?+}+BE>qSps!$&a&LRoyO6l|LSIw^6$Ftd5{JE^B_>1%$|W;AxC8rf&$#-YZ5ucR zDF!|d=7k08qzg$0tk)%HfKzP9k`o>Gqzrc)sb~CPhduSAH5D0{Fz!?_9e&mA9|z-s ze3us{C&@?xFpGH%Ja;7A1}T%hIenS^icQ5u6;H~gUbUA5!SKNe+l6dee=L5IW}d^> z4?pXI`z8^f!8pLIn!9WKL=C{+v)_=^K(S5`Plll>mGuG0>Ox{o9(JKw28~ehi6W@H z1t8ResM3T$L3j75HQ`(Gjg9S!Oo~8MtBrd0y8f6x zW02wYT)yyxr6H95XaoUBx{^Yn&=5Iof4d@Lr8JZ`3@va}pH#x#_yE4W>ShDfMX1TaM}+SxYvdv7Z_9`bqP~8MuVxN}Ao--n`+B94VS`2fx#qW2N( zi9mu>z7-?s6!+}px`m3Wj34TUa&5?Lv+zWmKF~zA{lK6Oa*JV^jGXOv7n%j|Y*uNV zZ*N!h^?W$E%#KANegoL3+2iVhi-XfQ)bS(e&pO^1VYMy?5cyzncMV-4lv8ClEGg~z z7OV&m?KtE#&81_W(IuxP3LUxNc;TAgb?sUkFq*UU9YVuLxYpzK;u>^@=G?v0%9}pk zVmp`VyNY;rUTCdV+2CjN1C=GuSuw<(xI=5mAWJDx$~mJY1sHmA&djB; z4|D+tePoSkLS!l9G;3vEqKx`nc97pc61R4Zd8{4xo{s(z${-(3Gsxf;L=xgHi!Fj0 zn+R}~nY1m7()@zw1v1DyXhF?RLaYyMfnG6(u4p~rC-ZOaMo4I=*2Cj^@-YLJfo6Ze zQ5gBG_cVq*xuL`mCrZhGCRZBi@M=rai1M&Pys-cNeQrJ+4S&Ml`&*k&eM9a6LK#~w zjDYNE3pf;q)5%maZXDmp5W{^j;wXhctOAgc)dvuNN;wX9T{K3}WzPM)l?KyNC~xP&L+vAIY5kRXuy2}0V^-_Hoa$Npxx5dzu^@u{SiWcb_h zLHKfaZ7}p6#t7kM)vImv9r(SL2d zFw6M>C1(=(CAK?_6{Cv+WHV7=R+T)ufMia5`~ll=2!PhTUXJ}WKQ-)&qP;xq>qQm_ zU%gfWP?E#Vgk&nWN*Joa)q4F|@Nz7!MeCABmom-=-b7Kb76lAHncqu3y5ZVc&1XV!N~EdxM`0PG>`@t!a3qSZ0NITCG!!a^1_=nm9Pj-ykRSm~J~D(8I$a%D z%VNY|J`gWOu{z>Olp`#$woLg;-FM(re-(8`I>wkFn)lURS-8xWG6OJ5pJF-+*qE-~ zXz%`-?^PDZ8GsaDZ2HTz>BKN{?#n0=!n8ZO$vmTx=Pxg;u}%qK%FcIPB*fR4|EPUZd0#7~fGLV%1vmg{FFgbtmH=6DccsRsaV`9P`#9Cd^ zPah^<9D^A#bWlsPPZm~QT#hJogn-e41F%mi5H3BONJi&RT%}|*&5l8BWp0u&zlo6Q zg`t9}%=&5}&4_wKN9i}#{+T0GZsaWFZpD_YGq&deJUZ}QVa@aRHFEtw8E?M_=l?$k zNG)i&P?%#Uz&A7v)41TG!)q)b*YJ22cs~jpCKj649NWw_4;fC#(NI}rz}OPgLPqwZ zOBR!fGaISRE5GZHUdv%dEjZxlq4P#p(aN@)O2UV_uml+f5ed)hsg?o5jrUY$-zgnM zuisL0W4Vi)ue5pEj({+1KufYzEuU(lIqsExC23)Alaa`7YFi=+q0`wOmw#d~!VN*n zAnF4D6gO?BHt|#-QP{cQ1mO-%o!fK|&6F0_d!h=z1ITDuyz`y@Lg+}Q^<7jYeU5~C z;!~oC)d-F^@!ICyG<$BMFbzp04m7i`G&>TwM_?h=#PFE6PM33SS{Itmxd>nSJm=bj z3LxA~YCprihSuR;HR_-IXz|BRQ9|8ttBuIso*E^Jvdt9B4>6b6M@)KZ^#Thn17*(H zkUWXPLG^N_mb|rdbl-mAjqVe5ZUw)K+2ch+eG~Q&S+l=u?b+KVwjqJ`r#F$ zI7Bo`zlnJCfVc8c6+>J=!65(m%`=9fnC-2w;393fu*r~ylbvF{wMO#!bgK4JZ=xG0 z#rMs96rCl_qb*I0rWa0-UQg8X_+I#4J$+Z0+1=yV0cD0iZ7T}yihxA&QQ&R3lv20d zm_7Mct2O#xSrLU(yggv09==)gDUaa?%MtoMx|d#jxjg*$2e^T3ayjB*r0~=LT z=Cahg=g_O8%FzRit+{p>ei(@H&jCw^+0t4?X(v7nc!b}6JEDki&tdcKH!ac<_& zA^^~VjgZ7HE0>Eue*s40CCHb#(h+eQ&R z^2N;dH1+FxnRjik@M%y_Hh3}k?8vB^vU`L1NgANJK^@oTQMc|@^6T=tGeO~3Lqtd3 z)L0%`X)Jfee6!&U&?OE=!66lJEVSReoQjmr5$%PnoE^-TiK!&8J;_K&6{>@s06TlY zW$i96t;sI4Wx|3~m{LCWl1_RIn_gZm#TvF+5)ht#4GQKR!tkE-%kS8&ts z_!(=>JbyIAzc)6bVO6Y##R+JzF`Sv!NAJ+%Yr>JC8Qi!zAv*TZ`Lu%e4=SZS?IV~q z>!G4!m85f82n@Uf8=8$7Ssi>SrgfG)e}un>`~VXq4i6E1U(+<26^@gEJ|NzU2yPGu z1g&OdFqnt|aJ#8s${+Qq`%;qu_A{B~r)MFnfD$FFm>9G|AW4iDpaZMJj1Vj6+k6cH zrrWf6Hx~#PWqlV%LS3c{0 z5fUofL?hDr#o>nxb7$1!Wo7NjWJoJTE^V9vW@6EsTmHx`d_}_;jq5s%JIz}8e6{fy zlFYF3O-gx^UsW{73x%*E;U8zMr{(ParNP%^mwPH=43?SCRj(=-n>b-X@a!{ zyoW;5S8$|K8`cAy9P~kay3>p>2UwY3=YTVH>*78}GjzczF93f@^+@{&tWMCfdaxyj z=yybZhJ06vZziN&ooaRnXS@wCk$-jE)+d*Q2SB^%df>}`ZU;gk<3W(fp=5kNgXsS{jKVcPQM3Jpida*j6@2mgkKJ+g|Bu~e=u=Zx zvsdaWo*k9|_<@{a+-5u>yNsvM=a0EZB@Tor6MY1Rll;?n5zBn_a@qo7f^E`BDhAl2 z&Ro!PM(wjp&e(#HmJ($6Fe;~-$^h_i3=IpA>{cX46UyEiFi~8EdMMgJ2QZPDH6~>6 zx|#Dt*{;@xnkii7AT!=B2^!4cnZcVMLe7hWAvG)+{o)FhbLy|7&Ox*^Qse70&KU=S zl~5;nLlEn&aPbIIBnLyxGZ32+UNa=x*vanLqOy6?*P2OY#Kr|Y$v9=_6B5>DfiYLr zkGRn8hLH}sdu2vmksy&P(j0o{dU-|hZYUN>H;zO`Tj#$ze1ETAqCw%gE8IEkT-kbS zlezg+2G)|_QbG#N52!5&Crcze;S^UB>BrWy8?H@|QUm0{vmm!0ZJpk1Z%G{Gq+*UB#ym#w>ND)7u}=Kd zN}2z@qhr^W(CfvDE3id}$weZA3?HIV{Vlv+*v{rW4A}Q8##VLG~bEjt*2E=axoW%Oa|=!xBMF%6&O$Jk{Ge_pR@PoY+u?{r>$MfHCgR0w$D(ipDBw9> zvr-^6LWz+}Q$QB2-x`Y2L<$#mK+Up1R@^xVG&2V*42p(Sff2Vc}zmv{2JWmCIoXCFkc>KLlj&-st+AMgt( zdwx4Wn0N1-a0gpQNk!s*S zxb|T_%Jr1+Y(v#xmB5v1yQ>|uGC~v?XW}xt1?h_Es8d-E^6w;Gpwmj&nh%h*nENac zoID4mKtSHViC7KS=M3hvV^?QEf zUvI74R-S!8>!#J@LgS}vKC8C-wR@WE{L@OYl5SCxrNGC_k)22C>ka+8pXDUWdoj_R z$Pl6den7v9KUotpl8E|ao=`^5;#xceYPD|YTgB%lw;-dALpJDGBubT&6Lo=2FAv*X zrX!D%ccGaX8AuG|+{X_+v+q3Z5bv!*dL>pIqKzv#`C8E&S3F5L2O0F@UjJl_XdnC1 zPW?n~EV~StWL$>OsHJ-Hf5CxrirJ1gVUm?I3nDq^UT<@L3@Q|fFF^-bB!x;UZX8Bz zdh?yUd~@wf;(GD*Ng#iKQ!efd2!97dbsUJKn&>fj9=}Q=z)i-D^y$iwxD#(qNe#3e zitmL7yBqNYEup8lZSXUPHMdSW-a9-tZ*=F8W7}raM$g zY%Kgo;rsyq=hv8pdd-gk06T&vq|&LmgksrwB*E4l3d}l}szd+N?49mvA;*;f7v1!j z5ZEc%8!u2g1vsRImPczGy?nx#_@D;#P5W!Ev4iwwx|svZOt$Jub$inya_y<5$)k7{ zh<`D_EFnqDd+PHMHyjA7h>8Rf&+M7p#o_I))?po_C(wm*ou$ZT)eaSL}O+Mn_w;+S~1===AExR%4~a-&;Aj8%>=^DJB@Fn!+Zn5q{McbVuM z7RDh!KJ*CS6`(ho8uXuXD{2iJSc@qqtBUe`rVNU-7j7wp`f|de!ZmZn(U;lvZ(|tn zfstLRsj9~0Ej(R)ag zm*LPwCNlIl0}Prhy|Em#M>NAV6_ohEE+8ud@{ zxD7~h^hx$Nas#I2dzVTE^#4p)t&LeCI)zMJ$Y9^q90^t-5a{epKu4rs$!Dbu&&!fb zFhDm^h^u9sY|nt)o-?^+`-@SQ|Kw&p|BzWGGYbC>e?i|HU2n{gKPnJ|j-iU|B)(bR z(kea~7mJluav}nYtBYWm-TIvZLE((&~)9j zkl~y+gI{Ef6EfN&E;PZSO=FfWE;|1Fre*ZhOV}?`rPSt^!KSp9(y#~Q+N^+I6U_fj zUmSZTCr9Sc6sX(i+bolqwweLFt1RhJMwVPn!d~l0ebh|FJkBwXwrr(%VDYUM^hJz< z>G0<_SlG2PUaphetIXDS5Iu*Qtj835{Ux3ykGz)^K(OG=|H#xi)8jFGjQN||PWQ4X zxO&anYjxv~hz@tJ0nsokcOL&`PgC7KT|6VteL?Zv8e8ReN4dnHjNzkr2D1*lCZmz{ zpC{7`(Oz`iACL!VUWQVB;<}jd(=4u|C=Rmz)YCWxhMz<$AKy)l4T2BehU?2aq*!UJ$<>Yn&bfeGvmZG0Qv|eG{TNyzSg;H=ps-`BL4;4=S zMp2%nrJPgKweF8=ji&JxB*K~?@`kY1pjZScDzGRXp&;zIk-) zUI}xOqV_`zJ)F7Go}0^^nzr>)d=Cm^>@w@kJSm6xMUDW6B$|LruZS3)ipxq3nHxg~ z4H_T(W3&^AVR6LN4hVEnxXnd@%+;NMH&Q(P6JwpVY}W-kTqjr2*zEF1vNpHgBxo@ zu0G_YVL7IWzwqa$|CF)M1e;TM!dme_0ct%^FU0evTUE#~FD_YQl^uPow-bQ=ZM3*a z-uvv}@RLn;u=sHz?vhyUM;!&F##=f*x=H7}DP02cl(8W(_klh7dGwmhHNHlm0C&+J zkn93-IdzWp%_t@n2c(Y0cCp%+)S^lK?Jp2`LB1;kQ1$}@0r(f5IPUFn$xVH$h=Au( zTvrU<>NZb1)8u4(RV;fQ?Iy)}8#>mNa0mh9hEd^>QOI^HsDO(O)K@%Af*ZW++u*a> z-daj@duwjZQpU$lvvF zXuAS4BV>>c1G`wison2?{k4CS)DQ@PLFxKhRr#273Dv@$XgE@NiK=`4Q`__YZON>$yBE}#MR3(v|S(EUvo5Gy{x$JMu}TY^x%n<6#scA^B}zX3^6GV_W7Y#D7OO! zqJ+4u!z;v$Br#{^1j@l+XV~pUL*}^vVW>n##U)YYmv8Nw&XPdCb{30MK9Bw72Jq35 z(<~POv5gK3;!E-vz24;3Gu>MGS{TH8YDe9p)oUEW*TZj!J}IAc7bPmMuu=QJ%a>4YzMdkZ!rcLRc3DIqy3~ zJjL6@6V@4D8H=(zZI3;X^zNQ%#8PYKNCNwws8j8?A=jMzC>1*Uy>R6)#Y(G(Ju2bBBwGgH z&)L(1cOVet1Tuf=2F*wNF$Xz8^q+21NIxnWSlO@=V<06BpF@R*IQ-RiKZuX>*`o!G zy7f0A*)ZjriAKcmj*B=Q6pEGv|3Z%)&{!q$Cb5+`$cAuOMH-<=kA_SpJ9h?ueZMr| z%k`T@8}RbS8x3%4ENSSEsD=SkF0w5!{*?6&j@R57EIk4~4V1TkWQ`aB!J9VLo~xi~CsMza!ZZ zpt^3s0zG4`dVZE#C`$=l7zI4di4AXlCc2yBw#-rN4-t~iQ~EAR9>lzMEI!aI_|w|Y zedqa2iR-3B#zXz|&am_#ZfGbO(m1T+*0*nze{`!r-oEnYcKH!4QU&F^ScGy{{zrYj z`bJt#m^~F9J*z}7>`~I4*$-VADzu)cOCExB7s8Jr;oL z)(@UL6WyjLma*H3S+rT9FWd+A`6j~69N4AKgrip+~?k4E^1i<@7H& zNcFQ}`prjp=m8BW>-Z@iF}Q};+gIpTA+pZ8xb=C@l{YJRbi~AZE^%bkg?op%oKZH> zd~_lXyxP+zb+oyf%B}|x>q$~5Bdv4YyxS46*d#aYyCQs1yg-Qx$AbzKpJ$bM9NZBo z;{2Y@#J3hE0x0HuCkbfLGQ}%5CbsmgG$`?jS)si+yS^0UBSt0b5Krk!D#glJ&SS%vlfeYk)8*P(gZY-dH@k|S`nb>$4t6z^!YdPC zpu2S4SXrD?L3$yI>ibVj`BzKH`}2EgTcx(g26#R4yc^wwLw(1-4D101ML=(z9;!q1 z0%?P_p>IDbkXZ_UHi^74bSg!f-1T~eDfk8D5*G-UVPmifzQQo z1vKgT&%Tb%c$B?mhSCukdH9tgCY`-3Q$?0hf6=Bf)2E5<9NB}$xMrVmcu1afEC(56 zF&o1N=YUTbrY<~<(1G&F)cN8A)0sYZ>cQ8fvME50zcw)xJ3bzRIJlK6u{Fj!FH?jL z1d6=e_LqpHVR%G2!D?N!?epAG$$E#sCC5(+_lk}!u_@Jy9?nU=9#G?%$aK!9x(Kxw zHS>=zUV(=l*ZtfZSoS;ML?z|EnZ_qKwO1fvoS$NWahJIIdB|H@Tm>ZEod9RZ>S2`R zwohR5w(bV49DBH!DX@tLwrT+%GA?eMw}Sga2{l?59vQJ(so+RlGv8XAdg9C0cVWJq z2!;33;^3HJ#H{<*;<}4wC3BfKNF%&1>r_xhjXcwNcj|MWG+YyGD14W!ge(xz{xS&< z0Us}p2=`%H{i3Z3a97%AgUQylW>oTp3>ly4kmt?`XIxY1P%jG}h8*t^8;I5749g+d z=UYhjpR=w!I(CPeBNxaqvKTm~^&_pDwBo7X!;Syz%=rJ!Y_oyeo=qsg!^QJbqSkkr zqcVLBs)xAxl7ryltk#egO2AUgoTnd4aL?V)#fC_S4_ijj)p=`&259p08J<`<0)SQC zc(sWN_x$!jq4w*Efe%Zp`!}dSB%y;xj)v(B=}umEdf0mp$;qUXfH29rI0dQ{*Y>Qd zT3zkn$U=YPngM#t*r8W5g3I^b>J;WToClv7+x+lO3qz-SXb0*O#nAX+_z&7(a#;v8 z{Ct5{r5ItP+ZQc__nUdDEw;iDk9J=M8;THxHncxDqKYkZmM-Y=dahH`ei80RkA0QE3Xt3}tnW&l;nIsIf`AtVI6W92%w83CDO{K}VyjQ9Iddq1DA6 z5O4leTwMTH`<7L{*3psAJ5bj-QgiSjWS>e@2-}^=BTXXGx@U%NHs=dDZKp(&w}Ek2 z7#HyJLVX^ye;yRxwm1v20RObQDD{Ui3NA0=!=o34lTQ9Y@ln1l1_h82yswSPN8I9w6SJ1ImTtQ zJJ023+1dLt;VC~TtMMPYo#Z`%7Bxlc`R+5JEVUAXcE=oyO zLz1}|ul3AZf{etjG~xR#PV!7pXEpV@8LJb7rNBT_FVu!wy=bqSNy{XzyD|wYsD(d~ z%8T|5_4_P9M?(!8__1h{ZI5iTiVWCAiaHI8LIvd!I#Vq3#Z9LW2HFnp74 zdLr8w`GJSd&lA4-a=P_dV1&HEw%x}DXcH1mp-|SR|^gyzPn=aEPkPyUP;?mCoBTG z6R2#iYy>7W0zWi0=u!_GCm_U^@+&gq=qEqp@`KpW5WQY!ec0qLOi)YG-S$u&y^OM) zS}Ww?*uArB?jmCNe=hSJESx^9w$8Qqf3c$|x5WnE(<=Qkzw-G;fZ`C+LMZNPqT8cg zzGA&P>J@zbU+k{^bQfTt##D8X&=wA?t%#MWw>AQ5a{5zk;uQupMv)nv*P$DNyFM;t zWp}4y+G2xv9h(7;u!#%}mPq2||DDCONSMPXxaw}&h_LlglWqSarOy3?laL_DcP5Dj6^d^Nm* zYDb~fzFqO6jWpF)l9J!F;W-jUe3(B z2aS)?(Q%~-{|ZGfrn3O(!1h+F*yg?ZgdykXaKq!cN^mg3o1>Ixvm`@HoawBggOyI3B zK`$e0T(C!5DY-N;>EL*Ts)tpM7*Q?}1|ovzl?1UX=YCNrRs}RErvk{I%n84yp~PlL zQ;%^cgmzHg6$$@xZD3xN=c15@>I>92b!^Fk=n8YWnilg)OtB;y|ieuRw?^C#Y^kc-VkI}r z1^$rK)GSVJ*W;)F|6GdKXFBdYmG_4KN7FU<*P%Ae*l29qXk+8Vwr!`u2^-tCZ8WxR z+iB7m4Nmy=-ur%k!~ULUXJ=<-(+^*eqxu17nUl6pzgSmOEPKrOV}|SYO|ycxaH z;HRF+4F}9ZKxIABHfH}++KiUvrTC45=zRd7X8NcT>1y#J1{FhygAy|1KhWn}IphxLARk9mizeOWjl2JFLu zjg&)X0N&hyaUqNAT=5%j1a@c2J>333rssdeZbDEW(W6jLP4~~oF&dXA?)JdvYYcXF z;~kIK!h^T9ZR@mi)#^6XEZCPy0y(LEi%{02SU8_P%Q<5NiTAGQ(+tMRaQF1|C${`{ zSf-4meyoJ02qgZmpOe`W`SuplTKQVHZAJwp;(K>z!!?K2xc5uEyG6l=dc%-YdtEFS z2mL0YLIYTSz{3-7hl|&zSADLw?V`X`@h8B-4CA!)Vs+VZ21Qw(exhfyycyg zH(uaMJhk%YDJ)XrRlqc^(Of=Yy*QsM--I$^B}qKNGY!R-Z^8HXp6K;lm=vx=3CBxS z{|Q@roapbm-mT7ex$-eORjhu35EeRlYziyRbXtsFz*0pc=p*wbm%=XlV+`YA3EO8Y zN~AM4(!aH>Bz-t>x|Vm6t?3|r;5B1w*Gi9yjaPsf#xk)t6d&qcfKS5kh#Q955GKsr|DME6T<((AG&EQ0H@p6Hkjgx zYblg=hj7QumT7~1KGJk*bNAcUdS-WfPG+C!IsQY`SAyAIzUsy6-x=&#bMPPWL$@(X z%O~#|)=wM#(b;AXv8NMwOL^+sHtIWzEe8_`ZtLu+-ObDF_=&sv%x0~f&`=)K58q3?{)Bi=|wi}_St=fl)JqG`%nTxGnFE~_KUus z81}~j-;WMy?`xDK`}Xw3oq#IXkPM3FM~CmsX7A7cY(n4JS5S}4Rex_&SI?CBH%UOZ z?k^b$sev^R<}oHkyGyMB4UZ@N22q;h`Vdv^?w+YW5)6dlY>?}BFTQQ~@XtFI--CEaXL4h+@^D?X9 zt>^8clg_S+kUs*QtjAu@ye~Jpe8hCQA~Yo$|!i_EaKRJbX<_5?!DKYrNo^qnC&u-3( z_hzf_bXNlZ8^3z7|5;^U!wc!|p9QA2t)I6r8Tz;vqVitDqx^XCXJ~Db3{MVrA3`h= z2v;!B`NF7zz>E;!Zh;Q;v4xaK(EmP1ek}-Qz3sND7BHXdaVe$xL_VlH?*7-`j;zy03v8O9!^V)p zv(@_rnGrYYBsgpOH{H)D?DVs&f?pC)rnp*?IIR?8S#o3mLxbbiMT?zKKM_`7O>iKZ zm$MHU6K}3cN4>J^=S4Ux8M8pHucK9{v`}VjBYhwH!{@w<={GB8**+;N&iSz8JjDZ1 zfh6pHY3T9JOOAU@!iu&r6%g2C*+0DXfOJ_fbz3w}Rkq8S%OtxhsapAL2_1v1YS6Bz zQSNgbn;5t7-#{x4pZqX)k8*V_O#CmgQjLD&qTi8ZD;UUsxuo)~Hmoi31Od6FS;0bx zMWqi80F0!H9G=Ja&rI8toSJTr%(Sty?N4ouYUQX-H#CWPHkvk zM9*@g3ol%K>C+y>iz*{aN3r4hi?s=xd*!Y>cM=SVgk!>=C1@veTa8&TOEvmvn8H}N zXcInMtDgN6y3IU$+fgA#YCpD6w3*O6F!Y4Y@g{gaYd%M9vQIOz_Ib-Jp0Na1&C=sx zZ5&W09`s5?ncnwT}9k&=veRx;w)Yy@=3|nvxG(SGLz*N zYIj3SRR6+qMHsG!YAx(W8f7ix70^j~W=d-Ii7J~tuWb~a!Fva%nE^(FTF30S=!RhD z4PP&~5!i+CYYv*o8s=`G7aPYP+DK-gvN8&XQ@Mk#%wULp458#1D{3;(Os(81K-%%= z=XY$9_vwR7aWZ)L{i|dp5-r7-S0C}FHR8a)Eh~+0yMrbEh%}^*nP6E4;+#bXA+MY^ zwx^4fBkEIDgsMMu2zNWbNz*~4tVWN1xm#hzX_CLzM0~n!D^e(dut;@Js5lrM2+ORH z)70DLI`7?onLUS%rTHTb(zlC*G4NPb$+#Qk`RTop%3%DUTxk{=2>tOMd(y$|T4$c< zQgcXI%TN;jpguO*QE<}~998;-U74IO8qJZN)<;q@ZQ|@RqK_r!Y&z^r_XVO?<5$@z zl}u5>g}kg5=1rz49;zE-H>0X!(Z)-(a>FaKg8&}q{x&yDdL+(`T|7WHeSbm-Thzz`qMTylIK*(=&9n_wekNMHaTLhi)O1xrj(~W z9ckIB6rSeQ_~ID%FaY$Fx`4QQCIK}T@ag?DhI+a%hKP?ynV1Phevvs%-)vSvv>wmx zBlOBFVEa({qI8;o%p;95xRSbd$V>>XsRG-g--}#Zci3vF!tpIoSc04e) zW@z@fDu_s(zvcaC+*42?JRDOOahxjBt6(qvo6JpTGhfYk8{E}Q#E^1BP3gO8fKmX> zN{I$xVxx<=&r_@!Uk%LAOLB;o&n(tyL&5Zz5^K7h=MB7v9K44R2_Og6&k3vT++>mu z0@;V|?5TcGDxXw!?XgE|NujfKnZy3-_OwGyPNgf|%meut(k18)nM3V{!0e;@`5orv z5y6hW*8j^CdYAzVK=X$hQxx|S6Qbi9c2{00W=kq z-Jw62Ll}I~VBhPg{duUCP}oU{j*1l4?7}y=rF)e(G=>oT`V~P}fWoza{V6ZZnhhYg znWHt5IpJjVGdRM4b&7Cw9XzT9N6tueaf8+%FvZd08ptk9i4q;syVCijQi_a`kEDpW zL(VzH;fxaTNsV5LUKVK=u5^A4w9G->vM!)9o~wEH5+>qB{(KxUKQJl0_-iWp{5Y4q zdSM<9S^7qE6P(S60a+rhLpL`%I(yZCdJiv|;pmbmy;?|0meC}^+jw;PCP*%iCiBDm z$I<*~s0(^5)E{Om(*j6zcKk9MJPJPpdy>^FZX-(fa(}%oMKeRJ@2qQ1xSIC()$*OB zl=kqiDkykKKHV7SLIZr7&0pGQLHyg$(QdI-<1z3l-`m$RUT0qaEN~tUWte~ej5J{c zPbDU8V+m=yGRxl2fBw0}};iYW{sUWSEiFsj2x{}a!@sh$v;F3EJtSO+x!7o*i zg~28ib1GyxbY)o>nWlRh%yjQe9b7}>n`S#li~V|hZ5qCf3j?HXA#~U99q9PW|GmVTobEa@qn1J`?fG zs}((8^jKUz{%RP;BF&_p9D>muRp`=%9w<}C4~N=Y&e{E?m>ZCPMbrA28lFTD>i{r+ zMBYgxp754ehk33Ns|Z~V434hE^9Am)af1uS3%aDOQn{ul_KSS1lWiJ%XK5`Aocqu4 zlzkU-uD>;Tnzgfv8ID4-KM^fZ4x`ao)>{3{RvKYuF@l$;k5b$l4Np4~i(rt?8D>KR zw|-&YIn(lDnE)7eF^Vh}YW?!c7e)jk?01;6L`Cw4jvhl&dP4jHX_a6)a$Ky=m%Q%Z z4tY=ARK{8Je6>AK4y3rbA5KMb_ZY!X=ALsGFUG2H?)ZM%;?b!ax?SFS-l5R>mKt|= zD6!>?Y-?_yQJ<9U?Zx=RHxmx)i}q(RmhE#TtKy`{kOI&7;joF1RR(*ZHR!fImS~;* z5b%2KoOcTZ*zRxAZevqAm_Z3J@v4l{^MBBOR48Rnto|2J@rlkoTm|`w{6>VRi8Ckf z?T<8dpMD(P4TDj%31%#ys=9}Y=RokJpP@9E*x&JU0*E z*$m1Vq^axf`GM!VGuj9X9etKL<-%a58i*2v5aH7x^mv|(_%<=!*}sRUf0t&KPPAa?5k38 zZd1~Ta=5+NkF)c?vh>23W_7A!$yQ`;yuEGpKFD(LRc&Vz**-;0nedp9c}4W7eB<-^ z0mo;n0w}Rim&*uYhNgou@!wEUswUPxk?WD)7m9A#BbFhX^)_q|wHmcu zMRFfe-6^4F-c``2K#t3p84~eCf0M|FTXvm#!=`2LHT|iJjb}s7$To10LebgGjFO?K zAE#6_I}hk}yKSHo>^Y|Z+w2pCSpPlpks@eCoC~-(PgvpXMfd|K-R6RL9y3u7gxzJ5 z_+$EpU9B)o7C=5+Tvwf%WDw!h7W}7}@fG`|36tD(OAP#^)_FQqPrYNQq2oFd<>B2v z9Q&7+5p(t3=DYF-U!AllQ(~Te?ZD*6H=&EDq|fhNdJ1db=1+FGd%|h@X1aw#pf%`K zL_2HVG4y+IKa?yo{u8Wz%>Rq#8QvBVG&!t+YdL-fNdi6=DvK@O757$^iybgo)A)Yn z1*8g%;&8bH7%QmIf9U)3e5szsOq`KPLm-+Xb|yPy3AebhQ;Aa5DSD{uJ7~Y0Xp|E_ zofW^SWj3fX8NU(O98rLfDt;wACmp;5lTjopJE8u|`vdA(?;{zzfzp%3WV0LVQ=Riw zl#Q6X{HwvyO8=0HN?&a?{k8K?py@Hlw%L-gSAN5LsXd!vx-S9R>M*}&| ztmUFdRsQ@{ngxO^NW!l^l8c9mG)ffC5)X)E%?<&T@rYl2%F4PmzoNcc=u|Z)cqt~# z0#{K_-j2R?Jyhwg`=nU$$M_4qRXj9QRNVN8Z!9(GXOWauPRrdDn#Nj#>jUf2*I%r){;wRr zP=BQ(B+Sjc?-y@S|JF^pfN+z7-GF3PF{TpQbzP+@97B9bd&s$Xz`7j)v+=uarBAWB z8h|!mht93+l8tVTiv8a&t@Y0@-3x6}^(h3^B@ErZjll}LlXC(l{exorE>jCyaIlt!krOT_JOkoZy6R@kuT9ZcQ(FbvJbN=tPqKkC0 z6+Kfd22>CXaHC)(5A#2&4VnJfq>OWtb#zV*nZO!Y$g9wBBZ#L*#TQtgR?~DF_}rJa z51Rf)eU?*PQR9eRn5Wo}DFpB$aYF@VzMS>c*SuSRE@L=Hs zqa@{3`Nk{{OuSs5{dJhZ^C2Dh#2g>GoG_SKBCe?Y$_M#F8qx4p8%VMfhw+uT#JU&Q zY=pCjw41*YS5JPUzWdT8EISfDduIg0-9M zZ`--vZ?>+xROE8{3nAzEvdpUWSd84B*~u-jhmA9SK552p8ZUUa0Uq?E2IaaC2+)h) z8v3avv3BMr-6uw>D~xL)J*LNpipoi4?dT~TukCJZlc(GTy#M3cB>%OM)Bp31QP4c# zSw6JH5?Hc7vu7~DoY5wO#HKgf0)bbU>E%G996yvvkm@;4IfS?oa)R>~9ut3@(QzFF zj0YU*#DxtF@e;1sBcgJBWV?PBKXMIVO)znYBns`Qv-qJg7 zEho7PghyObXE&|Tu#l#0}~jZ1k%aQThIx3HMxx#m1gdIMeX;0$N` zX?Q9mhvD~wR(&t2*Gt;>)Xi9#ZSA8!Qnao-m;1zlw@S`2T4Bm< zsg;`h?TIi`1lYm;?Gs9Km0W$_%o-#dRebaTsMl5-c!`+4-x%29Vcv)69jIetX&dZ7`WinwAi;$;FCaMMubx?sVX|2V#&{yVnZlVoKNoye zcVamlW^cUzAGtc({|~u}@TQ8WiGq0=-lxBBSM<{1D3H6kv9((&iJz+(va?D-m_GIk zB^&wV26s?oiiS3x@!3-o8YWGQygiBo2%(ao@3i487v{Uv)h&pDgO;zBSZn2=AF4by zs3%(T%ao}C>@0vLiunmEd(orI@=MiHaV89-IWIMF@rAIz5#ix);dakriz@RLuFMES zA*kidN9S+)y$Be)Jpw>;`}aik9B6yGi12$>s?RmP#Qd1A;oH{Q`{A=61{hf`OPuyP zw0&)A4Jd)>-i9~@?Mxo*@V-dy6qs2@!LCm6&O3#UJ-7r`@v%EJnfenm1bfV(F@2T3 z25}faUODV8XXLSzssmy2%Qt+lWpr?xZd75Kz4?(z*g9#%f)UJ1{Befi?&KdNB)AHB zpAh(a8$UaRVIjUWO_tcs46;N0NzvO{{C;7pIS&oCV@$5h+Gh6#Vq|l@8+bX*VjSgZ zuIOyhV{Z$ZnB5i)Gg+l^j#o4;vUZvQQS5#*krfQQp9Oc68NwBZy6$LO0ZpkPylI&& zpLY<@w%b6@kXH$O%8*=EPUg-0&YuKD{KCA4@QXG5!+Qnh&om6-I3~Stg#~Bd_0xie{OLySOl_xrI%N!C8 zSIOG7Kg|YG!khQTjZ)TYLQ3LEMyiRAR`Suc27V7yl97B(2>6tdO2>OEme!(p>dmW#M>5?Qnj zE!C4Fnl3b^9y!$>=aTvgcBtH@(XMI}_omPHxYPTIaHK+f_+lYCjKksu^+}2mGNcx8 zoY`R+Q2gv+6M8r+p6ZTKG2;@>3pK2gbkM0LT?Qt?pC}&pMFTs{$tTk`Aso2cw%`vW zicDdIC~AqT(vp9S*)XbM!Dc&iNFE}P?5n6XBnJrkFzMMh>sB1z$}(dt$=>BG(_BCW zFv1`c>G^H<`?k7iw;4udShXx4o7NM9+A7xUHO$()@ao7GPRGwZ8ks&PZ2gOUmqgjH zYYc`RwdzlZ%6|))0Y^KM($s!SgvAtUOY zZi4Y9scp)?9tXa0lb_>pT+^?s&_Gqj6k*YHVGksimLm>M>OMoJamc?rXu4yr{N-RR zsC*hjcACcihWfP=#7u%g2Z(~Fi7g_}NEUA4cR9!!4pd7jykwyBcK3LDrZs#2o6*)Y zdRm@Os%OMHK7^vYW2PchBWFiR2$i1O_`b7f7O%xBNYWR>WzU|qgrkgF?CZ*#0%pDj zZEP~!l`Tl7K`#6&Z$oCv1O+z_$h8A~Gz~Jk+Jgt{ zZ7m=2={W{-{LGeUmxy~Fh|?Aanh}ut4bCyzx8t1D@w2K3_szDHX+Wfr8`1L8_KSX0 z&Z;O5F~MF-0!?q~BLJYY@5b2+sd(Ng+#fcY2B(6Px@2?>!gG+`~OK=4B zwSwN>rtjq_u;HQbsfADMaa?HzN9gev4-2(-10)=4Yw)sDE5W1?Rv$S$&Tn)oZ;d0I z_S+T-Xr!4igIk22kaR{FMp9G9!R6}tET}D=`lB?>gW&REe>A`-4@_|4eI3C$Ou?>PJqq~ zwli5h_@1AN6QsGdjP-ub4#|7LKdew}En|$Nv!ymu!OmFEM5m=;ysppQw%jk};NXBN(-Nshqm*Ykbaz zcbz?` zBb?!`7d;+ie8Rs<-_cwb!q5ICEp^D56R8aR_(7{czq3IQK|9WNRpJc6VZvv(5nLnpn`FMH zQQl7V0pEawBK21r%!{>hK@-P|NwJkDi9<_i_1x+#==$CwajdNBxLWQ3mjA3a1U96+ z7to9fnqWiYo0SZiUs2m)V(itx7T;K>WoP88g=FQ@aIa#5t-nVjcasOit}8A-R4<6V zIXY%a=rPbDf@2Sx2sR{88R!pG##u?+q9TaTz#`NwPRR%ONq;g`0i~j*!*V&7VLMJFPH1)W}ofhqfD2 zzP6B6l4oy4Idy;oEd;C!M|H5#OY*x+oXu3oJ;{gim~a<|MCPkIgo}f3=Jh0V<(?Dh zi-_5nE388eJ7#~BlvjnzmfXfaQ(_=k*ZPNJ)I-Q&ou` zPiIvgkpjfg(rOAInGO69Ybu0(?-i;`>yY)VLw9lg409Rl^v>76(Y9I<45V;seI9@ zOtI;MYn+qpED=sIe^X}`E2vVbeQB%D;7O|54RdC1;2^513d;k8}Sj#Q&4>E zRnaLxyoDLlj<(-SMv^q~Xi;HUj0%`e)*^l*Uu%$I(OxiBn@PWY5O;G)9JbQ((=bdC z`N)@BHcM(P{8@O}iPW{KXdcGx$Gq|QL2-eL@k#wO&~(mMTcWjwbvpQ~E+ys&2Qgyp zdLfC+-pA8;r1*I*zY~}}J-dEjsxx`eWPSTr+pN>D=QX-hVGHNTr}#p?RI=qH9(Xozrfp4J$+ zeb2b4cxlD#0cY+IZp~)zrbO%$zo^GwCx0(nHu*4kuxi`cmtojLBZ%vr7*N8I=VtaN z5-WE#(EQ$kx9d&SMpyuHWb`@hot<^c2uGE=*zAtH>X%{)bM&c@coW(wKB7y9ET0o~ zB6z20NrOri?{$Fr!B~UIUEVu%BK45V*LV;(0~G8<%}F8Cx>2-y!R%EBhg}61K?6=m zc!g3*DqL7s%iE=EFyyDzK?27`d;p#lmXbpDSGKi^ar!yohD(sv{sX%e2`OHCw7*Np zaD;jZ=2&tjyhlI0F!apCEX^WE{Prkv|(@KPh6H@-DMs#E%x92#ZieaT!G^& zY(cI0!fBj^%+hJI_RBQKp0=T5E;1o7@+2QaFSp0H=YE1S0@xNMu3r0Mwx1_>V)kilyAnz4;MoCn5XT$pgX|mIz%u_mdKZU< zPBbl#36FG<92a%Yp=!8_T$-NxM7|ga9;vKp$hC`r;o3f*iE5iuvLmB+xYhsS?w2sV z`VdOTPoLsp&a_XB+-uMOjySwA?PJoTkP`YDod$qIXg4ER@s4nXXEAS9KDG zpNX(A;ZW9WyTbR?-lKzy4hEoXqh$=iI8UPUNm_;Vp_5)TMI~k^6Tx@fOk#G)*uL0~ zx=OB>@+8n!3tN^7+Ywk|ganx>3T&1`2Dfa~s%O%Z%NSP&TQT&=;YOEM@7Rw@8o~vE z$LvBB>mZC5(Aea1+lmo)j$wCZtd+EQAEaz;-mgyGGz<)p(ou42j+Smi(WD>{k4O6_ z^_67kd6~q7B*nL4&qO8-Y^z-IVh`RXKb}h!rz(wX3+|&^lohW5ouI`b-V4kMC3&MW z%KSLR@qzLwpR}QGcO(UpAqb9EEzWihs88b>q$A?%TVdS9Nivb1u^KtGNRRn{ z63R?by4UgpR^4Px?9phANKuB#61F354|OHv$c6AJ8Us|TxbUkNR(7tvW^-_eH5U~5 zJk317dydCCceGWRaGR8xLxn@=$%C;S#M@_5gHaEP2gKX4(9R*e7=I<=;lWfRU zjaAx9?6^=%Hzw5)kf#+FpZ>M|YMV@vo)Y5}LWSWUBASIf86WaAQ%F$$jari!zSb0B&SUm45MR;ZBKq?LX*zZ26a< zMmC{2vT8NId1|hFPNhqjPt%j+ogqap{|q2)`>hP&_thFtaxo~?c#rGS*L6<$cZ8N) zM$^oczkE1)Wz3BNOj*{+cT1C2W14=AL?Jf6?x9V;Wx3L+qP5-;XX!D6z7!)}B0`1c zvFtzGak4N5;rX}zKg$6e_vaLfpbFid`+3&1SemFG-Bh{pH~U&Odv8drwBgPWPLVuxSC9RGeeiGd1TqLp0h9 zkFn6a_t#{d87ro38Hw*XjGyeeI2QGFErlumG4g!vryVg9bHQAETU}4(F z`|ex2MY%kb!Y*XJ>F+h#e9oDphiyinL^Hltbgo~^S|{_quu7ct7zE5~p^gmC;`414 zztu;UBH%;eY;ufLv!o`vf8!AP*Y*2Wvxmum!cC~}flQ^4}{SCB_eZ zzIYg<$ZujAsq8`#A`~>6se2k+WqAhbruGl-hbi3v$#24Va-}d}bX*odqD;t(!+4?t z_U95ewd5K{d{CR=Iu`M9sqw6SuhG^W>Kj9=dfNt#Uu6_V&M6m^u$mly!*F|40AXsi zPIHU5$TVa~>@F*x>x&HvZrQY|ou#t@*p6>Kup8{WGMLazI-bulzm{25(6c*ZNW@OR7z@Af}`lozkge)Xh+ADUV*DV08u zqM7?M-98YU$=yE?Gf6PBUt81HY^B+*=^G_^+LdoLcA75&9Vc+np2QxBG|)J&z&;`a zS9E%Q4wLN<4PxLA|4*RoBFxlQ&4MGUr{`Y`wY2Y#Mu1cEd{~3V zps(u#!3Z%(dBI?0kE=tsTX=+s4xc=bMoeABu>+RDcuAK6AS4`XTz;$dR8EbiTaBtu zv1NYPM%A&2lzQO(3Xw3yi#K700tJhU+uTXR>GwqeaVZ@)W#BI|1Sf_^Lpxy9^KjQ@ zG@aOyJ2nn}4`V{V=v(5oq6)X{g@}9ofri`kS8h4ko8O5G8oj5w?u~sv8woHdAA`y5 z+P3Mr(0fM1UM27;mJ^pLxcL}zbj#N8I662mvIvAvjla1`(6!q^piMZ=2R!|7#N4Vr>{{BuComtLdZQ@ zx?hv|G~^{s!L}}0SFP=pLOVzc0C^7GY_x929~RO*5_#ldz3Nb6Wc1bFf4N_@MwDH1 z_3vE{mV=YgzWtwLyokuDpAu|GC6Ew?e2R=XbgH@9_Z_fCiN`VTykBqF!|QZHpk+(e zP(xBZ(o(dm69gFtZ*^MHnbVKE(6WL+QTYxO3e%om%}dDVtbz+|@l=j`Z6`Tb5*}T1 z9)5~u8+Mjt`XWW}aqwxbGmC*4a6R8`k zlOX978VEEE& zz~9E6G=N!+fi*oq(7Br#@(jMq#)|f0+mIJ$v1uex=f!LLAn=y-`Mb{y+h{UQHm~I%Bljxg{U=7nc0$1UbQl9X{Z%Juq~rR3 z-;B1G-TS(qOLH8{gDwrlOa(t&NI4?W^G*WE`&NCzzcqE932qUyO1qK8>d36>TDw(> z2}|A{O*pD(LH>s4!5%~xhzsk5>u&lNgI!|>9ql=kmYXRc$&-r=2TQ2L%9#3;nBrDL z1ngmYpzWJpwv{6l;EU9tLhY)GQW#1%B4@PW#95>~?sbnT(|kPh&cs$affrySs>zz@ z%q2auj~6<_mG4o(@5W&D%F*=WT;*<28DNh~f6xw+FC%h|^rGOLP#Q)f1!2)2DkWa8 z=7i;x&>PKh?y4ZrWryRGX_nO3i6p-jf)>Adp(WbSF=-Fmvn3hXoEp|%$BC>WJ#$=@ z3d1G{D*H}-z9)VL{1t&9Sc$A3TZf>cJ<29}95`#7CVCmCK*WKYMKgw6rMn8K!*@rE zrj^99r@I1NvG1v6HQQDPH7GqT&MAQGeBmhnRFK>WJWJJ&0EDumA*|u6V4%-P#6i!Jc{!q zPLsSW@;i6|^?O#oMi=>s>NjjBGw=MD`ICRY`?p_2|$CE{8EMm4De7HVIGUbIPdiUXvx0 zoN-$3-SR|G-;+tVIU2ZR%qA_LHs*Mf8;10NQ>4JT8eD{%4JEjm^;9S_=koprO`RS%@F-tPkCua@J0sNWN_w`w* zOYj2?i!Xa^yawR+f9|!qWTp;ciQKm~F`+eR2q*1{R+N!fL9YbAc0n5Z`6b{u=`+bV zyatc98bV<_69#`1DAo5I!gx?fH8wCUlchWZLKcCa1+y#YeG0ISV-=9^zY8$oK736w zy!_=j(1YXH2t@=kTfY2O!)aHT zpFD>(Bs>I^jH482+ONjBkUZ8IeO7ZG+IoP@XT2K}f}ST`8S2 z$pcH#0vqFx-k~)v1VK@^xWX|`$HSywdS(urP$n0XGXWEFEKp zrUF~8{>I+b(^rPbEO`EaGG{|F0IBpQryuUD1Y5d9m| zbk}lrw8F*kjA((!KqQ;)rWsa&x)X zP{dbTqalU6Z%F_Hg_Y>8ym6u-XX@M*&W3Y73rd>nJhcw}wuL+8zVsoI1UuiOIkWZoBmd>4i~gh?rwhF|wkN*joEJD5QjX0_B=|sm+hOcq#z8@ zpbr*eEC$`11ElxKonF^_)Ss8{iYWMYx@)6pW#ic&l`bE_Y&(SC;4V8G-) z(;M_cl3=TU-Hd%R##^jSt&g(AFiX>dNAQtArk^`$GLWxntdiQQT@C}SEuTq}z0+c;k zn=}<#@@g*sLF#PjyI|bWc5@JC^Z=eIS6jEysek_fN&IftIF+_cvFpik`9W=KU(GB# zdaYx=Y>nfRV3j5-v!u5Ip-uvCJ^&Nuz9|%4ge_L&R5z~cN14?BK-$A_w`s19sQU2Y z%I~`?vdzX30{>xs2z}#QXl&|?V!})i>A$@Y=8T{8o#=ZW&Z|_FQ^{FxXE~uf(@3nX z)tZ`@^|!Al*Z&X76(KEGm#<-QKZj$+MVfFWm*fdBE-cD~nESz#QQ&LH>t^*c(j@V$P#|Ilti{NlzKA4f-qt7o|z z3W^p5!$zjA|E7GdR-vz?A|*w3YaPN|QE8$}Oh3Pc+yIP?{KPgD<%62Jc2W1sS&{g| zqbZR-RwNQogQY@pO#(e-7#MvyrUaC#;b0VX0!GvJ9Lf})^3(C3)lX7q4IEa73c^g> z8!WLNB?Z$yhimHH5-F%lma~$o0L^vA_`XEo+&9xQO#JB?>MWf)3x)(;?bKPq=Y>>n zq$471Ulo!LkvucW`69pbS=XUsC4^|zZGkJU6n*v?KYE{2bY82aYz(jOfu~=V1=DEwi*3CWp z8HD!}OG_BBhE30)il`H1P2I)udnvurYjl$NdWUXx zXEk6O{NKf@;^R4k!aPm1vO)J_UrPulwpEWr!ILM}?p37A>@9z^S>*RrT*w2(-ulew zN6}8Y-4z?Fg*4`iuRgZ}1=sP+kQfQcE}0@50y7>JB2l3+zgX0~=AWk{uJbiW%OZZ6 zW&~**R2)7>e^@S0Y4Uduyso#mUpo#GtRC5Z18#x~C7q+}IzmUn`(H7DW)9;OF|u;E zE^c{dhUv+xlpX6}OF3MP}#|=@QvXAoeyq9|(b7mBuTe-u2U`?%M_=ev1?Gl`# z90%+|S5q2lOZ}&)*9t;H}KfdUW!O#6c%IDLN@zQkj2g_ZLOOAOc&^y{x<%La7bW7oqM)bqDkGxMTXpiQG<} zq6zKDU^;r6anC$Q3kx_5hah|zKF6W_i{Nw_?UK|ODQcTQv{fJ8Sn#4BJ6|vSI5=)9 z5Sth4e8oF1JYcA`F=wJaGj3vSQ|#p380pRD$2n~eTpdt*7$SOSM=iQpu9xHl&tDEg zDx&9;O=>-vG4JS=2KtfJo&0p)X*Td)AQ(9cK?xo89fu+3{R z1ez1(PkmK<{5e}Z0lgYxwtkLPlUg)@DTL;_o@$Ya1OU*jy0K`2}M5+JW4qsWyOT>Fk&`ZppA%6 zF(o_iGde}*9R1?6H{6~wudXOK(uTT~{vpQgbnpbQ*_WI+3%7gNb0v z6Nm>if~I3~k%Ld6{#Kx9` ziMiZz_4qhje~=BCHQdFB1&N2^3Th7!u{2=FG!1)od~iShbWV6GWN-;UzF|w{$FYx6 zDPe@wYDt+Gi}-~*h1Dgp6PcSapG}Qw2$!pL6IJ612$5`e6D}Dm-UH6Qm^~CZMMPLo z?q(jDDgcyok~j;v4k~^oe2siz`4ds&HeZ9ZNG5cz^SPPG?AFP7BkM!eix`&O^WZy2w;uz{8phNgo!J8t8m}mGi=xYOSgyyL+(C`xdI=%4{rz zZ^K(wbJ<91A*(t9oHrjoE`)+?ej(BChE?9*oib^|Q@yQ}( zT9a<5$Y;~)ZC)kEcpm%hfE~RY_=kg?N&Z7Yi|@g6yYGJPbNiosw=^HDDijdrTBVt6 zNnfVYhY#1J#5|BBw^+#A`#Ow4+gJ6^9h;T@j*p5Og}W+z`+QlYfN%w*LhHZ8c#}nc z2nYXlZu-mJkSUop+g=P@TY&5rb<2*Ewh!$Qj29!c#Ib;Ejh^`tj|4 z!F!vF)yLyTPq;D07BR5uyMqeLS_H?HZKtFw)I|pwcyeTE;}&zyk{fSmHUWiU(J4dw zm$IwJs!bLC!C%DACm^iNPk`*=ko`;61Sb2JNbvAl;90m-QfBYJ{6}OEMHa(ED5q49 zor{he?6?Cw4RIMe;;FGa=96swZvW&`MjUWOaPkz5PQaf4J`m0iQ6(zSi)^>_Bpb1y1BK z=YVP8jjD+b&y$Tqu~;ENTP@k5F)?F{ZIke0TFKlRe zmlzd+7T2MAD!GuDOb!O<3jW-rdMaHS&cg_!DbmLt2$jrzyaL@W&Pix2D3^pha=9FZ1Eorv+-R zauWj|^)Aa};XuL{rVxi^KY?=;Q&?-#1<}_o2tc5{au=IWnAF&+;hyN!cD3jftn2<< zJvMvYb_dn8;L5hoSMVPA`#@cH4*W4NiTJnL{~k9t(&4&7aE$)`jsc3#mKkvQlK?kcHhFOh87S~^Gy%d`J!M%L*3(fsnhV<~Lg7kIK1lL7gWnH!tMEruu zl$Bd8f-=FW@0S#+oK zb-=%3ao12DiHy4yG{~cY9p=nQ_%zHvm36*)|&U4q~$lpu&P!-DIM@(YiM5 zU{qYK(r?_|NpTmSw+_4scB4W8C=l*wvdzGpAULYKxg|f&5SX7<1A}8KWEtO0PlC95z8TF@axC_R+LT>-;S69=p?CuE%4i1D zTEuvE5Io5k57%RreVgfo3NECJq>X;1Exg`#I&NfjzFuh~*b7|L?giZge=oq~^1z=1 z|BL;9j@#GDe(t7aa6>^`UkrFD(U9)*z&#U9m5eP!V9hVr+nLYw&}y6!3$~1%%{qQ9 z*H_TUBj{*cUeO$aPY>wxCL;Fbm!kSnU8|+|c$$0oo+8LuV6IgPIigB3_rXkA5%98| znzcw{3`pY4M)_?BF*A8Nahk{+QM>;X1cy`Is!0)L3_LyPm z)@S_0SPdR;RBrBJYxc*O+-P2!6tGe<1)&}r1O9&VHoKtCPYxg`T#u(cf01%EFxDC> zD1;qL`FX?elv zURzvt+_uUjjT;A@e78!k2=^D^q7*tA&~ggwn-f}wS>+D$bG%qMtHBcTQg>(V0E?f& zGkjk218e1kp!wyVD1p-e*-B~Qf5D0&PNrE%k~1OpRK6BSDa9j+cjq)@K0kpetqW^` z5#rIWMIZA;y|*K_U(D}RgnF@j*7bPAap3O__9bID@Oy$5`}cDd{u}$h+s;8=-8qYG zYvIZheJzZPL88pd+HU-#a-~OJG4VfdOXm- zPQieVZL83_Mk)mCY!}#1MTXcRnZDUDV$1lHFclq95rP&|-*UQk=g9kej6Gy#Rtk(?kB@96**KWRc`BSA5L8S;U+xXod5R(uVJe?!N4 z95LQ@a{BJPGb&*6{xw!Bx`BSfkYlEMFJHa*J3iS2{qito0f;Y=J(|YeN6#0!8}W(7 zn_@QLn>Ti1M*2whL^*3^xtANEnnXF*Fbv_17&_0XfgZ0uSqw)!!yE=ngP&dJxhN*d z&!9)soW9x^!}$BPe#`~3o&0ki*#E!cBR}ida{RvAi9-q_o@m2Uv>D`J)#STOlb`Sa zvO5yuE2oT;Nw$j#>zN7LpW>!xtDm_C;i2%(%-2 zA2Azg+7hMp0?g?9`g}_Uf=VYgX-vfVN zz(w%Dp9c_2#`g=%_V(?tYcm(JHU6f64HHi!pbKFQ=5Xy9eFoB&Tsvazhcz;Ej{;@6$tklTbas6= z55z`MIy1OPz%T@37^Srk#b(&y3s93Lyo2v-DaDLJkpSwCcbGK==9!y2A|5lwU{X{< z5S7x>k8_~{^W9=DpzHmfaXHHKlf~X~Ytqxz@BRC)^0*2d2JfT++4{LCUPIvF8XI~9 zVrlY+aZmQI$gd<_0iG1c1%+Uq=b$1lonehPb>P)fSMN^@5?Su!PCqLiZO0qxl7aoN zb{J<1kUThfl(bcoAqG_8#vSV84dBjDru0N786fon=e@RQzW|kv$ounN*(JSX-^ek&`c(cU)Zx&7O7rL`| zfd1>$TMfKTI`1GLyusvaX$*J8={cR6oQ3_1)S^rGIVM^B0J}~0iN&ZpAck~y&Hhz* zKD|Ac9$7bMzc_lHa%$4FY`-n6OMkKZL{m#&6ZA1`{~2HLZpglC40$%TQJ_aMMgJPH zgoRFE7!t;?J`58>ziuD{w?9>pSL^(Wt5AF2y!jl77APR zcHfrg$Kn~##R4Q2wkCQed}pTncjfbvbAA`Gpf5Q{IFJ46cum1c5s|gLj# zDNnD(KS3~6ysiQ8iEFPrc<{RvSUyjwP^_Ze*D#+l({@}U6x-0})PI7S*i;;qE?&p@ z!1`L*xEPaV+4Vc{cL7eo5B!<%%KrabT=TWu9f9W@S}+emy?;)B5mZTY!8N2^|5^rg zxF%5`wXXgaVR&!_L3?9F@lQ)%=`q7spa!7GPtrK>EBLcm*rfyN zn@L0_Sp-m`aQ(tmawV;9G7u1ytLn5C+luv^UELtV!Ha*QxWV=?-f?qyb3XyeUs6k% z5C@|n0#Egt^FYOd^bNO86x*x?4e7pCFZuoYpB9@U?;`x(AhF5(hq(xy@&5PcP~)KE z{mlmV@wvk^r)v2@19zh^VuQaJCq70dxvmNLqfj_dh}#j3`Vn$XDk26&UZ9=0x_`Jo zA%VZ}U%MhVYnhoyE#^C4s>~5EA-F4w)|aq_EfcJG*|2y}o?7P-2K$D{chK)1fGG|RG5Vy{@%yN*Pumbx{?t-U z@b9(AnY%Rm7fPBd zUA$KD;ir}UuXs7|^MRcS`>8tHn9fn1&~afc?W|xb)dL_iYgWXsK=9-jF0P0 zNL}`eAb~b|bSD$^Zp|Ce-S#e!P3#?R}x;`gtv7oVw;f_jt$ z}j^f_MhXSur1OVD! zF+UZZtO&knu)HhI=_oIz@{+M@K#!tR8Ac-;@%>>Y``s56SXPOD*H5zz#MrcRkR1T1 zkcDkgJR17Acz#?jb^irgh}4~uoN;trb6r&o-c*Xkg;sSHgulnb#-Q{rWE8qFH`C4? zp)tkaD<~J4vxN$uunBotBUv}7=nr`9`BShJZ|ZEl5qMpByuXJZ6JsAf`{&s+fQyl7 z_p}d6eg0tW38yAF&YT}E9)nYt!q+eltrg&-V@FAPUsfzd|2P@Sx-#%lcO}*HQ~Ou; z&v-ub4+7Jsp%Dh(HE<$LZM6E*sOdYv{*gW04Zl19(KTeUo3?~ovfLqdE1G|3J(V^h zlKKPl=``PRAnuTq7*5vGRgF8B5Og>PPQ^c!9Ag@WHlyqP(OG-J>4_7Ly4yHW17CdOjn==QeK#S;IU1EfncE8p30^?uKr|oPi3t=5nohQe+ zJ0FEAFB+N=4^hz5LP&Uisn%;kdWZVhWK(=)_fr zf=v5ltCo3SvFEz1BcD2sV_G;6#PCn%efcj~Cz88krljs=x zK~kuddlM`Q`rq@sf#<}G{B52W0o$;hXUkT?pjddzZ|6($;_{Be0(i-QIVR8TUOZc!KE#`uVsv| zjwZJI#rweu*nn|MH$1KF3M(uz|L%_nNu+5vu z9P>!OFz$R?^I&DJxB&DeZ$fx?1+mX=ptbe??l`ai*>cGt4QAefbsLtusEOtTmIDBa zl5WLPw&|DA->031sR2)9UQhs3k+S~ZgUMeZ44pTbcJ|OYgW#dg=i*V@=?tEb)>0Yx z4$fofAN;^VV=^n%RB*X>8}aq2e|={ce37ZZ7R9$3Obz&3kqype(F^3ENrQ@Q$}d!_ zfPI~JD)30oH*FQ=E){8$8=Ftg@m*Yk^J{#Hi<1cG%xgzc-^qr0gfuGiRe$~3lLb)Y zTtbBKGY{pG@p)7Y{MHd*4pqJS2jL7o}^uXE44^@;2G(r-_oD@x<u+C>MLezsYzBRF0#({V7 z$H%5#$pUn{@|pakUJ0JF^gdh~()76t z%M5o0CQdHHt$(Y}jb6#85*~|xsZc054hGEOXtYq&%Bw;}d5k@6*_svHD5J!^=IJeM zSX#fNQ~7wgbEh~VRJXdL5+832xL)-Be5t!Y;Xn9qEb8?js=ZTWXd19aj_xq z-ibB42iYP=K2Q}}b7&*vfTeZvs<-bTt81u_1;_siUik6W2A$RJndZ;%eTCkEzZQ(M zu>*f0*v9^Cuy6Erp9M9Ha}$K=TKm`EE`YTAV1s==PySXoEar2>R0hc}g3}jdg{yxy zUyn6NJ3eQOZa;nvZodq14_*Xh4M|!jryO@Yv($K__gt{&W0_ z*lmZ=hT|m*<~d(efi}g7_x=6(UaV)KBVWjWPfafVw8k%lEvd)j)rNI~1Du#cLG`jm z^Zu$m_OK06uU3#eB<$aiC2STrBy)(0BX~@Ebld%H0S@wLvF_f|*Re3`{XE921;yuM ztknTr^ZUzxo{zUuPO+HIHN!wm+Qwq54aMmqsV{!r^4&-ruft2sburc*Iy z82Gdpm&7`rbB476=Er@2h75=V$cCK|a(@dfA4L}O-MO<1#wXQZbei_)Yd;pUP^UU5 z_3Iu$z8a15W?p4e+?OJzys2>v^ZT<&o`+B7Jqq=mBZByE6m9vljJ~yd=T?q~y z>{4+Y-G+Gl>Dw-PxdUtAq~ZrK`MkUeFQK^btAmcvf7$Q(pISJrWZT;NuR;jT=}ORb ze0V9gsJXJ2vG|~4OzN~W+L9BuRcNz5cH|$O7Rn19d@H1h@_VW3E-V$2Rg4Mls%SGH zX~i6(Eke#HMPtqOe6AX=NDug?!jf2)>4hpOPF-V+u0Np@VvQdG1xI}JR<0=_bRoac5#Pv2zL{(^>-t@A5D z)rFh`Q42pC{YM{p--`^jxTgQvU z^W#%EJnN=rz^P>$EI#>|d?ya$C~+VrPCD3oE8M}@O$J5C>+xtyxpGf?A3M(3r2R7t zc<9m^Sn!Whb=?-`(nbm~9umWIEbn4Jz5y-~end%PB+PHsOCl$;7oq z$I&vwCAg=qtm$H@{FhXA#0R)m#PI$FC1~fTMO=-i(Ge* zw<cG$%6+F9e3aSVuZAh0OoOVv&0Umg@@9*q?XTk80L zGc#UnXxELVbEM)=c{I?}SkPW15vAkXSLLzG07pY(_wg9)YO*y6nzD^i8unF|p$N-+ z9b+-D-qpw;FL7q~a_qbbFa9VupOY*WuHxNhPH|i)_gV}^y$ET*m?-eBUTyWEB9`X4 zm`6#+cjJFB@ez*K_&hloppX1SUn%~@_I$L3r;yijUa{eXkEg!@ zCIC|*%eqelrz%_6CE64I*MZJ~zY0$A>gR(o=dryle#N#h=AL&i@p@5uOACA;C_|s+ z>nEWu$FTa-l{|0M!2@BzYoF;YIoQDy8(tHM>`&_gkZV)o{4LH57Nxc>CVgB<4WxiE z#bSlebb zEt}}QlXpZ*mg+W%$k`@z=b6% z#TP5Iw6&Kam)u!obe{3-3SD{b%ki^S-h(-!nK&moNSy0Os$_1=IB_{YoL3xx%fk^HXNfnU6FYW>nH1??mK~0az_^ijW>NT0N>?gG8TUP?sP2-#<6x@ z))%7P_^s7pnA_yn+89v}Zii6{cw(e8l`q;IW~I>NI8@-VJ8R>mBA;+z9tAX&{)pD#~{2XwKS3fUI_O@&H75l&7)oj1shR=66X$OV*P75PC z6-)Jf+S>TqkRcD>+^H;mK|th`2d?mX3(VobW16YmOLlN2@pfxHguuA3ZA#x`t;fa7 z@|-6qxSp8vq=4J1Jhd-eKsAS9n>IN@7f*znzzakjqz5-@jvX|ajdLhL?TSMe$F-_w z!XoxUA8y7ZIbShpoW}3ij&Y$bC(iq9h@EbXO5&CB#TYjQ6mXtm@`#<%mXchFW9=c2 z@83jz`~bo}vMgUX4r+tN!_}^8kqyPl3eB?2<}0q?6MV9!nSp(2>g}%RY3rXFZ+E1_ zgmm){V|DxU90b$~d;|C6xlPhd;X|M9gU9z@Z$E9;?2!0!I&O5Dyci-bW5h?Z>R4`H z2h7&uiSY~1b<$272Iss|3_4F}6jZge6W~jV{l!}MmTRI(@e8^8g$fbKEp@)4zZJVqwn9XEX5 z*BDRFi@PnN|8GTA(Xp82{T#3`RX>q#FPsgKrjhM*c~mG8@*0=?p)atuC3^`T z>)@TcXU!vNl~2d%6Gi$^c&Q7P%HUgW-g2C`y}#jIIkIWV-8Nzn3K_T2Vgy-W0QaaY zr&?^$@?XUjk19%eKC%LCqFY=mK7;+N0S@DKm7eH~SETSU#}5MQMV{C4-FZ@BGqr6064J*A@lOs< z#<)&*e8Y8rw)&H}aD@M+&w)Q4+FhUnKOIa(;2n&ytiHCtsaS=NckKGqN4dS2)$Xzi z$2ThM3$blIqvc8_`34xj0F&bmk1iRcjqMs+{8>qD`YIJoBy!!17m%}l!v^Dtkc;xW zi7+q3wa;QX*Ak(^vB~G+q=>i*pa;#4-h}0{LRo0C;ujndcG zUIuO2C|7|X?Oe&`W5=9AzZT~eXdO5 zyRWbOn7jh=q!0~X|GrfRKs{G+<>S)h*Z&9>YS3pJ@FjvTpe9azK!t+v9HM=${#NxB zj{kr5-b6i`+(s4!^#0F#$Gr)+RY?F50kEX@c)nxLH0{4DlSyJDHX>Q2ueH@R!u%EY z=fTygu`GQuGhugseX9M}rIQ@+YiS|;B21VfeBo{Hx65y+|M=tg*AKdHe!KzU6X4qz zmk@Kw4}8Y#Bk+hjj(8?p#}p?~7A!N8fBKu@A5jOH?CQ<0590oR;b_vF!FK0@^+o6X z#dgn`fVv1sH8?P){HyS2oQpB|mSUeujDa_8CzmOG3l;*?#>zAhd<9&L(GXJ-ZMmf2 z>BJ}4mEl(izu?0unMW8{7;usj7DUpZc?pw1Cp#a782QT?TEN)~Hi^FrB|-h8*j2`i zMWEtWx3ngsH?shENy3oJNhi$)f|tOO`45U#Y2V>L*K`M>56TT?R&<#!fZnDg z2ym9K%pM3;U_qr9U-gpr=jWg6`pcQ8Ji)}_JaA-`3~H{Y{ihyp^J*{ykG5gltDu{~ z{W*E<P!y`dY-2ou?Fw{#1oO@)VXgcxt|N z+Bi{m`rg!T$PNp%!d&jXm<_hqxapL2F%a>Zs@76W^49Tpjcmi`OST>}uOpVl{}$IS zpUvaqsYe4HEl(8&?jvE}W`J(+7sj>gK;>y5{Uz-jQ}oquh=rjRzNSEPH2O<|@* zu(Otw42M!`gQxnGxmJ0>kxk^v^ZKF=KBQIZdtF0SpDOU6(E}P^<}6D~BFBIiG9K|> zP2ORAJZ8bp`wcxXK8t2%X3L?pf;D22H{IEJk!I&ovG^pw(c`1{F0sSXIe)i*-}ZO$ z>OZ61>}h|K%J=V<_??|@ZzK6P8M;qDGdZiI%)}=d#4;1VYn{;H3!xeu0Q;{xnhXet zTpK#h8v9PryMV*CgiUgoO0un9Jk|WM!9g~j3HiAdS1J~StU(AIOR<2A{l-x-avd8D zv5-niL(t-a=C-zla#NBP zJu7!(V|XLS5}Q!_k3W95KYsnkpBJA5g;Q77k*?o#1~|xfEYw)*tWP7Q9?f@Ac!!#y zC{Wd{e010yexf!z!FP}<%9Qj!FAJ};?LZ<&vcaF}aQ1(>In}R*zH7aVQl$L-`8_Nv zy2&{}zfr%g2p1mXti6NZ5AsJnIAz}+qIA=-cj{^&5X0q1*-!nLZUauaxRWb*_%Ui3 z+r~Qc2qD**By^9_bad=Ic)$LT!sq9F!LYl0LE7;c3r6N?+igc1t!#rgHl6&Xtlw4&y!F11q<1HSXt1vSIzy0_(%z1sdlk&a_Me-x;n=lEcnN(8U()nns6I$M5eQ{<6Kdk=xfUh`aCBfl; zx0cFU1wI3rhD|4-MMivPTu_7z#PsWb_?CiWj}IJvlwE%=t#yxe03a!WW89NSZ~Qv_ zZ!IDc{H<(O%!{EL6?U$6C(jZ_EsxJW9P7f8p727pU;VmtAts%wwFJgE7YQf(6PRlH z>UTp_#%^BV`-XXCJ4RcJRb1$r&or<2t9#GC+rPH`UA+3wYMZ@mONe!d0pkbr`FZ~i zR&J`-L@lpPeB%x8WgOBuqd(AF$zcfo?-)wxf@!>>#Buld*JI<3PVQ?1y3D}>SMg{1 zn=oV2N`hzKCHJU6kyG7m1lS4D216rW7g^L%aTM9JdtMcw$PQ~!FIynDOh}|PnYmM} zd7~ehbD>gVAYJpL9!LeJxM@D;*Eu_d{%M`3sliunfS}coid4<#4X|{70dhnDI75?( zPy6E+EMnO`jzpWOu5q9CP+>opUzuJk}wQx~p154slnJh%|_*tiD9aeu^XMj~G(1t-t!#ds~ zP4UNXhwosz{BC=!f)FE1A06D?S<5hjpK}dj63g^Z4Str!M639AT04tqJ!g)An*=$Z z6+P2Nw_N3R^6Cad`@bumT~Bj4`@Pg%wOKDEXPSBc8<<>vr8SsD$Wkk zzLSai*Ra+l@BZYiPwpliC%63b>f%wp&l}>6*>R+^p0UqndLO-z%_CJ z+7b>b&Zm8vAY^)|8er)0Y%A+`kVz<$KWAg{LNHM4F6~R`&!yNhpp5AoRA0>b}w!p!Ib6EUw z;RorusN;_t%0u5;Y{jZ~n`sW(^PV>~%;QSf?a^hP!e7Vw_b{~x_pa&lcXPkH|5vxa zi&y_y4ecfM@jIQ|R`{>1y1p5`y^)=<1YBgyJmVcrHC4f9+=z4G}) zaqmP>u}Xr<=NmrgckV)t9(rQPA!Kb!PlqUg(vYsS1+Wp#?_K*a5sfTxJIsIN5I|g$ z?>0|{eEr4Af57cr%OFPkXGEAg@BPJ?`|#+RI1XPNra7P+*tjfbo!pc4+gcTd3|`0# zEouZPQ~Ippl@qw~{;ZgQLIJ`0J~L>D$^V+AUGkHKe&T(0VOBNA_5X zRdM-CjOQ68DCHJUhz?!@PhELP_ohOcSW(S;FcI~C$6$@-(Rz< ziBGigBR;|vWw(6-D+JFoJ4okv4ANW$!)Sd#;?$2j=%tZNfgX0gFWG%!zsT6h&N}vd z>BNT{R++^h1zK1;90O;RPrv^68DiXDh&&d!=v90r_{03dO#d~!4~Ii!xT2OyANBbF zSTqnGBmOMjY;EhOO5ypfrVosoW+dx(3A&>*a~pGF`#zf9V{&TqS__fGfgK){_OQ90 z>EN-SlsgOx0zOXDWgmt%){zIuV+*RUtz(#jWrB*1V2G&6vsFuT8PY#SQ-+ihe9|Qt z6E?mYm^1|7bA@r{C4P$qhS`2P>kyZ*!hy!Xfo2y?|7&fiWZ2#5+kB=@dwmYVM)RWF z#utEgF@KzAQx5cZ7{pg7!w1yL$V2QdKg_dn?Eh5zyLk1V*;F4PudMd3 zTv|<;@1+%$V((3>+_c_JJhgFS&HnZvn*XEZ&E{?Q6OGnk`dS?|4I}-|h z>DVK3vc?Idur-CLq3ai6pM{SM35BL|aV%Ipm^v@=0%u|~#vqs`*#vx7=ta&7_Ph0q z`>g|gWJ?ELZ<2fk{8jXb-+%A590`NLvSzN|-Bs{A*ZC%%CX;G~y>)Qp2+w~~;Ge<9 zFcLd&6sB@Ig;dJH`6^)SY<{QHZzFjJM>g-K)ES-@dQ^~Q@zwW%^B|vj*~{ne_WAp- z1s`qc>2rI%a}NMeRHBFOr+I>or2WP=lBo4`&Eb)J8qk3{qJ@=|N7~xw>uY%daEoF~ z|6*q4Q=f5Wd~(FfUl6rK|6a&IozK1|S6BN`_s4H9pH&4?veu$)zM^5qYX2y$tuVF~f40+PIA`b(%?pC@(?(17 z0$>t%RIkDQue2OMZd9x?_Oh0Gh%W)~kP8kFmS}b#({#uMnQ}*=OXAOmyT_ zYVnuM&zR?Txm*Z=`0K>D`t}z8P!FkRSCwz+zl(raB5X2eA9jYal$GzcHBnqu(cIy5lf}9sBbE!;K18 zgYGlN!mfohf@hQF5%X=I^RH}w7q9+v+napg)xNWZf41#OVA2$o*uG2ZHuJ-jE973U zx~IKq)gB`3;!WSTxKU={WMeu#oEOVndq+(yPT8R_8I{PpNFt+YQ+%R(ITasxVGmQR zkPljNyge95;*w6ib~p;4;iedKTH+1*Ev1%mZ!nTe@V9Qe9ujsaD*-Gg+I%|VQmF45 z#6z1ueSraQE5_xp03C7-c%IPXVi!LNcE-Xt&Wo^@prv^15}=^{@!KyJzx`(OZTvH- zbGE2_sloM0mh>+JjSFgdk&E)tyxN4HTAS2m^rsOw4F=jt4B5^Au9vBjvHz;}P*FkcsWqClq`Fe3V57Iw(gqn3CfS#~6Zs;5tsa#MoH;9QpF<+2&>(=ihjmbH9f;W|0@huqLVsa6+hFi5D`_07ZT4A{Zs*9T(=;GtD< zXke}7f3K?xb$$K};lY3!x6aSPO~u27fX%rE((SgyB%9S_yU_16rwdvz=9}G273jVZ zpfAq1<|WO`clSbRJ-wJb2k=yrvS%URzZW$ZsUb*>E)(4@FAHYxq9tPB%0#)WjywcE`@ z5iRKG-5KsE&_VxA9x?3y4ln8XCg%Rr?eF5%e{R#g_SQCA_{R00G50|yO`&^zOT3s` z{ma>Szm35bfcM$BaB}D{^YP;uKz^v-M1C6NO$Pq%6#yLp z01qWI34&|jd6y*EWggQIGz9Y>4K4~;ABK%WRs92JAwe;|qaVTBzM08Qd&2rUx${-T z8enVVVw8uX-IqORoXiys{EF5_C|KUcTxdTh7NCN*7Y-IrM>_HV7}ie?_+pF*9P-^P zWIr!+MYpkf{T4R54q0*)cV&cA{ zw~4Ije>V7DxGPUYp*wn?g>JDi_ok!cSzBlQ6b%*^l+)PF)EA#sa6*O$(sFF>d_IL; z@R?s<*~Rrg4>5KS9clmGbj`088qpf!TO51CrhAn8>a2aey^sGy^N~RW_>L$FT{bGP z^w+k!gy7#{`flI*llEG(uL7gWcUzObDdLZrocM2sr{D0T8h-j@4BVSH3duRjc3@f> z5UApCO>Mun7AymOZ7q15cwrFl1Ju(qvtfZql$;H6@+ z%}KG~(l+u$eI_um-+$ni$X1uRKY{Tce*DY)_22FPO}iC6Pp(M!ug`P6jmOV#@fI|^ zZ=G@hi1w;Bx;-;{W6R!=$)e*x{r4D4pZ-uxmqs>w8N0?XG1T~$gX!<1Pj7U*Ztqhv zg=8@y#pR9?%-T4zU%k;oX@v%x&0(7Kxrq~e{*7Y4q3&Ss^GUA~@lCBWubBfoz|8!p ziz*Fwyn&|Y2-IdUAMu~pgmbNvyAYFm&{#pYrUR-lEm978%qHEq`5YU>p#E!E*ysj* z;J4{d5$pA1;LG^rC1iCH&a>}|l?cp(af6nZx#pYiSh6S61Op2!o1f#k!JmU#vrtX~ zl=VT_7`7zLxM+x`GB%B);OvB#{pEmYTTcJA3IF4_e^l&17&KIhO%B%&`h#C9*=8f( zivy2OD?!eJJ7b^ovryx}d#g;t^qmpfzu-JP)u!5%BJiXS?CwE9j>5+2Jp+9apHg~V z8~xwbFN4@#sJ^fur{MT|PPZL=6Xw5UAACrJwS}bQLzuDVi6# zSj+YyGv1E^$}OcJ>$PspnJEEM@ufBjN%o>PXr^xC*i^$v9lx*m z(KKWz?t6}MiD}pI$p1qDl3}mVY23i7cZ@!%zaWlA} zk)S+98}~W>9lUq#U!dgD)TyAdqtbIA$3gA%v~9n?@N>Ev_E-D*eKHQL(Vth%c7X_b zR22{i+=dB#X~7CE^8sCwTk!YqRm8xr?<*a9|K_NRayFfw?>h{gqhCQp6-Zstye3Ua zeN>INB^adRqa}-eF0d4cE`=|+s}SVUZ)RH{8cP%tPb>(@OdN1q#RXaqAHdG-;_Nv< zP9Ixxyx7DVKuq*D-jDq&?eD_X|DLuLpF-?E_Y48o*fyQ|F3##3OZ-=3;j?{H44cl+ z%|Gb4_CJra$+V;2#BQ`-^nD9OR`_fw+xdq=# zU|fPDOuIE%R#@rUxS8?EyD9IP$J;1&zTo`+ z`|E3HPoU# zsNHRpu3(~+T3KuBJE>ce*j?f`YKR*@4jCHdzw>|XPGj<8cHb}duAiuI88hHn^68DQ zctcqJ`fHJV`prOw+&7ll!EYs?&lImloVty(ax>#W6^O$qzj^?MndD#fZ;Ag=RJ2D*M;5Sv zS(icGVriQ>+Syr0|JYxoVC{&(_!6HX#yhOhq48q@Zzzu-N%mW>MA&E@0-M`#4u|Mn zhokW6X&?@i4?~|3OZ@e#LJ*vT^<#AjmpQSFjD7kHjtec{JpZogsi&93Zw3`S^E-Of zfWNJpziF{J#OHH!Xq@o$3{DgfQYC-i$sFU+myVs`!KiWQY~P6??s&&g=PAi$z~`$! zZ2XnPu+^`%b5H*A7U!cJj9ds6>$c}RBl4M=G|gW;hD=+=bRd#XpYo$QzLOb0v0m(WQY~%jB?eF5%|IUVb_nj{NRTaROP5gF} zfA`@2c1@DQZ47+s^>*)LGM-|>*ds>0AuZxIz+l8mkOJw~hz-xaGu+IL)Yu`phRuk> z|6sOt?#6J7F1_^jMPclh*v~qH{D~j(P2My9Pf!m3ZDeC}*5C@JOU%ekKo5_Cz3Zt0 zB$Aj!x1l>*Sr&2PSLMv+dOY0rUo5ndLtsvLS%e=2iI62t%p$u5E}Z~b^8Zx-GJyl; z^N-){kAM8vYok5#f0NI^6LM^98BarIg-x27zWhq!ShReMLqV4wguIy-FhELQ#)_tx z7+%e6O{A?imHJgnDm>I!UnvOk5{#$)f#V|70F+~Xl`x;g5C*zDCq2mxGVviBZx_AH z!d>Da?}p|LYgX&nN&a_`{gdYzpgh=fZ5?E2zDaSA`!iiv9vMp2cPl$n0~Y`phGpKb4_RK zbuE(Vi!}6aMbAY)w&y=7Xx-`wNkfgZdDFP!&~M@g8%`E=vDh_y4!HSH2bT2s^P7`d zml=goQ=3GF0Kf8j^pn002n915JDl(7JG!$JuzcAVktrH4c{38A*w=bW#F99BgI}6{ z&v|od*Ehm;p~HUI{D*VP7rEV2uO5?cDgL_+1N+u~VptD73+&LOw=rU{=_laWE|`oG zj*w@z=w9P|p27U{Uq{#*xvi#y8hc0T<$iN8+x^Y|-M)T^78TC$Ha1Y2DVnV>2V)G* zM8X9>PBHsNM#4e)pfLXN`{{#V7CiFVr_(VG)f|VeXz!G`e5F?IaUjOJ!%wMJfE-1( z1aHv`hi9eRFn3dz9J}O#*8;>p+x{+I{qJj-7ho~?U%Au~oxDD{rZ4ZYl1Q0J5_`A* zjpVD(a@p)-XuyO3U_hV0iLhQW%i%!Ycqnu}D;)0x`bTTv{FzQDDG@$0p|6txX1p2b zq3vAU$Hu}KP5Z2pBj$j1l4NbG0@%Bjdk^((S(w;P&U;RX;KJldp!Wp-x#*bdIm<@z zrDh_L%Qd#4m@YIMiznt}&7VfQ zzWzet>n}YL{*#{q4PMR+3$@LyqXI4YU=;$ZZ=6{ZI}?4t@nge<_5uCgI|JOq3{m+d z@w_C}y{~OO$h9utdPJl4-^EEMah0AS+F%Eob`)pQ3-9?Vp)f9al3G(gd|Xo4?L_4k zI~t7_zupYm7VK)@ysVwJc9UKMu$a{a0-Ry(EDN^N;|(Wkxs4c6PqvtDNR!z}QUgw5 zg`Q!3rtG|K z#hYE-;;Iu1jqeNO?Ww$YaMH^welYcTJS7)HpP2$gUMElJ6{`rS=_NKi!nR8^$;)JiIYlU+oR&Z+AZ`wo$Sj6AC#|Ll6AdTHNn{ zvP5AN?}w8_vN|*X*&+8j@rFz0yx_Wx-^nKvbnsh(P{p9I3!Vhp*znjz&wM_6SDZl~ z8!A{6e`w3niwrB*2na9;YffQ#OWeM-0DPK^)R^~far8?(Td#l8{w`kq?`@JRjlNB9 zzSAE)Mo$T0=qZUgCpUq9t}{u}w%IS)zb!t}j2%P(Z12RoNqZA4ZVq5`o=BKZOh%Gd ztW3XcCn>zF2feYT*r*;F4MPwP+9+Hd;a#zaq~)0l4|OhWP^{!#mhe(^;%yRw*=Qyh#K$r#VX*3cdCX$xEV9&4QI|MgYE-{r^ok(Fy; zIfW5>*N#p5luaC>Qa8Kc^eAe@BcxYg2b0rJ{5Ho{p8U{a;;UlVmQ}H+VuBg%d$I6| zu#mP~vqbLr5NW{Q!h*y(p!nGf3BxSm!`J*w{Wa?XoftA(bB)n3SD@}GcszAA{5Uw4 zE;h40V(cCJ&VZBSXUg}w$#BMrCz7s1{1>tg{+`GEY10Ao+|jO;7u#ut|8_uhUVcab z@LN-*%NDk1KF~XTvXSRy;;N7qq2THsRr>W6LQYuIv9)sNX`$?o<0+A6oZp18$uZ$P zR+FQe^+xG2soI|PwTO6G0kP_?d*b zb&~$z!1Ep#`(OIeWi=I;Jjm}ixD)>jfuYpnYdpzBNQkVlQ;@Wg*@R8QnX@`RpC}^k z#RACT)OW?I6oxsq={~VVFi%NvpipnQwM)+B4KCIheF{tC#Y?9?oC~Nq(w+Ev_p)r4 zCnc4Ha}5kbJdbebD?uk0^$qL*>7>Jos!vS>ZI({DZge{0-O?yON=sFL0l39IhD}E3 zQ2?{g{Zqt>&rj1j8R|R<3&6L|?o2%JcpdIR6#DQVKC}L6q=n5*{l>F6ld&8LtmLcD z7)RKqufR&JdDMe^fv(H;vLDqz*=*x_qyJBv`uy!#zgts1ZZw}Z3hTySeSF;Q{>_l0 zL0oduSM+Ky%lUK{RP;tg#Nuim=m3(BxEMYjh~T1-mpNews`{IWog)tfd+NY=k+l65 zR?(4S0V1r(BbYolY2wq6zVLG`M5zM=T&w*Ld_cz$9GwP-Vp@l&Hr7}+-R(~g3!k@h zOjdX>mwDH?IIPc%XVlx>Bsjbf}YV?)E=3ww5LKPdzP1qaXMmGL;- zKW?fvASS&2HPO!&gS`0+%>zIE4Xkfa653!?__?lQOw!`?Aa=3vB&9}BZ;lIuSPh}oG{4Z8P4gH_oi38_U5?@6P|QR zt^!m~Ko0-NNy?m1CfqRLWWtOc?N3=hE$M$iH@8>^|A1{*fLrGE; z%)g8qU5w2(xogZpTE_2}R*XW&jg%a9uAXVSWf?rUv6|M8r}+GC?^O4Pm# z?BAW_h3n4L3_?MOJ{@9d2h07zah@#pk5^&5Mm0GSkMLN}M81(^ir0AK+A_Z%bXWdw zU9&?Z(#Q*>kNR`7|N1&;@x$vA#uD(MtwOf=j64NmnEwl0+`#8UsAEjJEPY=zOatWP zKQOjoA#nZ}y_tA9QpctZ87}ew4x`tFT`Z}J;~=B2k$4I#7nyR=Af8JLOZ~lAt74sj zU8Qa=WOaN(`*UQJ>A)D3>rx{_r_ea0b?*O-_(Qm)<_=mZ`~z177eBvkA$XDYkgtk+ z>n8g8;fuC>nntAKAa^x z$gZApA0|vR^Ne?KJg9yQqiBSCs3L|H(->3CV!$xtb;W|!s?dcycrNt+R40GhuxO+B z5pT;;oKVD2z7Sr6Dx9-@XK46#U1@Ln?uE*~(sWZbVeW7E*rh?I+s$rg(^%ju5`Gq! z&l_Cnqk^am4V~(fL>!yr@e`lhr4O&uj05ngLsu5TuZ(`8XOrg_j$k}ENAt&6;Nv_G zcBDu%Ibi2G2pe+4LGJ6>MV|tAQXUIg4b+Ku-=%VeShmjF_Eq1tzl&G@H=1vLXVE*1 zrII&Z;C`1J;h&y1deMNVuAWadBmcSmPXa2brj3fjSIc~J=8Ff2<PqN-0}iR&>)w{H^;a5Uw-)#-*I1nz9x{BioCrVdnsm<=eu!k8<;0)ZLw;m znlwJ(;j2iJAj9Z^qj_y!9DxuLq)d1k0i;)waXf>4j9Y9IuO(Nnuft`&y#(se1WSSE z0$R$ov0$6YD9ib zZ{Po0**VRNxz7yaC7JaVp4w z9hw%gh!=pLNmMN3vb~GN@2aF&albhvqJMqvmw71L`Rn}pJg>{=3Elo?_qx8Fl|D4& zx0?{4X$FOX`U-2p-sivTgV_Zm|AG1*0P7T67ft>4;&3RTIrpLS;|*NwbAA?r+GS`4 z$*uVX{Kjs)8HWyY;HfcgRH#bU5yuKYdVcYNI^#P(Cw3ZuAX$Xq#W8~i zZ+O1I(mD9U^+Z%G>#;hIGi_OHvKM>r;}XVqrucX9>i=H*E@nbb^h0>@wjWOm7e%JCZTCzBZ0~ZnW%rR8v-K&MyP&7`F!;+MUC9YIj}(})0YPP)w$K@Y{B>zh~EST1O5mWj#YkwhI++~AgoTX zVoWVbRv{F}p_CTd8)@ZJD7!joU<|?l{McKHY>L}u12#4X$P)HfwZdh(p3>>S_JErR zDPJ9r^Tf)`gL8gey-xD{m)(-i)NlM6QWlSP>x$xtasW}IXR{tN;ODJt_7s5ISnb?s zTi2F|U**DN!$qfjthWnGML|sefwJlODLKAYBmw>ed46!kAuR|lLi+se*Yg+SfQIlj zFU7MSvG{3WxqJ@hLWM%?f2ekFtU$O?yyMp-Gj;$C!NjzWZWB|W`RFbk7 z`~Nf6lAbWLTa5tb%s7Citv_~P#!lAk?k80V?)^?W?av7;Z5gEWZ4W1-L@G3=u?tmY zNPR!Y;Qh^)rJnH-LHkS17sJ#-5{#}fVfLe95yHNWNu2Q}!A9ASF#z{gZQbrMflvpg zj^tj{OF6yo?}C&5{)k=R;usfwQTpMbE*GlsO*ee`cZ0Wd?;V#G^f5LH$xS)Bi?8o6 zX2inAB0k$Kl3^)qh2!h&Wh}0l@Uihy&fe0=J{S4BR5dR^J_fwSgoV$MheYIpKY!0^ zElAm2m9W_62pIe=y1Di{3~;lHw3jtLUi#ko!M}@F|2NvuF}v&6zaF=!$4Ya=XTOK)DqAxA>siKX5;PreSnf}}*YU1@Gvh31hUJ!_RYr>{D0Z8OLA+1oK44zxU`iOB&F z2aBL7Z+2+$E<(PFbnHJ&d`GV7ahO?L#Q1^5NH19!=lPyYG+pugFYS|3tm@}MCSg|l zguOZWw-!(PJM>Lo|NDgfLeZMY-OF}zu7mtiN;Tfl26`dn|0v+?AXfM9Z%DqijSV*zsg5y@xhrjmbNj1`Y4R>(kd6f8GB@YB zFyTO7cA$d|n>6FbPfxhN#``V@SM5-{2044;24lvp_{F_mM~zF1y>F_Qg(YC6W>I{p@~i>@40oQO6)R5|-B= zcPU>lhK%(1=EI{B(>*qWBm!Y<|3!yubD_P-k98RQJ{jz!Y0ra%T$=`LA5SxvcUfqP zE3T1&7b%nZmc5<)3!fJkWFVCHGfQ27{EX`w7w*%C_**_s*y|im8Qeorse~;1w`` zk{$8VN8=7KI?l%yiJ{YS|_ProT$ z0mT<2$4Dn#E}22ym-_+Y)^NN4H|<1A&3EWc-(a%;pL03<@4AujvB(P~KGz=~rRgQl zBp~Dek;CIwF`!1#!u$W{8O6Y(o9#Q>zH*KW-KM@edd0oww2X2nzDNt62KIQML@-}T zcd#9Eix$Z8>}%>rJJur%gYQoQ6M8~PtB?_FO{2(C&OJ=k1LR;EwdqVljp4xX1rO4| z^x0a7LAY6b$sokVx29>MSBp4$jSiFPoU&%PjhBLk%{AyEA+Loku(24a{TmO6qyM!$ ze4%;cA@8^Nl={F)CLHMn!zHH?N`MJqySM4Xtl~%re80?7uV?S^-N=m#IXcdldphZK z32bi6N-Uo^X|NXaEJ4WnuRh0EG~;BIHpGAAm2%VZRCq$4M+h4peT|VEuZ@IKi*IJj zx<%7w02|@fb7S6ASgq&$X{Nq%+RmEq)!d&b=HKmqOS|boHuc92^U(j^;Qd6O(pOVF z!E5hL#|@ggVOz$!O}o`#R6cIRJB1t!2%V!b%+=9hfRnr@I{TaB7iu=xA&Z0P9+DxK zs4KIPfGZu@2Yw1zIFdO7T=EuOfSLhxgozxNfV#kmu_RJNbDNI5pf|uEsuI}AC5V7$ zkPBHn2cB$(cFPYTaz3Qbx!=8z-E1Yyxp-q3i=ZH}(I|3zVsZ?e`RUFvZ*6ISo6X2d z(5B`B>g%tk{qf5`DgdSpw5AitN3O0fjT<0sbSVJ{z-kasr&XqQV^N0m2Kd4;X-CnN zGPg7gFpARLg@;TqS;eGKP{}n&Ud)DI)?6#5N6#3uFNWgOItR zHP`U}@SnOo@u10M-qUgG{3rL&2$p0YG#~3V=FKO5BApp8gErwqsj6Ply#aL* zmeF&~GRL^uZmsP<`QMkn{TdgD`-JERGMz`K(ZM9y`UYV`g-l_=C(gp5K+_;x;spLn z;`6zVLq9*_&Y{~(71m6vfF*nygYhS-a1?>`6Ux4KJ>_)k2l+(MLb^@ox1CHeT2&fde)HO$TP>afB43?2qYU-ORz=H|13d=g<^a29d6AD zn;y>PdVw!7gNFJA>^2r}(qW>LQnp$vn0#A4%lWzlh)Z+0VAp!V6Vm4`Iu}&+TUzjm z!0>mmTx@fbpFS^IE)%w;H=#Y5bnO#d2w;;Y+CqM!PsHnj4feLV>A#Ct|MyzzO*Y^3 z8vJa?JdM4tYnsb3VUJhp$F1X>Sj)9DA#%KT`{81?Zq{7~wb>FP_A zj@*cat&U)9ZP5WBi5UMgPr>Jz2VtPlM2qk;iOdeJX^i-t;3w{Ul0hkj6Z~%pj1FWU zY+FFk7QS;ih z=N1w?*BQPxqQe8nHSPF3a$Fc`!BTcw8^*FHANV?n^A2dmP}$lv(4sIL0ByjoIz9ve4yCuIc_t?d~%^>n3BZ zd+G(R&1NT?KQq}wzUI@qu$!*oXPWC-GCBK=kl2)JJOIxqrl z*qm(W=I1&jw_R-e|J=*x4e8hdTMzcwWqIilsqudLsrIyj`<72J_k5@%>4fdS%>reb zSZjOS@G8y5zg<{X5acx**9aOsie7BmHaW^JieJ#34_#QSI8(wDu{%&;w2|7iP-Diw zkk16Se?n)JVBPxpmYio{sR9-%sPUVITI6RCB|VgoA4HghSFtI&f~hB!ZW-MeH{=5h znb9TzPr2PT4?KRt=EBdSG~@%zf|EpiIHM z^Mvtc9N-u&^>>>CQ*}7rZ)mUMB%U~+-^7BSFBv(*A7dfz#f={!Ohx?aK7mDlgxz5t zd`zA3DTCrY_NADFUYDfcd92+;N6Hx2zz-d9#^@qMe1ls_ePgOx+){hvxqk)g-|c@> zqc9|Du<1(P-&BU|K=Oqfa*9FT@o@?Ns}I6^{8S&~XxoFiH-aDv5}E+t9B;*W?@zmo z&Fd{MxWy66#I5D$Fx=PiRtbF6{3q>Wv`4C!by#xELPU%Wff zU0Q(q6%!_3AE1PQd*67;Jdsha<2N|*Daft&&#fT%Dgb>((+r4WKxZ0h_iNN&>#h4c zD4vzwAxFRec7Aus%EXawq9ydJiMt(9(FnN+i8=Pp4l{W&7%$hYd~>!>fo?HznJIXB zKN_`hpC@x#4Hv)VQb;q<>zJ~B;W~ej@If7eP|7nEP9Q(h!OW7a;67GcP~36eXItkR z>W`Aw>aXiUE_fQA!T6MW!Yp|4j7i^`F#0gXWxY|K4CGuNU1Z&gNZbBDYaQ?R|Hl?} z|F85}ptqp0gMQurqdO`YfX%qZ+Sxup*0#{Fl~TZRo)cJ`uxQ31@G%Zw5fy{R&O;X^ zt7(4A2MVpuZQ?nwJ2{vU@KXYyfM?dB(JCMjDH$+CK`gp>rLrRVVNu77=Bm=6a;-(e zSiA~21D&I5f=ZoulCG@~<-pI)sLGiF-tnd)cpk%UzY?;3sUtnZYYxh9Bo8?hy954B z>-}qO`u{C5{bf8j#mvlqI8Mi_7Gq&b$Dm`z(@ZxU&*aNy2d={z7e24wffBu`F%me| zI0x|WgjxqpnTNRJ4KJ^I=efv7`63-_jb{aF_Ev`P8YUCBejW2}!|8JE%ELGEweQ9V zp4;c&?SH2EvesPKWSxN!NA0F}+B8eHvnp@4hfrSO_(QvRaf#s< zu_70#HJGnhZKW_p4~kv6amc4;|Ey2mgkW#=3pd)DI~B~69I4&uI--VjzG^mPaM_R) z2%s)MV%4Q(&X#LgDnc;2TpvdGioS|i7NegEzGh1iV!?I(JBFa1fYN8q zjO)RC3LaPnUc*NVzSp%_Wv+Ui3lNy}<{riunBz*C8?B8Vb|Cc%mWS&0*M0p($za=z z9kr#5f7+^OT|{Av)h^@ed~bTg3o(m|s1s43I%jpWw;Wp)2kM1SP0fQAO-K6?-jkM? zg9e#8p3kqMA|?Qp1LVM9k%({Ly(aML=cfTE{(n5ukvx+`)6l3`GWOXtvI%gZt4{XW zn!>Bm`RB761jD;@x`ku=Y2_yQuS$5mB0-7kmztElBWeEmveoD1BuY%OFS;=RQh-xzR!MS)PRgJv>* zao;X5-0w8uMhxTm2LBzLzuRAHO9-zu_-gvOJ^M-9PtnFT{yU5r?^2_`GVqRsVgJVV zZ8rTQZYWma>^qztS&qj9>{=WEFYCsJpninrP2`xTJd(rTgDMCGt6hxHwr*+xt-wgw z>#Dfe^?=v;Sf7wdLzf^f$@)SP(e^lc+$`a5;=tG?zv8dzIK`Xh=Px>=xIIW}A$N2) zEk+iM#U=?su-!c4aP48O{1P0^rX#-$>31rQ{0xX2y{Dy$;`D>aKE$WmKoNG|65Tb-zr=uM(<04L^0=XBf@zQzlXIghdGO z*kp(wY_DOkS#OMcOSMk?aiKY7kh-5=$5LQ@Z~}BT_kw|}IK@&rSm13#joezzO74HI z$>;BDjMJQKZvSKQIqV<*_*oIU($&9^%!6V z_J>V2y2SJ0zz0Twf-pq*$ZgFlu5oO7%&9;j?K!>Wrt@(yOO-0s* zbWPlw!#^#ejgwS}lTB)_P0V>J#{gL13T9jUH~Q3oahmgH&?e=B_CLFeM<-|eq8T0hBGLPDDMeGgk43iNNuUiGJg4@iYip#lHZqlB~2kRi%& zj5oYW=&j?{gckC-ID=ad^WDID^Xd%x%o%oO_TDhfBx%m%)#@ILS_KovCJg*M|JG=f!jS2?((WQ9_Y5FSf+8=8tt^VQg!vQZeJf zk($jytuJ;ubrpX8`Nv z$UaX ?kbFbAj5rvO6ifA;`|W5<3_=+_nbGtpOJ$#ISrgPZQRj#vD&kso;Y?{z`w zAn7o$`&I&&J`OnA4!G2A`)8SHd`5}~mDa(w`} z?S_0+P<~FQB6NK8+w%8L8}2R(!r{L+NE!wis?&z2mcwp#hB*ZAmp+V_(>S)%D%91j zh441$MtJ17q6vZV=;s~%E{q~9A@|!jblh(P;O(yaN{%V~_)asUpp`Tub{wv~n?9N@ z9*qma1DbGT5I7LDE(nbC^+Lo=Hwb?c@n`$|{kQX1?)Wsv06}r<({2k!RHf~11`+*% z+M(`?3PsQdWf1@u1bY&+c09dnejPsmgZ3X_|NUYdp^$o<@${0y-URpK`#-<_nxwDG z)1*bOczvY~M^GW@8Jl!lurBDD@;&>eoRBA0{NRsRWV+cu>_v)$O(n4}_g&zJYoZol z&vFIW3a**i5_5d`+dwBx*1LLG zi(-LcAvTFKR57A;fKCtrondS*=!>8J&&7Fn0V(sM(sgrL2NN3K*}nsBSra5qtEK5n zbCH2RX4=`;*^znZS2rh(H1nFw<0(#3w!SwefKFgJDS8TnC*{~4m$HBpTWP$To&?HK zEZe)V^5O8C38$|J@<#IEA{ao>WJU$?c1k7-+Lhg~R;LGL5Sa}Q7CWu`EKHvYa)6bl z?@ishTQlajF|UhWGzN8<;aV9oomvqf&vr%@u@*1;sB|m3OF^-{tQB2B_>ngLx?!q* z%9xOw=%?6;qa0mz6z*x=jmNnST|G?jvms~0<>fK|WcwCO%(2^$z@cKV+2wEGT-0r} ztLSX$ggL&zL3s4_yG0mi$9j4yaZ=%HgFzEOy%xAQX?O9vDy=PU`VPP#;J-e72LCe0 zbpd&tD|{2e%`n$wJV?@lYo*EVeSU$ljY(SkrtE*W(P|wblz_Xf&rPoA`tXyA38XW< zP}dh<263v2Sv@vmzuSbNZd$JqO#m#4zp?nKtAh&bL}qz>bCwzhvj5h6_s>iRS?52Smvll(KFE#m z#EFC9l3v>tp{`tHUX0I<=~j=(|sV*^&w?_~zM zZ0d8pfv`0$qkWcM>N+`S6KsBo?p6NDkGF5QEJ^Cm7u?rA;g8>5KN7z3W7hkU@^f4O zRVwNA_;bB}HQcPHPCatq@v-eSvJdP(AQm~Uy#b9hZqko1k%!)I`&8(F zSm-7++tA}@2>@T}WYWgwp8%^UvcXKgw@r6^9wkCQ^uhZ7^#l8A2iQ6%bXueIE%;SI zZ?POoFn)DE**Gjp`9oY2Z_n8$v6g)*Fy(;Mhfnnh`%P>;EHyV+K!wkuI_np>CYfjn z?hUUCY^7zR5p8Mp1?i+y$s{49@Zds0^x+mLotCXv?jgR5>Jq{q>ucK?#fafHy`Ovj z9I3Y=_R5O@qA#hzyi&*zr1=l}&23v93OYS5WbvbbP@s8zwBt=*&0pPXCyk4fJfo3v zGIp*HeqV|)0GQ$y86!DNM-O16wr%AMAI5NyX&k`i;*>-&-C4;%B#@C5tWH{eI;et! zytR>b1>I^*OVtATS;#cFN7;k(9BY8OA^hR|>oaOT$AsMba_!5rztFy$7T?T8tukY$ zj`vqM!(sYcd_U=X`v3@{HNUk~HMmw-ewiOI7k|S_Nz)&>-(aqC^f&U)@$VKmY<$g< z5`blV>iSLX(0oXB(cQ)w>Q-_3fib>%T5_B>0Hwt`CI%EmN@hf_O&=1}-8zKr zQAQe{54aSI48vR}jDQpo%ocVfUqx?Q(I{YDQCd{A#*64vWoUo&vnQv0t=DrB&aBT% zu}2$(77q?|&EFI5(;Mn57+h|>Vi-mYw2sdPL9Ii0a6#e30ui4^JD>7tI`^=3Ajnt6 zaSw!;rdypc`U?^jv0~6x^cm=?Vd2C_zTx#hF+mp`XMh)vQPkGn5ekzzskfYh*kHBX zODApNA8~16OWkDFIMBbCp^r0oj&lOojzNd&soJjpFjMgw4Ss5M4@iSe*^xZ^a7o$} zEnmBB(h>CcTF65GQnX_Y1O*z%U6j3jwU0#Xi0Dkj{stDtiH2JxrwPMsY*L2ZW56^M zA&2#@CgJ(S?`eBNQv~!!I~2v)Ojstkv;arwdh&;UON01fI*NufXPgo;ShRrZ;{jO4 z;$R5Yu*z_8l>@|N_#QGWf)E z)1V3P`~Fnncd&e!9}6s4_2)X;H1KPU2`U87cFJq}YmfQ7@e&?og$_{SgEZBlhPkQ#%jwJMUWgrmvH6#8*<(aV*5IWqB(7!U${N_vkZK*7-NBZealr zL0}la?*Gk1zGm+wG3BK>3gUiv6wATAw6*SG@vTqMIl-txEcr_>KWi|>CAh%8M4WH{YLw-{^&J(8@HE`ydDHLD&Q8|N(KqI$svzeQsa!o}`ws+@hpzKB) zJWNhFZh$;J72Fn{tpPv~?1cD1;6eu)@re`GM<4sU@&4K>haIFI+ zfr}wDkOc;jLc|6Y(^xp}!!tEHpW`i-=YO@mn-@QEzwb#2o2;r&@xMx1#8?Z&qy2B2 zzv;$x@O{v2ne3mSh2)08W0~l2k$JQ`(tSz>jxZYw;5f!Wp3e8^F7XXVt*I_Vju#tD z9){mdf8$e+@Dt(Q*8Nr_x$djJRhGZoPuflH?%$8U!lC|)UzR?H7=_7O0G#jKramt_ zxQrt=Eevbi-Pt}EzV+>Xxs7!KzL>fR{IPTREvtaIYm47_00Zyx78d$(Q(FlqB%??} z$9n)0{Zj%-hi*KRdxEw0>MA+`2%rIVi_11LEjKhcUe~)e7VIWz=?KBN;YpZ~UE-6r z$A^1g=LIHuCVt-V=P5S8eA0clsc)QXZbmbAwJE!j=@nF*mnUfBN)+4wcde&^Ku(ZN zJ^ng{6~F&M|XnIx_HC!Mux2y?%G;&wo7=9v|W>&p9%PWd8U>EHV*&h%fnp{pQ!< zuP~tp2#n*P-)d#)-yX1sCrmOrfbhNtfJ^0e2s{9OeX1KCw7}u%bP=LKmAw zC$jtcCxXX5H^o5h&nuGqoH{bV3SdOBak37Bk6c>q~j_# zeGCT^!k{FLPgZq5lF7=S$s!uf^OwVdib`x8J(r|x;BYadM9)zrKoPY-8cQaSsp>A7 zSfEVc0S4Pjhy!R5C&X_%0^lEq?YQP4PMVD&3CQ|vIUfS;;1Iwf3V)RTRdj0xY8d16 zavId!_s^V*&Y@Ku<}df9f{A zH3_iBax5u{-5UxagfJC4CMe9yr|pcqS40ERuZ&q zer_is?B?`+Ap((H2@NnLd7MP2O##LR5z+%=;J0}){_>^~f6P6ETa;pOZY8`p(2G6| zW4FFNPAq0FqB}X&S(6_*C+se~@OJu)A6nx;r%&E+b52y84tJ$N6#PQ^jrM%VK0ORb zo$6;|v-uDlD-|mpPv?z^M91idoLT3iDC$H2e!|cl( z`1AK)?DO*vAjfSk{uZY~;*Q#XSmmEdLoAEkuI|`NEc*|%_vIW`$e=}3yDu+{mb~{y zlQhqcahyBwIB4V%WdBy(L6-gerjmLYH?;qzwS^qN{z5bn8vqHJ?u~aB(&*Gl?D%d) z(%zb&hCAszD@*G{Zt&4|H=msahY%QL|BgC`Q~fQ?=}+7KcYX=VC>Zq90J~wohSWozGhkk=Mzr$tzIL3{7QJ+o%3Ed79Chbc*}j72Da<;ExrH8{V~(tsZN-l=&IOh zbA9UNM8#~isAqEd)X&e!Pl)R%nVf$@kC99u7oa@COgbf~13Ccrok7W(S0#Kn(8j8j?0lFe!3_MZk4p=Hl`IG-^Kb5d z(!Te$^WOa}D%D@a6A06PK=4}`#bu7|1l{`4_xT0R-RC_%BA45F_y7@edH@Ma+;3HN zeqJnrIK%Jkq8r^>K5tt3x9M=qm<04F&2%khhc?E$Tc8^EeD#&N- zd}5PdjDHIui13NE=gsr^AznA@gxlMPaW*1SlZ91rZJ$tUtDNJZH!2oRy<%a-U~&l4 zzH9u|_LCotc$e}2P`GU7vKV$o_p`Ug0mM^Yax;{py(bast>(HaJjHX3o)xm$AF?F2s2mWEX-bq|yit9Y-lkPpgCp6PV!Rilq=B z4RUDFIJZsH6hPyzKuS487-n@U<90Tv{4L9eCw4gPi^DjacUATYgr6n5gT8R1b9A63 zp#;dUV0gdTEYl6tAMjDaakJqf+K9>8q^ymCo=HA#$ z6Wf;d>sk7WVDvWCw$P85xQPbs1+S3~6tAef+s{CtZc)0A;5dWde(aF7OaptwZ za-eII>&b8Ao}UZnLI=V0$ydkeS(tntL9Q@xmsTPY8(rxAcSaSgLGm-!2WcnvtP3Gt z^xNDJh!aj5>N_C?lUaROFxk2~<3s{|4X&zZ&(L-NVEz_j*>$3!xNOjB_x-H*4TAQS z8~^dke^nnsrPFEvll;%-Z2Sktv8fGkrRx)hOMuCME%7dW1^AGdd_9I}m5YyJ8R`ve zbhm=%dKxaw*3+}#Lr|S?L+)lH|9<`Wegyfe{#s%T+i}OTYV%R2eFF3@JBa^_&H$6n zqO{zb;z5g9AX)+=+30LD@9{SFvyb_NlQy(J7F$htxZlM&rDy27y0b1n|M(41p!awb z&Jhp52lF1H$dzrq_^kf2y@35c*vUM-CA{JOLwtTK)=%{Ld2uw>H+ND?uX)|*7&p)oma3XIJM6p`s}xqMY| ztJoC=vSTWc7xI6B>kdS#RnoE#=tXO^AlgHkRAFx%Uo4Vzl^Zqo;00@K*un!l*@nh-vl8|z?7 z9{onV+c2V#&l-MnKyQ3x84&kxKERjUC~q-lY4VTsKj@x&uV+R{dHIx|_&0~sCO_~5 z>sw`YkSc2o$B07mJQ{;VhRh#8y)d`Sya8XPhA#5E7`(_C=QMj>@~@ImfLC1q6P+XxOmX;Rx-(u>}k@K+tJ z_Nqe%hVbUs-O*o>p2+hm$kP5?4vV01l74@lwQ>*xoFH@z->5^UPuyt6f83q#Y&+ZF zEh$D@f;~*tG2+CuF&gmL&39qo>G>qrxYW({7A2LJ<;z_|6(&+A!Qr;cl)1jXy(~cmr5_yCV%9UR09RCjJuit z&5l}!=ZHR4t`N)?4`A0;MjyL!Vgj%}I~XrUG|Oyp@~j0QI16_l^2$MhNCVz(TmMy| zB?=PBFSrrnM}kDhA)!xpzi*4v*p>$tm{xbh5d5oTaq%DRA#ANfupX z2%D#n0NSp{14dGVwnug-EsIhgXh+}ZipKFRPG?-mQ&=z$Pfb={5GQuP z^XvQUC1(sXwlm|= zX3L9>C|z=b=+^sUJk-MaFuY@^eYp`>q8A@9U#SDgS?BRlyu=-F(aanN`PE|8TIW6{ zQ_tvB9A01ft~DSkBQ|!D)CU0{3s${O(*R0vkq)Ytu5R;2^-dN4$lVFH?bSYVM9B_E zQLx)&XoE#~c!IS0#ani{Hr^mfDi{cX=>+9@i1 zXz8y>XgAPq29d^&UdlgyQzEY3~?h zX3fwB_0w<-pnt0{^v#Z2^*H;sYqKefO*T2ljhDn1c;7S+o)+*gQK2vY?!?s%z1t*N zpHWUzmvH z5yq{|5DGWOG^Cn=R8DfB=t=szxjD@cU{^oJ%92_iD6j(SW5$HyE99Ktd7i?$$ai^+ z8+e_`y4ZO_n?LGX{?#nI#+JH{DJR6OOObhAzun*Yi{F2<&)7IrSI*3rQa{K40-qwU!D$nfPcY% zeU;FR{GH!u^ww}Z8B@=EQmZXU$6}<*L~}t|1{vCfPn4usQuvP$Ef9X)Y;k^-kd1>A zh+cB|fF=Jn5qK@g=kZbccm%5B{=8@kq#>+gS4t{iW(rq82|RjJRA(&n#zA7g2IvAL=j-+}s>`h@)iVsij} zs?gE*jRg+2&19%I?nd7LgoSc84j}zO@G(!FJQD+iJv>@lUxRa>Mrc-5ZT`xkp$uRR zQ3+xYoAh)CNYot8{*3Iwe^N?#d`_7!= z4S9r4=<#JfvV^eWLLwEMocmnx5PgI{9vfWDUYEcnU{XxSdBUs8h`wg%Mqg*KV0dYF z$q&Yncd9mMcl*1r_1|pqjgLtgV=bHVh&S-YkXua2#TDOlyeQj?gHP6~8G?jQwMX>n z8zZv|EqJ>J#%}U-pawIp6lQL)HTcIvuZB0H%M)kB0o7Yra9SEsnZ#wGM|*hRYAUYr z6kp^R+rGMQMsf4NSHf8~QQVlr|B4pee3Y)Sri@fE`BIGv`J@NxTx}{OvQc?N{>Es) zwOI_~iUOUtsuRf!sDR~3k6{-#-5s$v;G=2SKF9CM7!OFkGB)8RtaXI{Ec_<&iY0?o zJoykDc(U)z|NQmW*9o7%&FmR9;yW3N^N*4dKEzEutzki)x(v+o zefbyo<5mERPG#K8AMi5d{(9qK0z?=r*R8e{u!EI`4r>n?WAUEe4erF?3C*Z4-gB7*!!$6pp)dju9{o$^AO zwtbF^tVWAck+ApE7T9L|^oN$?k)zntVbACt>c>cv@JvQ5gXs#uQkGAo_6L3=<8~ z4IRkG0qkS7)CppB{sVr+U)xMLf7Zy3i`I7XfS^C)ZZvf(N=21Sn3G1v$6;mc%?KA6 zIcB8M`~<-3;O3R21Smv5R|flfK6ijawpn)Eyq<1d`Bj8_WzO79k5kp>E!IoFx~#JSOLKzE!auV4Z|zf+}x zMgC3bzQFhn=HKmolRR<#{A%iAz6T7~z9aRq;BS6R^_`!5cONlq4hv&G7~Al?F;2Xt z7$UGn!lX%|6SkXANkm)xp$+bdhk5!1ZM@%%e|AFsnloX(K0jbC@mSXq5pON_<0C`GwVdXaU?zla_PJ65LUJ27s9A1?Q{DDXZ;k0i*5vF zR7r+k)5>cwbO|<^55VAC9O$8#S0Qe%n+5ncBD4-yaZ~!J5nsi1$(JBnm z^BB4xH2?IXk6B_H?!z5(>}@#OsKgPpgY=PoZ7bfPv}Z`QT zfOJU#J^|*uuqBT8;K7GI03PqJ)loqY=IILrS04%2tGJ9M&tts!z^xtoF{jW{xeC!I zN)b!pFaNNM*mJ?iXJr5&;{yG`x+l&t{Ye^w*Crr&Twa2u4XjCl>P-JJ2>rQ~BIEG! z(ZYG2L=xqA6d8S$i`B1wV(wvKERXlMd+ZJb-d31C4S~n1>BkA0Q4y(V$ptav+;cYu z1geFqk+cQSY+@iL^eoQ_hW(tj4q9(uFZ2&uZgY>|eW5iKu?^G_tk~ZN6SOl^u&)Is zkw4KxWBi-viWmc}*FSW4!&iwBU;(Vs{=+6eGA268&so%?o=!0#das{P6u%4;^Kj0CUJ}>eTH;;C= zRqmPClB*9R+baWoB?z0FO_^*V>A$7`ZqYS z_K;6EqxcV`_J!M%u!F`UjM_rpj8~0YV=@i(xAC&)?{@4khV&bQi`g0zdu@WzgwoNu zSlM$B_MY?%w9l`Yyxi852%tnJ(AU9Z zC*_i0U@YUn{3ABB4s+1YPIb#~p}gq84GJw+oKsjkZJKBllyi|jp7hN(aI*HnL-VG- zJ!4LOuXWf7H2ISP40tVb`)xf>F&=rnh#%BNv5Es zlY#cgw~dw)?MC|iUPs>b1^lyuwN>qtmm8|&WBW=duIYG7-fG%_6fh%c(i6_uJm!$t z;UI3B=XTwll=FA9o4AoKg1>xHW?-_wirZF_wm5bT<{+9-&=S{>ESz&A^Ja1xux{ew zO^U!h{;_^j7U)!QGR%4Xq92zZmJok83}Juw`(QWKs>fj?3BVftcYf{f_Ote`IE9<7 zO}=qcmK9Oz%Ab1aVtDG)zS(I1#Qasq(Mz|UKAMa94Cf|l!C}*Cp$#Nx`QS4*K`ZMi z^NX>D#GQ_#827`bs80@NM#-enb8aaU2S5@k8i)5+zaCKgS~_tOJwI-W1TuVM>kd%4 zUo=F*V#{MTpiYroTJSi%*13M6Gkv%{MvA%4P$8Wkeea~(8@aHk_gzwfv`W;k!vLH29XcBs7dCe-^J^f0^(iSJGt_LK>giKYqeyO>^w9o9j~@ z-kv$h%Gmt)79KhI(}g2{$CsB(RZv5ce zWL)|#w3&=gp3GQZK59)<89)bglYZdZwQ_0gn3~{*&H)gx2FFt2W>;{xUFnvh78?EL z5YXY?6e9#?UMEaF0vbyI*;P$>OS<-Fd;(}!a-^-sFF10X_F*H%gE60h!QwL4)J;sI ze)K7X?vH}n{3=~W{A7|8rZVjBg=3I(@$!rM0FFL_+P*D}3!|)OO}~i~aJv;Z6($p7 z!!A~Vq$5u+ifsf}CmUtBftg1?n+~9cAEShYB~;=7?0r-5IP@bd?2ikM#qot)m+r*$ z=XDN`V8*@Sm-Rtq5N?jo2OL!EXS!SKy(c3VSeDLlUl9Z$um> zEQrA5W#|~>f*%{d!H-U7;*a{l@WfRytz3jpf+{G;zch+tR7;vweC#i4`x8%|^r<3U6?q!5m*ibqEXc#Sdkl^_L?LeW*;% z`kyxLq-b7jk*(33sBy~{hm_n!S4(GLZslsi{~B+XJG340m8k<`zZ-+jer7{ep0686 zb2FR`!|)^L&#zNh-a3hTInCq|I-QfjWkJ&XV*jz6BHO8?ISDzMVHg%1{|#mNX;d^! zzA}aaY=^|~8RBFAszIx#^r0S#+Yq?%n>f#NT-^DU$7_*Cd_t~g(b)ud2Zjo=|6m=j zPoMSzhK)9o{BzuHox;8kAas7?teo!a?jz+#zS-NP7TYTZun2|U*UUUEpCNus7!03* zVgM2oq>yMaKuT5@8Wkta0Z>}((DCtxrnM@Y!wh{ez8Pg&BFt`8)e1`F?Dz5G1P}3G z1n1_*wv$&(Ne%2zG4LFV_HnyUx}Sj7^z-J@2klBnZ`8WDsL5Mb%AKGDc+Q>{B7}LW zF9UP((0b9vPW)Y(+SM{(@G_py$YmE~yT@w>@P6)xE(g?nja zd+@0!><8p4>al;oIO~kNU_?LPVB&9P>F;N`2|XL%=vHltnn?D^uZ~GLwA5*LcF|ok z%6G4BPU(5Gj{4k}XYWD^_HXN_*Jv(F$oaQw;*MVpdHCtvTMHRK3<|FcDSUP{#J+={ z_c!w&^qAGgs9kz0!#m}>d4StkYna*l`N@P>+=aFHyPdK=9q;oA8>Cp{}rLl2%O4Psjj^v)=# z&Od5cSmhee5_QUsr>3lOM;n`uy{R6b`J&r2J2yk`oB+U!CCZiUg=}8OM&r53RD#z< zY3R+RAIy%(UJw99B%`*MZ8Gqirf> zqI!;Bx7n=0HyU&h0R(-ppmCA?;1sxs^o-EurNYYa>%c{XNYWm#^rIggV0i?**H zbpPWIgOw?G^yw^wKt=n)@pIm21+&+u zgI>l$7`mL+n`YZz9qu@Ie*fKe+rqtM>pD~Dw8Z(@g?rXD5_bgP(E{Ek zK_gfl|Bn=dWm@~glGE`)RbyZq%XRKGG=KwcAwHR|69b~+rAuBG#s^b|wZqtyQm=FI zYPN=}mgkup0bqjWn+5!H#vN0)%*c&2ESI^CA_JWjO3VI19ws)9w0)F=4Yu(jb16hT zL_HL}7R7*Yn3vR(OudUPrL5lEZ40Oc2r8U~jd@5T7L({1(c5CdPsNus`h{i-r6Vq|^D7oVIJhHDV6lcGUFg z2>AIZK7+?>@N+EU8%{pr*(9-Igo&@o z>u*HF{O>Oiwy*7#FI~VP&h0MnH0258AX--yn z{EaSP5>{}eZ{Ud^(EtCqA&q~P)*F8}I8pyOZCj-DF`3cif?;+a(*gX%tW)>t)B8n5 z*Z{lTeCrR!;1g$7--(KJb!t=9QI_RXe;a z1Uwk$sgAExKJoh>lgqG+pA*~8u88Xp#rb7h>JpAt0*ENdu?x8n=F3fV49BmQQh_X* z2tV*0;E0**HsJjAKYe*0#82O!siygK()&93b56-Q(ZMp%O|c_$KFZomr`TRqu zPm5|M1C$+gfC%=Ue}*1dNm1DFgl;yAjiP4}w7ijUV}WP=j6nu})?l^J%q^_<<7`wF z2O|{oi8s+Yaoztb#}%u1{oG~^L17givFj&j8E7`cL)}I#Z2RZ>Le@V@{X|A+15A$_ z$070n^!brQjUiZ|F*7|nSJy6^@&dw1z=tp2b96nTCkhW^J^Ex6Dyzc8V%K~V2uIDa z2sl#BoN}MWQNd9Uh_hh2ummS}q{N;@Rmv;7I0H zdd;{92Dtc58t76%ES5`mP#4e{iHM43ozs3(3aW`atq1f2DVmPkrC0>c5)=f3T^Igf zeXN~J8E~YGjFL8OTTu%WTGU?{z_Rw%lj)D#Ix8v3BLOxxWAzEwU~eSI5GO^?gjRH_ z@7ikga*f7!QC`+?Ajx+7f87VW&JdCip2tptlCBdU9S8qnI}3Wk3TfZQ2h2%627j09 z*Nf}aTj&FmYI?#(5@BZRiLrOB)F~Rr3LtisBh$5ceZ!e5sj8{%J6QiNZB0o3hHyXcfuCotM?hCC3I!WNFFHcvbJs|Cb!NnPatZQ8Y zi^xy^=Q*X|w&WeV_A$MAE6P^uYpVBBG(7F|w}1TkpU(pANQNS%wFpBSW*+9$ob#*^ z&)HVKG&(LP-4^orrhlZlPNG3U<5oOI3Pz4l_OCMML1ce%c?oxjOS(8boZ{o>@Amn1 zQcftVy;$u*ns^N@%A6KLIxY|k*2V5%+(k=Y8OXEzvdX~(DeUjiF07%Rt7yEDc;D#S zF|^0EdbwB!T6^k3xO%5%XPpq}yZ{?^79nZsL1z+u>r0)IbLy`)JOHIX^fZ}~GL<^v& zmqALxip8*AR5L8tQ1xZYr*&mfzJ4pik~yBh)+`Q~xMK*--rcv(P-JB)t7{U!f^XFvn->;lieC-Sjb zfN>_HN|>=ZhuYM4!nib5PcrFmVE(f>|EHUV*WuEfKi{?Mn1Fv^e}T^lIV1pqFPy*+ z+irW?zj~JDAGY{9D`k0P!pYe(SUxWe4ZAwPcwnIpE}KEcUn1~CGs9Ki49yyAf%-Wqznn2#Fe z`Ec>^_H7Kw6F7dw-#$5nDjaifV2g;?Thn4HIrJxtv+mhLA%5E0195&kqDkrhb}nTV z_uD#q+{Y1At*=S}^p~8|pBwY%FB1mG=D5gR8A*cTG8BN&NeId@Fmm#hlkCyi8W@=| z{xop#g@Hu*qO*g7Y5zeqb$^47dS1l^)XnIVWu?EzXFR^b2aoaFuPjK{(|SqkDGs{N zm=~?*_<|d0rtwRE>EeT|H}o+J=84l$S#gn)SC?X%^Frd$f=~hh79cHDwJ!lb=fm8i z@rr*R_`V8GUtjAqL4RaHseBA&wES9KfG;jNv`{X-&LDnjjljnBfld^RLnP(40`wMP z#U)M!bjki-Vj>pWzN6R3-!i>;Idv^cuj`)ZRUb29aPwjJv`(o~!9L5~ApZBE8noA5 z36@dPgaxvM?d3qkfuHsJ7(oYxQ4hR-wEMa3L}3wFIrUszaM(E)IA}?E8v|FqTX;3i zx)O_m$Y&VwN?~EcuZ16zqKb>4s}Qwi{m6qs_&uJW-a6vAbjrusmBdS~Efa&l(18|= zA{7iAbt;aN>`(ZBwMc%;4Oft{=><%bKg{&Vpcm=rY#!P^zzDKP`qlH1`#??4Of>rZvHJ{f2y4lY9U(7KmcjOD<(VK;6*|B|D8++JrY-I~W??A7M;O9Ek z=FtHIVKLm)hwgabki&^+=L7;^`*+~|z`W&{ra zjHXMAG%drgpf~V-xemODIWd$k7;^jS;Oo=p0|C>I6z74Bs^S*`h)NRi@>SeBcgi$XZlO zN=c7ivF?@Lz_V#{LB7)@xg5-Xx2UU8i{L7zImZ?=_M7_584)IQb8HW$@Nf9C&99^v ztg#+41azfspI_eS##Z%+lX7rSoAa_5mvx^sJCDzJL?VW9KL`o-Bj*k{OP`V6Wp0$j z%=C1^4LYQUBRwJbZ&fw+yHKYIV=DGW`CO*_tYs193#RU`Tmk1A!Zo-*dSzN@Fp52P z#^u}p&(GLU7eoVdD}YJ&*T(#OT`kVDSnb;uCmFkb>a`)S%}kq5&=hnjX_M<&CbT2M z+xporq4TjLQHG~ILh`N}R$^qjr~3>d2Tzpfsg26_Kl+;({jH2M_v^1l{{D-pd~)v) z*5+3QC9yf$mq9|Y`~JyO`_=ZvkJzDrL3@;FqRKvF$|`0tZ7Xch%KIjBhKb=e3yD*6 zS~mh|OMN^4a?}gXAHP=scw7g2r8`|oQOgc_#!V6#dp+S4G@?B?9s zDCks5kroZtm+Cb<3s87p7H^#1>KpWkM6>g9HxJ?CkoOyJ?`!}V+U80td|2cgw5d_nX5b7`f=%Adgh{6Z(!r+?b)q}BQD0sbiL=Y zt)EZ(_iY=!+R!g3k3GodB7se(K4yq=@sT|i9Ohg5#warNX7k`UHQqeK3p(-ntYOi^DC_5{Pgnx&v4eR>Tj>~@Ug3CX`|!KrlD-{TlG_Al8(>jwmSf&wbsoh|0v6Zome~n55s+A`pWi4vKS%#)#;`M zM+dv{#W~~ZlX`j5t2Bu2Itn8Frk_7f613--=%p}36gl7(dqO(HV1F(?Q}#cI8w*LO zQ+)EN(d5M*Ma}GuO%xAd-;9}%$%F+*6)O+@tGSN^ZShUfa4IehT00)A{kNUkh+_}k zR-Ywn7&|DFHHq>W@%p0&S-i5L8X=cqczEK2f^Si2*Opc8LLX5ERlSFiQj0X)K+ve= zfd~x0E<`~9fu`rJtXtV|E+C*q4<}+X*F=w)#hp#h!Pt8doy5t?BiGi~RmM98+;Z^g zVQHs<#G{1*59DD&fP8Bf+&K9?xZZj8}Q4i0ByEulDAMzYDUI}QqiHxIFB|_(eEtf+Pnb4iH z+L`Ui0|vol$_L27LlIlRymWUaSy~}0w8cA^ZB>hc>5SKuu4b>pzhYOp$sbj=;Nghd| z)#e5g4&Rk;=t#85a-~uKy?{18@y31##fhN^Pb1X2q)gweX<&dDJZ#Emc1ab-RHUQB zd!9;mvhy(=xxF?hZnF;`c(JPW+S;I*fgK?;^t>;^7eK0`P;A0CcTz13jU;P z0xZ41`OgwiG^F8w_&i1cAIqZb*Ax3tA|;h=q8<6P|De1c{Y=4$Aa0V+N&``6@;c_v zvEWPn&p(Tc26QBCMQ_b{{@ZpI2Y2FoD=0hU1FRy?@B|HiJ_@7sxBW-^;0u15c4VA6 zd05yiWwbwmiTxS;yLDK=!@b6}5Oec0f7(aj`Ud;l`t;3H^3Mo0qG(&LRqH-bmzq=C z{*ZzhtkF2sU>BasK62rmV96x9bvG(X-q!b~b=&w*zzRe6{~-juKDUXpqwOVV-|nnD zhI{@1y?#)(e?r|jgX~=pqrB4OnsPNecF1<{@z`DlUlTrSR&iCzlt$uC3i~i5vyc!wnm7w3{YlL{OpH+z9k$;ZvZW1B-Tz5;So5bRf+~km(nN}J_>)x z0}iS{AUF^5FKn%&F17~b8GpSLiF9K#K}Uy97wN?DM(bv1yS7hRAH{k({g{2% z0gwDL4E1WAI47lvzd_g2W5>JxD80Xt$=4Xa!$2gWMbw|my0F!B#6BO#naVRmlo=&e zCh&`v;iF(&u+0oOm!ooiMG4Se=EnP(l&Af8gUJQQ4WE+BVg9TnSF?4mWlZa)lY}&tr zJz_zd?Z0_&l7(C6wuisO;(bCRixO1O`2E-Rc@m)T>s-&hK|Z@EIOhN79*d{6e;u+v zMa{!cMC#Qdh>}6df%}toT=CiwyHPCyJrXSru1FawQD0u7<^15U#CE>tq}xD7tuyI6jPv60neg!p zOKm$tVw-hZ@yv)W16+KJTAfPvR(Nl>+{!v313$7!h zRq=9_#i17&5HJcG(Cr)Tq$EfL%nzfw4XqW>ReF-LggNZ!a2`%Plf{3z>H~Y7WwX?Z z6bNXvR$4ux*pAY9xb=60o2=Ho$9{UQI;S>1VD9L)9)}!9ZM_}hGxbAFBncYwAGReo z=nzAKK$6)w`t4xGbV^)H8I63LuQ&tXw_H4$a2FcPeTfy|nN%olRYWVwa5EeD2E%th z6vtnoEJLnSpGANFM;h_?W?bCoghu&gD(h6k+rX;#xPYbcuYVzQ$yoXk&@b_NUl%?Z zqwsV|ZXzo^PkYmWN{j7gwlS|=s>51WavF{qL^L+u06|rJP z6B0GBKXYU0D?rxi&HNiT#MZHh@kSVay<2BcCiW)2sSz7E`I>)ky*YCpuN!69yktJ+ zH{h;5))gs!5UVM34$DEH&3L@cgviLxZ*45Dk?kYJTU;B&NIdKz@<(zIUYIx)X_&kk z|NMZDIQabQ?jRG$H`ovTpB77Qi=dF#dKqkH^Q%}&^MSDPv*H}E*z~QO( z_&jm~!S?C6ScGP8&E-{6NVx@k?K1lGN@C*Rxai~8Z!Z1%3*(4l!d9XfC_B?J(phe} ziLE99$c%CXS6rhtJ&tfPrUu9(XSmtEosY%-z19@_QE!~Q#DM~av3)CHS@mAMKgWNb z-znocKDcg{qjN=Rv?n-B;3-K2$i*!<4+ndRq$zbU;-VXj(x|9zz;DtYCL{F5EurB4 z8uy~lTBn`$tcKAi#LR#uXB;*5{6#{P*}d_4zwG?8154_1`QvD6VS3L!x*!z69_`qk z_fOUY#QzTeOgFCaUuj#exQQh7;^6}($8y3ar7gye~&ez$AdwSlw2+1@b|i!>F&U|N7TYA7$8cpVhK3Sa`2V4L%)TCQgU-5JtS6 zUc)l$!1e<}a9NB%fqQ*E!2$3%)6z-0lT$LGt3MY-0D*60J6Mfw2+4;-*FIi9;3$AG;C%`Z{ zvI9SzQ>ltOB@|dhVdpJ+(GMto^r!XmUKUTq{GsMim)J3q_Mkol?`Ip6G#Cu)7n$bD_G6>pa7q8Vip&5y1D zs8IEdK|WzGdyJk^zI*TgZrs0P`!>&nF(sdOgWo+={Z9EOOmt@AuMkoJ{M742I%tOY<4OZ8+1kL7UVTCE*AheKcgS*% zIT`;OOl?jFo%YCLtb@sBy%74<4;vNbAhyfUercHcAk!1aW|jf#Wm0Te0v%EmVKbZ` z`x?bw1VZq<$AR2G|M>0om9+>?WNs(!i&ivM*)U_nSjH!mb`OMn*3#jOq2H|}SGBDo zN9NElw_H}0+j7bo7ql2NR^%zAyN{hDFJ)FygXa|1Cr+^{UY>+O{lL1nbgMlBtNd=f zqu6CmOKsK#RQ)X>3^|z3B>iXhx=?izi+VXGanROr0mJA#lWAekLBA`{PD2yl_4U^X zwH~1KReC*gYdFYa?6=#;#3~E?R6mFAW)v1J!zIjh@mHd)IcXfI&>^e{V=PTO{yeD5 zDa1Gv++&M&K%DYb1B@WQD$a`IKg6zQYLsvM0Kcd@)TqL?+6~HkYxGSfq!R>CzQ(Ng zhoqWeACxLW;J_e2MHMsSN*K2^I>|@d3)AXZ6ZMAK6mS;1$N>byJ$~#=;omX}z?-&d z*2cq?cA&{Y;7GfHeL`PujtZtDD=~=y7!)*v-9GVa42CxMN7m*1R6f?vP5cWMMJTY9 z2L=(qeA{?5enxLgoYOgdlY#|}EL`=QBL|~%b__0miSP&!6aVOHQ|m~yGfe|dx-u9$ zWFuAdwU%As10HkiG*A;B*KRQy2XLP zL}w$kuef5ZQF~kL-!=yX>pUI1!WW|$iH=XW`A9FwPz9$17baI0apMVLEzQ5{`w~N- zujo%-<^{}qk^l9XzRekC!3xkPf$M_I&-i+FWHdwx{Ycl4y)kV=OvfKS(TI^pFL2-`wh zI>(`yFe;OQd`?dNHt$`FdFMXzr;e{)<0_{^`T&N>)33earrRe9SZ{ERV#}RsG1%?8 zIslsJM}=W>o&8rA^<)V4AvGFG#vTxd4;@|FS#Bg7xe3u&WTEuQSbuAe@dIC!*-;4D zNDJL9F?Rer4mbo$4o@(;!c*KXC?DH&hiBFd4lNHbrSvBTJRTw8DH_&CS=lh76B;ri ze*2Z>6TDILL+7d!VYNuXM3nRb0ntXA>Fik7C)8Y#-F%!+!jJUWaboJu ze~fWvb33qp(}eX83NO<43+y|2eawV*~F0+qXWl_-HfF zzn)-Kv_fVIY4q=2VS&Q9Pj`H4p~elswORUEA79mo4bo&9QN5tplLG#Yl2+ofD3a zfa0o%mT&%wg<#tI?RuZa8qUL8&x_u&mB#h?dUKU!xu~g0PaM9xSeN%em!+P4$>XzV zYBr+nH*ejB4S{ekH>?+xD0%xBSKV>G#`Wjs14RkLhT_$SaYbhi&0Hy~i)(;B z1OAGFTv1*eC?@E^8{0UB|H@&4<9XRXuA3~n>NdOE{Gssl#lpg(KZ3cHjR)AOC;}^B zj_*&5PY`!LNb$YmTFx;RjDo(#t7VF_dTe7QR7$Safs<}8=n@E?JSjS2DV-%yyVG|R zqx~tPDj%C04LbF9{!?g9qFj3qGmCHHYrR}FjQ>X#L~8Tu$bG;IPg5n$rEUmh{eR{+ zfBfVBvnM0se5vgp6{j>(vwZqd| zMCmG^L?7q?6&6%yq6!7iGb`S+eVvT^{QP6kn0QlVHO7@bl;X~Y=^yWtnzmf77z^nW zSm3xLK~MyeDaj>iaHC?p_fN5mJq*O5oZF9>@3IPU+?5}gQGYwirsr!NYOn2JoHDnb zM>$`+B^T%9ze_W2f{3C9`s`82mp&WJx`RPo`sE}Fk@G_AQOrT z01h*~{lg}+5|Ou0H)PQl+ELZKZ6)oW)RjFz*_O3@=3cr5p@((42-s`eqCEEU+4`Qk zKI2N1P(Ld0(3;fLP6Tj4QTc<3G(!O}Pr5cn0oex}Iz75jhPnJ z@~j})Kc<*Y5G$dn$X;AFy~e(}DClE=Jqrt4>ziaO=t#fnDt+2?(gxB9gCGj>tw5@4 zlMcJ)_is==fy1l6P748Yr`cZICu}PnI|2-NUl(RnP>o=vOedUyGr0JQw2-YiIu?M0 zCgkZeO5yWK$q8cv>gy2=(T1(nb9?6OSR-{59JczHNO8r21mqS=|KjY;7emqhvAbAw zPC&;ndWHXef7pmwbX~tuHBGa{=B?(NFLk&sR${Vc{)P?)%c?F6pho9C=_0}jrfJ(q z6HB1>+O`A)mo*kxq%!|OZOw%){MU7kGo$!57FZ{k4c+HYyonVAyvvY1=(voS7m3%qaB6QQ;s*iBEgQv*9y*_yvS%2D+{K??(CJ zR)pxngEnVA5(xzlS35xmsW|gl0|osR)2{f>04Q#h|Mt=;r3nz%C2mqTnff;G z+^=S2F><{mPK$hxj6R{kzk!D@z>|!&yQZ;p@WM~+ zkpk8u!uq9th!1DmoJDm9*e2rvM&_bB+m&tau3_SplvJ&2YQV{ zV!#evc>fds!m^wE&`O_u;K#XUr(P4_+TFUCpvwNt*W!adw^*iv1A5lUOE2&=h`CWQ zB_~rb*Pv$&JAsAAnt0I1`^h-w+Ixz34~Ft8su6k6KoijrOuT916Bj;lFv(wP>(8R1?lT@68%VrD=T z{?m>mxHRf0n{m*oA@t~VO6Nx4NQZqS5>4*(8%`#v}K7#9>{8;awtRW|NsSVVRTMs9mv1*D&G+pzfj{q;LcC4{DquG7V| zZ{_^|2#{u7?f)a^J%F>Aq+*J1^1xo*ISva5TNEM@Zn$EJM`zJ|{1u$sFDzdLA7De= z!HFz?{DI(L{n^CwITyN$Wcutd=xf2}srO|3f&yCcGFzPAO)EjU;(+ar3a z)LcKn=H6ZXS`=<-?yFBnU(&SIZ(unmITr`Lb|YPZ${@Zac&vj1Z}_14Fb17|6|@L> z(-+|QJZEI0=l#1q$UqFshZckxaHHaMASltczHxEL{f!gzQMl5gfJt(&(_>VWVLGf_ z4AKjX))=0{IJR}hQ)~g7g)CkbT#$DFUM)fuVkT{_RXGu^s_R=p#8)TTj2$H!sZ-=_ znE<6$g(J{s2WgRmw3IY@0h|v;LLNP6*{k5{Q~yVc`?cG}&b1$OO1j9$kDw)UHd@vG z(P5PnL>nCbLYjK%lv9LV*fskm=@>+-6G4S(L*;p}o&i3NXaZel`latO-QZrQy~c`q z`5Tespn=*McEH#GTF4~#8Ya_OV+3@qm z{g=4)-Vodd=bT&|au|Q+447-U<_-mJk%`NvJkzx)vM3fW(;bw601=u& z`@Z0zJK?vy-Ky^D`DE$Si@D;iiN*jbG3itd^V6K#hp6fNE_(CMQ`FKNv3&c`Hv8i{%rY| zB8j8u6C%!!YTc-)W=}xxlV%VrkgY%+3CKgBh;^838*$qL>n3a3q~~5Ks=cl`anfP5f|FZbqK<5}um z%}*T01>mtNvG`ll!4wUQ3rB}O+5cxe^sWxE5>p%p-NUv7QGEH51^He#7kZu>Pn>+~*l&7Mn6~giNsP4nirPVlI^mgAET(h9TV~mP7 zi6xV&%G=BreNEaJW`s!s;fI#KPuOhuUi@@%4?h_mokS|dV_VCHMJnPoo*QYo{x=y2FP+q2Ffe6BVl^I6R?kI z1}^K`Ub^3yTH64@lFwMioaZ_nEqHov*ZK3GM`FEzzUZAS#PClcwt;@Gu3YZf zEQX0B9<)n@iAfYS_>GZ^Q{3$)8E1+i+VwEfEw@{tjF{P+K;}1)w*_4<>)#R7n%4_f zWisaNjQ_(818%+0wOPED0FY3Ay60C#-OO-PTAeyK_CCq;dyJdyYT-1{ffcl~0As;T z_R+?|7d3BRp;*=;FZ}2PWjpTI8me8`83tvx?+Ff;%;8FaPE+fCntwvD#TLSpzn;f( zz!Uvx|9%E4RNg0IwqoKdqImlJ<-e>82?{WY2)hT5d5wBH2Z!+1UkO#Tw$Za8FaO%> z>C3RkH@0@g#nZliug0%b6#OUUi6#LNJ`Nf7Cx9uUy`QY(*D0*{I)xR>sT-g8{QSp- zzIv8}BY6K%^ZJFim5O)qnfDLLfh_xVLSZjwZ!26XZ2R zX6thh;1iR-e$3si^M4RHuBl(*KYlGT;4e%H5##n*s!t{H+~TQYq_(ev?yUUeK$xz* zlE39-SmKJdk8**|F(gvu)5*)8X0$V5w=iC}02=cteaJetF0_;!X>ssEV=dyf_FR(i z>E|ft@v%--sB}INsyG7#hq>8D>6-)A(CX*CZPj@sFpa((%4d*~bfE}o;L}5zB-I!w z5>)|8g?Prck|ni7C~Sy(Y=51JVKm21^zc73dJAaDr&Cev0}6Vxs_O$UZ`}DUN*7+x zY(Y6e);M=@ch&_!kOf-eIzNQZrk9e!V4WyB-A0k5Fd(iFbc>Gmvb@`hAR^^Kf*8$+ z*_Z1Q69sb_L>Ef1uRmaVlmJCQy1)15O_?>E^p;`62@aY@Ti%99TWt#PbMgj^1Ugrs z$BZ{|$GN4BqK)MJl`b<`%C=5J=eF)jl&9daidO;->5R_91vOVwtZCvf`Ffh=7^|S% zcJ^M+WO;l6TjO)R9PTmrxbY9W+p79&1R>T0IeyJi|H@$wudfw?DImQidI!0P+5EE& z)&4)ZwLLzcSKI&YJ{1oCEw0qj{`L6)etdzwZ|XZq|2t~}+obGi=tL*JTv)o%k!GH; zt45Nm!6Z!m*?cR?ZL?4`wq^p8e@bc-Pw~~G-pLo)F}QXhA>*}fdg`U5&ycWt1hZWk z{3-&!%;Y2(_#m{q7ufa>u2W(>Y2ar~LTq4c+8+W5O66{0mM<}%*tj@X1Y>#*;n9gC z;R(&L@|No}+K`jRL$(dHAMD?J0TveH&`+Cxvk~)Ma8|#w-B+jaa;G=BFMl*`?zAQ~ z^s8X<^;N=Kaf<98Z8{W92`3Er472ZE;63ZgYq=gcQ0DWZHik^z<_BDJ78CH1;Bb+Z z53k}C+JB${Cz|M|w&bK+4jAVYRxJFuPvRd^7pAnRa#(_GR_zUgv^>ZiYfR043*2-I ze?S8As$Yu>97Fc({Yh?5CH*hBpFIrq8(FiVr-7VGI*F9x>1P#@y)BO-~%O1{xknmgU)ci z5MS)@p_E;%)IH+dH~Hev^9eoOv@H^`y-Li(Jq8Z&T?xK%p%d? z)BK(-`U)rv#T`0&h=$KJ-jq^rT5wpPF;-ZC-SjC)aX}klrjE3w!U>Ag(;nLkkWMX~ zv(C_BQjHjjcXJV8K?|-*Xja9NF(=0>Y&VxVb!yJEXxTxtlCp?BsKc@a87_W(um{FI zo%ne7v`3+1h(U~l)nkECmcZ!at;1!pnfO(G3NpckM|==4n9Hg}so( z4nlb>_-FnSbH;tu!lDCe;@1rdk)RHOJTUemE<}^}>;HYCzWY(90Ua?c*J0*RpvaKHK;J(Cif*QF7LpoZNB z(<&R}M{ODddazY>&d^Byf(a@*eV#%!j0|f3)HJr5L4X0?9^m}a&x#Lqi8n7Ev7c&v zU*u?C-Lc!x^>nrG%@8g5tm-BH*Lqz5Vxffmzd96D9?&@M`S#|43Be70(H!0JAb?(a zL!LVCK(Z{Pn^~wufU`p#Or<2Pj>e55FL3V{i#Z81ekn-<3Mgi-UQ#f)1AQ_hco=d~ z{drk}o)=7H&e;|XayT_h`a~A2 z_aSKRF&3QOFk2*?&*BLrjiqr}1f+}XKickd-)t33~(Rtk4|t0%-vc!>S)5+xf{PYbFzQj=Qqtw z`x93_7hln+KKiKbgWvU99b94oqy-Y3uH_`WIOZYIL9flWscJJ|MT`HYR=<2k|>bx|GammHse-W1P~Dboq4)@ zTJ_~`i6XIYgk;y(twUnF?cOFAR-`r1((ib_kJr1<@g1ftLmR9b%lm0W>bz!WP+SX| zq}9jTOfi83 zdHX)!gljM`&OK_i`|nt|O}lkq46?tu`YRm1oaqSp6UZ~nV59rs)i+2+VQn9Y_dt{6PLLprGNlH-h|?2BUEff`39eHogdqdF#d|I+y3>{fA#U#AErL! z1FH@Dw`C5G;l9|+w|pBh<$sdH>(#N~J-C_0Fc$}e?fv;cAZHZr6=0)9&7&(g|#Rlw7@rVTKZXBoI$ryFC_Ap_Si4YASN!447t!!#`- z@q{hM;FyCM z`7VIH1N~x)E*n0(@*wm-i>)d=G{&tnKw}UDGP&oU8rkALz~=lML3&^E$pYVGe25!) zpHN264L6BHJw66M%qx0BXb+$P%>jKrKJ%zIZzeEI#`k-*{s-4yU4ILaKu^|0anVWQ z4cpc?;t6a!FIL>az%~ftI{2;zR>Ey4~-C!Ru?1~Of zV4$F($PVh5^SWTL9}WJK7uB_rtl5zSW zQo{@zXXB`^rk>m^QJ-ihdx$$RaP0sjilkU5mPuw3+wQ?LOE|Spq+M%=M3eP@na;nP ztnVLn_m#JmFgCe`M15Nb@1p&+Y(5=szdKR}4`c3oIC2O8YlGa3%e{;QAY|ArUG1jL7u&u@BP@V48Q7@;;URk^WD0_^juSU3Hq%2Z20Ex}Q_ zNj#hUL%W$>y}bR8d2)m7abVV7D{}|xBcgLd$&-?_b)I_$-tv$3*S3uS3b#1pl-lY6 zX6+yB<1yZ{8*5Hp@~tVuZ@jGypJWw^p4tvx!fsgDd~f=6aVEb`v&kZCZ!VvIQDA{E3smE$UV%e=0AW`ecuu|uh<|N4rt}pX z(pt-f$l&RNF}j;^H)saojumZ`3_qxJAUlig&5=Xr!H0os;G{ye5H^p_|0f`%fp!HI zGz@UL@h)j5wmAI0Kfj#hUiX)CdnNe{(0Cv0zi9&6>~=3*%D;@M-j7?7VQPD3Zfbn+(`&1d={+kT@CV3! z;9YDR5K}`-eJ=~R*_jtC(#_T2Q%T7&kkw+ad4>fpc6fd)qQ4da4Mlfo>RCDt0L0Vc+h8!8N7#fR+7Dk32uiE06h1JXEyYv>8l29j%k{UrC>22qt3xJKk=Y* zwt2Va7Sa?yxWZ;5cu&XhtEjq$A2#&i_Ol(XQir}MUSTb`XvX(_g5p1EkaatUk6Wi^4`-Nyx%XX1y7^1zh;N)_cv2a5{L{e@h}P|_(!D9 z#Ak~xYo7zqequv5GuQ%pEpCFNo!W4(@bG=kd`c<){^R(&l{}DQ%!3riu>oQ-hDmVA z&1Sym$AGot9>=xr`J_DAr=FQdR=zx@Mp_TpTV24`#Tu2fi)$gwBp>ZV-zh z?z0`n;5FyX!Y}B9&M_eyj``u)dDzfw!QX7}oz%#Yxi$bRW<>ilHoz*M6kcc|5{`!` zs+ED)FEe&tG-M-IbrhUw8FMxB9VuT!$#1}$sNd8(5cQ@~5?~oJS934q^R5q;53ce242G8wsH?={X+lA?J;JgCs zY$~(pvbh0^2}9=%lNVgL28+Jm9&x+y&vRXrRvE<4V#)u{RCb8etwz@3;Rv$MQ5b8L zzcCPF#0+x=;4_;=Vf1f{Y@4N~-u1@)82VIsJTSGG2Xe=OdE^O;k^#`UmUX?sbmImc ztVad{b?KBh#QRwlA!BkYAm>*ub079GfV;w+UuUb_>dX2($DoBe1vNir(emL67xH>m zG{}g&M-vqtzJ6`0;&a3VFwc&F8WA6DQgK zqiM#R6#@3a^n4`Nm`iNIyuN=xyf$Y!6BcQ`A98=WAY9SB(!2mJG<3Yp?k9)e6@+yp zz41}^)B$@_nYfYm2NOJKgkU*p$*M`)Z?sPBx8Ni;egFOQ_j`|pHj*NDSWCo7obyE% zNJlPp?+nEJim;twk&mHImCjPW81Q)g>WNZpbe(J`m7cg#a&7W(Z-Epf4t~RlV`0&L z=DoiE2M2gt4{u$h?HELEOa(8rMX;NPes7vbo(lRa`;4g1L6pcFWu=dRjIKHMwK&4C z-smQ7OP8Sr?Qw9=LbaSpgO>p@OOK%Tafl;%McXnn(>K=Y+g3w-{N`Wp-5D3T2gFOQ zS;q?}#_`@DKj!g;L__$n&j)hi=l`TPQ2q{r^Gq^KaCXA*P3!k>b5&5Ae+JYvWfZ?g zQUsD7gLHB+rau@KOMr3ETOnq2{@`gREjS>8fOQBzXQ;Mrl7BkM^U$yv!c!Uz%awVl zg5BDN>dh<^sI^)vXukhZ3PNZ%E{=h|FxF?@{W5e2?0~cO4ep~Xk{+~drA~uU6f6jE z)AKK94uRV0^O3)U4ESrURisnwKu#XGnUpXY)-rGDaPU*>%7h1$`{F-EgTm{3Wh)@e z$N#@TnvDbZIh@GMxMAM8{xgJHPa=i_!imir;{Q{$n+luJnU@LZ){&#vWcH!Gul zA>Qdq?`DX-ipR~iH)A_1t;NXY*cDU{4yqsx3Qr-9iD%U$K@zaAL6T7DnX0VEB8ImV zP+#K!7;KWH)7>FAkHN%?-hUjF?d3?(k8isoh=BAn-j=SqhM=dx|8=@ zgP&@DY%*@`*wdIa?=hp3PL2Y{|FfB6w!+u5)rMsC6Bqj>jp=iCYzuj3IV7I%@h@L6 ziTk*lG>-NI8;*oG*B@DP{S+WS&XetrK{g1KA$H3LD!o4m%Ks0(GROksB9~`aBV4qp zAOrY^W6lqA0%X3~FtN3ei9XE_>7w~hIR?|sVTg5;zMqmtLZ}h!X5D%UKx!ezpTcv~ zYIckL@A*Ggy_>qtx*KoT!kN2%cA3N{1CL2i2^@1OY`D4Cco{d(P#jypNI1Naeg-u! z>iV#qCq36ydQb6S>xGP6#%$w*P67SaVuBl1 zzRM9p?T``T%s9_wV&h@HTog48noRf%SHlL^he^|yA;dGGY0pl%Lz)G}aDyt!pRvQ9 zPj0(g-+`c-&{RQK1<~Og@VUK>W|&+k;61apjauGEZBthe_(uJfOsZ?^(j4n~BsV=$ zE+vP?Hx8*b?*99qAO6EN-3$Bm5gS|-(KgAz%ybaUWcb~;*xc5yEoy=3vaW0==R2lX zCc%E-KhAppa6jcxw&zVo+}2zG4s*qIU6Wkramr#^7#T|lfvT8v+ z8~{j2xEOP07P6E0DVX?&@kN#<_%D9=G;=ag^l#pj?F4K*+#qK&0%ey@SYU87H4we| z81n&oKcSMMd zzE6Vf(v{mdHNu-9$OTRq@RR1*2uDztKeCP-`}?o{zu;+vKsjN9Att-nWE~0Xa`YP- zkT}y`lmP@i))3UT4R5mx+zeY7Zr{noL*Gg|es-LdBH$$!XMJkOPTFmSCV7DRJ@WUT z)|>Pokw5gL?co2_EPXYG9OztPH#SAeJ|rKr%mjMv_Y9g8=cLS^*YnrZ20+qfsGmgZ zw4*in0ocTm2t>8hR9^QbVNkBWo4Q3K*2fLl7|0&MLwTe9g*<@wyQ@&2z+Ct>puK(0 zQ$`psAa3UDhNlk4l0-S$W!4rHI+Fk|5ainq0w>wWBREf#FF~v(UNMZ7EO)!6mjKY7 z3s_OU*j`UVe@dL(OX~doJ^Iy9&Yzp%hMU#1G$epV#IwoLh0tViGh;kLAn+R#mq2&{ z+T%`Zc|LYV?fnWJv*TlZb92Ev==i`j6fElZgibEUn=n50^z*^ee*C7te)i@5VYV4Q z!Bno(;gA-MZ!JYPa_=N&AvXvbTa8Hg&V1P`Xwf!WlzspS>b1`N2{=EgVD`~Vk_~TPtpuIt$i>gE*U^oO`h@7w-Smpu%41?LhZi&C?{KeZV^mpvwmy&+{<)L3dJsD*l4Zjcus!@G(HqM!v;W>}y0Z(!?fW5JS%H2VPdidD{-=C|m8$F*g}<5=-D9%aGs$Q!a-V^pCvJ zz?=h#$lqOfs{D>vAUFl4sxWGPjr@_H8zZd6$2Pp|A?+xPorm5qLprHJ@_d#(Iuk`@ zgzbmlf~)}-kmHgP|HNzZ0D5JgP!z zk`&pIU%}$9pSpcYFlYY#cJmO6{~z0-w>iN`^6eob7Fr^&Y+{|c=^spi3vAYX)6y{z zkX5)P{M%eaDMWMAc-qYNjfVbO9QZQLFo4+?qb><-K<+Rwe>{9036<}nX}4`>1FPqP zUj#S1ST4bTqT^zqHvl$*_a%qURx6*D%~FUvjm{kU{(5S&VLp-o(?9IV+QvF=dHH#i z-mP?mTZ};8UHLpS{1Rl$IRC$WwCy%^m3CGtK-nyNJcVn95AAI|Qtcfw*``EOM4#&X z`|_*Kjv!b-`ozR3xaeMb#3VDrx0mX6ZGa(1R*^b6cTJ$U;VgIvO{uU2cF-Lv;*YYB z&#z$&`RB6kqB$ef5CJ|-O6qK=W)E_FAC2ql%MqHaz0=H1$uR6{BQ!L`pO~YLuV62PPc@($!g2R(V^;?87-8cQ-ao%&gB3;CulAWEZ^w=K`0^G6WV(K4wG- z`sV)|9f(Wu>#^k|q+=V`8=*vk-ks(ly2>cgb`82D?6-dj0jM@USHEt%frj8_Tjesj~y< zNdFHiBm^bKCA4=~8E{IX_5hd_Rz}6*13jRqPta90ZGgVTrCkH>5^mNUgbqG7=0W%AjnR-smKn)X<6!^9hC#^Xr2H(E z#$kiBs0Nh&o}>4~@4xTgdOppbA`SNDiD!!m_o!sNm&rfcLz><4Jb9$ET=KK{BD-c~ zbNMea9@v^(ome_NzL*VPY=ovRAnSn5_e%xrEek?`=Tc*6Y@@LZ0LOOYz)IZ*Os3{$ z^g{>Ay@&REXp#G}Mzpi6OWRzOw-aExd-a7KRaiUDtX2Py!Q8_QRrw};2j zL(5bXt)k>7&jIjY&Y=OnN|^RgO)~E}qbRPz zE2B9`H+}g8&OvXQQzn6!{8e%5$d^^&;~>jiAA~@TW4n)x12UmnsMVYfZx?t#?-&C< zYe;lJpSR<7-!F4P1@;5kzT7-wnro1sG?inoV73D;ie||O&m5qc#OC&qW{(S>vE$k9 zr746mfF|PhgW&ezdoHq3^M9JVHMkVUHc!V8&lXlzfq~8$@QE2<$6Ufp&1+HK(U(`` zSlgW&6}xNTLkPb=$acv+VFRd}po*yrz)y-Cp5eku7>e`>qfzx)JDoy&(7J6kfNT@1LX#UT0 z!1t4r8~caX^@87+;s6w8VfyCTSd~WSMi5F)&Y#2XAm8R&d%2;}8s5RCW)1QD(6jo# zp3?$Dod#Whzig4=;s!(CTInW8ynlb`{q{)&^P$Fg*+3$ll{Ro=XjrYL{|CfP^reaG zf~x4FCdbaa1czCTdkWA6McKr&-jQSz-IC!%$GDK++A)-ck*~bp!ZL0~ylorLz5S%( zHM)!QZ+GF*bmU(UtfDN?R$|&l>MLye9T_6W7u|2-XEvEO9R?&v^@F@mO_31UnpLwW zn+~M`aQtsSm^32a{KMamo4Cwj&wl0GP!MRaVG>IONc#*t2cPl7V~^VcE77^B3bBdT z)CVTAW zg-)%eYUCvKv;r9T^rjRiOffn`0sAOI@?0A~xarSk+Ew;(b4qT+m~rE&XERM&4B$2L z(T$c~1J8sek#OomcO4{4$8L*l_=_y=mx{qjbgpg zyU-r7z;7(QNN85VU8s9v8|6d9B6?O^&Ru~?E-e}d}Y?5C#kH=d4H!v>>_GaAn^4L^(e!TvtN*WQ@D(~j6N$c< zC3g&XF~Y&Rg8jsqM8mqau5;c&P!CHTxrxeyF>KE%r=dK1KMDLDIisIN=vU;>B)Kewok%Lz6}~_@y|a-U%#W==u_wRG^6+Yf3CWFlZI*i06k-ZM1a_BWQ$vRC-=e? zi_;7&Mp%Dh%^`0y4hK7Mr`XuOgw!3M0{O;8TZG1Ymza9oh`|Rld2NpWM|gNRR?SDX z$t6x=Y#19TqedF_Onk!BH(cwUGtBQx`o9n+P_NJDzo_KnorKLf03?h|&QYc{5VrxQ zWw?E;mI6+K0JhWDL()pv(VVBJ@o)Jpt&)|1+Ef31ZPfhak|eL2bEd&BlJyE0HqX{FQJlLX)t^ z{eaL+$cl0&0oGgyEBKddH1khx_tQak1NIi;gAr<}yw8bG#59WHh zKM!ao<9wK9Nhlg3!5dg@bg}V5C~vmFObGE8A)wz4vBe%ngCDAFhORXf)-qY6;k^+^ z(DP*@HEaOn)$;>f=azwNp<7Yl!@@0K*wxW}oG79U;69v;+#lyOfByb=^Zpl14o)y30p~*kND)qNA6Oqo`0qI=P?Lz*h<{=YtBO-;W1 zp^gIM7bv}(gkC(xrsG3rT)lgGus0ML!%<8y9dn7!h*9N~uT~wA!k)52f5iv%`0_;G zYkH`GYG~uJM)~!iIMv$udJ2Ir5Vo0c*$&z?OAbQ=GV2Ca(OC%HfoXFg3YbhpXQ?w6 zM@hZm$Md>>{%hlL5pH5a7fXlc4S6Nof*BONu>pn+9$I6`auiRMkV#y+foB{M{CYb! zXRtG$o!lx0Jarf4V2Epe@`3V17p%tRVJbjJIL~g ze)L+8FbyAlhpl$!6z{J=KWxEjVW#`{of8z&OiFO;I8Y7o=)h!9-r=Q@NbQ>_-J#iG~x7{0E~!E7wgvq86FpK7}>9yrtprKO*t7*fg2J zgA5b00QMkV1%U)+pm4>M=bam7zADm3u9GR?GFZE4qLkn#=p6D`Tn$F@$Rwe49(*Hn zW%BUG_ll0^6+ePx>K~jT*C5AEXf?Z7=O`FOzs)$0HT2j_+av2tvjMQb-@*zt%ENOJ z-9YHv7v2o$!9`gACM|jQdHV$=5q*jXnpp{KHA&)P^P%-E)z+0P!njFv#(;L*So0Bv zeCk7RYBDW065s!K$coDik7>4&JJkY}F9O6DwgrW~LDFx~m|c7c4ktJ~zaEm-+>B+g zR+?BQkRsPbzfFWTk^9vEovB}0;=%p!+Tb|w;m6#~SWemG35<~;{esFd8~|N$9YQmP zsV~!c^xIQ;P5i-UB%zMKH-&WcS9s_CKMqa2-)WkiY*2m6C?lI;BTORIpdsfclNHNs z$|LP`jaPc$;z}(sd?_y?eINX$V?p;FB4HeO6L0VT*)`I3!oH#wcc%;yBtb6Bs8DDp z=*u2@ASU_|&{m>xGJySQS2XJUEg8jss{`%x> z7coCM<7FJgUFMr{gUbw6@v@)%^ZQWuX?Yl&bqSGk0`BDK*H{aFZ_9zI0Y=g;>Q)3L zq71HiFOvfyLc4=PHJc7m5yaAUEBKN6nA|2%2ZtR1?Z!z!?JMID@>}dgIWEjkqK)L@ z1SN4Kirk>u2x6_<5=>26dqQC_9=90Wa?B0ove}Kf8$+V_xEb_XC_8`t2F^BbI!Kw8 z#!6)|!+3@xO?)9}@NGZ`vta9(;zD05HG<>CHh&4*K3O$jp?NVjll;1)gU)~B|3mcw z<8T92nfrt;4Caw@HW&lH?>KK`1BOwkpTbn;T?k!nWS$7??4#iE8bZW?N5$=hp^WEa zb%#ejIWd(svbtCmw7K~wC9X$#iXoA2dpi!6w%4xIQVR>QOT``YH0G@$-K^sMEVh5( zW3dAl{^%_;bgG78S@YzoA~$C3YBe8Xen`kSv$)ZWwD1Y>LALKLtE5ZiUUIBlB{Up6 z(eOTX7&RRrpB%`xhG+d|LHpAJBEM$eviIh5=Uaj zz~Tb}z}SnCjU0cHd=VIfaU2u+E!Nkqw)5JD8~aXvMKTQXw#FpkHM!E*mCc5vlj{ng z`|!Lr5`~fXUi>A$TSfN49z|~faquQtBn=Al`}+G0uF=dxdvSP(A2FI;lnW9c@b6+R z8FTYZG_s#yIJpmwg2m)NB*8uv@lsCgRaL?Sz76W-t7ek_iTsRz&iIU2WZ_WkZ1`_` zg!ymV44eH1PZ@LIcS4rK55laiULnMQ-oN^-jsrY{ayDkd?#_$|Q)oyyAVNltG-SVp zU)eG-z7}`F&%ljLb5rV@hc6?5N_;A%t=Finf(fCFsm!(H1B|hd+^DaY2`BLYr4?NC zO%x2F&F;0l}mZ#aFiA<6Y6pZ7Y%6LV}kbZx{AZ=0*< z*LB8z|DKcQn*dg3JSKX{IFEQrE3|xp1VBIG2j&%Y)vI8~*jy-Z@)e;| zBMkmsvGOhQkp*{7%+bJL5jNrrdZlH4JU~JM3&uAGn#iYcbLqp}8;-GvF=Sy)({DBe zz=-$TC-3G7F#rrvpfy5NwY2ASUz9t2LYv3^c1y}BmITAJpzYy43hNO+|IF$=mXQ7^ zg~z-3hq~8zTyFyv-L2f-_wiS_hDZMW$DluX*V?pI1p#1Cp0xD<##i8o>z9D9%Nn7j zwMlEm-O5LM>=MFyp6dD5a4MP+k38VEqgm<&B))}#TKM=u7jR-BVSp2wJZSHfdmMby zIY%5-`4Rvswk4hU2S-ptNu9Ry3eSUZ0{Oqa;!sDnmQC*{GJ#Zc>$kenUb>Ofj7ISb z;>{Fu{%;gv()djF)Bn8X-h9f=$1k6UuMqj+o9LZW44kB8T)a}o4up3a-#<=T?0|?L>GVjdQXWtlG+HIYTbikPdC>c282AD4% z6dxfV9G>0lV_l;V6drPmkX^2G498u@B_0r5LsJ8)nOh9VKCo5}aI0c5P1wO+DC9bT zX4FULzA}xpjzo3fxfIPKKDtj{wIH)jGSqNG`$P1#p|eV84=!upMxIP`aDr$DWuwCv z1KMil1dRS4Azu@gBGiB_HV#E-Hg+4B%pJxyLp7WDgzistK--L`=kicHX5kSD4SZneL<`Kk0fgojQBOl4`+Sa0LrQ++l<@a$Lo*(D>@@0b{Lf_ zgA=B0=RKBwPI+_0Ilm+r^r_t33ZD`4da->!U_1Z2&1QkMonK;Hza#*FZQ4B5c0I9m z`p>@&l<&XNX#3Ci2D!~`c@s-B%*m%Crb!$jGc_Z-8Tka};)7jN9C{jT=_3~7!5e^) zW1sy%wB7AqWCq@{T47`p%B*Yl7tuj`?#zMc{{~|jE;0@cxj^&l763wI<(v=c&8V2M zwqn6+|LUQ-)SH&zs7rm3gE*TzVX8-n!+|;>vM8k;G9Zp%{>OcE{(+sTO9j_i=r%b& zqqa%otKZy({C~_YK>pdFXE)J6;^b`NHNEC6`yw!?WShsZS%6fjxAlPThgLc8WfKll4s@fWjpI}Wp`e<8cwH_%E2N-U5 zafhtSv4GW*Q(E%}QJJwjKV{f9ff;YPfB2SEtW5-28 zY6lo@GvJpHAfPq@Zr!XsQY|@wVQWH&l^83O=ekbcKk~_oFd=91(gW+roF1pB=(j^U z_Vz-dD{R+y-3Mbq1*^QmY?!+*WA=d_jjc96bq}2ORUy>m9$X{Im>&iyORl9kFyJAP z6&9?f<%}bLxV@~5{AG#AuucQSm@DH&!bRQhxzV4WnppUGo2TQPr^|JI9VN+SFHFW| z^Kzlk>|>N|->TUTH>#5QK@b)ch4>DiJ5GaQoMcC!d;szj8)3xAf&PPoawO=?prB+t znD+qhS(7vb<_BKRJ}F}u+i>Q{MRv(y6afU=X0MSlKn;d0=Y?reK%L#p@?;vT0{&dv zk80A$WRPcEHgZB7o>x&1&NV?YoP{=R5`_S9oV4*q9g2&vO07VZ&Od>xYih+~P|-Pz z;q0apN>#S1O8+PSe~3G!*Mik^UqeIl&6q6npNp5h&Kp2vWEh74MF`>gP>qt#Lie@- z?{oazRwryexQ1&d>QVM~bn6uE(3BDH$WQQBwJ7K}w-Z}-AN+xjLZ@VsU5Q=N1xpkcvtMqkWmdz-A0HDoUBpK;${|wVu=gT_%)(zTw z$*1f;S|-l1E@cD-49lKE!9&{@5r#_Md{UVg!k=}oGiGH#IFB|qCIWFVZjeyObq^L& zI^8;qEBypWqa!*-Hk@4ILX^Sq{C1q$=$`rd=E$d7wS!yEeBnSif6e(Os9-ZXZ8e7k9BP-** z8k4}JhN?xXFR6+MG!)^$Eh6SWT_b4VW5QbEINFk3rf%qB8{bWBWdWCv&xVL0?0JjJ z+fRU8$XyKUJuh}V@3|U}VO|$4Q2B+q+q}esy`Js(LEQsS+yWx_wr|Rd9sAfY zUM?#1tvBxhfU}1yRrQIwO`q;3>=5hGK%jtZ!Ry33ZSw$!sjwCGZ-Fge{NzcD8{_br z{~@ONLK8j(7Kr8}&`3-pSonG7qx}FKf=0*DmL$HX>xL48v= zkC7|Arg_td2HiU`UbG!pXdeOs0@PUMDXV@92jzUn#X60}r?VcUREPD&Vt@RG#p5?l zvsxCFOZg5^pwKldJoKcft3E1O`NDN>4nbD95BlrR=l5VL4m2P3Lo&k$d$fUDk7K7` zuS)0YPFT#K{9&WHy%~h`&}ugdkgeLFYiv-YJ^NPAm>r#WAm!W^gI+Uvo9g>(Y_Ie1 zF+|rC7MiBnyduR|f33?$(<5o)d@&QTC*4%{VT0Ty6{ejBm_1uLzwHw?61yDuatQ|W zY#7qZ9vVvEG7kSa^#vtZ_2^IU+wt@r8HV~dm2C+>U7 zE-{>+iRt%`8NYN|)o@8)znSDj@6*Tv^9)<-mjF9$iQ+D{|D!o!m9S`kX%LzS9S}kB zAq@RuG?q|4j*@!*%|?|2nuv~1M2kbT7@I0Xcbz{Fgin^n_n#ML@r{js8^UH&q@x8F zcLWb`h7}`Qvh@>y@kv$(kMnPwKi}z3=R^91JySy2xPbe^)5tS1zxsuZF)}DM7%*Bo zb6bl`%pnoHD#|7udmbeNM;J%Gy~$QNF}{alFyshISPUIM@!%kJiJ6&R2DA+RE)WpE z!__|S7ut}P2MhkN{B0K6N7A$wLl^+O$FSC^Sn5XhgWZ#CmeSW{M$kTb!XPTmAq_&X zQuqTJz2SV)GTlf!f_#-Q=xKrL@|G$FYEOcS%`@YY#BsX%e-sQp&|lve=z8=2i5mS4 zi=YvI>_V*BYDZMz#X=a^3gje~ufty~V?VfZY>s=#QHrUE3?^kG&ETGr;9yJJoU}`~ zyImG;2e{U7QP&mf;6Bml?LsbdS4LvOyzO1^Qce4|=2JsUYQF#IkaW1;SY-3&R|SJb zQ|z%a(U2~k?=>PyVD{;7THUcRH2>?G8)%HT6_*u)T^!~IMJP_m^@*m$>DVl3s}AFJ zb*2S?;FcvoL~tEY#2VFebDbF!C{4V2#0T4cL>xd#V)wmPLb5F5udPSTv5v3X)9hYw zai%coZMCf%(3@|B_!{DUnu_G4q|xwN=3n1Nf_(TfSgxkwWP3GHlBsVnh-_>MZBfxqxYVRk zo;QC6xU=~*9|Uo|7J#4E4LAhEhWwmvg{0G0UAOqzk1P{Z*%#V}7oE?i3n6J^Q7Z10 z@CFv>+Cn@Bir1i68g#$k?t1?Z(-td@4yI|8#EQ$NPz^EHN20M>{Rq%mV{U7ZF;FfM zkh}>)hx9|E!NLD05iuvInPU_fNEf~$*TZe}VK!?&@9~_sd0QYKSqd!v+sPsfSV8widkjX!Mkj+o=oP$&aDv(~`?N>c9NUCmHDp6zI zP$W`73blw8XB}hE8%itAg-X%j{Tq5#ehUIsVGgQ{l9L~pElww2N{|MA9dYshFp4o5 zr|`HvkzWs;i@}96vXM}qNk+;v8?ki|5jN~|y*7wXCgVs7$Y%@tW|O=+_uZzH?v95> zd==Sfg3cg3KFD5hth4}JQj>gQE>E{y@q8c#?e5cDH2+&cg%5&mG=MuSNZ^xV5&|;L zZKYhD4kO=ykCX6{&h0k71pvDopA7e+)equvLy-j2gUyArp(}ejGQFiyg)>an z)`2wubpB}P?RSl$@IzT^RO@Ep1+)&W#-alZ#v@quXUOz1Ct=79%Kw!J_E>|YnrTq? z<5rdR%g0EsvMCAy9Z26yxI8yiVd&raU^;3Zu0cfQ{m9_^2i^a%kr361ivH+aU_vfT z>^k+t>y%0?O;rlqDg>k_R?{i=x4l*{O$f417oT!xJ6C-^<6cfM-a_+%h7No<{rdY) z!)8;iBL9zozlOohcrRV$N|(5sZ`1Us_$urlkps^l8))-JsSEQ1Z|*7lZ*JKvq=643 z3E}O5iuEiEQ;ZGxqYX;x72n8eZW+K5HvPbRVhQ*^G7C0|ae?@lkiwy@hXBB|L~e05@$+%YYsOL5~CczhrFGhVfeMqX&|BcsA56EeHy5q>|vGP{{HawomoxP|I&$hnPU=Ygb2+WSs?M>Q5lfKQ4kY?`5Cv^Rc^z!GDKBa+ z8L*W}5^nHQx&GYrUerYYAfO@7!MLu?vK1&FRnQ#&&!Xr1c!?anr(I12-v-E7fKPyP z9PwY@f)yWKh=*k4n6DbxX1+e@CIY7WYUX6vKH*S8iUp6U9~#82AIMZ6sWiiKq_6gE z@pC!UCGh(F=hkm;g^jNdVsyx{f*ppbl0HLR6AyK3DmpLp&%@8!_z~X#SwN=09R`3x zJBxX){@>23QbGe_6lS{(V9v+$V$2ZNM)-4{(VAQYZLe6!B0FvDCZRc!l=-%al`z1;6$Hiu4oL-qz2PSH#QpAarAlo>e@2lva)hnu8Te? ze+sZY*bHI4!t}K^Ipv@|!&JMG89Vc*?t1tz z6bA>}1;TfjyTJ-Gl`AF+om+DbM2OXBTe%lnwjVWjMbm2R{BmS$hgS-;79?8&1aaJp z-VjO}*(=||0!Egygl||FJ!l~Y5NGo-8@LcR%}pCmi7t+_cRk2_pUm+7mmgdj>4+dk zlpIKYWfvw#5QNl0*?H1vYHuNF?8Mn@aC|p$OHAj#0RQpyvm`Hsnx=(wP7J!+1iWtX z9zoZ1-9x4aI0EvYHl+l8#m!iJtn(*ps@Ep4w#@k!s^qWoQ5)uo4cUhM5K`7PVlFXX zfUzOx(0c(&sd7qNccgv`)L@5k3m8rk>9}|XznnI!LBO!{jRIr%PIV^-5+i|pZAAnM z2F~j>Nn@d95b%ZRT7iL&DzE2{oGrkp9G|xONJ@2`G`Sfj@1X>QUjbAc&fD3P8KVE3 zmw!euT;;9kg{+LcJ`s~$S$0F?ttaodvC=a_pS2V+sUJI`LbHJTL=;vDrrj3bE(`L3Oqpi$ zNnk*%$R*mmdCy6AwRxn^XHhu{0#BRH;KaXEfDNOZo=qZbE?LnxrZxS`z#_`$ zjLfB;wMVoZbS)&;mLb?$W+wepnTh`!#(P9qjM&|z^Pb*!o4G;Pz_|nY2;&AO6Eup^ zE~M{+MmnUa3y&8stb1=!r@qhzj{OFV=bErd{}o5@XCiFK0Yxq=Fc~eW20pV zZy`Y95{(P<<%^DlTTOHUzuAYHqx$Q}|Ld_a;A^~wFbK84Gk|YT1v)euI;Hb7ANjXm zD(*Ott5KDEcigkXP5E3;-P8gTI968tie6XuQgyW%Ax3TIYrzafE!PcZH_xFG>0+33 z^SC)lEO2*yWG=h<*}54pvH$+e-1*6UvhF>JkVR~5d4@1XVC07=8_Bc&7Z7Cxtd%gX zVM1V&M?o&ix+KJr*(<}c7GW=&dZZYEKz&kHn=jx!N$cGFKpfULOc#P>p1)r22Ff_X z?#2^LABnve6A9``9Y!6Dw`5AcP(aTbIDZII4$?|?OkBM6i$z@{S7Hlrp60^@;!ehVlzxSFs0jN!-d zdsq%{xH=Ng_E)4^_hb_8R|0B^JFsA5hk~4Zk_=8DGH5yh4VFcvel@Q)nh6jCNi503 z*f5rx{mBv7s+etWtUt$j$sphpUG%u(1Y8*oGczXdU)~mk&8X45%QX(oLd0RE(KZ$b zx}tGc;d{nC>2+{olnu%=kj`h$7Y0LsUqqb0ZkoV+nAJhP=lM*@KOTxF#{Gsjt;feW z7Gz%hXk)IFV(1t_bCSnNNd}gLU-~cGJvg03+g}r%@~pQ84Rj+sK`-76f}@d+tu|1A=e{&#{q?0dW@i36O_`lgm@Fuaa^btl$ zrIQZmnP7P9&KoB;^qm1~(Ok*JJN69!2Vz;IeJ$>9zRblqWK0_81X*t&pXgBk0o-~Z z8NWF+bSDkkY$A*G{zU25SnPD_Z(^ZH190Wdi|LmwVa-tC8OHr4Br|i##kVJfpY9jI zqMsTkgtqHj;KT+S3?t}s9x5}H?=uO6MJw&6mE-P8Gr)7Oj;dooNTa~5N(^YV4~krP zP?%jvdKKjOBzcDdXJzCu<AJ+dT<3J#` zQs>ybhl+V|Bdq0;hYmYlIJY-e0An%TWgo;P>)&P~pP~9HJuj|_Ea~dKliI3c*e7_pZrTN&ik$4skgc@m_B%Qb$)1yP*fCBt zBn;v0D;P=@_)9FHx94NPx9LG`09jmGg7za!TZxF z7LeD(rC{_z?qCPOPU1!Z@VR8Cb*1unzBb|r2vz^Rj@IDkhvY(s@(Y`Vq_ucJha(T> zjV2m<5RNGMyWq2Bql<6~Wy%k9?uZWqz@fS1$=TzdkLdu<{Td;{EgS28d7Ti@xj(}J`!`C z9iMJuoKh#{2q`P%tWl{vJ1PO;Kk)YHQ2n7j1O)-%$8m+*C^ZzpuW3X>)p&{eyn)oO zc*8a3^Kwc!#8xp?AvN?w8l39R;t2#~7i#%7;N8ZWq<(8%mkdAh8MkT^?VR(eUNWUp z=+;hC+WKHE_`d*nX-k3mqQQru2m%-~p$kdLd<`>#r80^cys_ zuCJ6B@PFWm9@ZMmGlT%)(#$r!0o~rR+~x!{hT3N?M*cnL&p$q31F{VB{WI3Jf0X=s z0mnwHZ!iE5=FNY=o-qc@?G76VHz(R&I43=8||fBibVD{0>~t=&-@serWb{zxhPHYXdcski+ZEtFJW>5}@OU zA1o+xZxIJS#<1qlsB|uPzEakB41KWiQ;t2lY8Q5h$s(U?oO649`>i*B#0Bcx_k5Qy zzyF5{*zEQr(DI{b{;0tPOl2KPzE`SuqCVqC()-1t{08;~Ojy+w_W*VF7Cnz%*KH62znDA@@xk#iJGET5m8DU8YS zd0q+5jAAX#H5Mt=?8|)}OW4~S1x3<}JBt<9VX^+kl`rs-MWrDw^uOoCoo<4!_O~3` z$fD+$M#NOiS2XOmnBzuay^-qmH)=p>O7r(tki!+3u??@zsCYXdf`cmDur>c%+iO5{n)>mzhB@98f&}EmKKSPnW481b8v(v>p&b?wI+`XUx01U3m$=xBnsnmW)2Myvyb2UY&xA2+y74gPy%`ueB% zt-9OW|6S(u;iPxmCv_M&d<4J!L&W0#Kd`Z4(~Sbmwg`RXOAQ#w0b~Z?3s1e?wp{%a z+x24PAIojDCvs}E>m{zkn(AQ~e1i94{8w+MrquD_Y&v49qufCL-#S5>V^FUC&-lOb z(pLz-n@MHF$ALOLHB1jPecJ~q!KO&R$uOvE;sON(W&qi!14Xnk_M&4?o4SqRJAdN1 zOF--d{~+))F@qq17hBXMr^z*)z=@{gGP2>wC>Sw$ccjg5dJr9npP#t%pVHB>qk~$7 zCyEhKJXM!o9f+vW)l`1j|b~i}y-!Ke1GZ5Wq`3>~}|LNKdzAps? z1yQT40W#izwLey~;4B}(J#l#2B7fIC-6U#3aIeiko@$1Kr zufScOHmBe!VPc`4<02kPrkx`&pPJ;4!Yd}K#K&Aii6<->V>sZE}?*&}@@qehsY$SI3g^uug(ZkP1{4C6f(3z%J zhXAcH@_*DWK(5$M!OE72gyZuOfG>cqLo;*&a^o=7MP;_3yzAr^7Z47p4j;NzX?IQ> zV*>FZz(ON}+u&6|xbQX3O9jB=bOal^`}O5E z9s{X9<6?c$8*pq+5}nq%qq@;oXKGiK`)N;meYWeZn+Ca76Dd{=r?&G2(5Iv54v10S zV`jG2bA&-_~8}5qVb*Fm`Qz4lpsc z46OrU>WA(BG3kip5moferR)0aZ+vih6H{(LL(=@+MC9Dj^QaMlz8YM^nF)a;v0h9PGAX}fAX#GDPvS;iPn#Dy# zQnZW0D_*#uiM~%L5_JsX-v7N~mnpw7slZM6?POGvt)PWO;u@Q=c`A~5Ve*Z5qg}1- z=fZ}9#0qaCXFG0lusM|If3voJ2gUdK1sB+@-^+?U_J#Z*zyMj)@HKDAeN?I2Xom6| zeLgp!5t8fqQ|Z9GJI3<_YzpP{Hc#Ic;G*_amDP}4@xXbABApaYOmP#Mv6W-fTtPQS zoCz3@Oz>u(;v44w57QQ*Yv6x_m?1dh++rtcHuqAFZh@g904HXI> zKer?JZ8bCWH-=307%Wlo8s*iY-cNV;3o~?7JmR0#3!8fLhJ@}`D!N~a=F8mN1 z>2>g%xY+L7UcP_K{TK&YlKLmvhtK$vxj}7`ra>Laz3a0sj5hzZG*CYQjUj_H675Vt zQQ4mLJ}Dm%b?mdsMHDlzQAaY|>*;LHt*V2maZcV}BlPsMl*_3{aBpohuJxN+ptU0x z#sB{5Wlpeh(@bs1IQ!SYL7uWM8)Ij0`-J#VjXcY|8y$DdhR-8?K@CKVaW2#%4FV{D z99%}SKoRvDROUS0ffDS2JX1LygqcypITrMb|NEM}!th0!xBt`r?fK-d5Qa2s&O%4r z6*MGkAXJ0%ay*|31gA7`RDFtf_gCu)YQ(gR%52oHKol(hORn?ZOY4 z!=EZEEGo&P3%pBWHAqMWqXSYlXt)80cv)AQei>WR zk%>lwL_e|3;1?D@`wL|_9_xg%taJPhb`2T(zdkMC7!zW=0rw~Yf{KQ<`gYz;y-XJA ztLqyagwro@I{*j9Z7t4*5}h5?Oya#w_d+;syMgFA&Iy}w4hlCU_jVvzdN`YW)A<8D zTK_%f!e)Rqr`Yy1SFEBvpr|VL+l2?;#l0=q>$ej{-K8M(RkpHU-tWhK+{NA3O}j3P zyZ@uBliX}KJ<}S63V<6S8Lws>4I^_L;75e4$%i7hT`>j#(LaAY;+k-C8&BLj?>R|>L`^o9wt9}@w3Q&rWm)g!nA^`m<-l;+$Res(np@|F zwH=7vA=}Y$*#QIQorhGnD-(nYlGHX>N3=`hT0Z=(Boqx16sr2cVBZ69U^r z4pGSqQ1eP}LA_x*>HI<_k!BWDH#|1AC5)sgb>)PL&>+;E`$3KVUtC3pVzhiFIRrHb z-F^6(S^uPr!-BRky^H1MeP%4$K4QmB^}jgLTX87_Jlb+4R|g+xCj`B)O={ zXnFerom$$6Jo*|L+DCHcN{22-bN93AXQZGL1eBtS9ypU~Eun zlLnu35M77&y_MkQglKP1us2YOSD{lu_^io*hWMJ+XCBgnxW^GZuAB0o8X})=O;l|( zywJ-ZzLaK2Ov%@K7{?FK5uHHU3C{8eO15IIS6#6@2J{%YYp}W!z*_1(-G(3 ziU<^`&I<|7W)$aggS92e=iF$s-$jH`+(>sXdyoEnf5arU;RG8MtgZ611KQXqcQRrO z-k7WiS4Y1lMPRIWh?#WZzVc9isF$3e<0w;@MhgsDE_-r&+tI?B4TGYK zYkIs!7SeukGvcVdm4SJN_2e2@E@HrC7=+07d(JC<5^nQ@*GSDn?)J6Yn0nTLL$(AP z3W*K@a}rK(UV%2BG?ZDw*gPbU)5da}?#v73XdboZNZ!1FIYomHN(?uJT(2z%g=UNg zvK5gW)H5AmvA>@Ul<;0n+60WZ!)yeD?;p7S=TD;|ns|VZZ9Vc}Efd{eJhYt%rh$tb zefNO}N7R&j!y@lxJrFU8>c^Ig=Vx5OFiQ-dX}<50dV2Z*1}2%QdG6o;UVr{!*;tGJ z!2gANiVJ?rDYr&&>D9@%D@T`3ttA=XrqfZo!pjh@;7fS}+Vn|ZNe#nBP1T=Zs~zjn zshp^wZ!(w}HnYeS(+|93gG83Xi!u_!DH|cBW2{w z8wM2bIaM2{ZN%gx69r-zfd}!z+*o+Pm73fTb_Zw&sUVL?BU5L!c5xb;)X%m5*}*oG zM*q7t8lc*yo-2jlYj6$+Y}5y1>ARIsEI_sZ z&i8#TZW=Q71o(f)tW1cu)su!6yx#W?Rpy5Ei@^>Lcyi(g>FvB zK?UW)$7;U706$#Na|i&n#O-5)>#i1Fp#E=6c*inU-=0Oqurg@44I^}9!Rc1lScS=p zmO;Ng(rX5y@s2>S97kOnZ}>G3UoqnmiyT`fdM)VLCW-##h?zHAT0yWGnXl()n*(ER zAPnoUCP2Nc>R+EUm$Idi(^D3HqZ@|U5a^g0wU%TOvG_xrbsPa|vuUfT8fnJ?b};^g z)f+K8X3@r5xN8IVV4|kV<#_$^$GegB(}ScTdTc}p4%RvNy+!K`8WUG6RVSnzdVGr% zo{2JYRK1GrIMhfpWS2ShZ{7sfE4j9O+%sKRls=6Q_mY*LHQzrdev^081(FWYlk99az#!=yg4JYa~wJ|J|`a+-n-Uahvq@Tpw!5n2UTNOb1=YqV|moFCQrX zF>B)i6Nu$Mq$?r2pa_h``A{Wp^36RL(BeqzlxN{Mi}dBGCyu@-?goAWEnh+86qf6` z<1pSzW=;}G>>1#E*$HKmT#IMw)WI5qLPUzcFgEJWO<`3SLm+o7cE=Hgs2U%6?na&3 zCzhQjj)qONhV{@AFh84Gse#2w!2zt+M9HJ*8bO2&tYzl|7q=$>5I8M%Y)2Br;2}D8 zV;LZoW%S^A4uMmxMVlxg_mgXsPnZEjTijR2kYbjJhS3W1o(&T|+_drIq7&68`w$%? zu<7kEY>n>sAkdhR&Q()WLMm<5rje|Z4jh}uv`fa~lkXTy<#t&9SY&9SY3)ZXZ@nSJII9yW7&M`W&y1ffORsVEYXFBz z#y@NN*WDowBy6G!=--TGI@NyoFURa+QXn!yFXAYbdFzuzdHxx{w-q~SwHEDUTbuWt zX(2u?F+!h$-kv&BGxyr?0X)i+`es}R&E;;t*3s=4vX^4BU}er47`B{?XFl+C-0ygT z1%2iOf}cvx0I=0p^}x(N2*4L=%p_3US75V#%;`~#pB=1h^?wK>1hMi<6{ixH%q0Jx zo2&nSFch^%@!0@=I!;HkF>C{YE%1dnY|^1NZVyf>Xq*L_tv%@_Jjxs@KyZhy;-u7h zxpnFjOaBu$gJORw+eg@Q(Q_sBanl~8Kig5&B44I`f9)h=GmS%_t(27)>JZlPu+o@= zPTfY$(q9*{rG8W3FMIv{Cy)E&GZuQ%eDo`=`4_++>iJ=RIA7zY!^yn3)`{|^q-$3Y z+X1Hk3WtZt1d)5ivgj;SDwF`cvgDw66_>p$&VS23tFe(!V`lC}EP587Ig+^U(|Eq&x0rr(Xm=qV5o1)LABJGP|fH5AzLF@%L zW&Sml`UH-2z}objyJ)8!UzR3FG{hvDyTR(*iPxtQrKLK2ry8SxI~CvAOsS&$jD=Zs zpj$p|Q0?g6L7+1fk%Ucy{HKjHKT$IMMi6$=TN1e8Z=)+hQJI!EqYN21vgw-BD;@BU zq9*4^L&|9P-eVcGb(0W-rZ!GA^iQ;+D;hv>f#Jkcz+9Fq&NZ8@8NQwgaa=4KhDe)sieIoM zlTyCEUB$Pn|L>sJYZ6fY#XS^_!pP=z2(B5%<~$jrG^Fyk-6E%taJlw+h6<63(chJS%IfCY6r`2D=kBKmxNk%2l0V;{Jw>n~dMhBWBfpgB7@2Pl^1( zeEyToijJYV1Ul@98!GIJ0r_@2I?q;$04=L+=rzGczsS76pT?*=>1Z;*&jcDR3zvKg zL>Scz?{&RN0#HWTALw&{yZKqgB3JJ+u}LrfxW}nY0o*i)(VH9IAnT#bFJji7_JZ<1 z#qW#$O6cyxE%6Pkhok`hMc*edc2nkJqlxveKNAUm0)AVA4$KdJTOAici*~^w2`6HW zGg6JQd|d4Z4I|1Xm9!Z7KbW<_W8;pcra{MXnwKCNY4Y=W|KA9`ctL+KGI^yx_&nN{ zD^GC1ow;gE;0cPQuHnfdBt`D*TP0Jp zW`2DRnl{!3_nfma^{C4@uEkK%-hhdWp+TV?3WMq7`NLh$N^Y?{#a=q6i_A5M+hVBT z+{?d=ZBlE?D7yHzI<6RI8)q{oeEl4;mzNtp747CFH+WlqCYiXEI(8Yoe zIlmtnz;nJ2d%(?D0DhzkA)s^hx$21RnS*ecEf%O6Ho*)!5eZduG9+B^N!36YW{Q?z zD|%mT1+vR`@tx04?}zqU8PF?MCSK0~Y(!&R)Ea^OFZK^HID++<_n+96!OKjW(GfKH z;4Q=lqx!!Iq4Mc+&L>SYGN98`6~5r`%bLZo9O;Tle#qpoN$$=29RE^uVdIUf*!UFK zan{C}9}A(=8-ebb*4B+*&_)UT*o}(Z0j$<@WV^WkV{!_npLD5lWRm&nWCrIb7aK~zuyOO1 z#^ifQuvLgMAeL}vsn)pdK2XqfGZk@Xg4jQqtzwxIKbT3&c~#%5L7)7#1S>4yXU*lb zF&-vvjeq9v zUb4}(@adJCPQC5ygaQl9U5!XG_9JkDkFy4YEuhFuWb$dfLnEA2`Gt#cN?%!YG z^sQ*PG;7>I_eV~F`xDsJpj}4d^qSv38jU^7R@cZgH?ARRV#XQg#nEw*e5`buoGi$J zBdz{%P2GvTr;x1Ir!=F8G{VvAEW)__55s)P4{y+Z`xtSD4X?@Bt%S-TO(#%`L~;>C2V8!KH#t&M@H%5hqMytW)B9y1NP+COHt} zNP8!8`@Q?mG5mD9yT8Z_mxxH39Pdw66QX@Ln?wXS_QnCBCC|6$6fhs}Lm!eCY;=pf zu6+wLDhfK5^L@psHh+c};2@XaaYwr&`@{G%;iKGE_t~zspt?%lR>;rYFx)6ZZA~b6 z{DUE{N?DZbw%fni=Sfu8WDGlg82Gy(8TmWb&TtTO(EIP^{#j_I4Ym8nm>*;H0?;N; zWA}j~wk3XLTsv{e2iyw@We%MGpBNhKe};0z`~pb>HZtRIn>D^?ZP0Uw40wp&n8(#%kwqDGg3Ao)>8Yv1gRPb<2Sr;?C@T6Ox@nz z(!)(U=A)|ap}6a2R9DVz;$feB6V0bvLikexJV`@YyAjK-?ZFYjL(V_{*z@~lXC~#A zh0Y)mSk?cA_5Y!d@HdlXX9^#hgLyr0|2y`=4M6!5P5~crVP*3%H(R`U$hFCe+V42s zKmHC4x#zRv0LJ!=v7P^W6}kZJ6)3h8`PGwgR8HU=FWQ9}yg2lmadYqUQ4Q9A|NGjW z^fZ}$ya|3Wa_sOo*$XqCdi4r^?tHJ#Wt=+J26mJ-A@m-8+`q~}5vC@4jZYZ3 z^bIV7dj@iFwy+)GWy*cCvE2x|zr@y$5VrKM@}><=uuWsqK;ch3yI%&-kggfVfyoT% z9Bg=TMqFg4a>o^B&C}Ek zH;__tCiC_N+6^mGg=5)B#;?5v6=PP(HtJk|Tv_ARGm)DyQE+Z?f_gJDj$GtE0O3Ua zV}Qr^xBzq63#xG%Vk@*aBtiA2OYg6hDcD(D@htnr0H8zv$i*UlOo5T6l z3;0*oMA(u&g$jx3cdEc?*N(J-Kfz`)38?_(634BS@Vtd_!~M+T+~njE{MIq!!4KQ! zjQm894t&!zW4R&Cc~w0uamuY_qMI_d7q|+D5sRzT{4k>paeBwe%eoJFro^DnkRI}l zSa6=VumbF2H`|9_j4V=QU=8XpzSVmji(=2$Mc?Aw>Hg7;#*C6U51Sex{>5=T?((&n z!^mc^yM$M9b@+lcxj9lPUaJ6NXN(Yz+4fv*{(=mzYFz185JHn>G`v{xz@> zH~R@uHonxw^*jzu>2pN~*ihEDgaysB1AX1x{rny|%a67G&vT0cUIkb9V(Ymf|3N4m}s^M3i0QXI9#Nn693K zep&|G03ZVNLnU4jz-v8FkDw_1l>}C2*NMy~Lgk>w<}EI~=0RaHemAE4>-?`108xS6 z;A*CuaZzYo@LmY<4~~`_%J;uz)+A;z}nz!En#d^SoG3*0L(m@#J}~t?jasuoxJOS7JGx!^ zwORqj=NWg~wH2o?e6Q9*t9cEkm!2QC%XuDIpv0(aE4YcuE8e>#Q`^Ar0XVj4i;t_|Y@$17a}A*BOv=-67 zfERn(_z25Yz4%vi=M#Dp--`*F?&;UKk>1|m>x>)mNTA-0^2PW7ZDe*02%%%gP?XI7 zBnfD9_{ec2wKopUMxui=zZ&Y`Bu-T>fOi|d>3R({g=R<05vkKy=G?EDc9yMLl$j4N zGt;+m=YGal=X>@>aqu+6z=42d6ieWM>pe&J_Dpg2M&jTN+W{NH$A>ywjfyMmGsp^3 zu{1qe1kHEGBK7Sywcx>+I?P*NC^4|rH1bcrijaCEjAK@t-;OEM4pwQUGFIe|k$%60 z6;xou4DkOaT(sus&Au2^pFEMj0a(Nwvc--@vTOR3$=!c@fW?9V;2`mNr}YbJ_ZiYC zo-MwRfbqQ$-wFFS1ctr-dEUZuR9NL7wn%=%F_@KZamw!& zZ@DhN~;3PJu8gK0cqbqaPYA0si;gFZTs;_SQd?}x z`hM`!h8?Rf9c-09;~Cxy>l|zf4ADEtWp+Vl`yPKm098Db@=g$2VaZRzdb~eTP zL9`;U9g`cM?Wv9r&HFls$7Ue)g)guWyIYgrZ~Z?yFicL=Q?mj8KI0kzT;Td@6&Q#I z_UKWp8+|@5U^-mTgknY3MB9a9Oxu&v74Uvw!%7d$o$vVwU-2hc$lK zMcDdVSK~LM67Em7<@9kqHharPf&a7^;cHmMarg_r+*i6VAN#!fk(T!q$s!IUZZ`Q5 zqJNmNWPwj{rG$ivwUaO}^l-WwOE;?cQ($f9u%?Q9oreCb{s=ZX#9L|veMUbSr~QhF z{TpVl*XHP;(5&t_|6=>wfsHEMvK~>IGM!;~tD6Q7 z-Z0%*C-*oL>#2>}%A}d>vc#F@bCMgU9@-Kg6M%Juww(wU*qJNIIQv%rlfIEY)Ha+& zOw!i?3p&QPupndv7}Dd8htDv`&%U@R}#{EwkD`Nnk1a*v)~iBeV%ALFX)szvXwZ#J3y1{?vrAzJ?q{)_LI_Z;_mo=b-n{ z<{(SVbrl9FlO<|@6&53I^*eP?U=0hOeiOFZ|FY`O&@BbSifQA6jG0u&n z0@7_{;#7MYysQESLtpb#n=!Nd!|1dFY!)Fwv7aX{>xW(i^PM+dwhFmuj&7J4j9HZb zkdL@}ealYcW50R(&_NHY++Tty_02C!nYYHLSl z`XJyM*C^Hab8=NdX!wqQh@&F*(PG?`~Z9YT~6;NP2tmRw& z;hjcvmIBXRsz@6&bC5vDjN_h2p`x&T)&A_?y^zXAd z`;U)bD2FyXi$Fg$5%ze&u(rMtuJ;o#IW9XCCAMtb<~VQod_!VTwNRWNp9R8I2^>mH z&TmG_W>j{8yuxA z6U)7Qz~%y9?)e7d7mg&Lhbf$RQE1(FeXJ01J7q**#Wxj1SbuF)eG4by#+URR!bJQW zq-b!NysalauorMP%G}pZEnzDo1&8{vLFeAI5vP+PL2&hD`&-b2O$aY}%&WCisty^H-kO zCdT6FW`kzEp&PRJfv(New5buWiB|mmdyvKffAO)awPHS$74#NX%6yCE6@CK7q8`2n zWGf6Wd#(AwQbx7VFTD@+wOWqy!F$ z`}20f+Uy;@jAbDK>tW@Eay!;lF|#M{Juz3Y*Zs7GwqNxZPEZ`5^DRDOKR0W&=Y3=S z;(a>O$4(4zqy_Vr9eh-iB#4;O4Uq2{{9??fDe(1${%`bT$FanD{=Vc1etvFmHDy30 zrp#=63#MSX1GCwHvOX_5t>*zxZ^L)IvJP%C7aJf2v4E-hOpev>Z$&>vb=++%fjh%#QQ{S*t&7fH*G4Y9P~b}m^l$2PqiU1nC0fwo z_p|bv&l<_6RRq;B09$IR;-aZYF`qnisTF zhnZhPa?jdsCL-RDS$WgJ{~Jf!I^Q!x9kYcj@gICD=1p4Q^ZtKwfcqSmE!HZX0c;JO zs2AqTh^Cv(X+NoB(8&eSPgE#6hsNim&pWOp!I^YQXI^+lR@Q=kDM(gbd^%#eR#;9S z&5zw}e~iTd*ZN!ZMnCEvcAjN~QN%*_HzfiuYAZ-9p8QmlZR7RTQTv1oa~4FpFqZjn zX5+#E=I@(l1TuBuKa2xo_R|rtI^%QHClpqgh?kJzqy#Ruco#~}C`4}ta39_shDjhg z&dtnwo&AkCtvbt$>jH#-!9{Ed4eI*OaF8$fpcigx!nI|{8!kexLLBszcHeJ1T-0(s zj>X7^&5DJU;rk(WRW(R81zZ{)HhQCCXx1Dc} zSM3`MK(b*DIkL#V%Ul{WAH7QM?_y%lJ)}# zF565_C9eH$LfU<#kB-V_J0+~`A11Q!-+Q=v?2cAAr4>%n?=`~09<-PrZK2|Kgw@Z z#_In@{_+6$A}aG%^cx6S;FySK2G9|53C3gny>Z3&WpK{>U!P&aijL!~o*UVK^-z9B z8>gl?Y!EetE)6%Q{|p>9fo!dfFW7Lmh7XNV(^7EFAz6Y3nxM@BHNNm)2PvLNlVc@+ zc#78s(SgWoBPuN@Wz{;M;-LzMtCP1kS|vID37OkH$!}Zl8|U{0G+2=@YXOmT*ek(D9>{R z%Xjkgwcp0YG3llUbPJvIrj5erv?ZvandJP&c3aX0@bl4yeNqnNh@tAs=-ld4Vn}@c z>jfKYBcnMZuuMWnu6pBz2ctCx|31S$@b=oeXjF$+GP{ViR(dTPJs|{vHmZ^S*Fvi-7t{1qdEw-~i=iVH`C2>tJCW949_%DWyvoH!6~8Z05L8!4^hN+=97T zBGb#x>}5^q>}#U4o|A#kDJo|3#Oq$10Mt*!;j0jvp=B&NczVN;G~=8vMBQxKZb((m z<2sn@G|McTGun(u&9x5ojhy-9ZUkJi47F9nqj*i=K5q$rIc%9?gNw}qkY?bNc>VM|&%XwbMdar|$8FKi^uM|o?4X~Aex&~eKa!54C5uYS(Wp59T zNkM!ndd2;JWXWzs8~B+~56B=;SAA1)#kh!)q(`tFV4k&MohTnz@FSjnVsP~K5}V*D z!w04l?0Wjp6Y zbLMYjIlxDqcJZbUO=26x=d3kHn|y0=2ja+k6_W-?pzPdmyzfl;jluPZeUcJ(g22PrIHGQ=jEu-i_5DxV|>$VleRFK3NcaX=(V;%e^i$jeY^JjkuRX|Tf#*H$diE=pyI`>>nbZBle$J? zZPUlJrI4a04W;xB?qq;yn$kwvUNZJ`-=`qGQV)r>XM7bQ4SyWBjU5>|giXhP)8Py@ zL3!>IZxs~O7_kak7&LsLY7LhWcKdCY?U=Wck6x=ylM15JG|GDwBVq|sm>_J%6BK{Z z5LWBbF>4=~_izr#^PRdP=0@Z<2L^a5X1U>bYao^8JU`TiPJ)#G^7!&Eu{5)p=N=-2c}Pznu4&+oT0` zxbgpeFcr1a(2LzuJ+FtPDg|D8V(+?#z6EjPx&=fn-PruKjQj z1zC*vcJIEPWVsw0nK#mXLjZW*pKu{{M*BhRurbzmY>R<%E5^w~VPi2G7STCK8A5pt zzzw};p2?_6UuNq{91NVW@#UY5q)jnQb5Qyd;ide{KGJl7{SQM3BZmzczS!bi0Aol% z7ccKWw296rlG9@HK_IQsE+Xz)E#2Q%Du+HvH1!~Yu+G(DLNsP-lqW0ah9F`Wuc(BT z-M9-~Ol&j*3%k$ech=5_xV5p$d(p&sCKCU_Tn->NGi@%pi`@(Z3|7#BsA+wO<4hkg z&tYCrTxoT?=~DyTtX8dSK&u4ExY0;#2H%qjqv1+^+n+5{-WFa_T)c**=ESGn0}gIN%|N9<2NDSZ=^jmx(-v$JZF>LZCOczo@oninSP1ZhyX``&3A^=ZGgsLBtl@nbF%ZMgU zUOhLiktYZqZYB)Q)mL4{wphk=+^_$q4x}0nmH?$eV@`U;uqi(y6=Y6AGh015${%i2 zDUGo+GbfrYR`LPx=V@-nPjPJS+st_X^8sDQg8dWyzv7F-g9r3OhsLVGTyLKlU-3;O zzE~%B*&&$bLk(e!-Dy{0{BSMD<_p*;R&;(t*`%-Dtm{5~{qPfwo@;|pwtZlov50S- zqq)`YM|qDHG9}gu8K5;yYP6FTdZ_G;B&r@eYUDhe{N`@INhTOZ&?YCYg%b1@!D||HTzKeZrzU{GE;xV$Cza##0|NL=g$J6d z_pobnah}PJ76mV8LEDidd;R|iH21o==S#lBHdhrw zaIB7Rg}u&K+H9TYa@CvLi4`~SMl<4yemx&_G^8q-Yf8Y(Ae-tco@fo``vhEXL& zGzsL|4($Tz3sJF#oUo?7_zsN79dILqFWo&d*S#g^CSL{#7}o>+-)mkBcts<8N>URO zzZgO=t;vUH4R3p_tELsDinG?7YAPuIYY&2aX>;rK;_I(gFP?3@uuyZm(;aRu5-Zn% zp!~-m$?$K9>47E9EG$N>o%*`g`|TlJx8pL{xWQ}(_b59EDC`{Mz*-G5q(hB6TWWwT z-wvIh5I`}DV5iC(9yO&hD4p(p@sV-~ZVWXRN=d*+jQb`qvEg-Y(MG*uItDa=lkm%J z#OWAw>&t-R8~x40NlXJ$uL*&Zr!6-x-)NfA!zRr*A0_TW$%s30{^`&V_0#0Fd+uk*lfVC*8Nh?N>+PU6!fO z+|as1$c6a?D>g5mI8bE)Yi*&0hR*_}5$&qf8}sds=N>%$_I*>f^&e@I2){{9G;qwhRma$Fho^Kb zdno%sCBxq>7G=!nheMDXiLnwGu^@T z%^-He*>OuKIj%UJsA$swRf32$AN1F^aJ+LOHgKlb#iWHcXJ_sEEv(rDK`;;P8K<3i zRvc+TBzq2LMwWmw7zaY>jcRXfAD%R>)E>zhF3|-x>4?gvEdACo57C>G*Fa1T3;^%O z((C*GNNCZvc~;^ZP~9-}A)>FPo=KTFz(Vvzvl++35E&rY!{eLu*URor6_HRZh9rJG z8s)ad$7uQxZqgL5GOudrAO4Vs_vtI+#erS+eC%tr!RHtj5N%#)W+>BMd>*10Hr`rK zypZqTZ1a&($D++bbAK2>GrrM;I=FHkQT|U9pnZHesv(+xB%melLN2H#Y1v@RxSR1Q zK}f7YnP&`3y2`(fer~ZF1I(A)B4VEcB=6#X9ehS{2LaxecnzFf4{f$==jjA42$D9O zpN2!YaV$Ep(^np;BZzBZ41(6o31Ip@qmdVl-^#+L0^V5`;62I%?Ul^|FFq(CSrb25 zaVs8g&6;r{K-)LCk8(#`^uz?_^APH|Sn7L}WfV(cQ_Goj)z_bCuHL zIOouYPviq4=+>;l^RNzB98W0PR$y(~kry6QTsZbQw9Wbd6GvR2ryI>?5{~W7MASUW z!VLKIZd7ra!e^2OW72$dv$2r^J=2&85oTtZ4}2q%$6eR4TiRi3#?cT74j+26)7 z;R`KWNzwUF6ji zT`zI_A+F?#1;3l=lS+;;8EFDw2jK}oK7DIZv{ra}XeF+`IxkG~#eg@8%n+SBL2?N| z)X*_TwUPz-n%|gceEjxv+vnJ3Gs(^(aIfp0@_1>~(qs16qHst0L?;9a7MDfnZ zpaYC6@vx@S&%GV~#LTo>44qaml0F>mucq{-V(~T{znNUsf(3A3_W>YahV^C_8bV-8PJqrc0ny!oQm-fBiXeERBw)t4#;*7*LOAoeY*Z zLV^inkSfP#VpXWI;6#}%J`sc)c!)6C;9ARcG-E2)c-h~3_|*}m>gtLi$-?9R@82Ig zz}fJq+rftdgb${)1$@j=pV190C-8oh9m8|rdAzNMENKUDdV*2KLl#M91qJNhq#HM$kZz?p3uyPf zDhQ=_;tH5oU1USLGH`;feUZyhARqqe%FVFZk%UnIpnuPqBpxh4(^mFE^hV>cFK2np zd1F=K?64SPW?Q|l*m=g3anG15Z^tj#{?*~jHU1^G8BqfM&5{h! zIwk2T4rEs>NC*0y-49eTIgX4)qwE+6)4koiLe+MFz<7% zF&kl&2>*1bd;)IxGWR!z>mSg#uYyF>v4L}==KCNGP3HsYfw(|CZ)s^d4$&K~z4!$o z%yGBXCtN0n+z*VkDK^mon!4}KPx*$ih4_EZ3PBZe|H(gj;bp(JKCCf;Y=ioKHb3KQ zrDWyH1XSXWAB;2!C*f@qDKgkKKVaUy1PPX9fGj5g*|h2WKT(>A>oOS>hqD~=u?nd( z5q3xSCd4kzX(KGxwj`vWOv`LIPt((Tt@Ea%orVHk^nK0vq z$9?h`a-#k}#Q85T-wiB9GE*w^veJt4{ImQ=BY{ZT{i5UqUyU=aRXAE2&70>NSuyr~ zmx;#BvRGv{=s#;-=SRgy+X8TN?6GUCc{d?&e`ifspp1?!q}{!66Awh+d7k&N!GWnZ z@INggz~@?Kab(&UYONSjn>aVBvW7_Wq5Xfx%J^rxL#}V8S|mUC4*Ge$rRZw+ZX9bh z3KqA0yJFb0*6Y0aMR~Wrnbe9gAS0q6jOyyS{SV|~9Uq5x672jRJKU7X@}c})z!JcjB`|MAR+r)WOAiIZc*NXr(IUQy)KmZ`>6ox?SS zB5($f1i`|41Ay67@Q_1WL^hBrI2k*yW7Udd2@dXe!2dvx^GTrBr?okf>K8zHz1Yx6 zQa(eTx!MaJKL%F@#`QqIDP{xb4xrl!m=fn}u_llql*zo`AODp#+Y#1pKJl9knqVj9 zY#M$d#y?#1TL(=;j1>W=QGQEt(&7FZq0_d`Ir@{@kvi@<$LX{OhxkIV#%yc{a@h|I9isPh>mn zVm&}y3kakG(h!nVlifauOGGYgk(s|g-G7YN+00T?W4p5^UWG{*=hekc=KN$p2*sMC zuRDJ>CHVE5kT}IO;NA(4-)(Xb?0j!C3OZs?`xB1Z=z_7{ir+xPfFiZ)En7ARMj;d3 zz1JQ&`nt@1bQYQ?w7Y;fexLCKF&gkK@Ha6t)qdg(V2fyoL|7m>~ z?CsBZek$_bL|vdCbAiy2&A$9Zdq`U^ z-h%mVIPx?%%(m!OItU2vj%hYp2*oml72g9(g8>D9I)X8nq$mZRd!*)u2za1yYC0>M~w1BuR+^J0Mu z{*SoEUKe~;!?s^(yx1*{+3^cUxf_s<#UTfZz+{U293&OL)c-LSBi$I!CARN4GmRYF?eRDM-*EGX-TjJ*T3zfVhRnoW+HvGPzhqQEJZNrL_4u9Ul$_2qw z$G)_eHPwRr-&TPwR(yEb#^c7QF9#F=1E-9<6f$f9d6U`E@DCiBFY zoJgC0CJevMmdE@50$Edd0ou%a=}W)1wbi2`4TydG3;`p_Z`duV(OWNmyntc?QDNgi zIDn*b9E+x9W(IVj?=kpnR8Zq9>k8aAA3f-|bMA-49<`}h=ALu6=|4DCYiR$8hV2g2 z7CM&a`~XlI-{;=_q0&Hjh&CWTSUz^481*Ue{lXJ|+ah9rORZtS8+#U}O}|JQxBxIR zKCyAPoc_q_s|GZp*j^-Tqxb}7{V zqO4@!&8-3&9|WP}8OTECieDdoLuV{YHuVDgSGC4v4AI1bGU=%EXgCfy(@f2F^Q3Dq zRXSi377K4%As9k~BkVO#BFq^J(IfTF1_Jf5$uEl@bON-sdOAEXHdZY6hx@CbJ|*_s zfg3$Fu(1F9$Qp{AkmDR5KGXd1@r)Jt@W25aZ8|Z$mH#G5VY*3TQ6*5(YQ~O1b6hWb zlk0SAKAH~GXtR1ml2go%e zWds;UV%pour?uG$sER@ngz^8)BIqn1;0|&QqgDS;YM;;a{V=13KrsEtM{if;+7M4L zB2r2$GCgwm`|k&i_uMQ8D(=%7Gv4?{(QTW(+hTh{24%1rDj>KU^Mv6GHtf&spmjmi zwrdm&h!N!)6vp%+TKkyed~5k^wW5FjUjkz`rk?p$cFO8XUNL4ZN3Gbdb5vrmT6g>{i z0%aK-KOPtik;O~~#E&s;){4T#+*8>iOE6^Amn{v5usN5`W6)0lFXeU6Vnbr5tMyjb zM@X*VA(5DI!gO2wH+q)Jx9o})QH7Mj#_{Q{ax?VYXrn*p+`Z>URyqYg&FrtwQB0#E z#D&&q{2+Rt>@9xdP5LR2sR4KRD95C=J8T^HF}mqJ=i!_X=$Tk>{{P0|mr<~`h)ayx zG+;l&vlzt;zF~3uT!V%w3AYStyx8TMiJksWaL#Fn4{qSS=i-zK(PmUbu}Gun?hRX% z@kdokNZLbuXvo%Bb>Mr(cjK=`(_6fDHVw%S0_T7#NA&!yXb2Ui871}20X6i>6uh_j zt&16}No{c@zZ&QQu;Q3aGO3|(PDX^F1!lCdww*Rp7~A1u?!Ev+253@CMf1&qW`NW4 z0EqeYn4VxKtan`g`WRa&e=qVRKN{LGP)ghdNOh2a`gnwZ@o~#5C_Eo2W!&0eHr?ce zHnY{s?2gVZSQ9YUq8q9~LVUT(;3Al?%Vtr(vflq@+{&Tan1Vkvs1S6_%oc7Qp{M-i zGZ8Rh61#d$d{~4w9HF8^`W!hw^IO=n;Uu&Kfjp#n)jD?I-Q52X^6;WLOJq8Ef9UFm zEZu4jaLR~VY>uiqH~cQ=m_u*0=3KU~n$%;fp+x<#cz^;+pCE@m7ylQ#m^NP%Ck++4 zUPca~i&3DahKBq_#~_3uumb`LhD!85qEEq?jX@{4sSThl8u#~GSg0?md934^N;^#C zphtyV=NL@&hr}w1NkMRM4UYw_OTOyu9-0bv>K$td7X|o`zogkok6211e)@Kk0r>ZX z*NL@h8*^{2GHE~8+}m`~gQ=Q0V}ijM$^nJz#Qzh+=|v2&20j|z5-ygxypH#-VH|_c z3RjCX&i}@1&IB++_AhNDhR{ekFx397>_+#qMHkdzMPK3V7g-86$S?i*`}1o6hVxP? zpx^@TC^O{AyjCTWz_fNNGl>%*{F2in49&k|g%dj5m{q{YX3d%J&z&0rk_|8|om^n)ISQ==?*$*5iw>W(%vz@I z9JrE9H`S>#d;|M1(YY4$h&UDpPk9^DR%5AiGt;ljG-z}vkd-<*(rLn99Z}9`-a&z8 z3T(!bUKhd@UUlKdGjQho4mFz)Nz6j1(DVP*!`q(G)sRNy1tpiCD2*=;eamsaS{Uq0 z_~t-VP<0zd6i5lim0(+;0?-7A4H;D2GaEkPLI%dwypOPy6my2rJOto?r`#E@ZN_X| z7lXeu7Ymz&0TUt@Cn%DsneA1)jSi7AhD`gSJ9U!$06vBvDSu}7fl$AjQ^Wb%Lnj#d zL7gsay2;$lp#vDXZKz#hq^KdqETS0Kro6xnU#6x94>$s9^Z!DFiOKsR0u^ciCH0ND zbka1B={xXwY~HrQR}Coae#C8%sp{MnpsS!I5zHH#Y3Edmry2X=E{7t?sk%6$I9kVA)K*)8(1i_@2_4mI#7B< z$Iq?EX(B{#aeNEq;RPM*PSjnAYsJx`oI4t$ScWxiEOF?m74R+iP%qVBMOsQ|=Y&LjyXG^qBMJ z1EbTx!eXvA^bvaz$Y?Aj(=Z-R(g~iAFP@G0&ox#Gk;Q*Dos1e(iAI|zLL|dQ-i{$V zG_#0Tt`fizqFgD+XnEaq2!kZ;<@8-(;VXH(Stn})qo(kDe8SCzw%tg_W)B1Lp^1vW zObCUSGFmN9duZy^c7FT4=d>YX9-_OnlsHq5qBqiw$vtoRHH!}LO?b81$a~GiKzZbb zda-tBT=|gD1#kw+EH?Cwz#>~dk+-NjAxj-b;{7$srr%2fg_}{D|DdJ&-T(fCKydXOXMA}M2{y+a8rB4K0}MVr))et@ub4BAt-zzhlo~5O zXexoKH8IU2QITEd{a_e|WFaik)q9;kf0!c)z#vWzv2#67yUJXS`8bpzTWIh*?CHC6 zyQ{J0iPO7Go29ma@nqJl@<3?PNm*2;i*ei0e3E+Cfa_!>OlhTa& zGb*yN2h=_IG2oqLf!9J-Jq(ce_VK9rK!KLmt?tkAp1I9PS57z3z$ZVL^^2N-hgJtB zZGJI!tvNzIfw{8r=r;*cdsgE;e^(VZi*S9)qUqNlgJ3|Qmtf^kUxlqKv2Vt_<#y4T zrD~v}Lf+3OZ>IGw#4ZJnWFicl6O#{HZar~(HhPMQSR%-u|Cgr52mh#=28gRBO*GxH zLBXJ|Nx3K3a64!GIj0}?ow0Tdpv#A@D8?quusk=;akINK#}Q`iIRvKk#p|Em_@9}L zB5DCwqXHG}AdsJ?o9bDVH~2F$p7>iWZN&O;3*T6I{14|u&2g+hi|~fuW&_`n8At2) zG2sv=jJ1XivXk#7)<4f0lvlD@dp)z^U$r0gNs|=-5LbX7#hjYQQdf5Fv)UuJzZj%# z@Ex&($LweR|HA$Q#lYx)!)pJyW$Mgxoa%YKI)V#-Y@_0!xgr`07%Uyp4MSI)(m1O7Qmp77RteQm zqa=o085!KJQ}GlC+z3SCQPEiEzR1$L;aUMMb(D*2<2K;4?W_VM;OVa~ne2UYTpSsL zQo?mB9Ti-#xeCh0_ULGjr~*Ez6^NDZAeU-I_|*Z09CBT0#x^WT!%oNl+oQSa*n|x& z4yk?68&v{pO3KgwK;Ypt8|eYKI>b4TrCrcxQgeI`<7%!cQ^hsH%r@*c;wpWbe4Z1s z@efMelIAmRW78=0P{VdkIp#<=0JQeS+7OyC(OAfu{X{%}=DLuiN1IDS)1pQn9;q^5 zsrV`$4O9mD@C&JKBZ{u}9CD6)1`>#H6!32xcagEy>8_!6BYcHT5x6|qhA$446n>OF zl5t0gd33{q)Zpg_aTRhGr*I)g;sPmF9Ep^BMF`h&-vuVlDOdVQLF^Ls@8(lB?W-Cs zj_kw~$&T45c2dxab@9dx#t;2$7aGWM3=t^p%ev<_TU2d) zFGa$j=d8{L2~Q~P|JhFJ;wHLjj?f6p^Q>IU5&@onv$VsC;b21Im=}d&Mxc*|CpW_PLlVkPl>(er93_ z5%y2VRz|&_&QP{-#zn?fsKH)i(ce~lq+lXA4O4uCNJaG(N4Y$o`?(iX@bG+F0-#FGtaD{d^5$ z)4jwV5DoCD0Op(rjt&5)q$h{bbnPhB<0jKK5@nbL$Go!cPpdff)`Z>o2 z8pB$Ajd5oXjQ#`UMS~Z-eik=2`9LdV0RszU=PeIHuWoo>Yhk@`ae`oeMi>5O^0!gxZ^BV~isq6M3&r1V)NQa>f7c5ak_Q;p-TzY!2R#yRGA=lietu$y@#{i(BHNB39v7mwdEl%* zMmU^V%hY9VK<*eRC3aFVLZZjt&JE_~xovEz;ANg^PLNm@v>*r<)MtXzIwkmt&sWox zr{=b+G-N5t3FQzQ3M~wSpEx2Gs4Xo%L^To{4s7xshjL-lIcoQ2AK-=U5)8I)XM71}X`qJA^-50+-td)qFm{Q6`A6y~yOTj$Kb4!N)wg zxxT^}1)>IHK^GbU9s*hioAU{3Tj(Lv%P0E{3M&XQ5#?jE&DyYc{Jy(H5KZ}(jo-xR zlMRA$g72-q0c;Fk;{g~lZy<9dh@O$Fgf7w}<@38CzyA88s*VV=ee0Sh?1<#rUL#S)=NY4P4^H{h+iwi`tmf5$NpF@Oy-ht9 zfh2=o5;*0&fo0qf`BdjcnK|37nY9(3)N-36_6?(I3#s#@EgRV$^V^wzn4&wbuA>$_P8-pErwXJ)$Au*lofpmiyHO%eVZlO{W~4Q!`Hq=am~ z=jJrQnq!=S%@P}RVtlamW6_8MV@gxE^;eHr?ZKDzW!T`vNE*L?6#2(+vNSec`ONxS zo9n_GrUT!GhL8TnryoxpE9u->=?`{ol!Z)qE%{Wy-2_xNqk6~xBmE1+6_42n6W`qR zf1ZQQv*YFXYlK&53>RC43*$jM#e~MWKt%}FrO6@JW=beFVU=#S8yo!6qXXI>+Pn#V zRS?nS?=^En_te+ixE*3}`?>{X0ZQC*!?tq zzOX^%388#sfeX-1_>_{IrxB4xv5X@nmW1x2`6N=9YPh<5PS|4QfaqyJ_+B^Gd*yUpPycAMMj-<8l!i)mnsBS) zmr+^4oFo=H*bI#Hj{OA;EKUp4Z-pk4+6{`m(p1qx@mKj4kzQl1>oNo@sg4t4@L54G zCc}IQrgaRph|q55`f_~8AmCC7!9ceP7NR(&QcrEs9H2V`%Hl=~y+t44Y?!En4P{#d z;?r>x{AkPKC!kbh45TH%7gDOh>Kye=Z9z)c${GR4;jSXY^$h{xQb?VOM_y@VxiXGLkEE}4XfQfL? z*r|W?H*^5nU70G+OZvSClZfA;dX;Dd)YB;?4de|Pu$hoBk}_@M{t#FzutLRTZN*?k za$};o?B0{+hSmh)m{6W-Ys1ZwIsZBk!s}PnXys!PREH2HV+5rd;dQ{OGHrqa^+K7= zT5CQzIz!{55W2gRl^?k3ra~EXZbIb=7dG$M+_V`cF6(ltR+v+5z&gAMkVWUVvxsaS z_H>8Nm8+U17{oq=4)%>3#HqPgn+{kb_`C7Js-cl~gS$R^B|f^Y!CK{Z)sDY1pc2m%w(?XGl zNHC!~0qmleR;5WJ(2Q~Ovf7LhYK%m)Qwoo+5iCUfvy>Pqh$kM+0F4rT20v+Z@(&F? z0l2U{Bap;egw6iXw51pBALJ>;As<8;oO(YkS;Cw~@uXr~$?D`sLJ6|=)n&S16 zt>tdx*%?sh%!sErM@qwJ?I-U+Y!u7HxdM*YEvEuE}2o z=*aislLH_3yq{+Y$F5aeC}fx5bLavYz;934h(?%AN;l%~v8&ZK%H#OD-GDyg;4P;q zP+Qhcy{9uiS=`sS!LstW6`z~@7V?S!3$6MY;!X=A7+x@j6n=1j>F@p39OX=1ho}6y z6F;74dfW=`U#fcVCcUQ+SnxMF2!t}2%aK3sa3~1t7o6Jdpw=0QA^mknnhE$bg)e_tko?(( zcBF(qPW;wjld!EA?yM(Wbfd+(y_QWgpsX{IzP{1EL-zz<9Z2Tbst?)>;(99}rpruf z-5AXbas9S-4FhbOIhjle;>>hY_V*l3`K0AD(WlZHJ8?spR{Ym6TJlW~ZHF2LzdC~( za*AEn?JWthi3pKbUrl;Lr`c>L(OE%Z7WH+~-s>}pV|dm5Q#Ic-8i>^zHjA5dY-q$9 zS$1LBT#-Sx9+$O}RmfrZvP29gLDr3o`9ebh*D%Nk!;{&NZf7O^+Wa2bBj@#*>3RZ$QBbsy|h_k+NEW7=H{<4wTZ*iRC zA=BYV5;lI#v%?pm+OwFu0qyi}36SO+*n2^eF&OL{a)gnuNcyqcFzGRgGoUT*fE;WE zW9KdDKR-|&cJeCWQj9pOKGZC${V>qEnJ7W}7+YVjsa;^m z3Gw?#!Z7Ox1tM)=hM1}s8W;xu@v>HwrJ!)Ezb2bX#XX*^fL?5)xo+g~e@IJqPI+yN zdBf(k)Wwp*oK&Wy6~lPyWfGQw!Etc$v8scrut8I0NjQl0aqyrbXErg+d#8g!GZiBU zct~$L`FkZAUEkhFQYZr4ACTV@&N(3(SLS2zDn?Ejr?WuMS1Co83_SVA;&ZNJ4@M?n z3*&_vc0l|j9PI|@vR%(O!cMm|Kq4Z~`I~tmE$MIh+369WO{B$)a<>=nX{ET{^-l3r zQc5=2s$zx!yfL((**#v%Wir<|)<4$-j~oAnaY7mXoUaD3)!!HT(mygO+e(lrxAL55 zBD4~Gj~SIRcMXOQbF3gAjQAjs%!gOt-3pu<1pwtTecW808v~n-$0Gqrl zJALfY%65UO@RMH8NlWkMdE}(CX9>tb5;x;j^-=Uupyz{|!iup?y>>o*k

Z_EES- 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