diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 2e3c509e0d..777009989e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -743,6 +743,8 @@ "Testimonial_ShortDescription_3": "We start from out-of-the-box features and just focus on what we really need to write.", "Testimonial_ShortDescription_4": "ABP Commercial was the best fit for our needs.", "OnlineReviewersOnAbpCommercial": "Online Reviews on ABP Commercial", - "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP Commercial and write your thoughts if you want." + "SeeWhatToldAboutAbpCommercial": "See what has been told about ABP Commercial and write your thoughts if you want.", + "BlazoriseLicense": "Do we need to buy Blazorise license?", + "BlazoriseLicenseExplanation": "We have an agreement between Volosoft and Megabit, with this agreement Blazorise license is bundled with ABP Commercial products therefore our customers do not need to purchase an extra Blazorise license." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 26ab4a8b60..c8d59816ce 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -735,6 +735,8 @@ "ConfirmedEmailAddressRequiredToStartTrial": "你应该有一个确认的电子邮件地址,以便开始试用许可证。", "EmailVerificationMailNotSent": "电子邮件验证邮件不能发送。", "GetConfirmationEmail": "点击这里获取确认邮件 如果你还没有收到。", - "WhichLicenseTypeYouAreInterestedIn": "你感兴趣的许可证类型是什么?" + "WhichLicenseTypeYouAreInterestedIn": "你感兴趣的许可证类型是什么?", + "BlazoriseLicense": "我们是否需要购买Blazorise许可证?", + "BlazoriseLicenseExplanation": "我公司Volosoft和公司Megabit之间有合作协议,根据此协议,购买将同时包含了Blazorise许可证与ABP商业产品,因此我们的客户不需要再额外购买Blazorise许可证。" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index c258ea0800..a8b0398369 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -380,6 +380,8 @@ "TrialLicenseExpireMessage": "您正在使用試用許可證,您的試用許可證將於 {0}到期。", "TryForFree": "免費試用", "TrialLicenseExpiredInfo": "您的試用許可期限已過!", - "CommercialNewsletterConfirmationMessage": "我同意條款和條件和隱私政策。" + "CommercialNewsletterConfirmationMessage": "我同意條款和條件和隱私政策。", + "BlazoriseLicense": "我们是否需要购买Blazorise许可证?", + "BlazoriseLicenseExplanation": "我公司Volosoft和公司Megabit之间有合作协议,根据此协议,购买将同时包含了Blazorise许可证与ABP商业产品,因此我们的客户不需要再额外购买Blazorise许可证。" } } diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/POST.md b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/POST.md new file mode 100644 index 0000000000..0611aa6914 --- /dev/null +++ b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/POST.md @@ -0,0 +1,244 @@ +# Using gRPC with the ABP Framework + +[gRPC](https://grpc.io/) defines itself as an open source, language agnostic, universal, high-performance **Remote Procedure Call (RPC)** framework. + +In this article, I will show you how to create a gRPC service and consume it from a console application with the ABP Framework. While the client application is console in this article, it can easily be a service consuming another service in a microservice system. + +> **This article will be a step by step tutorial.** I wrote the article based on Microsoft's [Code-first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) document. You can read that document for more details about gRPC and the code-first approach. + +## Creating the Application + +> I will use ABP version 6.0 for this article. I am using the 6.0.0-rc.4 version since the stable version hasn't been published at the time I am writing this article. If it is released while you're reading this, do not specify the `--version` and `--preview` parameters in the following commands. + +Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed it yet: + +````bash +dotnet tool install -g Volo.Abp.Cli --version 6.0.0-rc.4 +```` + +or update to version 6.0.0-rc.4 if you've already installed a previous version: + +````bash +dotnet tool update Volo.Abp.Cli -g --version 6.0.0-rc.4 +```` + +Create an empty folder, open a command-line terminal and type the following command in the terminal window to create a new ABP solution using the ABP CLI: + +````bash +abp new ProductManagement -u blazor -t app --preview +```` + +I've created an application with the Blazor UI, but the UI is not important for this tutorial, you can select your favorite UI option. + +## Open the Solution + +Open the solution in your favorite IDE. I like [Rider](https://www.jetbrains.com/rider/), but Visual Studio, VS Code or any other IDE perfectly works. The following figure shows the solution structure in Rider: + +![solution](solution.png) + +Run the `ProductManagement.DbMigrator` project (a console application) to create the database and seed the initial data. + +## Defining the Service Contract + +We are starting by defining the service contract and DTO classes that will be shared between the server and the client applications. + +Create a `Products` folder in the `ProductManagement.Application.Contracts` project and add a new interface named `IProductAppService`: + +````csharp +using System.Collections.Generic; +using System.ServiceModel; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace ProductManagement.Products; + +[ServiceContract] +public interface IProductAppService : IApplicationService +{ + Task> GetListAsync(); +} +```` + +Your IDE will complain about the `[ServiceContract]` attribute, but it is necessary for the contract-first gRPC library we will be using later. So, add the [System.ServiceModel.Primitives](https://www.nuget.org/packages/System.ServiceModel.Primitives) NuGet package to the `ProductManagement.Application.Contracts` project, and it should be fixed. You can simply edit the `ProductManagement.Application.Contracts.csproj` file and add the following line in an `ItemGroup` tag: + +````xml + +```` + +Or you can use your IDE to find and add that NuGet package, it is up to you. + +I've also used the `ProductDto` class, but haven't defined it yet. Create a new class in the same folder with the `IProductAppService` file: + +````csharp +using System; +using System.Runtime.Serialization; + +namespace ProductManagement.Products; + +[DataContract] +public class ProductDto +{ + [DataMember(Order = 1)] + public Guid Id { get; set; } + + [DataMember(Order = 2)] + public string Name { get; set; } +} +```` + +The `[DataContract]` and `[DataMember]` properties are needed for serialization. In gRPC, property serialization orders are important, because property names are not transferred to the target application, to keep the serialized data small. + +After adding these classes, the `ProductManagement.Application.Contracts` project should look as in the following figure: + +![contracts](contracts.png) + +The contracts part is over. We actually didn't have any dependency to gRPC at that point. Our service and DTOs are pretty plain classes, except a few standard attributes, which are already defined in the .NET Core framework. Now, we can implement the `IProductAppService`. + +## Implementing the Service + +We are implementing the application services in the `ProductManagement.Application` project. So, add a new `Products` folder to that project and define a `ProductAppService` class inside it: + +````csharp +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace ProductManagement.Products; + +public class ProductAppService : ProductManagementAppService, IProductAppService +{ + public async Task> GetListAsync() + { + return new List + { + new ProductDto { Id = Guid.NewGuid(), Name = "Product 1" }, + new ProductDto { Id = Guid.NewGuid(), Name = "Product 2" }, + }; + } +} +```` + +This is a pretty standard, plain [application service ](https://docs.abp.io/en/abp/latest/Application-Services)class. All the ABP application service features (validation, audit logging, unit of work, etc.) are available. You can inject [repositories](https://docs.abp.io/en/abp/latest/Repositories) and perform database queries. To keep this article simple, I am returning hard-coded data from here. + +> `ProductManagementAppService` is a base class coming in the ABP startup template. While you don't have to inherit from it, it provides useful base properties and methods you typically need in an application service. + +The application service part is over. Again, we didn't write any gRPC specific code. Don't worry, we will write in the next section. + +## Configuring the gRPC Server + +In this solution, `ProductManagement.HttpApi.Host` is the project that configures and runs the server-side application. So, we will make changes in that project. + +First, add the [protobuf-net.Grpc.AspNetCore](https://www.nuget.org/packages/protobuf-net.Grpc.AspNetCore) NuGet package to the `ProductManagement.HttpApi.Host` project: + +````xml + +```` + +Then open the `ProductManagementHttpApiHostModule.cs` file, find the `ConfigureServices` method and add the following line into this method: + +````csharp +context.Services.AddCodeFirstGrpc(); +```` + +This will register code-first gRPC services to the [dependency injection](https://docs.abp.io/en/abp/latest/Dependency-Injection) system. Then find the `app.UseConfiguredEndpoints()` line in the `OnApplicationInitialization` method and change it as shown below: + +````csharp +app.UseConfiguredEndpoints(endpoints => +{ + endpoints.MapGrpcService(); +}); +```` + +We've configured the `IProductAppService` to handle gRPC requests to that service. The following figure shows the whole change done in the `ProductManagementHttpApiHostModule` class: + +![host-changes-1](host-changes-1.png) + +gRPC handles requests with the HTTP/2 protocol and should listen an endpoint other than the default HTTP endpoint used by the application. We can easily configure the Kestrel server to listen two endpoints, one for our HTTP APIs, the other one for gRPC services. Add the following configuration inside the `appsettings.json` file of the `ProductManagement.HttpApi.Host` project: + +````json +"Kestrel": { + "Endpoints": { + "Https": { + "Url": "https://localhost:44388", + "Protocols": "Http1AndHttp2" + }, + "gRPC": { + "Url": "https://localhost:10042", + "Protocols": "Http2" + } + } +} +```` + +Note that `https://localhost:44388` may be different for your case, since ABP CLI assignes a random port while you're creating a new solution. You can check your port by running the `ProductManagement.HttpApi.Host` project and looking at the address bar on your browser. + +The server-side configuration is done. It is ready to receive gRPC requests. Now, we can change the client to consume the gRPC service we've created. + +## Implementing the Client Side + +The ABP startup solution template comes with a console application to test consuming your HTTP APIs. For this example, the project is named as `ProductManagement.HttpApi.Client.ConsoleTestApp` and located under the `test` folder in the solution. + +First, add the [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client) and the [protobuf-net.Grpc](https://www.nuget.org/packages/protobuf-net.Grpc) NuGet packages to the `ProductManagement.HttpApi.Client.ConsoleTestApp` project. + +````xml + + +```` + +Now, open the `ClientDemoService.cs` file under the `ProductManagement.HttpApi.Client.ConsoleTestApp` project and change its contents with the following code block: + +````csharp +using System; +using System.Threading.Tasks; +using Grpc.Net.Client; +using ProductManagement.Products; +using ProtoBuf.Grpc.Client; +using Volo.Abp.DependencyInjection; + +namespace ProductManagement.HttpApi.Client.ConsoleTestApp; + +public class ClientDemoService : ITransientDependency +{ + public async Task RunAsync() + { + using (var channel = GrpcChannel.ForAddress("https://localhost:10042")) + { + var productAppService = channel.CreateGrpcService(); + var productDtos = await productAppService.GetListAsync(); + + foreach (var productDto in productDtos) + { + Console.WriteLine($"[Product] Id = {productDto.Id}, Name = {productDto.Name}"); + } + } + } +} +```` + +We are simply creating a gRPC channel, then creating a client proxy for the `IProductAppService` service. Then we can call its method just like local method calls. You can run the applications to test it. + +## Run the Applications + +First run the `ProductManagement.HttpApi.Host` application. It should show a Swagger UI as shown below: + +![swagger](swagger.png) + +If you see that page, it means your server-side is up and running. Now, you can run the `ProductManagement.HttpApi.Client.ConsoleTestApp` console application to call the gRPC service defined on the server. + +The test console application should produce an output as shown below: + +![client-application](client-application.png) + +As you see, products are returned from the server. That's all, you've done it! + +## Conclusion + +In this article, I've used the [code-first approach](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) to implement a gRPC server and consume it in a client application. Code-first approach is very practical if both of your client and server applications are built with .NET. By the help of ABP's layered solution structure, we even didn't add any gRPC dependency into our server-side and contracts. We've just configured gRPC in the hosting side, with a small amount of code. + +gRPC on .NET has different approaches, features, configurations and more details. I suggest you to read [Microsoft's documentation](https://docs.microsoft.com/en-us/aspnet/core/grpc) to learn more about it. All the approaches can work with the ABP Framework. Enjoy coding! + +## The Source Code + +* You can find the completed source code here: https://github.com/abpframework/abp-samples/tree/master/GrpcDemo2 + +* You can also see all the changes I've done in this article here: https://github.com/abpframework/abp-samples/pull/200/files diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png new file mode 100644 index 0000000000..b16c4a6c1e Binary files /dev/null and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/client-application.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png new file mode 100644 index 0000000000..ef9f80764d Binary files /dev/null and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/contracts.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png new file mode 100644 index 0000000000..b9dc207636 Binary files /dev/null and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/host-changes-1.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png new file mode 100644 index 0000000000..c3becdbf44 Binary files /dev/null and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/solution.png differ diff --git a/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png new file mode 100644 index 0000000000..47ed5340c3 Binary files /dev/null and b/docs/en/Community-Articles/2022-09-15-Grpc-Demo/swagger.png differ diff --git a/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/POST.md b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/POST.md new file mode 100644 index 0000000000..b6a49173e1 --- /dev/null +++ b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/POST.md @@ -0,0 +1,121 @@ +# Consuming gRPC Services from Blazor WebAssembly Application Using gRPC-Web + +> **WARNING: I've demonstrated [Using gRPC with the ABP Framework](https://community.abp.io/posts/using-grpc-with-the-abp-framework-2dgaxzw3) in my latest post. If you haven't seen it, you should read it before this article, since this is a continuation of that article.** + +In this second part, I will show how to consume the gRPC service from the Blazor WebAssembly application, using the gRPC-Web technology. + +This will be a short article, based on Microsoft's [gRPC-Web in ASP.NET Core gRPC apps](https://learn.microsoft.com/en-us/aspnet/core/grpc/grpcweb) and [Code-first gRPC services and clients with .NET](https://learn.microsoft.com/en-us/aspnet/core/grpc/code-first) documents. For more information, I suggest to check these documents. Let's get started... + +## Configuring the Server Side + +First of all, the server-side should support gRPC-Web. Follow the steps below to enable it: + +### Add Grpc.AspNetCore.Web Package + +Add [Grpc.AspNetCore.Web](https://www.nuget.org/packages/Grpc.AspNetCore.Web) NuGet package to the `ProductManagement.HttpApi.Host` project. + +### Add GrpcWeb Middleware + +Add the following line just before the `app.UseConfiguredEndpoints(...)` line to add the GrpcWeb middleware to your ASP.NET Core request pipeline: + +````csharp +app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true }); +```` + +### Configure Cors + +ABP's startup template already configures Cors when you create a new solution. However, we need to allow some extra headers in our Cors configuration. + +Add the following line just after the `.WithAbpExposedHeaders()` line in the `OnApplicationInitialization` method of the `ProductManagementHttpApiHostModule` class: + +````csharp +.WithExposedHeaders("Grpc-Status", "Grpc-Message", "Grpc-Encoding", "Grpc-Accept-Encoding") +```` + +Finally, call `RequireCors` extension method just after the `MapGrpcService` calls: + +````csharp +app.UseConfiguredEndpoints(endpoints => +{ + endpoints + .MapGrpcService() + .RequireCors("__DefaultCorsPolicy"); // Configure Cors for the product service +}); +```` + +`__DefaultCorsPolicy` may seem a magic string here. Let me explain it: ABP startup template configures the default Cors policy with the `context.Services.AddCors(...)` method (you can see it in the source code). If we define a named policy, we should use the same name here. However, when we don't specify, ASP.NET Core uses `__DefaultCorsPolicy` as the policy name by default. If you don't want to use the magic string, you can resolve the `IOptions` service and get the `DefaultPolicyName` from the `CorsOption` object. + +Anyway, that's all on the server-side. We can work on he client now. + +## Configuring the Client Side + +`ProductManagement.Blazor` is the Blazor WebAssembly application in the solution I'd created in the [first article](https://community.abp.io/posts/using-grpc-with-the-abp-framework-2dgaxzw3). We will configure that project to be able to consume the server-side gRPC services from our Blazor application. + +### Add Client-side Nuget Packages + +Add [Grpc.Net.Client](https://www.nuget.org/packages/Grpc.Net.Client), [Grpc.Net.Client.Web](https://www.nuget.org/packages/Grpc.Net.Client.Web) and [protobuf-net.Grpc](https://www.nuget.org/packages/protobuf-net.Grpc) NuGet packages to the `ProductManagement.Blazor` project. We are ready to consume the gRPC services. + +### Consume the Product Service + +Change the `Pages/Index.razor.cs` file's content with the following code block: + +````csharp +using System.Collections.Generic; +using System.Net.Http; +using System.Threading.Tasks; +using Grpc.Net.Client; +using Grpc.Net.Client.Web; +using ProductManagement.Products; +using ProtoBuf.Grpc.Client; + +namespace ProductManagement.Blazor.Pages; + +public partial class Index +{ + private List Products { get; set; } = new(); + + protected override async Task OnInitializedAsync() + { + var channel = GrpcChannel.ForAddress("https://localhost:10042", new GrpcChannelOptions + { + HttpHandler = new GrpcWebHandler(new HttpClientHandler()) + }); + + var productAppService = channel.CreateGrpcService(); + Products = await productAppService.GetListAsync(); + } +} +```` + +* We've created a gRPC channel for the server-side endpoint (surely, you get the address from a configuration) with channel options by specifying that we will use the `GrpcWebHandler`. +* We've created a service proxy object using the `CreateGrpcService` extension method that is defined by the [protobuf-net.Grpc](https://www.nuget.org/packages/protobuf-net.Grpc) NuGet package. +* We've used the service proxy object, `productAppService`, to consume remote endpoint just like a local service. + +That's all. If we want to show the products on the page, we can add the following markup into the `Pages/Index.razor` view: + +````xml +

A list of products:

+ +
    + @foreach(var product in Products) + { +
  • + @product.Name
    + @product.Id.ToString() +
  • + } +
+```` + +Run the applications (first run the `ProductManagement.HttpApi.Host` project, then run the `ProductManagement.Blazor` project in the solution) to see it in action: + +![blazor-product-list](blazor-product-list.png) + +## Conclusion + +In the first part of this article, I'd demonstrated how to implement a gRPC service and consume it in a client application, using the [code-first approach](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first). In this article, I've demonstrated how to consume the same gRPC service from a Blazor WebAssembly application, using the [gRPC-Web](https://learn.microsoft.com/en-us/aspnet/core/grpc/grpcweb) technology. As you see in these two articles, using gRPC with the ABP Framework is straightforward. + +## The Source Code + +- You can find the completed source code here: https://github.com/abpframework/abp-samples/tree/master/GrpcDemo2 +- You can also see all the changes I've done in this article here: https://github.com/abpframework/abp-samples/pull/201/files \ No newline at end of file diff --git a/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png new file mode 100644 index 0000000000..279a6ae6f3 Binary files /dev/null and b/docs/en/Community-Articles/2022-09-18-Grpc-Demo-Part-2/blazor-product-list.png differ diff --git a/docs/en/Dapr/Index.md b/docs/en/Dapr/Index.md new file mode 100644 index 0000000000..2596c449d1 --- /dev/null +++ b/docs/en/Dapr/Index.md @@ -0,0 +1,469 @@ +# ABP Dapr Integration + +> This document assumes that you are already familiar with [Dapr](https://dapr.io/) and you want to use it in your ABP based applications. + +[Dapr](https://dapr.io/) (Distributed Application Runtime) provides APIs that simplify microservice connectivity. It is an open source project that is mainly backed by Microsoft. It is also a CNCF (Cloud Native Computing Foundation) project and trusted by the community. + +ABP and Dapr have some intersecting features like service-to-service communication, distributed message bus and distributed locking. However their purposes are totally different. ABP's goal is to provide an end-to-end developer experience by offering an opinionated architecture and providing the necessary infrastructure libraries, reusable modules and tools to implement that architecture properly. Dapr's purpose, on the other hand, is to provide a runtime to decouple common microservice communication patterns from your application logic. + +ABP and Dapr can perfectly work together in the same application. ABP offers some packages to provide better integration where Dapr features intersect with ABP. You can use other Dapr features with no ABP integration packages based on [its own documentation](https://docs.dapr.io/). + +## ABP Dapr Integration Packages + +ABP provides the following NuGet packages for the Dapr integration: + +* [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr): The main Dapr integration package. All other packages depend on this package. +* [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr): Integration package for ABP's [dynamic](../API/Dynamic-CSharp-API-Clients.md) and [static](../API/Static-CSharp-API-Clients.md) C# API Client Proxies systems with Dapr's [service invocation](https://docs.dapr.io/developing-applications/building-blocks/service-invocation/service-invocation-overview/) building block. +* [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr): Implements ABP's distributed event bus with Dapr's [publish & subscribe](https://docs.dapr.io/developing-applications/building-blocks/pubsub/) building block. With this package, you can send events, but can not receive. +* [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus): Provides the endpoints to receive events from Dapr's [publish & subscribe](https://docs.dapr.io/developing-applications/building-blocks/pubsub/) building block. Use this package to send and receive events. +* [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr): Uses Dapr's [distributed lock](https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/) building block for [distributed locking](../Distributed-Locking.md) service of the ABP Framework. + +In the following sections, we will see how to use these packages to use Dapr in your ABP based solutions. + +## Basics + +### Installation + +> This section explains how to add [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr), the core Dapr integration package to your project. If you are using one of the other Dapr integration packages, you can skip this section since this package will be indirectly added. + +Use the ABP CLI to add the [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr) NuGet package to your project: + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed it before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.Dapr` package. +* Run the `abp add-package Volo.Abp.Dapr` command. + +If you want to do it manually, install the [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr) NuGet package to your project and add `[DependsOn(typeof(AbpDaprModule))]` to the [ABP module](../Module-Development-Basics.md) class inside your project. + +### AbpDaprOptions + +`AbpDaprOptions` is the main [options class](../Options.md) that you can configure the global Dapr settings with. **All settings are optional and you mostly don't need to configure them.** If you need, you can configure it in the `ConfigureServices` method of your [module class](../Module-Development-Basics.md): + +````csharp +Configure(options => +{ + // ... +}); +```` + +Available properties of the `AbpDaprOptions` class: + +* `HttpEndpoint` (optional): HTTP endpoint that is used while creating a `DaprClient` object. If you don't specify, the default value is used. +* `GrpcEndpoint` (optional): The gRPC endpoint that is used while creating a `DaprClient` object. If you don't specify, the default value is used. +* `DaprApiToken` (optional): The [Dapr API token](https://docs.dapr.io/operations/security/api-token/) that is used while sending requests from the application to Dapr. It is filled from the `DAPR_API_TOKEN` environment variable by default (which is set by Dapr once it is configured). See the *Security* section in this document for details. +* `AppApiToken` (optional): The [App API token](https://docs.dapr.io/operations/security/app-api-token/) that is used to validate requests coming from Dapr. It is filled from the `APP_API_TOKEN` environment variable by default (which is set by Dapr once it is configured). See the *Security* section in this document for details. + +Alternatively, you can configure the options in the `Dapr` section of your `appsettings.json` file. Example: + +````csharp +"Dapr": { + "HttpEndpoint": "http://localhost:3500/" +} +```` + +### Injecting DaprClient + +ABP registers the `DaprClient` class to the [dependency injection](../Dependency-Injection.md) system. So, you can inject and use it whenever you need: + +````csharp +public class MyService : ITransientDependency +{ + private readonly DaprClient _daprClient; + + public MyService(DaprClient daprClient) + { + _daprClient = daprClient; + } + + public async Task DoItAsync() + { + // TODO: Use the injected _daprClient object + } +} +```` + +Injecting `DaprClient` is the recommended way of using it in your application code. When you inject it, the `IAbpDaprClientFactory` service is used to create it, which is explained in the next section. + +### IAbpDaprClientFactory + +`IAbpDaprClientFactory` can be used to create `DaprClient` or `HttpClient` objects to perform operations on Dapr. It uses `AbpDaprOptions`, so you can configure the settings in a central place. + +**Example usages:** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IAbpDaprClientFactory _daprClientFactory; + + public MyService(IAbpDaprClientFactory daprClientFactory) + { + _daprClientFactory = daprClientFactory; + } + + public async Task DoItAsync() + { + // Create a DaprClient object with default options + DaprClient daprClient = await _daprClientFactory.CreateAsync(); + + /* Create a DaprClient object with configuring + * the DaprClientBuilder object */ + DaprClient daprClient2 = await _daprClientFactory + .CreateAsync(builder => + { + builder.UseDaprApiToken("..."); + }); + + // Create an HttpClient object + HttpClient httpClient = await _daprClientFactory + .CreateHttpClientAsync("target-app-id"); + } +} +```` + +`CreateHttpClientAsync` method also gets optional `daprEndpoint` and `daprApiToken` parameters. + +> ABP uses `IAbpDaprClientFactory` when it needs to create a Dapr client. You can also use Dapr API to create client objects in your application. Using `IAbpDaprClientFactory` is recommended, but not required. + +## C# API Client Proxies Integration + +ABP can [dynamically](../API/Dynamic-CSharp-API-Clients.md) or [statically](../API/Static-CSharp-API-Clients.md) generate proxy classes to invoke your HTTP APIs from a Dotnet client application. It makes perfect sense to consume HTTP APIs in a distributed system. The [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) package configures the client-side proxies system, so it uses Dapr's service invocation building block for the communication between your applications. + +### Installation + +Use the ABP CLI to add the [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet package to your project (to the client side): + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.Http.Client.Dapr` package to. +* Run the `abp add-package Volo.Abp.Http.Client.Dapr` command. + +If you want to do it manually, install the [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet package to your project and add `[DependsOn(typeof(AbpHttpClientDaprModule))]` to the [ABP module](../Module-Development-Basics.md) class inside your project. + +### Configuration + +Once you install the [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet package, all you need to do is to configure ABP's remote services option either in `appsettings.json` or using the `AbpRemoteServiceOptions` [options class](../Options.md). + +**Example:** + +````csharp +{ + "RemoteServices": { + "Default": { + "BaseUrl": "http://dapr-httpapi/" + } + } +} +```` + +`dapr-httpapi` in this example is the application id of the server application in your Dapr configuration. + +The remote service name (`Default` in this example) should match the remote service name specified in the `AddHttpClientProxies` call for dynamic client proxies or the `AddStaticHttpClientProxies` call for static client proxies. Using `Default` is fine if your client communicates to a single server. However, if your client uses multiple servers, you typically have multiple keys in the `RemoteServices` configuration. Once you configure the remote service endpoints as Dapr application ids, it will automatically work and make the HTTP calls through Dapr when you use ABP's client proxy system. + +> See the [dynamic](../API/Dynamic-CSharp-API-Clients.md) and [static](../API/Static-CSharp-API-Clients.md) client proxy documents for details about the ABP's client proxy system. + +## Distributed Event Bus Integration + +[ABP's distributed event bus](../Distributed-Event-Bus.md) system provides a convenient abstraction to allow applications to communicate asynchronously via events. ABP has integration packages with various distributed messaging systems, like RabbitMQ, Kafka, and Azure. Dapr also has a [publish & subscribe building block](https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-overview/) for the same purpose: distributed messaging / events. + +ABP's [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) and [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) packages make it possible to use the Dapr infrastructure for ABP's distributed event bus. + +The [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) package can be used by any type of application (e.g., a Console or ASP.NET Core application) to publish events through Dapr. To be able to receive messages (by subscribing to events), you need to have the [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) package installed, and your application should be an ASP.NET Core application. + +### Installation + +If your application is an ASP.NET Core application and you want to send and receive events, you need to install the [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) package as described below: + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed it before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.AspNetCore.Mvc.Dapr.EventBus` package to. +* Run the `abp add-package Volo.Abp.AspNetCore.Mvc.Dapr.EventBus` command. + +If you want to do it manually, install the [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) NuGet package to your project and add `[DependsOn(typeof(AbpAspNetCoreMvcDaprEventBusModule))]` to the [ABP module](../Module-Development-Basics.md) class inside your project. + +> **If you install the [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) package, you don't need to install the [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) package, because the first one already has a reference to the latter one.** + +If your application is not an ASP.NET Core application, you can't receive events from Dapr, at least with ABP's integration packages (see [Dapr's document](https://docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/) if you want to receive events in a different type of application). However, you can still publish messages using the [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) package. In this case, follow the steps below to install that package to your project: + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed it before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.EventBus.Dapr` package to. +* Run the `abp add-package Volo.Abp.EventBus.Dapr` command. + +If you want to do it manually, install the [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) NuGet package to your project and add `[DependsOn(typeof(AbpEventBusDaprModule))]` to the [ABP module](../Module-Development-Basics.md) class inside your project. + +### Configuration + +You can configure the `AbpDaprEventBusOptions` [options class](../Options.md) for Dapr configuration: + +````csharp +Configure(options => +{ + options.PubSubName = "pubsub"; +}); +```` + +Available properties of the `AbpDaprEventBusOptions` class: + +* `PubSubName` (optional): The `pubsubName` parameter while publishing messages through the `DaprClient.PublishEventAsync` method. Default value: `pubsub`. + +### The ABP Subscription Endpoints + +ABP provides the following endpoints to receive events from Dapr: + +* `dapr/subscribe`: Dapr uses this endpoint to get a list of subscriptions from the application. ABP automatically returns all the subscriptions for your distributed event handler classes and custom controller actions with the `Topic` attribute. +* `api/abp/dapr/event`: The unified endpoint to receive all the events from Dapr. ABP dispatches the events to your event handlers based on the topic name. + +> **Since ABP provides the standard `dapr/subscribe` endpoint, you should not manually call the `app.MapSubscribeHandler()` method of Dapr.** You can use the `app.UseCloudEvents()` middleware in your ASP.NET Core pipeline if you want to support the [CloudEvents](https://cloudevents.io/) standard. + +### Usage + +#### The ABP Way + +You can follow [ABP's distributed event bus documentation](../Distributed-Event-Bus.md) to learn how to publish and subscribe to events in the ABP way. No change required in your application code to use Dapr pub-sub. ABP will automatically subscribe to Dapr for your event handler classes (that implement the `IDistributedEventHandler` interface). + +ABP provides `api/abp/dapr/event` + +**Example: Publish an event using the `IDistributedEventBus` service** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IDistributedEventBus _distributedEventBus; + + public MyService(IDistributedEventBus distributedEventBus) + { + _distributedEventBus = distributedEventBus; + } + + public async Task DoItAsync() + { + await _distributedEventBus.PublishAsync(new StockCountChangedEto + { + ProductCode = "AT837234", + NewStockCount = 42 + }); + } +} +```` + +**Example: Subscribe to an event by implementing the `IDistributedEventHandler` interface** + +````csharp +public class MyHandler : + IDistributedEventHandler, + ITransientDependency +{ + public async Task HandleEventAsync(StockCountChangedEto eventData) + { + var productCode = eventData.ProductCode; + // ... + } +} +```` + +See [ABP's distributed event bus documentation](../Distributed-Event-Bus.md) to learn the details. + +#### Using the Dapr API + +In addition to ABP's standard distributed event bus system, you can also use Dapr's API to publish events. + +> If you directly use the Dapr API to publish events, you may not benefit from ABP's standard distributed event bus features, like the outbox/inbox pattern implementation. + +**Example: Publish an event using `DaprClient`** + +````csharp +public class MyService : ITransientDependency +{ + private readonly DaprClient _daprClient; + + public MyService(DaprClient daprClient) + { + _daprClient = daprClient; + } + + public async Task DoItAsync() + { + await _daprClient.PublishEventAsync( + "pubsub", // pubsub name + "StockChanged", // topic name + new StockCountChangedEto // event data + { + ProductCode = "AT837234", + NewStockCount = 42 + } + ); + } +} +```` + +**Example: Subscribe to an event by creating an ASP.NET Core controller** + +````csharp +public class MyController : AbpController +{ + [HttpPost("/stock-changed")] + [Topic("pubsub", "StockChanged")] + public async Task TestRouteAsync( + [FromBody] StockCountChangedEto model) + { + HttpContext.ValidateDaprAppApiToken(); + + // Do something with the event + return Ok(); + } +} +```` + +`HttpContext.ValidateDaprAppApiToken()` extension method is provided by ABP to check if the request is coming from Dapr. This is optional. You should configure Dapr to send the App API token to your application if you want to enable the validation. If not configured, `ValidateDaprAppApiToken()` does nothing. See [Dapr's App API Token document](https://docs.dapr.io/operations/security/app-api-token/) for more information. Also see the *AbpDaprOptions* and *Security* sections in this document. + +See the [Dapr documentation](https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/publish-subscribe) to learn the details of sending & receiving events with the Dapr API. + +## Distributed Lock + +> Dapr's distributed lock feature is currently in the Alpha stage and may not be stable yet. It is not suggested to replace ABP's distributed lock with Dapr in that point. + +ABP provides a [Distributed Locking](../Distributed-Locking.md) abstraction to control access to a shared resource by multiple applications. Dapr also has a [distributed lock building block](https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/). The [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr) package makes ABP use Dapr's distributed locking system. + +### Installation + +Use the ABP CLI to add the [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr) NuGet package to your project (to the client side): + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed it before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.DistributedLocking.Dapr` package to. +* Run the `abp add-package Volo.Abp.DistributedLocking.Dapr` command. + +If you want to do it manually, install the [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr) NuGet package to your project and add `[DependsOn(typeof(AbpDistributedLockingDaprModule))]` to the [ABP module](../Module-Development-Basics.md) class inside your project. + +### Configuration + +You can use the `AbpDistributedLockDaprOptions` options class in the `ConfigureServices` method of [your module](../Module-Development-Basics.md) to configure the Dapr distributed lock: + +````csharp +Configure(options => +{ + options.StoreName = "mystore"; +}); +```` + +The following options are available: + +* **`StoreName`** (required): The store name used by Dapr. Lock key names are scoped in the same store. That means different applications can acquire the same lock name in different stores. Use the same store name for the same resources you want to control the access of. +* `Owner` (optional): The `owner` value used by the `DaprClient.Lock` method. If you don't specify, ABP uses a random value, which is fine in general. +* `DefaultExpirationTimeout` (optional): Default value of the time after which the lock gets expired. Default value: 2 minutes. + +### Usage + +You can inject and use the `IAbpDistributedLock` service, just like explained in the [Distributed Locking document](../Distributed-Locking.md). + +**Example:** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IAbpDistributedLock _distributedLock; + + public MyService(IAbpDistributedLock distributedLock) + { + _distributedLock = distributedLock; + } + + public async Task MyMethodAsync() + { + await using (var handle = + await _distributedLock.TryAcquireAsync("MyLockName")) + { + if (handle != null) + { + // your code that access the shared resource + } + } + } +} +```` + +There are two points we should mention about the `TryAcquireAsync` method, as different from ABP's standard usage: + +* The `timeout` parameter is currently not used (even if you specify it), because Dapr doesn't support waiting to obtain the lock. +* Dapr uses the expiration timeout system (that means the lock is automatically released after that timeout even if you don't release the lock by disposing the handler). However, ABP's `TryAcquireAsync` method has no such a parameter. Currently, you can set `AbpDistributedLockDaprOptions.DefaultExpirationTimeout` as a global value in your application. + +As mentioned first, Dapr's distributed lock feature is currently in the Alpha stage and its API is a candidate to change. You should use it as is if you want, but be ready for the changes in the future. For now, we are recommending to use the [DistributedLock](https://github.com/madelson/DistributedLock) library as explained in ABP's [Distributed Locking document](../Distributed-Locking.md). + +## Security + +If you are using Dapr, most or all the incoming and outgoing requests in your application pass through Dapr. Dapr uses two kinds of API tokens to secure the communication between your application and Dapr. + +### Dapr API Token + +> This token is automatically set by default and generally you don't care about it. + +The [Enable API token authentication in Dapr](https://docs.dapr.io/operations/security/api-token/) document describes what the Dapr API token is and how it is configured. Please read that document if you want to enable it for your application. + +If you enable the Dapr API token, you should send that token in every request to Dapr from your application. `AbpDaprOptions` defines a `DaprApiToken` property as a central point to configure the Dapr API token in your application. + +The default value of the `DaprApiToken` property is set from the `DAPR_API_TOKEN` environment variable and that environment variable is set by Dapr when it runs. So, most of the time, you don't need to configure `AbpDaprOptions.DaprApiToken` in your application. However, if you need to configure (or override) it, you can do in the `ConfigureServices` method of your module class as shown in the following code block: + +````csharp +Configure(options => +{ + options.DaprApiToken = "..."; +}); +```` + +Or you can set it in your `appsettings.json` file: + +````json +"Dapr": { + "DaprApiToken": "..." +} +```` + +Once you set it, it is used when you inject `DaprClient` or use `IAbpDaprClientFactory`. If you need that value in your application, you can inject `IDaprApiTokenProvider` and use its `GetDaprApiToken()` method. + +### App API Token + +> Enabling App API token validation is strongly recommended. Otherwise, for example, any client can directly call your event subscription endpoint, and your application acts like an event has occurred (if there is no other security policy in your event subscription endpoint). + +The [Authenticate requests from Dapr using token authentication](https://docs.dapr.io/operations/security/app-api-token/) document describes what the App API token is and how it is configured. Please read that document if you want to enable it for your application. + +If you enable the App API token, you can validate it to ensure that the request is coming from Dapr. ABP provides useful shortcuts to validate it. + +**Example: Validate the App API token in an event handling HTTP API** + +````csharp +public class MyController : AbpController +{ + [HttpPost("/stock-changed")] + [Topic("pubsub", "StockChanged")] + public async Task TestRouteAsync( + [FromBody] StockCountChangedEto model) + { + // Validate the App API token! + HttpContext.ValidateDaprAppApiToken(); + + // Do something with the event + return Ok(); + } +} +```` + +`HttpContext.ValidateDaprAppApiToken()` is an extension method provided by the ABP Framework. It throws an `AbpAuthorizationException` if the token was missing or wrong in the HTTP header (the header name is `dapr-api-token`). You can also inject `IDaprAppApiTokenValidator` and use its methods to validate the token in any service (not only in a controller class). + +You can configure `AbpDaprOptions.AppApiToken` if you want to set (or override) the App API token value. The default value is set by the `APP_API_TOKEN` environment variable. You can change it in the `ConfigureServices` method of your module class as shown in the following code block: + +````csharp +Configure(options => +{ + options.AppApiToken = "..."; +}); +```` + +Or you can set it in your `appsettings.json` file: + +````json +"Dapr": { + "AppApiToken": "..." +} +```` + +If you need that value in your application, you can inject `IDaprApiTokenProvider` and use its `GetAppApiToken()` method. + +## See Also + +* [Dapr for .NET Developers](https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/) +* [The Official Dapr Documentation](https://docs.dapr.io/) diff --git a/docs/en/Migration-Guides/Abp-6_0.md b/docs/en/Migration-Guides/Abp-6_0.md index 1436990e56..f589bca2cd 100644 --- a/docs/en/Migration-Guides/Abp-6_0.md +++ b/docs/en/Migration-Guides/Abp-6_0.md @@ -2,13 +2,13 @@ This document is a guide for upgrading ABP v5.3 solutions to ABP v6.0. There is a change in this version that may affect your applications, please read it carefully and apply the necessary changes to your application. -## Added IsActive property +## The IsActive property is Added -`IsActive` property is added to `IUserData`. This property is set to **true** by default. **Cmskit** and **Blog** modules are affected by this change. You need to add new migration to your existing application if you are using any of these modules. Please see [#11417](https://github.com/abpframework/abp/pull/11417) for more info. +`IsActive` property is added to `IUserData`. This property is set to **true** by default. **Cmskit** and **Blog** modules are affected by this change. You need to add a new migration to your existing application if you are using any of these modules. Please see [#11417](https://github.com/abpframework/abp/pull/11417) for more info. ## Default behavior change in MultiTenancyMiddlewareErrorPageBuilder -If you have customized the `MultiTenancyMiddlewareErrorPageBuilder` of `AbpMultiTenancyOptions`, the pipeline now returns **true** to stop the pipeline as the default behavior. See [AbpMultiTenancyOptions: Handle inactive and non-existent tenants](https://github.com/abpframework/abp/blob/dev/docs/en/Multi-Tenancy.md#abpmultitenancyoptions-handle-inactive-and-non-existent-tenants) for more info. +If you have customized the `MultiTenancyMiddlewareErrorPageBuilder` of the `AbpMultiTenancyOptions`, the pipeline now returns **true** to stop the pipeline as the default behavior. See [AbpMultiTenancyOptions: Handle inactive and non-existent tenants](https://github.com/abpframework/abp/blob/dev/docs/en/Multi-Tenancy.md#abpmultitenancyoptions-handle-inactive-and-non-existent-tenants) for more info. ## Migrating to LeptonX Lite @@ -22,7 +22,7 @@ LeptonX Lite is now being introduced and you can follow the guides below to migr After the [announcement of plan to replace the IdentityServer](https://github.com/abpframework/abp/issues/11989), we have successfully implemented [Openiddict](https://github.com/openiddict/openiddict-core) as a replacement for IdentityServer4 as an OpenID-Provider. -You can follow the [IdentityServer to OpenIddict Step by Step Guide](OpenIddict-Step-by-Step.md) for migrating your existing application in detail with a sample projects. +You can follow the [IdentityServer to OpenIddict Step by Step Guide](OpenIddict-Step-by-Step.md) for migrating your existing application in detail with a sample project. ## See Also diff --git a/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md b/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md index 3567ea5c06..7a36b250c9 100644 --- a/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md +++ b/docs/en/Migration-Guides/OpenIddict-Step-by-Step.md @@ -7,6 +7,11 @@ We are not removing Identity Server packages and we will continue to release new On the other hand, Identity Server ends support for the open-source Identity Server at the end of 2022. The Identity Server team has decided to move to Duende IDS and ABP will not be migrated to the commercial Duende IDS. You can see the Duende Identity Server announcement from [this link](https://blog.duendesoftware.com/posts/20220111_fair_trade). +## Commercial Template + +If you are using a commercial template, please check [Migrating from IdentityServer to OpenIddict for the Commercial Templates](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-step-by-step) guide. +If you are using the microservice template, please check [Migrating the Microservice Template from IdentityServer to OpenIddict](https://docs.abp.io/en/commercial/6.0/migration-guides/openIddict-microservice) guide. + ## OpenIddict Migration Steps Use the `abp update` command to update your existing application. See [Upgrading docs](../Upgrading.md) for more info. Apply required migrations by following the [Migration Guides](Index.md) based on your application version. @@ -73,7 +78,7 @@ Use the `abp update` command to update your existing application. See [Upgrading #### OpenIddictDataSeedContributor -- Create a folder named *OpenIddict* under the Domain project and copy the [OpenIddictDataSeedContributor.cs](https://github.com/abpframework/abp-samples/blob/master/Ids2OpenId/src/Ids2OpenId.Domain/OpenIddict/OpenIddictDataSeedContributor.cs) under this folder. Rename all the `Ids2OpenId` with your project name. +- Create a folder named *OpenIddict* under the Domain project and copy the [OpenIddictDataSeedContributor.cs](https://github.com/abpframework/abp-samples/blob/master/Ids2OpenId/src/Ids2OpenId.Domain/OpenIddict/OpenIddictDataSeedContributor.cs) under this folder. **Rename** all the `Ids2OpenId` with your project name. - Delete *IdentityServer* folder that contains `IdentityServerDataSeedContributor.cs` which is no longer needed. You can also create a project with the same name and copy the `OpenIddict` folder of the new project into your project. @@ -213,6 +218,30 @@ for creating the host builder. Replace **MyApplication** with your application name. +### Test Project + +- In **MyApplicationTestBaseModule.cs** **remove** the IdentityServer related using and PreConfigurations: + + ```csharp + using Volo.Abp.IdentityServer; + ``` + + and + + ```csharp + PreConfigure(options => + { + options.AddDeveloperSigningCredential = false; + }); + + PreConfigure(identityServerBuilder => + { + identityServerBuilder.AddDeveloperSigningCredential(false, System.Guid.NewGuid().ToString()); + }); + ``` + + from `PreConfigureServices`. + ### UI Layer - [Angular UI Migration](OpenIddict-Angular.md) diff --git a/docs/en/UI/Angular/Dynamic-Form-Extensions.md b/docs/en/UI/Angular/Dynamic-Form-Extensions.md index d7780ceec0..26df2b4e91 100644 --- a/docs/en/UI/Angular/Dynamic-Form-Extensions.md +++ b/docs/en/UI/Angular/Dynamic-Form-Extensions.md @@ -235,10 +235,35 @@ const options: FormPropOptions = { }, autocomplete: 'off', isExtra: true, + template: undefined | Type // Custom angular component }; const prop = new FormProp(options); ``` +FormProp has template option since version 6.0. it can accept custom angular component. +The component can access PropData and Prop. +Example custom prop component. +```js +import { + EXTENSIBLE_FORM_VIEW_PROVIDER, + EXTENSIONS_FORM_PROP, + EXTENSIONS_FORM_PROP_DATA, +} from '@abp/ng.theme.shared/extensions'; + + +@Component({ + selector: 'my-custom-custom-prop', + templateUrl: './my-custom-custom-prop.component.html', + viewProviders: [EXTENSIBLE_FORM_VIEW_PROVIDER], //you should add this, otherwise form-group doesn't work. +}) +export class MyCustomPropComponent { + constructor( + @Inject(EXTENSIONS_FORM_PROP) private formProp: FormProp, + @Inject(EXTENSIONS_FORM_PROP_DATA) private propData: ProfileDto, + ...) + ... +} +``` It also has two static methods to create its instances: diff --git a/docs/en/UI/Blazor/Overall.md b/docs/en/UI/Blazor/Overall.md index 402d61acb0..835bf4eab6 100644 --- a/docs/en/UI/Blazor/Overall.md +++ b/docs/en/UI/Blazor/Overall.md @@ -94,7 +94,7 @@ These libraries are selected as the base libraries and available to the applicat > Bootstrap's JavaScript part is not used since the Blazorise library already provides the necessary functionalities to the Bootstrap components in a native way. -> Beginning from June, 2021, the Blazorise library has dual licenses; open source & commercial. Based on your yearly revenue, you may need to buy a commercial license. See [this post](https://blazorise.com/news/announcing-2022-blazorise-plans-and-pricing-updates) to learn more. +> Beginning from June, 2021, the Blazorise library has dual licenses; open source & commercial. Based on your yearly revenue, you may need to buy a commercial license. See [this post](https://blazorise.com/news/announcing-2022-blazorise-plans-and-pricing-updates) to learn more. The Blazorise license is bundled with ABP Commercial and commercial customers doesn’t need to buy an extra Blazorise license. ### The Layout diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 035f150705..ed9cb37135 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -1283,6 +1283,10 @@ } ] }, + { + "text": "Dapr Integration", + "path": "Dapr/Index.md" + }, { "text": "Testing", "path": "Testing.md" diff --git a/docs/zh-Hans/Dapr/Index.md b/docs/zh-Hans/Dapr/Index.md new file mode 100644 index 0000000000..30936eb6da --- /dev/null +++ b/docs/zh-Hans/Dapr/Index.md @@ -0,0 +1,469 @@ +# ABP Dpar 集成 + +> 这个文档假设你已经熟悉[Dapr](https://dapr.io/)并且想在你的ABP应用中使用它. + +[Dapr](https://dapr.io/) (分布式应用运行时)提供了简化微服务连接的API.它是一个开源项目,主要由微软支持.它也是CNCF(云原生计算基金会)项目,受到社区的信任. + +ABP和Dapr有一些相似的特性,如服务到服务通信,分布式消息总线和分布式锁.然而,它们的目的完全不同.ABP的目标是通过提供自以为是的架构并提供必要的基础架构库,可重用模块和工具来正确实现该架构来提供端到端的开发人员体验.另一方面,Dapr的目的是提供一个运行时,将常见的微服务通信模式与应用程序逻辑解耦. + +ABP和Dapr可以完美地在同一个应用程序中一起工作.ABP提供了一些包来提供更好的集成,其中Dapr功能与ABP相似.你可以根据[Dapr文档](https://docs.dapr.io/)使用其他Dapr功能,而不需要ABP集成包. + +## ABP Dpar 集成包 + +ABP提供了以下NuGet包用于Dapr集成: + +* [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr): 主要的Dapr集成包.所有其他包都依赖于此包. +* [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr): 与Dapr的[服务调用](https://docs.dapr.io/developing-applications/building-blocks/service-invocation/service-invocation-overview/)集成的ABP的[动态](../API/Dynamic-CSharp-API-Clients.md)和[静态](../API/Static-CSharp-API-Clients.md)C# API客户端代理系统集成包. +* [Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr): 使用Dapr的[发布和订阅](https://docs.dapr.io/developing-applications/building-blocks/pubsub/)构建块实现ABP的分布式事件总线.使用此包,你可以发送事件,但不能接收. +* [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus): 提供从Dapr的[发布和订阅](https://docs.dapr.io/developing-applications/building-blocks/pubsub/)构建块接收事件的端点.使用此包发送和接收事件. +* [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr): 使用Dapr的[分布式锁](https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/)构建块为ABP框架的[分布式锁定](../Distributed-Locking.md)服务. + +在以下部分中,我们将看到如何使用这些包在ABP基础解决方案中使用Dapr. + +## 基础 + +### 安装 + +> 这个部分解释了如何将[Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr)添加到你的项目中.如果你使用的是其他Dapr集成包,你可以跳过这个部分,因为这个包会被间接添加. + +使用ABP CLI将[Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr) NuGet包添加到你的项目中: + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI)如果你之前没有安装过. +* 在你想要添加`Volo.Abp.Dapr`包的`.csproj`文件所在的目录中打开命令行(终端). +* 运行`abp add-package Volo.Abp.Dapr`命令. + +如果你想手动添加,安装 [Volo.Abp.Dapr](https://www.nuget.org/packages/Volo.Abp.Dapr) NuGet包到你的项目中,并在项目内的[ABP模块](../Module-Development-Basics.md)类中添加`[DependsOn(typeof(AbpDaprModule))]`. + +### AbpDaprOptions + +`AbpDaprOptions` 是配置全局Dapr设置的主要[选项类](../Options.md).**所有设置都是可选的,你大多数情况下不需要配置它们.** 如果你需要,你可以在[模块类](../Module-Development-Basics.md)的`ConfigureServices`方法中配置它: + +````csharp +Configure(options => +{ + // ... +}); +```` + +可用的`AbpDaprOptions`类属性: + +* `HttpEndpoint` (可选):创建`DaprClient`对象时使用的HTTP端点.如果你没有指定,将使用默认值. +* `GrpcEndpoint` (可选):创建`DaprClient`对象时使用的gRPC端点.如果你没有指定,将使用默认值. +* `DaprApiToken` (可选):应用程序向Dapr发送请求时使用的[Dapr API token](https://docs.dapr.io/operations/security/api-token/).默认情况下,它从`DAPR_API_TOKEN`环境变量中填充(配置后由 Dapr 设置).有关详细信息,请参阅本文档的*安全*部分. +* `AppApiToken` (可选):用于验证来自Dapr的请求的[应用程序API token](https://docs.dapr.io/operations/security/app-api-token/).默认情况下,它从`APP_API_TOKEN`环境变量中填充(配置后由 Dapr 设置).有关详细信息,请参阅本文档的*安全*部分. + +或者, 你可以在 `appsettings.json` 文件的 `Dapr` 部分中配置选项.示例: + +````csharp +"Dapr": { + "HttpEndpoint": "http://localhost:3500/" +} +```` + +### 注入DaprClient + +ABP 将 `DaprClient` 类注册到 [依赖注入](../Dependency-Injection.md) 系统中.因此,你可以在需要时注入并使用它: + +````csharp +public class MyService : ITransientDependency +{ + private readonly DaprClient _daprClient; + + public MyService(DaprClient daprClient) + { + _daprClient = daprClient; + } + + public async Task DoItAsync() + { + // TODO: Use the injected _daprClient object + } +} +```` + +注入 `DaprClient` 是在应用程序代码中使用它的推荐方法.当你注入它时,将使用 `IAbpDaprClientFactory` 服务创建它,这会在下一节中将进行说明. + +### IAbpDaprClientFactory + +`IAbpDaprClientFactory` 可用于创建 `DaprClient` 或 `HttpClient` 对象来执行对 Dapr 的操作.它使用 `AbpDaprOptions`,因此你可以配置设置. + +**示例用法:** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IAbpDaprClientFactory _daprClientFactory; + + public MyService(IAbpDaprClientFactory daprClientFactory) + { + _daprClientFactory = daprClientFactory; + } + + public async Task DoItAsync() + { + // Create a DaprClient object with default options + DaprClient daprClient = await _daprClientFactory.CreateAsync(); + + /* Create a DaprClient object with configuring + * the DaprClientBuilder object */ + DaprClient daprClient2 = await _daprClientFactory + .CreateAsync(builder => + { + builder.UseDaprApiToken("..."); + }); + + // Create an HttpClient object + HttpClient httpClient = await _daprClientFactory + .CreateHttpClientAsync("target-app-id"); + } +} +```` + +`CreateHttpClientAsync` 方法还获取可选的 `daprEndpoint` 和 `daprApiToken` 参数. + +> ABP使用`IAbpDaprClientFactory`创建Dapr客户端.你也可以在应用程序中使用Dapr API创建客户端对象.推荐使用`IAbpDaprClientFactory`,但不是必需的. + +## C# API 客户端代理集成 + +ABP可以[动态](../API/Dynamic-CSharp-API-Clients.md)或[静态](../API/Static-CSharp-API-Clients.md)生成代理类,以便从Dotnet客户端应用程序调用HTTP API.在分布式系统中使用HTTP API是非常合理的.[Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr)包配置了客户端代理系统,因此它使用Dapr的服务调用构建块进行应用程序之间的通信. + +### 安装 + +使用ABP CLI将[Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet包添加到项目(客户端): + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI)如果你之前没有安装过. +* 在你想要添加`Volo.Abp.Http.Client.Dapr`包的`.csproj`文件所在的目录中打开命令行(终端). +* 运行`abp add-package Volo.Abp.Http.Client.Dapr`命令. + +如果你想手动添加,安装 [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet包到你的项目中,并在项目内的[ABP模块](../Module-Development-Basics.md)类中添加`[DependsOn(typeof(AbpHttpClientDaprModule))]`. + +### 配置 + +当你安装了[Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.Http.Client.Dapr) NuGet 包,所有你需要做的就是在`appsettings.json`或使用`AbpRemoteServiceOptions`[选项类](../Options.md)中配置ABP的远程服务选项. + +**示例:** + +````csharp +{ + "RemoteServices": { + "Default": { + "BaseUrl": "http://dapr-httpapi/" + } + } +} +```` + +`dapr-httpapi` 在这个例子中是你的Dapr配置中服务器应用程序的应用程序ID. + +远程服务名称(示例中是`Default`)应该匹配动态客户端代理中`AddHttpClientProxies`调用或静态客户端代理中`AddStaticHttpClientProxies`调用中指定的远程服务名称.如果你的客户端只与一个服务器通信,使用`Default`是可以的.但是,如果你的客户端使用多个服务器,你通常在`RemoteServices`配置中有多个键. 你将远程服务端点配置为Dapr应用程序ID,在你使用ABP的客户端代理系统时它将自动工作并通过Dapr进行HTTP调用, + +> 参阅[动态](../API/Dynamic-CSharp-API-Clients.md) 和 [static](../API/Static-CSharp-API-Clients.md)客户端代理文档,了解ABP的客户端代理系统的详细信息. + +## 分布式事件总线集成 + +[ABP的分布式事件总线](../Distributed-Event-Bus.md)系统提供了一个方便的抽象,允许应用程序通过事件异步通信.ABP提供了各种分布式消息系统(如RabbitMQ,Kafka和Azure)的集成包.Dapr也有一个[发布和订阅构建块](https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-overview/),用于相同的目的:分布式消息/事件. + +ABP的[Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr)和[Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus)包可以使用Dapr基础设施来实现ABP的分布式事件总线. + +任何类型的应用程序(例如,控制台或ASP.NET Core应用程序)都可以使用[Volo.Abp.EventBus.Dapr]包通过Dapr发布事件.为了能够接收消息(通过订阅事件),你需要安装[Volo.Abp.AspNetCore.Mvc.Dapr.EventBus]包,并且你的应用程序应该是ASP.NET Core应用程序. + +### 安装 + +如果你的应用程序是ASP.NET Core应用程序并且你想发送和接收事件,你需要按照下面的描述安装[Volo.Abp.AspNetCore.Mvc.Dapr.EventBus]包: + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI)如果你之前没有安装过. +* 在你想要添加`Volo.Abp.AspNetCore.Mvc.Dapr.EventBus`包的`.csproj`文件所在的目录中打开命令行(终端). +* 运行`abp add-package Volo.Abp.AspNetCore.Mvc.Dapr.EventBus`命令. + +如果你想手动添加,安装 [Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) NuGet包到你的项目中,并在项目内的[ABP模块](../Module-Development-Basics.md)类中添加`[DependsOn(typeof(AbpAspNetCoreMvcDaprEventBusModule))]`. + +> **如果你安装了[Volo.Abp.AspNetCore.Mvc.Dapr.EventBus](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus)包, 那么你不需要安装[Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr)包,因为它已经由第一个包引用** + +如果你的应用程序不是ASP.NET Core应用程序,你不能从Dapr接收事件,至少使用ABP的集成包(如果你想在不同类型的应用程序中接收事件,请参阅[Dapr的文档](https://docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/)).但是你仍然可以使用[Volo.Abp.EventBus.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr)包发布消息.在这种情况下,请按照下面的步骤将该包安装到你的项目中: + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI)如果你之前没有安装过. +* 在你想要添加`Volo.Abp.EventBus.Dapr`包的`.csproj`文件所在的目录中打开命令行(终端). +* 运行`abp add-package Volo.Abp.EventBus.Daprs`命令. + +如果你想手动添加,安装 [Volo.Abp.Http.Client.Dapr](https://www.nuget.org/packages/Volo.Abp.EventBus.Dapr) NuGet包到你的项目中,并在项目内的[ABP模块](../Module-Development-Basics.md)类中添加`[DependsOn(typeof(AbpEventBusDaprModule))]`. + +### 配置 + +你可以为Dapr配置`AbpDaprEventBusOptions`[选项类](../Options.md): + +````csharp +Configure(options => +{ + options.PubSubName = "pubsub"; +}); +```` + +可用的`AbpDaprEventBusOptions`类的属性: + +* `PubSubName` (可选): 通过`DaprClient.PublishEventAsync`方法发布消息时的`pubsubName`参数.默认值:`pubsub`. + +### ABP订阅端点 + +ABP提供了以下端点来接收来自Dapr的事件: + +* `dapr/subscribe`: Dapr使用此端点从应用程序获取订阅列表.ABP会自动返回所有分布式事件处理程序类和具有`Topic`属性的自定义控制器操作的订阅. +* `api/abp/dapr/event`: 用于接收来自Dapr的所有事件的统一端点.ABP根据主题名称将事件分派给您的事件处理程序. + +> **由于ABP提供了标准的`dapr/subscribe`端点,所以你不应该手动调用Dapr的`app.MapSubscribeHandler()`方法.** 如果你想支持[CloudEvents](https://cloudevents.io/)标准,你可以在你的ASP.NET Core管道中使用`app.UseCloudEvents()`中间件. + +### 用法 + +#### ABP的方式 + +你可以按照[ABP的分布式事件总线文档](../Distributed-Event-Bus.md)来学习如何以ABP的方式发布和订阅事件.你的应用程序代码不需要做任何改变就可以使用Dapr的发布-订阅功能.ABP将自动为你的事件处理程序类(实现`IDistributedEventHandler`接口)订阅Dapr. + +ABP提供了 `api/abp/dapr/event` + +**示例:使用`IDistributedEventBus`服务发布事件** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IDistributedEventBus _distributedEventBus; + + public MyService(IDistributedEventBus distributedEventBus) + { + _distributedEventBus = distributedEventBus; + } + + public async Task DoItAsync() + { + await _distributedEventBus.PublishAsync(new StockCountChangedEto + { + ProductCode = "AT837234", + NewStockCount = 42 + }); + } +} +```` + +**示例:通过实现`IDistributedEventHandler`接口来订阅事件** + +````csharp +public class MyHandler : + IDistributedEventHandler, + ITransientDependency +{ + public async Task HandleEventAsync(StockCountChangedEto eventData) + { + var productCode = eventData.ProductCode; + // ... + } +} +```` + +参阅[ABP的分布式事件总线文档](../Distributed-Event-Bus.md)来了解细节. + +#### 使用Dapr API + +在ABP的标准分布式事件总线系统之外,你还可以使用Dapr的API来发布事件. + +> 如果你直接使用Dapr API来发布事件,你可能无法从ABP的标准分布式事件总线功能中受益,比如outbox/inbox模式的实现. + +**示例:使用`DaprClient`发布事件** + +````csharp +public class MyService : ITransientDependency +{ + private readonly DaprClient _daprClient; + + public MyService(DaprClient daprClient) + { + _daprClient = daprClient; + } + + public async Task DoItAsync() + { + await _daprClient.PublishEventAsync( + "pubsub", // pubsub name + "StockChanged", // topic name + new StockCountChangedEto // event data + { + ProductCode = "AT837234", + NewStockCount = 42 + } + ); + } +} +```` + +**示例:通过创建ASP.NET Core控制器来订阅事件** + +````csharp +public class MyController : AbpController +{ + [HttpPost("/stock-changed")] + [Topic("pubsub", "StockChanged")] + public async Task TestRouteAsync( + [FromBody] StockCountChangedEto model) + { + HttpContext.ValidateDaprAppApiToken(); + + // Do something with the event + return Ok(); + } +} +```` + +`HttpContext.ValidateDaprAppApiToken()` 扩展方法由ABP提供,用于检查请求是否来自Dapr.这是可选的.如果你想启用验证,你应该配置Dapr将App API令牌发送到你的应用程序.如果没有配置,`ValidateDaprAppApiToken()`不会执行任何操作.参阅[Dapr的App API令牌文档](https://docs.dapr.io/operations/security/app-api-token/)了解更多信息.还可以参阅本文档中的**AbpDaprOptions**和**安全**部分. + +参阅[Dapr的文档](https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/publish-subscribe)来了解使用Dapr API发送和接收事件的细节. + +## 分布式锁 + +> Dapr的分布式锁功能目前处于Alpha阶段,可能还不稳定.在这一点上,不建议用Dapr来替换ABP的分布式锁. + +ABP提供了一个[分布式锁](../Distributed-Locking.md)抽象来控制多个应用程序对共享资源的访问.Dapr也有一个[分布式锁构建块](https://docs.dapr.io/developing-applications/building-blocks/distributed-lock/).[Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr)包使ABP使用Dapr的分布式锁系统. + +### 安装 + +使用ABP CLI将[Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.DistributedLocking.Dapr)NuGet包添加到项目(客户端): + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI)如果你之前没有安装过. +* 在你想要添加`Volo.Abp.DistributedLocking.Dapr`包的`.csproj`文件所在的目录中打开命令行(终端). +* 运行`abp add-package Volo.Abp.DistributedLocking.Dapr`命令. + +如果你想手动添加,安装 [Volo.Abp.DistributedLocking.Dapr](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus) NuGet包到你的项目中,并在项目内的[ABP模块](../Module-Development-Basics.md)类中添加`[DependsOn(typeof(AbpDistributedLockingDaprModule))]`. + +### 配置 + +你可以在[你的模块](../Module-Development-Basics.md)的`ConfigureServices`方法中使用`AbpDistributedLockDaprOptions`选项类来配置Dapr分布式锁: + +````csharp +Configure(options => +{ + options.StoreName = "mystore"; +}); +```` + +以下选项可用: + +* **`StoreName`** (必需):Dapr使用的存储库名称.锁键名称在同一存储库中范围内.这意味着不同的应用程序可以在不同的存储库中获取相同的锁名称.对于要控制访问的相同资源,请使用相同的存储库名称. +* `Owner` (可选):`DaprClient.Lock`方法使用的`owner`值.如果你不指定,ABP使用一个随机值,这在一般情况下是可以的. +* `DefaultExpirationTimeout` (可选):锁过期后的默认值.默认值:2分钟. + +### 用法 + +你可以注入并使用`IAbpDistributedLock`服务,就像在[分布式锁文档](../Distributed-Locking.md)中解释的那样. + +**示例:** + +````csharp +public class MyService : ITransientDependency +{ + private readonly IAbpDistributedLock _distributedLock; + + public MyService(IAbpDistributedLock distributedLock) + { + _distributedLock = distributedLock; + } + + public async Task MyMethodAsync() + { + await using (var handle = + await _distributedLock.TryAcquireAsync("MyLockName")) + { + if (handle != null) + { + // your code that access the shared resource + } + } + } +} +```` + +这里有两点关于`TryAcquireAsync`方法我们应该提到,与ABP的标准用法不同: + +* `timeout` 参数目前没有使用(即使你指定了它),因为Dapr不支持等待获取锁. +* Dapr 使用过期超时系统(这意味着即使你不通过释放处理程序来释放锁,锁也会在超时后自动释放).但是,ABP的`TryAcquireAsync`方法没有这样的参数.目前,你可以在应用程序中将`AbpDistributedLockDaprOptions.DefaultExpirationTimeout`设置为全局值. + +Dapr的分布式锁功能目前处于Alpha阶段,其API是可能会改变的候选者.如果你想要使用它,你可以这样做,但是要准备好未来的变化.目前,我们建议使用ABP的[分布式锁文档](../Distributed-Locking.md)中提到的[DistributedLock](https://github.com/madelson/DistributedLock)库. + +## 安全 + +如果你使用Dapr,你的应用程序中的大部分或全部传入和传出请求都会通过Dapr.Dapr使用两种API令牌来保护应用程序与Dapr之间的通信. + +### Dapr API Token + +> 这个令牌默认情况下是自动设置的,通常你不需要关心它. + +[在Dapr中启用API令牌身份验证](https://docs.dapr.io/operations/security/api-token/)文档描述了Dapr API令牌是什么以及如何配置.如果你想为你的应用程序启用它,请阅读该文档. + +如果你启用了Dapr API令牌,你应该在你的应用程序中向Dapr发送该令牌.`AbpDaprOptions`定义了一个`DaprApiToken`属性,作为在你的应用程序中配置Dapr API令牌的中心点. + +`DaprApiToken`属性的默认值是从`DAPR_API_TOKEN`环境变量设置的,并且该环境变量是在Dapr运行时设置的.所以,大多数情况下,你不需要在你的应用程序中配置`AbpDaprOptions.DaprApiToken`.但是,如果你需要配置(或覆盖它),你可以在模块类的`ConfigureServices`方法中这样做,如下面的代码块所示: + +````csharp +Configure(options => +{ + options.DaprApiToken = "..."; +}); +```` + +或者你可以在`appsettings.json`文件中设置它: + +````json +"Dapr": { + "DaprApiToken": "..." +} +```` + +一旦你设置了它,它就会在你注入`DaprClient`或使用`IAbpDaprClientFactory`时使用.如果你需要在应用程序中使用该值,你可以注入`IDaprApiTokenProvider`并使用其`GetDaprApiToken()`方法. + +### App API Token + +> 启用App API令牌验证是强烈推荐的.否则,例如,任何客户端都可以直接调用你的事件订阅端点,你的应用程序就像发生了事件一样(如果你的事件订阅端点中没有其他安全策略). + +[在Dapr中使用令牌身份验证请求身份验证](https://docs.dapr.io/operations/security/app-api-token/)文档描述了App API令牌是什么以及如何配置.如果你想为你的应用程序启用它,请阅读该文档. + +如果你启用了App API令牌,你可以验证它以确保请求来自Dapr.ABP提供了有用的快捷方式来验证它. + +**示例:在事件处理HTTP API中验证App API令牌** + +````csharp +public class MyController : AbpController +{ + [HttpPost("/stock-changed")] + [Topic("pubsub", "StockChanged")] + public async Task TestRouteAsync( + [FromBody] StockCountChangedEto model) + { + // Validate the App API token! + HttpContext.ValidateDaprAppApiToken(); + + // Do something with the event + return Ok(); + } +} +```` + +`HttpContext.ValidateDaprAppApiToken()` 是ABP框架提供的扩展方法.如果HTTP头中缺少或错误的令牌,则会抛出`AbpAuthorizationException`(头名称为`dapr-api-token`).你也可以注入`IDaprAppApiTokenValidator`并使用其方法在任何服务中验证令牌(不仅仅是在控制器类中). + +你可以配置`AbpDaprOptions.AppApiToken`,如果你想设置(或覆盖)App API令牌值.默认值由`APP_API_TOKEN`环境变量设置.你可以在模块类的`ConfigureServices`方法中这样做,如下面的代码块所示: + +````csharp +Configure(options => +{ + options.AppApiToken = "..."; +}); +```` + +或者你可以在`appsettings.json`文件中设置它: + +````json +"Dapr": { + "AppApiToken": "..." +} +```` + +如果你需要在应用程序中使用该值,你可以注入`IDaprApiTokenProvider`并使用其`GetAppApiToken()`方法. + +## 另请参阅 + +* [Dapr for .NET Developers](https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/) +* [Dapr官方文档](https://docs.dapr.io/) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprPubSubController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprPubSubController.cs index c97e793b53..674e227cd0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprPubSubController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/Controllers/AbpAspNetCoreMvcDaprPubSubController.cs @@ -21,6 +21,8 @@ public class AbpAspNetCoreMvcDaprPubSubController : AbpController [HttpPost(AbpAspNetCoreMvcDaprPubSubConsts.DaprEventCallbackUrl)] public virtual async Task EventsAsync() { + this.HttpContext.ValidateDaprAppApiToken(); + var bodyJsonDocument = await JsonDocument.ParseAsync(HttpContext.Request.Body); var request = JsonSerializer.Deserialize(bodyJsonDocument.RootElement.GetRawText(), HttpContext.RequestServices.GetRequiredService>().Value.JsonSerializerOptions); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/SystemTextJson/AbpAspNetCoreMvcDaprSubscriptionDefinitionConverter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/SystemTextJson/AbpAspNetCoreMvcDaprSubscriptionDefinitionConverter.cs index fa26d35ca6..bcd2a0e1be 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/SystemTextJson/AbpAspNetCoreMvcDaprSubscriptionDefinitionConverter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr.EventBus/Volo/Abp/AspNetCore/Mvc/Dapr/EventBus/SystemTextJson/AbpAspNetCoreMvcDaprSubscriptionDefinitionConverter.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Dapr.EventBus.SystemTextJson; public class AbpAspNetCoreMvcDaprSubscriptionDefinitionConverter : JsonConverter { - private JsonSerializerOptions _writeJsonSerializerOptions; + private JsonSerializerOptions? _writeJsonSerializerOptions; public override AbpAspNetCoreMvcDaprSubscriptionDefinition Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs new file mode 100644 index 0000000000..817eb9824d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprAppApiTokenValidator.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.SignalR; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Authorization; +using Volo.Abp.Dapr; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.Dapr; + +public class DaprAppApiTokenValidator : IDaprAppApiTokenValidator, ISingletonDependency +{ + protected IHttpContextAccessor HttpContextAccessor { get; } + protected HttpContext HttpContext => GetHttpContext(); + + public DaprAppApiTokenValidator(IHttpContextAccessor httpContextAccessor) + { + HttpContextAccessor = httpContextAccessor; + } + + public virtual void CheckDaprAppApiToken() + { + var expectedAppApiToken = GetConfiguredAppApiTokenOrNull(); + if (expectedAppApiToken.IsNullOrWhiteSpace()) + { + return; + } + + var headerAppApiToken = GetDaprAppApiTokenOrNull(); + if (headerAppApiToken.IsNullOrWhiteSpace()) + { + throw new AbpAuthorizationException("Expected Dapr App API Token is not provided! Dapr should set the 'dapr-api-token' HTTP header."); + } + + if (expectedAppApiToken != headerAppApiToken) + { + throw new AbpAuthorizationException("The Dapr App API Token (provided in the 'dapr-api-token' HTTP header) doesn't match the expected value!"); + } + } + + public virtual bool IsValidDaprAppApiToken() + { + var expectedAppApiToken = GetConfiguredAppApiTokenOrNull(); + if (expectedAppApiToken.IsNullOrWhiteSpace()) + { + return true; + } + + var headerAppApiToken = GetDaprAppApiTokenOrNull(); + return expectedAppApiToken == headerAppApiToken; + } + + public virtual string? GetDaprAppApiTokenOrNull() + { + string apiTokenHeader = HttpContext.Request.Headers["dapr-api-token"]; + if (string.IsNullOrEmpty(apiTokenHeader) || apiTokenHeader.Length < 1) + { + return null; + } + + return apiTokenHeader; + } + + protected virtual string? GetConfiguredAppApiTokenOrNull() + { + return HttpContext + .RequestServices + .GetRequiredService() + .GetAppApiToken(); + } + + protected virtual HttpContext GetHttpContext() + { + return HttpContextAccessor.HttpContext ?? throw new AbpException("HttpContext is not available!"); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs new file mode 100644 index 0000000000..15663d0c3c --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/DaprHttpContextExtensions.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.Dapr; + +public static class DaprHttpContextExtensions +{ + public static void ValidateDaprAppApiToken(this HttpContext httpContext) + { + httpContext + .RequestServices + .GetRequiredService() + .CheckDaprAppApiToken(); + } + + public static bool IsValidDaprAppApiToken(this HttpContext httpContext) + { + return httpContext + .RequestServices + .GetRequiredService() + .IsValidDaprAppApiToken(); + } + + public static string? GetDaprAppApiTokenOrNull(HttpContext httpContext) + { + return httpContext + .RequestServices + .GetRequiredService() + .GetDaprAppApiTokenOrNull(); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs new file mode 100644 index 0000000000..ed5f281ea8 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Dapr/Volo/Abp/AspNetCore/Mvc/Dapr/IDaprAppApiTokenValidator.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.Dapr; + +public interface IDaprAppApiTokenValidator +{ + void CheckDaprAppApiToken(); + bool IsValidDaprAppApiToken(); + string? GetDaprAppApiTokenOrNull(); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditActionFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditActionFilter.cs index dfffeea5b4..954a0bd6c7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditActionFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Auditing/AbpAuditActionFilter.cs @@ -93,10 +93,11 @@ public class AbpAuditActionFilter : IAsyncActionFilter, ITransientDependency ActionDescriptor actionDescriptor) { if (!abpAuditingOptions.IsEnabledForIntegrationServices && - actionDescriptor - .AsControllerActionDescriptor() - .ControllerTypeInfo - .IsDefined(typeof(IntegrationServiceAttribute), true)) + IntegrationServiceAttribute.IsDefinedOrInherited( + actionDescriptor + .AsControllerActionDescriptor() + .ControllerTypeInfo) + ) { return false; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalControllerSetting.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalControllerSetting.cs index d1b0eef6ab..bb059a6674 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalControllerSetting.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalControllerSetting.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc.ApplicationModels; using Microsoft.AspNetCore.Mvc.Versioning; using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Linq; using System.Reflection; using Volo.Abp.Reflection; @@ -16,7 +17,7 @@ public class ConventionalControllerSetting public Assembly Assembly { get; } [NotNull] - public HashSet ControllerTypes { get; } //TODO: Internal? + internal HashSet ControllerTypes { get; } /// /// Set true to use the old style URL path style. @@ -47,6 +48,11 @@ public class ConventionalControllerSetting [CanBeNull] public Func TypePredicate { get; set; } + /// + /// Default value: All. + /// + public ApplicationServiceTypes ApplicationServiceTypes { get; set; } = ApplicationServiceTypes.All; + [CanBeNull] public Action ControllerModelConfigurer { get; set; } @@ -77,6 +83,7 @@ public class ConventionalControllerSetting { var types = Assembly.GetTypes() .Where(IsRemoteService) + .Where(IsPreferredApplicationServiceType) .WhereIf(TypePredicate != null, TypePredicate); foreach (var type in types) @@ -84,6 +91,11 @@ public class ConventionalControllerSetting ControllerTypes.Add(type); } } + + public IReadOnlyList GetControllerTypes() + { + return ControllerTypes.ToImmutableList(); + } private static bool IsRemoteService(Type type) { @@ -105,4 +117,19 @@ public class ConventionalControllerSetting return false; } -} + + private bool IsPreferredApplicationServiceType(Type type) + { + if (ApplicationServiceTypes == ApplicationServiceTypes.ApplicationServices) + { + return !IntegrationServiceAttribute.IsDefinedOrInherited(type); + } + + if (ApplicationServiceTypes == ApplicationServiceTypes.IntegrationServices) + { + return IntegrationServiceAttribute.IsDefinedOrInherited(type); + } + + return true; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalRouteBuilder.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalRouteBuilder.cs index 0906d46006..f9c31467b5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalRouteBuilder.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/ConventionalRouteBuilder.cs @@ -73,7 +73,7 @@ public class ConventionalRouteBuilder : IConventionalRouteBuilder, ITransientDep protected virtual string GetApiRoutePrefix(ActionModel actionModel, ConventionalControllerSetting configuration) { - if (actionModel.Controller.ControllerType.IsDefined(typeof(IntegrationServiceAttribute), true)) + if (IntegrationServiceAttribute.IsDefinedOrInherited(actionModel.Controller.ControllerType)) { return AbpAspNetCoreConsts.DefaultIntegrationServiceApiPrefix; } diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreAsyncIntegratedTestBase.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreAsyncIntegratedTestBase.cs index 3f5e9ad4b8..aa3ca0621f 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreAsyncIntegratedTestBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreAsyncIntegratedTestBase.cs @@ -79,7 +79,7 @@ public class AbpAspNetCoreAsyncIntegratedTestBase /// The type of the controller. protected virtual string GetUrl() { - return "/" + typeof(TController).Name.RemovePostFix("Controller", "AppService", "ApplicationService", "Service"); + return "/" + typeof(TController).Name.RemovePostFix("Controller", "AppService", "ApplicationService", "IntService", "IntegrationService", "Service"); } /// diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs index f3e60979bb..20afedf680 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo/Abp/AspNetCore/TestBase/AbpAspNetCoreIntegratedTestBase.cs @@ -59,7 +59,7 @@ public abstract class AbpAspNetCoreIntegratedTestBase : AbpTestBaseWit /// The type of the controller. protected virtual string GetUrl() { - return "/" + typeof(TController).Name.RemovePostFix("Controller", "AppService", "ApplicationService", "Service"); + return "/" + typeof(TController).Name.RemovePostFix("Controller", "AppService", "ApplicationService", "IntService", "IntegrationService", "Service"); } /// diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs index db5d44cec5..ca07c75516 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptorRegistrar.cs @@ -52,7 +52,8 @@ public static class AuditingInterceptorRegistrar if (typeof(IAuditingEnabled).IsAssignableFrom(type)) { - if (ignoreIntegrationServiceAttribute || !type.IsDefined(typeof(IntegrationServiceAttribute), true)) + if (ignoreIntegrationServiceAttribute || + !IntegrationServiceAttribute.IsDefinedOrInherited(type)) { return true; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFilesStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFilesStep.cs new file mode 100644 index 0000000000..4390e02f1d --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFilesStep.cs @@ -0,0 +1,16 @@ +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class RemoveFilesStep : ProjectBuildPipelineStep +{ + private readonly string _filePath; + + public RemoveFilesStep(string filePath) + { + _filePath = filePath; + } + + public override void Execute(ProjectBuildContext context) + { + context.Files.RemoveAll(file => file.Name.Contains(_filePath)); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs index ce61d9775f..124209d559 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs @@ -19,7 +19,7 @@ public class TemplateCodeDeleteStep : ProjectBuildPipelineStep file.Name.EndsWith(".ps1") || file.Name.EndsWith(".html") || file.Name.EndsWith(".ts") || - file.Name.EndsWith(".scss")) + file.Name.EndsWith(".css")) { file.RemoveTemplateCode(context.Symbols); file.RemoveTemplateCodeMarkers(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 22d33be136..737f7a2369 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -204,6 +204,8 @@ public abstract class AppTemplateBase : TemplateInfo steps.Add(new ChangeThemeStyleStep()); } + RemoveThemeLogoFolders(context, steps); + if (IsDefaultThemeForTemplate(context.BuildArgs.Theme.Value)) { return; @@ -213,6 +215,19 @@ public abstract class AppTemplateBase : TemplateInfo RemoveLeptonXThemePackagesFromPackageJsonFiles(steps, isProTemplate: IsPro(), uiFramework: context.BuildArgs.UiFramework); } + private void RemoveThemeLogoFolders(ProjectBuildContext context, List steps) + { + if (context.BuildArgs.Theme is not Theme.Lepton && IsPro()) + { + steps.Add(new RemoveFilesStep("/wwwroot/images/logo/lepton")); + } + + if (context.BuildArgs.Theme is not Theme.LeptonX or Theme.LeptonXLite) + { + steps.Add(new RemoveFilesStep("/wwwroot/images/logo/leptonx")); + } + } + private static bool IsDefaultThemeForTemplate(Theme theme) { var defaultThemesForTemplates = new[] diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs index 90c1747217..6b1b95407f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/CSharp/CSharpServiceProxyGenerator.cs @@ -21,7 +21,7 @@ public class CSharpServiceProxyGenerator : ServiceProxyGeneratorBase + /// Only application services without . + /// + ApplicationServices = 1, + + /// + /// Application services with . + /// + IntegrationServices = 2, + + /// + /// All application services. + /// + All = ApplicationServices | IntegrationServices +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/IntegrationServiceAttribute.cs b/framework/src/Volo.Abp.Core/Volo/Abp/IntegrationServiceAttribute.cs index 016a7a49c7..22ab4ca9e9 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/IntegrationServiceAttribute.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/IntegrationServiceAttribute.cs @@ -2,8 +2,29 @@ namespace Volo.Abp; -[AttributeUsage(AttributeTargets.Class)] +[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)] public class IntegrationServiceAttribute : Attribute { - + public static bool IsDefinedOrInherited() + { + return IsDefinedOrInherited(typeof(T)); + } + + public static bool IsDefinedOrInherited(Type type) + { + if (type.IsDefined(typeof(IntegrationServiceAttribute), true)) + { + return true; + } + + foreach (var @interface in type.GetInterfaces()) + { + if (@interface.IsDefined(typeof(IntegrationServiceAttribute), true)) + { + return true; + } + } + + return false; + } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs index faaf450ddc..ad284ce156 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprClientFactory.cs @@ -1,5 +1,4 @@ -using System.Collections.Concurrent; -using System.Text.Json; +using System.Text.Json; using Dapr.Client; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; @@ -7,42 +6,68 @@ using Volo.Abp.Json.SystemTextJson; namespace Volo.Abp.Dapr; -public class AbpDaprClientFactory : ITransientDependency +public class AbpDaprClientFactory : IAbpDaprClientFactory, ISingletonDependency { - protected AbpDaprOptions Options { get; } - protected AbpSystemTextJsonSerializerOptions SystemTextJsonSerializerOptions { get; } + protected AbpDaprOptions DaprOptions { get; } + protected JsonSerializerOptions JsonSerializerOptions { get; } + protected IDaprApiTokenProvider DaprApiTokenProvider { get; } public AbpDaprClientFactory( IOptions options, - IOptions systemTextJsonSerializerOptions) + IOptions systemTextJsonSerializerOptions, + IDaprApiTokenProvider daprApiTokenProvider) { - Options = options.Value; - SystemTextJsonSerializerOptions = systemTextJsonSerializerOptions.Value; + DaprApiTokenProvider = daprApiTokenProvider; + DaprOptions = options.Value; + JsonSerializerOptions = CreateJsonSerializerOptions(systemTextJsonSerializerOptions.Value); } - public virtual async Task CreateAsync() + public virtual DaprClient Create(Action? builderAction = null) { var builder = new DaprClientBuilder() - .UseJsonSerializationOptions(await CreateJsonSerializerOptions()); + .UseJsonSerializationOptions(JsonSerializerOptions); - if (!Options.HttpEndpoint.IsNullOrWhiteSpace()) + if (!DaprOptions.HttpEndpoint.IsNullOrWhiteSpace()) { - builder.UseHttpEndpoint(Options.HttpEndpoint); + builder.UseHttpEndpoint(DaprOptions.HttpEndpoint); } - if (!Options.GrpcEndpoint.IsNullOrWhiteSpace()) + if (!DaprOptions.GrpcEndpoint.IsNullOrWhiteSpace()) { - builder.UseGrpcEndpoint(Options.GrpcEndpoint); + builder.UseGrpcEndpoint(DaprOptions.GrpcEndpoint); } + var apiToken = DaprApiTokenProvider.GetDaprApiToken(); + if (!apiToken.IsNullOrWhiteSpace()) + { + builder.UseDaprApiToken(apiToken); + } + + builderAction?.Invoke(builder); + return builder.Build(); } - private readonly static ConcurrentDictionary JsonSerializerOptionsCache = new ConcurrentDictionary(); + public virtual HttpClient CreateHttpClient( + string? appId = null, + string? daprEndpoint = null, + string? daprApiToken = null) + { + if(daprEndpoint.IsNullOrWhiteSpace() && + !DaprOptions.HttpEndpoint.IsNullOrWhiteSpace()) + { + daprEndpoint = DaprOptions.HttpEndpoint; + } - protected virtual Task CreateJsonSerializerOptions() + return DaprClient.CreateInvokeHttpClient( + appId, + daprEndpoint, + daprApiToken ?? DaprApiTokenProvider.GetDaprApiToken() + ); + } + + protected virtual JsonSerializerOptions CreateJsonSerializerOptions(AbpSystemTextJsonSerializerOptions systemTextJsonSerializerOptions) { - return Task.FromResult(JsonSerializerOptionsCache.GetOrAdd(nameof(AbpDaprClientFactory), - _ => new JsonSerializerOptions(SystemTextJsonSerializerOptions.JsonSerializerOptions))); + return new JsonSerializerOptions(systemTextJsonSerializerOptions.JsonSerializerOptions); } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs index 43d6d11033..276e96895d 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprModule.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.Json; using Volo.Abp.Modularity; @@ -10,6 +12,54 @@ public class AbpDaprModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); + + ConfigureDaprOptions(configuration); + + context.Services.TryAddSingleton( + serviceProvider => serviceProvider + .GetRequiredService() + .Create() + ); + } + + private void ConfigureDaprOptions(IConfiguration configuration) + { Configure(configuration.GetSection("Dapr")); + Configure(options => + { + if (options.DaprApiToken.IsNullOrWhiteSpace()) + { + var confEnv = configuration["DAPR_API_TOKEN"]; + if (!confEnv.IsNullOrWhiteSpace()) + { + options.DaprApiToken = confEnv; + } + else + { + var env = Environment.GetEnvironmentVariable("DAPR_API_TOKEN"); + if (!env.IsNullOrWhiteSpace()) + { + options.DaprApiToken = env; + } + } + } + + if (options.AppApiToken.IsNullOrWhiteSpace()) + { + var confEnv = configuration["APP_API_TOKEN"]; + if (!confEnv.IsNullOrWhiteSpace()) + { + options.AppApiToken = confEnv; + } + else + { + var env = Environment.GetEnvironmentVariable("APP_API_TOKEN"); + if (!env.IsNullOrWhiteSpace()) + { + options.AppApiToken = env; + } + } + } + }); } } diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs index 9d743263c5..7ac19ad31c 100644 --- a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/AbpDaprOptions.cs @@ -2,9 +2,11 @@ public class AbpDaprOptions { - public string AppId { get; set; } - public string HttpEndpoint { get; set; } public string GrpcEndpoint { get; set; } -} + + public string DaprApiToken { get; set; } + + public string AppApiToken { get; set; } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs new file mode 100644 index 0000000000..9fbed78204 --- /dev/null +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/DaprApiTokenProvider.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Dapr; + +public class DaprApiTokenProvider : IDaprApiTokenProvider, ISingletonDependency +{ + protected AbpDaprOptions Options { get; } + + public DaprApiTokenProvider(IOptions options) + { + Options = options.Value; + } + + public virtual string? GetDaprApiToken() + { + return Options.DaprApiToken; + } + + public virtual string? GetAppApiToken() + { + return Options.AppApiToken; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs new file mode 100644 index 0000000000..fc50a07d41 --- /dev/null +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IAbpDaprClientFactory.cs @@ -0,0 +1,14 @@ +using Dapr.Client; + +namespace Volo.Abp.Dapr; + +public interface IAbpDaprClientFactory +{ + DaprClient Create(Action? builderAction = null); + + HttpClient CreateHttpClient( + string? appId = null, + string? daprEndpoint = null, + string? daprApiToken = null + ); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs new file mode 100644 index 0000000000..89ea4d516d --- /dev/null +++ b/framework/src/Volo.Abp.Dapr/Volo/Abp/Dapr/IDaprApiTokenProvider.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.Dapr; + +public interface IDaprApiTokenProvider +{ + string? GetDaprApiToken(); + + string? GetAppApiToken(); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/IAbpDistributedLock.cs b/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/IAbpDistributedLock.cs index 760021c90a..754ae807f8 100644 --- a/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/IAbpDistributedLock.cs +++ b/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/IAbpDistributedLock.cs @@ -14,7 +14,7 @@ public interface IAbpDistributedLock /// Returns null if the lock could not be handled. /// /// The name of the lock - /// Timeout value + /// How long to wait before giving up on the acquisition attempt. Defaults to 0 /// Cancellation token [ItemCanBeNull] Task TryAcquireAsync( diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/AbpDistributedLockDaprOptions.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/AbpDistributedLockDaprOptions.cs index 43feba3c3b..7579796871 100644 --- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/AbpDistributedLockDaprOptions.cs +++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/AbpDistributedLockDaprOptions.cs @@ -4,10 +4,12 @@ public class AbpDistributedLockDaprOptions { public string StoreName { get; set; } - public TimeSpan DefaultTimeout { get; set; } + public string? Owner { get; set; } + + public TimeSpan DefaultExpirationTimeout { get; set; } public AbpDistributedLockDaprOptions() { - DefaultTimeout = TimeSpan.FromSeconds(30); + DefaultExpirationTimeout = TimeSpan.FromMinutes(2); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs index b4116c105c..ef99b52227 100644 --- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs +++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs @@ -7,41 +7,33 @@ namespace Volo.Abp.DistributedLocking.Dapr; [Dependency(ReplaceServices = true)] public class DaprAbpDistributedLock : IAbpDistributedLock, ITransientDependency { - protected AbpDaprClientFactory DaprClientFactory { get; } + protected IAbpDaprClientFactory DaprClientFactory { get; } protected AbpDistributedLockDaprOptions DistributedLockDaprOptions { get; } - protected AbpDaprOptions DaprOptions { get; } protected IDistributedLockKeyNormalizer DistributedLockKeyNormalizer { get; } public DaprAbpDistributedLock( - AbpDaprClientFactory daprClientFactory, + IAbpDaprClientFactory daprClientFactory, IOptions distributedLockDaprOptions, - IOptions daprOptions, IDistributedLockKeyNormalizer distributedLockKeyNormalizer) { DaprClientFactory = daprClientFactory; DistributedLockKeyNormalizer = distributedLockKeyNormalizer; - DaprOptions = daprOptions.Value; DistributedLockDaprOptions = distributedLockDaprOptions.Value; } - public async Task TryAcquireAsync( + public async Task TryAcquireAsync( string name, TimeSpan timeout = default, CancellationToken cancellationToken = default) { - if (timeout == default) - { - timeout = DistributedLockDaprOptions.DefaultTimeout; - } - - var daprClient = await DaprClientFactory.CreateAsync(); - var key = DistributedLockKeyNormalizer.NormalizeKey(name); + name = DistributedLockKeyNormalizer.NormalizeKey(name); + var daprClient = DaprClientFactory.Create(); var lockResponse = await daprClient.Lock( DistributedLockDaprOptions.StoreName, - key, - DaprOptions.AppId, - (int)timeout.TotalSeconds, + name, + DistributedLockDaprOptions.Owner ?? Guid.NewGuid().ToString(), + (int)DistributedLockDaprOptions.DefaultExpirationTimeout.TotalSeconds, cancellationToken); if (lockResponse == null || !lockResponse.Success) diff --git a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs index 1f241b9c6d..c8d47f6887 100644 --- a/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Dapr/Volo/Abp/EventBus/Dapr/DaprDistributedEventBus.cs @@ -18,7 +18,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend { protected IDaprSerializer Serializer { get; } protected AbpDaprEventBusOptions DaprEventBusOptions { get; } - protected AbpDaprClientFactory DaprClientFactory { get; } + protected IAbpDaprClientFactory DaprClientFactory { get; } protected ConcurrentDictionary> HandlerFactories { get; } protected ConcurrentDictionary EventTypes { get; } @@ -33,7 +33,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend IEventHandlerInvoker eventHandlerInvoker, IDaprSerializer serializer, IOptions daprEventBusOptions, - AbpDaprClientFactory daprClientFactory) + IAbpDaprClientFactory daprClientFactory) : base(serviceScopeFactory, currentTenant, unitOfWorkManager, abpDistributedEventBusOptions, guidGenerator, clock, eventHandlerInvoker) { Serializer = serializer; @@ -197,7 +197,7 @@ public class DaprDistributedEventBus : DistributedEventBusBase, ISingletonDepend protected virtual async Task PublishToDaprAsync(string eventName, object eventData) { - var client = await DaprClientFactory.CreateAsync(); + var client = DaprClientFactory.Create(); await client.PublishEventAsync(pubsubName: DaprEventBusOptions.PubSubName, topicName: eventName, data: eventData); } diff --git a/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs b/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs index 57233ac972..2f7942fabe 100644 --- a/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs +++ b/framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs @@ -28,14 +28,22 @@ public static class ServiceCollectionHttpClientProxyExtensions /// The name of the remote service configuration to be used by the Static HTTP Client proxies. /// See . /// + /// + /// Can be set to filter the application service types to be registered. + /// Default value: All. + /// public static IServiceCollection AddStaticHttpClientProxies( [NotNull] this IServiceCollection services, [NotNull] Assembly assembly, - [NotNull] string remoteServiceConfigurationName = RemoteServiceConfigurationDictionary.DefaultName) + [NotNull] string remoteServiceConfigurationName = RemoteServiceConfigurationDictionary.DefaultName, + ApplicationServiceTypes applicationServiceTypes = ApplicationServiceTypes.All) { Check.NotNull(services, nameof(assembly)); - var serviceTypes = assembly.GetTypes().Where(IsSuitableForClientProxying).ToArray(); + var serviceTypes = assembly + .GetTypes() + .Where(x => IsSuitableForClientProxying(x, applicationServiceTypes)) + .ToArray(); foreach (var serviceType in serviceTypes) { @@ -64,15 +72,23 @@ public static class ServiceCollectionHttpClientProxyExtensions /// /// True, to register the HTTP client proxy as the default implementation for the services. /// + /// + /// Can be set to filter the application service types to be registered. + /// Default value: All. + /// public static IServiceCollection AddHttpClientProxies( [NotNull] this IServiceCollection services, [NotNull] Assembly assembly, [NotNull] string remoteServiceConfigurationName = RemoteServiceConfigurationDictionary.DefaultName, - bool asDefaultServices = true) + bool asDefaultServices = true, + ApplicationServiceTypes applicationServiceTypes = ApplicationServiceTypes.All) { Check.NotNull(services, nameof(assembly)); - var serviceTypes = assembly.GetTypes().Where(IsSuitableForClientProxying).ToArray(); + var serviceTypes = assembly + .GetTypes() + .Where(x => IsSuitableForClientProxying(x, applicationServiceTypes)) + .ToArray(); foreach (var serviceType in serviceTypes) { @@ -228,13 +244,28 @@ public static class ServiceCollectionHttpClientProxyExtensions /// /// Type to check /// True, if the type is suitable for proxying. Otherwise false. - private static bool IsSuitableForClientProxying(Type type) + private static bool IsSuitableForClientProxying( + Type type, + ApplicationServiceTypes applicationServiceTypes) { - //TODO: Add option to change type filter + if (!type.IsInterface || + !type.IsPublic || + type.IsGenericType || + !typeof(IRemoteService).IsAssignableFrom(type)) + { + return false; + } + + if (applicationServiceTypes == ApplicationServiceTypes.ApplicationServices) + { + return !IntegrationServiceAttribute.IsDefinedOrInherited(type); + } + + if (applicationServiceTypes == ApplicationServiceTypes.IntegrationServices) + { + return IntegrationServiceAttribute.IsDefinedOrInherited(type); + } - return type.IsInterface - && type.IsPublic - && !type.IsGenericType - && typeof(IRemoteService).IsAssignableFrom(type); + return true; } } diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs index d51ff5fe65..f7383f0465 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery; public class JQueryProxyScriptGenerator : IProxyScriptGenerator, ITransientDependency { //TODO: Should move this to Ddd package by adding an option to AbpHttpAbstractions module. Also duplicated of ApplicationService.CommonPostfixes - private static string[] AppServiceCommonPostfixes { get; } = { "AppService", "ApplicationService", "Service" }; + private static string[] AppServiceCommonPostfixes { get; } = { "AppService", "ApplicationService", "IntService", "IntegrationService", "Service" }; /// /// "jquery". diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/IntegrationServiceAttribute_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/IntegrationServiceAttribute_Tests.cs new file mode 100644 index 0000000000..aa2d9d578a --- /dev/null +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/IntegrationServiceAttribute_Tests.cs @@ -0,0 +1,48 @@ +using Shouldly; +using Xunit; + +namespace Volo.Abp; + +public class IntegrationServiceAttribute_Tests +{ + [Fact] + public static void IsDefinedOrInherited() + { + // True cases + + IntegrationServiceAttribute + .IsDefinedOrInherited() + .ShouldBeTrue(); + + IntegrationServiceAttribute + .IsDefinedOrInherited() + .ShouldBeTrue(); + + IntegrationServiceAttribute + .IsDefinedOrInherited() + .ShouldBeTrue(); + + // False cases + + IntegrationServiceAttribute + .IsDefinedOrInherited() + .ShouldBeFalse(); + + IntegrationServiceAttribute + .IsDefinedOrInherited() + .ShouldBeFalse(); + + } + + [IntegrationService] + private interface IMyIntegrationService1 { } + private class MyIntegrationService1 : IMyIntegrationService1 { } + + private interface IMyIntegrationService2 { } + [IntegrationService] + private class MyIntegrationService2 : IMyIntegrationService2 { } + + private interface IMyApplicationService { } + private class MyApplicationService : IMyApplicationService { } +} + diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs index 16bd8086d5..d04abee6d9 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs @@ -54,7 +54,8 @@ public class IdentityServerSupportedLoginModel : LoginModel if (context != null) { - ShowCancelButton = true; + // TODO: Find a proper cancel way. + // ShowCancelButton = true; LoginInput.UserNameOrEmailAddress = context.LoginHint; diff --git a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Pages/Account/OpenIddictSupportedLoginModel.cs b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Pages/Account/OpenIddictSupportedLoginModel.cs index 61b170c612..10231a2607 100644 --- a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Pages/Account/OpenIddictSupportedLoginModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Pages/Account/OpenIddictSupportedLoginModel.cs @@ -34,7 +34,8 @@ public class OpenIddictSupportedLoginModel : LoginModel var request = await OpenIddictRequestHelper.GetFromReturnUrlAsync(ReturnUrl); if (request?.ClientId != null) { - ShowCancelButton = true; + // TODO: Find a proper cancel way. + // ShowCancelButton = true; LoginInput.UserNameOrEmailAddress = request.LoginHint; 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 33071a7428..f394ad2d19 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,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^6.0.0-rc.3", + "@abp/aspnetcore.mvc.ui.theme.shared": "^6.0.0-rc.4", "highlight.js": "^9.13.1" }, "devDependencies": {} 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 cc8d424ae2..9a4ef4ddee 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,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.shared@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,144 +34,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.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 fcad11c385..bcf20561e8 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": "^6.0.0-rc.3", - "@abp/prismjs": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4", + "@abp/prismjs": "^6.0.0-rc.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 dabafb9f12..44b6f017c8 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,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,161 +41,161 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/clipboard@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.3.tgz#ee3a586b491d89442eefff08aaebbf9d38cb46d4" - integrity sha512-01svpp3mR29z1FTM+2Qe+MUNLPbl95bWlOXY5zz2hvNSbdD45lGud+BiOHfeZwlDk5jjr3FqLel+hxx2ByBvOA== +"@abp/clipboard@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.4.tgz#a1f08eb23ebe7fcac0521aa992c6cebb9753c004" + integrity sha512-dX8l7Akyv5ecx7+Op8Cp/q4JslnhA9G0Eok4iPcnYwHh9NfSLnusack9x4u370Y+eShRxFiiBDq44ZsCN66h/Q== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" clipboard "^2.0.8" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.3.tgz#e4faf595e29db81c5a66030e59b0e09f09759bfd" - integrity sha512-zzd3iw/Im0M9FUmTviwkTCr4slkoZJExtK+qB1FmLxRY59+hyU9wxd6hwzic/QwhXxFQoYILJ3S3FNxsPIm76A== +"@abp/prismjs@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.4.tgz#9338018487dde7ddc5384cdfbdc35c655a8fd444" + integrity sha512-F1t7ySbj+M6LDmgbvvcY2bFl0heEj1vz14YOnmwMNUhJcaLQXamgyKsWBu5UkEHUJ11DQyjIu5gjoRXbraucdA== dependencies: - "@abp/clipboard" "~6.0.0-rc.3" - "@abp/core" "~6.0.0-rc.3" + "@abp/clipboard" "~6.0.0-rc.4" + "@abp/core" "~6.0.0-rc.4" prismjs "^1.26.0" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 779b6502b4..231f24ceb1 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": "^6.0.0-rc.3", - "@abp/blogging": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4", + "@abp/blogging": "^6.0.0-rc.4" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 80ace6ebb0..0962cf0661 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,187 +41,187 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-6.0.0-rc.3.tgz#604e3497bcdfa69a29d4cbbe062b5b691234a8c5" - integrity sha512-OZyqi2Xlq7PDDvmwcVRcssr0hElxSKGoa2UXXeqF8P7FP22TsMvuX81xsNtSn7Qlu3pcFs1pr4em+SfOb8H6jw== +"@abp/blogging@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-6.0.0-rc.4.tgz#45703574696ee193c03a748734bd1c9447af984c" + integrity sha512-qbG4V39aaS2QuIjttysiRgYcvBnegBH9RRwperFkxmyZSzULiTVBc/BYylT+FJMf7uFEKPV1Qe2V1ANQgpemHQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - "@abp/owl.carousel" "~6.0.0-rc.3" - "@abp/prismjs" "~6.0.0-rc.3" - "@abp/tui-editor" "~6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + "@abp/owl.carousel" "~6.0.0-rc.4" + "@abp/prismjs" "~6.0.0-rc.4" + "@abp/tui-editor" "~6.0.0-rc.4" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/clipboard@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.3.tgz#ee3a586b491d89442eefff08aaebbf9d38cb46d4" - integrity sha512-01svpp3mR29z1FTM+2Qe+MUNLPbl95bWlOXY5zz2hvNSbdD45lGud+BiOHfeZwlDk5jjr3FqLel+hxx2ByBvOA== +"@abp/clipboard@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.4.tgz#a1f08eb23ebe7fcac0521aa992c6cebb9753c004" + integrity sha512-dX8l7Akyv5ecx7+Op8Cp/q4JslnhA9G0Eok4iPcnYwHh9NfSLnusack9x4u370Y+eShRxFiiBDq44ZsCN66h/Q== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" clipboard "^2.0.8" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/owl.carousel@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-6.0.0-rc.3.tgz#5d5884a622e6423cc73175a2cd376c892325be20" - integrity sha512-4KGPzfGUEeN2CN+EtYYKuhJU1nb1OIQd1Fxi6DmkFYeN/9KdgS8dwGZjMvFxYde+BfhDZP1zrfS6ZbpJKkzsPQ== +"@abp/owl.carousel@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-6.0.0-rc.4.tgz#8ec2828f45e9b393e94cf09dc311391190d68628" + integrity sha512-CrCntx6qdbuGZaBx9D98QMfuyyLZ9HE/ws5UhWBLmGlk+3pkk1EIBrXrgUud6md7WCSDVfVShUJWhHzej5DBUQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" owl.carousel "^2.3.4" -"@abp/prismjs@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.3.tgz#e4faf595e29db81c5a66030e59b0e09f09759bfd" - integrity sha512-zzd3iw/Im0M9FUmTviwkTCr4slkoZJExtK+qB1FmLxRY59+hyU9wxd6hwzic/QwhXxFQoYILJ3S3FNxsPIm76A== +"@abp/prismjs@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.4.tgz#9338018487dde7ddc5384cdfbdc35c655a8fd444" + integrity sha512-F1t7ySbj+M6LDmgbvvcY2bFl0heEj1vz14YOnmwMNUhJcaLQXamgyKsWBu5UkEHUJ11DQyjIu5gjoRXbraucdA== dependencies: - "@abp/clipboard" "~6.0.0-rc.3" - "@abp/core" "~6.0.0-rc.3" + "@abp/clipboard" "~6.0.0-rc.4" + "@abp/core" "~6.0.0-rc.4" prismjs "^1.26.0" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/tui-editor@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-6.0.0-rc.3.tgz#7e913a80139af381d881f2b0205d4938ec6f6ca3" - integrity sha512-FC+gyHMn/FecAb8sVNFwf9FcJ035Lqm+LwiIXckS2VaSTbuKna0K/ADlOoSr1Ntwe5GWptZ93STIgSt1QJPdEw== +"@abp/tui-editor@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-6.0.0-rc.4.tgz#58b4f7ea991a4a805bedac7f5fd5bb314dd4d8bc" + integrity sha512-1bMvVUeFUzcQB3SmNhW9K4CC5isoMTUJ4pY2OKf4Y9RgKsTUOEuaUwzSoJwDLj4mlzdLTee4/Rxi4zhdnkxDaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" - "@abp/prismjs" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" + "@abp/prismjs" "~6.0.0-rc.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 03f627410b..4f5264ac8c 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": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 13a328d062..d639e15948 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 54f5f486ed..ba230bb9d1 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": "~6.0.0-rc.3", - "@abp/ng.identity": "~6.0.0-rc.3", - "@abp/ng.setting-management": "~6.0.0-rc.3", - "@abp/ng.tenant-management": "~6.0.0-rc.3", - "@abp/ng.theme.basic": "~6.0.0-rc.3", + "@abp/ng.account": "~6.0.0-rc.4", + "@abp/ng.identity": "~6.0.0-rc.4", + "@abp/ng.setting-management": "~6.0.0-rc.4", + "@abp/ng.tenant-management": "~6.0.0-rc.4", + "@abp/ng.theme.basic": "~6.0.0-rc.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 aebab1daa7..a264ab34d1 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": ">=6.0.0-rc.3", - "@abp/ng.theme.shared": ">=6.0.0-rc.3" + "@abp/ng.core": ">=6.0.0-rc.4", + "@abp/ng.theme.shared": ">=6.0.0-rc.4" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index c920638942..1c4c120f59 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": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 43759f8de6..5fb9303c9c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 34dba93009..5f0414e1fa 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": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.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 d501d9343d..d07ba96065 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 38f9f7fac3..1c1f12d3dc 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": "^6.0.0-rc.3", - "@abp/cms-kit": "6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4", + "@abp/cms-kit": "6.0.0-rc.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 16b4938438..ae3431aed5 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,243 +41,243 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/clipboard@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.3.tgz#ee3a586b491d89442eefff08aaebbf9d38cb46d4" - integrity sha512-01svpp3mR29z1FTM+2Qe+MUNLPbl95bWlOXY5zz2hvNSbdD45lGud+BiOHfeZwlDk5jjr3FqLel+hxx2ByBvOA== +"@abp/clipboard@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.4.tgz#a1f08eb23ebe7fcac0521aa992c6cebb9753c004" + integrity sha512-dX8l7Akyv5ecx7+Op8Cp/q4JslnhA9G0Eok4iPcnYwHh9NfSLnusack9x4u370Y+eShRxFiiBDq44ZsCN66h/Q== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" clipboard "^2.0.8" -"@abp/cms-kit.admin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-6.0.0-rc.3.tgz#2e1b05e88846971e73977736635b4fd1c235a092" - integrity sha512-ClVNcpKpOrZSUf0TuEx175ucK3IIxgH7GdqJpGkirqjCxVKyeGWhwyWB1JRCkXfHdE5XUxNJaYitrhQoNuZklw== +"@abp/cms-kit.admin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-6.0.0-rc.4.tgz#a5b8b00e0d95bcb20fefe8888fb512dd33c92d08" + integrity sha512-iAmIejFqkpkd/8BBDjdkmpMmuTdKd6v8+DBGwaW13itxSMXM9bHuigNZqVZ4SdcQ35MI0NZMg1GtIi/gmc0IUw== dependencies: - "@abp/codemirror" "~6.0.0-rc.3" - "@abp/jstree" "~6.0.0-rc.3" - "@abp/slugify" "~6.0.0-rc.3" - "@abp/tui-editor" "~6.0.0-rc.3" - "@abp/uppy" "~6.0.0-rc.3" + "@abp/codemirror" "~6.0.0-rc.4" + "@abp/jstree" "~6.0.0-rc.4" + "@abp/slugify" "~6.0.0-rc.4" + "@abp/tui-editor" "~6.0.0-rc.4" + "@abp/uppy" "~6.0.0-rc.4" -"@abp/cms-kit.public@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-6.0.0-rc.3.tgz#18c3e18d094a0c5d6fafb7865f27bfba49bdc420" - integrity sha512-6Pg1Y2UGwsBLLHe37MMerxSg0n8Qa3CLJoyGJndPmRpxfX14Vu465efSPjxENJrhnoU1FEe9xaNssJ9Lb+JdjA== +"@abp/cms-kit.public@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-6.0.0-rc.4.tgz#1cfaaef1a199282e37361e98b0b27aa4d1b3fe81" + integrity sha512-9kJTPm5cAgMfuvoEgH4shKslYmd1Yu6mV/OGVcOjOHLFN5XRmM4AuwmYj2AvGQHaUIrAlh2m7f4OOgZL8JK9ug== dependencies: - "@abp/highlight.js" "~6.0.0-rc.3" - "@abp/star-rating-svg" "~6.0.0-rc.3" + "@abp/highlight.js" "~6.0.0-rc.4" + "@abp/star-rating-svg" "~6.0.0-rc.4" -"@abp/cms-kit@6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-6.0.0-rc.3.tgz#3e8883553b57f6daf025cb6fa595984a2f6d0be0" - integrity sha512-WiZrpuNhmh/ei8e6HFneBIH99rFdIE2cCGhFBY9WY+Ne3SzcUGYUjJ8DN4x63OS5P2AtxVDhckIznYZWpAw+kQ== +"@abp/cms-kit@6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-6.0.0-rc.4.tgz#9ef05935faadfc4a28a466c8eb2461e16222a10a" + integrity sha512-Ds+TTwPghQOqyWiv3qp9SX1SWqnH2Ac3pfcNRivzgV8LseR7I7inkxIa1RQY+8McJXMUgaAXKMqVtHoXyhLLFQ== dependencies: - "@abp/cms-kit.admin" "~6.0.0-rc.3" - "@abp/cms-kit.public" "~6.0.0-rc.3" + "@abp/cms-kit.admin" "~6.0.0-rc.4" + "@abp/cms-kit.public" "~6.0.0-rc.4" -"@abp/codemirror@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-6.0.0-rc.3.tgz#3624229745308b14fc95b19cf99a7771945d458e" - integrity sha512-FqqYAKFzLCtcRri33YhMcVNuM2zHpV2Qvcu1DTWPL+kdeiw5tPi/Nm9qB0D0aRfefJNkcVLDvP64pnLnVLLWMA== +"@abp/codemirror@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-6.0.0-rc.4.tgz#94f02b5e9eac77a680507132e46e2290ec283340" + integrity sha512-RvBFeSHYOSTotAqQ6mfzd7xwJz1PQ5v0gu8MqBVLV19SuKHAk+DwHdJgai0iQlT/YKRBEC1UlPrQ4M/zoEz6sg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" codemirror "^5.65.1" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/highlight.js@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-6.0.0-rc.3.tgz#e7aa8388afb57a1574f2645a7f786000b553562d" - integrity sha512-q0WhsovYfYrlNvIJyyXShXSTaY9cXNMEJbwJmmlQMVSyHUUPMfOf3w4ofBEC92U0mgzeIi7TMx9vJlm9qjSVJA== +"@abp/highlight.js@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-6.0.0-rc.4.tgz#2c1b9ae55299340dd93b6dcd938db9939a34fda9" + integrity sha512-5LOZmsVW/2rQ51Ls34j+VGz7rnjfhkn5ajWL+aFbbzt4FSACatFOjHGInByjcvRG3ucN5wvHpoIlK31zUmtXgA== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/jstree@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-6.0.0-rc.3.tgz#b43b83d0b4904daf3f16df6465b26ce38348a62b" - integrity sha512-0N+U/pBWyTg634h2Hfq44ECKvGB2Sryp/JNJAbqbAsIagiaA67xcC2Gj5C/NbNKkPCTTjhC6nh4wNvZX7A+x1Q== +"@abp/jstree@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-6.0.0-rc.4.tgz#1789792593d28a65c817f021e2c7f6f8b708e5f2" + integrity sha512-aHIPeRpV6OGwsrNxkR2ROTgL1Wzv9j0UPT9UpIF823wuXAIjUfeqpVsIN+T9IUT17it9L8IL5UoEzFfdyjExng== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jstree "^3.3.12" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.3.tgz#e4faf595e29db81c5a66030e59b0e09f09759bfd" - integrity sha512-zzd3iw/Im0M9FUmTviwkTCr4slkoZJExtK+qB1FmLxRY59+hyU9wxd6hwzic/QwhXxFQoYILJ3S3FNxsPIm76A== +"@abp/prismjs@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.4.tgz#9338018487dde7ddc5384cdfbdc35c655a8fd444" + integrity sha512-F1t7ySbj+M6LDmgbvvcY2bFl0heEj1vz14YOnmwMNUhJcaLQXamgyKsWBu5UkEHUJ11DQyjIu5gjoRXbraucdA== dependencies: - "@abp/clipboard" "~6.0.0-rc.3" - "@abp/core" "~6.0.0-rc.3" + "@abp/clipboard" "~6.0.0-rc.4" + "@abp/core" "~6.0.0-rc.4" prismjs "^1.26.0" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/slugify@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-6.0.0-rc.3.tgz#9ab27f563a6f89ba254240f4f0fe7c6a162bf0e8" - integrity sha512-V/lAX81CYe5DDGCv+xFiHuleOW/H/2ntXBByNDOqAFpK74vbEsxLTeCRpJ902intRDlnZFJb2G4khJNPQgb91w== +"@abp/slugify@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-6.0.0-rc.4.tgz#469cf0e43a7717a29de23ddd39bfaa2d3af2982f" + integrity sha512-jZdPfVf/78PSbcNpXjNJal5U+QHljkoHu8ywkBAbYo81LfierXziQiNbqMbai4spD7ZhpU1Fz4fIg5qTdRegBA== dependencies: slugify "^1.6.5" -"@abp/star-rating-svg@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-6.0.0-rc.3.tgz#81c6bdcf5161ca269de5b7162c4178d2bac2d877" - integrity sha512-o3ciRL2wID/TZflcAZybGMaXLs76Ed7a4LHmDuvPcN/VP92uUWB/baKcl2bVbYLq+xokyko+Ei2YtkqoysG7/A== +"@abp/star-rating-svg@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-6.0.0-rc.4.tgz#69885023aca13654658304714c46ae0c539d8311" + integrity sha512-pJOR68fX24e0WblMb6RpRk5muBCax//aMAjAEXC9bbUU0simRXf3P5dnVm3RVseMIrh/fd4Wj1kBetg8yf2i4g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/tui-editor@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-6.0.0-rc.3.tgz#7e913a80139af381d881f2b0205d4938ec6f6ca3" - integrity sha512-FC+gyHMn/FecAb8sVNFwf9FcJ035Lqm+LwiIXckS2VaSTbuKna0K/ADlOoSr1Ntwe5GWptZ93STIgSt1QJPdEw== +"@abp/tui-editor@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-6.0.0-rc.4.tgz#58b4f7ea991a4a805bedac7f5fd5bb314dd4d8bc" + integrity sha512-1bMvVUeFUzcQB3SmNhW9K4CC5isoMTUJ4pY2OKf4Y9RgKsTUOEuaUwzSoJwDLj4mlzdLTee4/Rxi4zhdnkxDaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" - "@abp/prismjs" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" + "@abp/prismjs" "~6.0.0-rc.4" -"@abp/uppy@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-6.0.0-rc.3.tgz#9b978aa86ef4721a4e7b534e92d717c6f594873d" - integrity sha512-RDj30BLUJIQYWUMsJOC6Px0Ez4qqMYBsodmp6SpnayI8V+PRLYBkHvRQGE4cgul9lpMMcAO87fohpL9w0oRm8w== +"@abp/uppy@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-6.0.0-rc.4.tgz#53b1f510d3e3786beeb1cf06709d0e7011a7f65a" + integrity sha512-LSAmZYuWTK2GISFrkhTxpuCZSvqd/Rx+DzQcTvTFza2a+MG8TNOeX3i4qdTadoJzmjHHjxxPO/oFBNj0ApLc0g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" uppy "^1.16.1" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs index 9cc76c080c..8762373383 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/CmsKitAdminMenuContributor.cs @@ -37,7 +37,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.Pages.PagesMenu, l["Pages"].Value, "/Cms/Pages", - "fa fa-file-alt") + "fa fa-file-alt", + order: 6) .RequireFeatures(CmsKitFeatures.PageEnable) .RequireGlobalFeatures(typeof(PagesFeature)) .RequirePermissions(CmsKitAdminPermissions.Pages.Default)); @@ -46,7 +47,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.Blogs.BlogsMenu, l["Blogs"], "/Cms/Blogs", - "fa fa-blog") + "fa fa-blog", + order: 1) .RequireFeatures(CmsKitFeatures.BlogEnable) .RequireGlobalFeatures(typeof(BlogsFeature)) .RequirePermissions(CmsKitAdminPermissions.Blogs.Default)); @@ -55,7 +57,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.BlogPosts.BlogPostsMenu, l["BlogPosts"], "/Cms/BlogPosts", - "fa fa-file-signature") + "fa fa-file-signature", + order: 2) .RequireFeatures(CmsKitFeatures.BlogEnable) .RequireGlobalFeatures(typeof(BlogsFeature)) .RequirePermissions(CmsKitAdminPermissions.BlogPosts.Default)); @@ -64,7 +67,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.Tags.TagsMenu, l["Tags"].Value, "/Cms/Tags", - "fa fa-tags") + "fa fa-tags", + order: 7) .RequireFeatures(CmsKitFeatures.TagEnable) .RequireGlobalFeatures(typeof(TagsFeature)) .RequirePermissions(CmsKitAdminPermissions.Tags.Default)); @@ -73,7 +77,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.Comments.CommentsMenu, l["Comments"].Value, "/Cms/Comments", - "fa fa-comments") + "fa fa-comments", + order: 3) .RequireFeatures(CmsKitFeatures.CommentEnable) .RequireGlobalFeatures(typeof(CommentsFeature)) .RequirePermissions(CmsKitAdminPermissions.Comments.Default)); @@ -82,7 +87,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.Menus.MenusMenu, l["Menus"], "/Cms/Menus/Items", - "fa fa-stream") + "fa fa-stream", + order: 5) .RequireFeatures(CmsKitFeatures.MenuEnable) .RequireGlobalFeatures(typeof(MenuFeature)) .RequirePermissions(CmsKitAdminPermissions.Menus.Default)); @@ -91,7 +97,8 @@ public class CmsKitAdminMenuContributor : IMenuContributor CmsKitAdminMenus.GlobalResources.GlobalResourcesMenu, l["GlobalResources"], "/Cms/GlobalResources", - "fa fa-newspaper") + "bi bi-code-slash", + order: 4) .RequireFeatures(CmsKitFeatures.GlobalResourceEnable) .RequireGlobalFeatures(typeof(GlobalResourcesFeature)) .RequirePermissions(CmsKitAdminPermissions.GlobalResources.Default)); @@ -114,6 +121,7 @@ public class CmsKitAdminMenuContributor : IMenuContributor { cmsMenu.AddItem(menu); } + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs index c03f8e3a28..469ffb0296 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs @@ -26,12 +26,12 @@ public class BlogFeatureAppService : CmsKitAppServiceBase, IBlogFeatureAppServic { var cacheItem = await Cache.GetOrAddAsync( new BlogFeatureCacheKey(blogId, featureName), - () => GetOrDefaultFroRepositoryAsync(blogId, featureName)); + () => GetOrDefaultFromRepositoryAsync(blogId, featureName)); return ObjectMapper.Map(cacheItem); } - protected virtual async Task GetOrDefaultFroRepositoryAsync(Guid blogId, string featureName) + protected virtual async Task GetOrDefaultFromRepositoryAsync(Guid blogId, string featureName) { var feature = await BlogFeatureRepository.FindAsync(blogId, featureName); var blogFeature = feature ?? new BlogFeature(blogId, featureName); diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 8666f1e0fc..96bb824925 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": "^6.0.0-rc.3", - "@abp/docs": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4", + "@abp/docs": "^6.0.0-rc.4" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json index c482493f88..e20d962f9e 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ar.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "إدارة ميزات المضيف", "Permission:FeatureManagement": "إدارة الميزات", "Permission:FeatureManagement.ManageHostFeatures": "إدارة ميزات المضيف", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} قيمة الميزة غير صالحة!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} قيمة الميزة غير صالحة!", + "Menu:FeatureManagement": "إدارة الميزات" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json index 2e8b78a947..2320d662bd 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/cs.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Správa funkcí hostitele", "Permission:FeatureManagement": "Správa funkcí", "Permission:FeatureManagement.ManageHostFeatures": "Správa funkcí hostitele", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkce {0} není platná!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkce {0} není platná!", + "Menu:FeatureManagement": "Správa Funkcí" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de-DE.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de-DE.json index 0c7d1a40eb..0b6d85af5f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de-DE.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de-DE.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Host-Features verwalten", "Permission:FeatureManagement": "Feature-Verwaltung", "Permission:FeatureManagement.ManageHostFeatures": "Host-Features verwalten", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} Feature-Wert ist ungültig!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} Feature-Wert ist ungültig!", + "Menu:FeatureManagement": "Feature Verwaltung" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json index c6d4bb1d07..d062400255 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/de.json @@ -3,6 +3,7 @@ "texts": { "Features": "Funktionen", "NoFeatureFoundMessage": "Es ist keine Funktion verfügbar.", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Der {0} -Feature-Wert ist ungültig!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Der {0} -Feature-Wert ist ungültig!", + "Menu:FeatureManagement": "Feature Verwaltung" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json index 744b94a2c5..4580c02364 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/el.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Διαχείριση δυνατοτήτων του Οικοδεσπότη", "Permission:FeatureManagement": "Διαχείριση χαρακτηριστικών", "Permission:FeatureManagement.ManageHostFeatures": "Διαχείριση Χαρακτηριστικών Εξυπηρετήτη", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Η τιμή χαρακτηριστικού {0} δεν ειναι έγκυρη!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Η τιμή χαρακτηριστικού {0} δεν ειναι έγκυρη!", + "Menu:FeatureManagement": "Διαχείριση λειτουργιών" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en-GB.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en-GB.json index 0c61bfbbb5..acb5b7a247 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en-GB.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en-GB.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Manage Host features", "Permission:FeatureManagement": "Feature management", "Permission:FeatureManagement.ManageHostFeatures": "Manage Host features", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} feature value is not valid!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} feature value is not valid!", + "Menu:FeatureManagement": "Feature Management" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json index 8033d2c6a0..3615dd764d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/en.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Manage Host features", "Permission:FeatureManagement": "Feature management", "Permission:FeatureManagement.ManageHostFeatures": "Manage Host features", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0} feature value is not valid!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0} feature value is not valid!", + "Menu:FeatureManagement": "Feature Management" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json index 7f4ae2055c..7b8785009a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/es.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Administrar funciones de host", "Permission:FeatureManagement": "Gestión de características", "Permission:FeatureManagement.ManageHostFeatures": "Gestionar características del Host", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} valor de característica no es valido!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} valor de característica no es valido!", + "Menu:FeatureManagement": "Gestión de características" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fa.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fa.json index fd1af964fa..38af63396c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fa.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fa.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "مدیریت ویژگی های میزبان", "Permission:FeatureManagement": "مدیریت ویژگی ها", "Permission:FeatureManagement.ManageHostFeatures": "مدیریت ویژگی های میزبان", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} مقدار ویژگی صحیح نمی باشد!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} مقدار ویژگی صحیح نمی باشد!", + "Menu:FeatureManagement": "مدیریت ویژگی ها" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json index 43c3ede121..edd6704f13 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fi.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Hallinnoi isäntäominaisuuksia", "Permission:FeatureManagement": "Ominaisuuden hallinta", "Permission:FeatureManagement.ManageHostFeatures": "Hallinnoi isäntäominaisuuksia", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Ominaisuuden {0} arvo ei kelpaa!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Ominaisuuden {0} arvo ei kelpaa!", + "Menu:FeatureManagement": "Ominaisuuden hallinta" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json index 44a6a59a14..05d6876761 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/fr.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Gérer les fonctionnalités de l’hôte", "Permission:FeatureManagement": "Gestion des fonctionnalités", "Permission:FeatureManagement.ManageHostFeatures": "Gérer les fonctionnalités de l'hôte", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "La valeur de la fonctionnalité {0} n'est pas valide!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "La valeur de la fonctionnalité {0} n'est pas valide!", + "Menu:FeatureManagement": "Gestion des fonctionnalités" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json index 303b2ff84d..59f6dbb361 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hi.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "होस्ट सुविधाएँ प्रबंधित करें", "Permission:FeatureManagement": "सुविधा प्रबंधन", "Permission:FeatureManagement.ManageHostFeatures": "होस्ट सुविधाएँ प्रबंधित करें", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} सुविधा मान मान्य नहीं है!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} सुविधा मान मान्य नहीं है!", + "Menu:FeatureManagement": "फ़ीचर प्रबंधन" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json index a38e706fd5..e829bcab8a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/hu.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Host funkciók kezelése", "Permission:FeatureManagement": "Funkciókezelés", "Permission:FeatureManagement.ManageHostFeatures": "Host funkciók kezelése", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "A (z) {0} szolgáltatás értéke érvénytelen!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "A (z) {0} szolgáltatás értéke érvénytelen!", + "Menu:FeatureManagement": "Funkciókezelés" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json index 1aac3eb952..35a25f140a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/is.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Stjórna Gestgjafa Eiginleikum", "Permission:FeatureManagement": "Eiginleika stjórnun", "Permission:FeatureManagement.ManageHostFeatures": "Stjórna Gestgjafa Eiginleikum", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "eiginleikagildið {0} er ekki gilt" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "eiginleikagildið {0} er ekki gilt", + "Menu:FeatureManagement": "Eiginleikastjórnun" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json index ee08666365..0814cea372 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Gestisci le funzionalità dell'host", "Permission:FeatureManagement": "Gestione funzionalità", "Permission:FeatureManagement.ManageHostFeatures": "Gestisci le funzionalità dell'host", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Il valore dell'elemento {0} non è valido!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Il valore dell'elemento {0} non è valido!", + "Menu:FeatureManagement": "Gestione delle funzionalità" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json index f34188e0a6..dd311bf8eb 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/nl.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Beheer host functies", "Permission:FeatureManagement": "Functiebeheer", "Permission:FeatureManagement.ManageHostFeatures": "Beheer host functies", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} functie-waarde is niet geldig!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} functie-waarde is niet geldig!", + "Menu:FeatureManagement": "Functiebeheer" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json index 5be57e6198..02f152f76b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pl-PL.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Zarządzaj funkcjami hosta", "Permission:FeatureManagement": "Zarządzanie funkcjami", "Permission:FeatureManagement.ManageHostFeatures": "Zarządzaj funkcjami hosta", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} wartość funkcji jest nieprawidłowa!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "{0} wartość funkcji jest nieprawidłowa!", + "Menu:FeatureManagement": "Zarządzanie funkcjami" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json index 570b9a40d5..6dedc81c9c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/pt-BR.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Gerenciar recursos do Host", "Permission:FeatureManagement": "Gerenciamento de recursos", "Permission:FeatureManagement.ManageHostFeatures": "Gerenciar recursos do Host", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "O valor do recurso {0} não é válido!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "O valor do recurso {0} não é válido!", + "Menu:FeatureManagement": "Gerenciamento de recursos" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json index 8e42f19123..6c04208a4b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ro-RO.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Administraţi caracteristicile de host", "Permission:FeatureManagement": "Administrare caracteristici", "Permission:FeatureManagement.ManageHostFeatures": "Gestionare caracteristici gazdă", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Valoarea {0} a caracteristicii nu este validă!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "Valoarea {0} a caracteristicii nu este validă!", + "Menu:FeatureManagement": "Managementul caracteristicilor" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json index e72a87388a..b4258e484d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/ru.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Управление функциями хоста", "Permission:FeatureManagement": "Управление функциями", "Permission:FeatureManagement.ManageHostFeatures": "Управление функциями хоста", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Недопустимое значение функции {0}!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Недопустимое значение функции {0}!", + "Menu:FeatureManagement": "Управление функциями" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json index fe7772a5b1..703ed344ca 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sk.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Spravovať funkcie poskytovateľa", "Permission:FeatureManagement": "Správa funkcií", "Permission:FeatureManagement.ManageHostFeatures": "Správa funkcií poskytovateľa", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkcie {0} nie je platná!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Hodnota funkcie {0} nie je platná!", + "Menu:FeatureManagement": "Správa funkcií" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json index 29987fa094..7ae13853b9 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/sl.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Upravljajte funkcije gostitelja", "Permission:FeatureManagement": "Upravljanje funkcij", "Permission:FeatureManagement.ManageHostFeatures": "Upravljajte funkcije gostitelja", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Vrednost funkcije {0} ni veljavna!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Vrednost funkcije {0} ni veljavna!", + "Menu:FeatureManagement": "Upravljanje funkcij" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/tr.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/tr.json index 7f7ca999e6..c21f59088b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/tr.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/tr.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Host özelliklerini yönetin", "Permission:FeatureManagement": "Özellik yönetimi", "Permission:FeatureManagement.ManageHostFeatures": "Host özelliklerini düzenle", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0} özellik değeri geçerli değil!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0} özellik değeri geçerli değil!", + "Menu:FeatureManagement": "Özellik Yönetimi" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json index 36195a8ce4..45dbce701d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/vi.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "Quản lý các tính năng của Máy chủ lưu trữ", "Permission:FeatureManagement": "Quản lý tính năng", "Permission:FeatureManagement.ManageHostFeatures": "Quản lý các tính năng của Máy chủ lưu trữ", - "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Giá trị tính năng {0} không hợp lệ!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Giá trị tính năng {0} không hợp lệ!", + "Menu:FeatureManagement": "Quản lý tính năng" } } \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hans.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hans.json index 41ac0eb5b5..b75318e75f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hans.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hans.json @@ -3,9 +3,10 @@ "texts": { "Features": "功能", "NoFeatureFoundMessage": "没有可用的功能.", - "ManageHostFeatures": "管理Host特性", - "Permission:FeatureManagement": "特性管理", - "Permission:FeatureManagement.ManageHostFeatures": "管理Host特性", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0}功能的值无效!" + "ManageHostFeatures": "管理Host功能", + "Permission:FeatureManagement": "功能管理", + "Permission:FeatureManagement.ManageHostFeatures": "管理Host功能", + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0}功能的值无效!", + "Menu:FeatureManagement": "功能管理" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json index 41f625352f..085bc147de 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/zh-Hant.json @@ -6,6 +6,7 @@ "ManageHostFeatures": "管理Host功能", "Permission:FeatureManagement": "功能管理", "Permission:FeatureManagement.ManageHostFeatures": "管理Host功能", - "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0}功能的值無效!" + "Volo.Abp.FeatureManagement:InvalidFeatureValue" : "{0}功能的值無效!", + "Menu:FeatureManagement": "功能管理" } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Settings/FeatureSettingManagementPageContributor.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Settings/FeatureSettingManagementPageContributor.cs index 259c440166..86c623e7d9 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Settings/FeatureSettingManagementPageContributor.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Settings/FeatureSettingManagementPageContributor.cs @@ -20,7 +20,7 @@ public class FeatureSettingManagementPageContributor : SettingPageContributorBas context.Groups.Add( new SettingPageGroup( "Volo.Abp.FeatureManagement", - l["Permission:FeatureManagement"], + l["Menu:FeatureManagement"], typeof(FeatureSettingGroupViewComponent) ) ); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index ffc29488bf..2956a57238 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Identity; [Serializable] -public class IdentityRoleEto +public class IdentityRoleEto : IMultiTenant { public Guid Id { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs index 3ccdb7e076..83ece813d1 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/OrganizationUnitEto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Identity; [Serializable] -public class OrganizationUnitEto +public class OrganizationUnitEto : IMultiTenant { public Guid Id { get; set; } diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index fa1f07511a..768676f8f0 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": "~6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~6.0.0-rc.4" } } diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 85a9a5bd21..55a636654c 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~6.0.0-rc.3", - "@abp/ng.components": "~6.0.0-rc.3", - "@abp/ng.core": "~6.0.0-rc.3", - "@abp/ng.identity": "~6.0.0-rc.3", - "@abp/ng.setting-management": "~6.0.0-rc.3", - "@abp/ng.tenant-management": "~6.0.0-rc.3", - "@abp/ng.theme.basic": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.account": "~6.0.0-rc.4", + "@abp/ng.components": "~6.0.0-rc.4", + "@abp/ng.core": "~6.0.0-rc.4", + "@abp/ng.identity": "~6.0.0-rc.4", + "@abp/ng.setting-management": "~6.0.0-rc.4", + "@abp/ng.tenant-management": "~6.0.0-rc.4", + "@abp/ng.theme.basic": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "@angular/animations": "~13.1.1", "@angular/common": "~13.1.1", "@angular/compiler": "~13.1.1", @@ -34,7 +34,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~6.0.0-rc.3", + "@abp/ng.schematics": "~6.0.0-rc.4", "@angular-devkit/build-angular": "~13.1.2", "@angular-eslint/builder": "~13.0.1", "@angular-eslint/eslint-plugin": "~13.0.1", 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 1a827c57d9..3878b0045a 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": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.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 054a811ce7..e7ce3574f0 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs index 3e90b7d32c..e99befa225 100644 --- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs +++ b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs @@ -1,11 +1,12 @@ using System; using Volo.Abp.Data; using Volo.Abp.EventBus; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Users; [EventName("Volo.Abp.Users.User")] -public class UserEto : IUserData, IHasExtraProperties +public class UserEto : IUserData, IHasExtraProperties, IMultiTenant { public Guid Id { get; set; } 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 700507c0ba..05bd510fd4 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": "^6.0.0-rc.3", - "@abp/virtual-file-explorer": "^6.0.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^6.0.0-rc.4", + "@abp/virtual-file-explorer": "^6.0.0-rc.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 c34f1850f9..abd2abcac3 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,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.3.tgz#b95266387e562c635de795442f90470f8e9e6318" - integrity sha512-vVkEpotDST455E3rynvRQpBKPcNNJ2m1wLkz/B9dQNdUjvm8L4F6s0ls0XFlKUNvQfCVfedkRtGayuvNje/Oxg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.3.tgz#664ca2ee712b7d9e66103c00beb41eb9648a6075" - integrity sha512-KxCsGuoUWKaDo7Oo9aKp51pli2m0DZ2tG8m+zK+m4M9U7g96uC+DOFy3gc7MdPlszvrw32Wwm7I0AughstByNA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.3" - "@abp/bootstrap" "~6.0.0-rc.3" - "@abp/bootstrap-datepicker" "~6.0.0-rc.3" - "@abp/datatables.net-bs5" "~6.0.0-rc.3" - "@abp/font-awesome" "~6.0.0-rc.3" - "@abp/jquery-form" "~6.0.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.3" - "@abp/lodash" "~6.0.0-rc.3" - "@abp/luxon" "~6.0.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.3" - "@abp/select2" "~6.0.0-rc.3" - "@abp/sweetalert2" "~6.0.0-rc.3" - "@abp/timeago" "~6.0.0-rc.3" - "@abp/toastr" "~6.0.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.3.tgz#47c23b57ed3908bd78a232230e53d1f3cba2de41" - integrity sha512-7eJZy2JUGQP94Tz3JJWXRHRmDfTcPZ/lS1/VNbU8B4qvgl5ChIXklVEJLR1fwrBhKXZV8fGVmqT1XlGTGFvFJA== +"@abp/aspnetcore.mvc.ui.theme.basic@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-6.0.0-rc.4.tgz#f57efa6f3cabb48e40a44e79adb31de58145bf89" + integrity sha512-JcoXch+j+T9V3Lfu9Of9Tbcw5sNBpSbe42SjzUcXLqdVijV/DBWKMg/9OPH8KZ4PZwl4sl9DSAmGWXHdipLxzA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui.theme.shared@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-6.0.0-rc.4.tgz#a0fd1e9f6f05d854d6f2119ed551a1cef485c929" + integrity sha512-QsrV+N6YFuMo/q73Bd1P0qDyG0Ua5JmQFgKzA94eMXDyYgpRrT5RyKh0CNV81Q/AX9V5c6APrtcQ31tYzmWwbQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~6.0.0-rc.4" + "@abp/bootstrap" "~6.0.0-rc.4" + "@abp/bootstrap-datepicker" "~6.0.0-rc.4" + "@abp/datatables.net-bs5" "~6.0.0-rc.4" + "@abp/font-awesome" "~6.0.0-rc.4" + "@abp/jquery-form" "~6.0.0-rc.4" + "@abp/jquery-validation-unobtrusive" "~6.0.0-rc.4" + "@abp/lodash" "~6.0.0-rc.4" + "@abp/luxon" "~6.0.0-rc.4" + "@abp/malihu-custom-scrollbar-plugin" "~6.0.0-rc.4" + "@abp/select2" "~6.0.0-rc.4" + "@abp/sweetalert2" "~6.0.0-rc.4" + "@abp/timeago" "~6.0.0-rc.4" + "@abp/toastr" "~6.0.0-rc.4" + +"@abp/aspnetcore.mvc.ui@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-6.0.0-rc.4.tgz#de70d53a900db2f5c74719b7c4e406e0de4c2662" + integrity sha512-8GUoTG4B3Tz2Xd/cFaw9EAjOUoEfMG95VkjNqdfcvPPrtFML/W3fcMUwbjOvQ/lEnAMTSGREU3w9y7Y+GIv9qA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,171 +41,171 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.3.tgz#89198b863dbfccf5f07ac3c4b20ce6199adcb17a" - integrity sha512-NLoUjcR66mqwSWuVftu2yFH4/j6QP+FiElRfZQ9OYmO8DQx2Ue5UZzjrFTrZ1DBBCfzhr2Bffj80dirGvGDyvg== +"@abp/bootstrap-datepicker@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-6.0.0-rc.4.tgz#2dbc9f8f9816689b6db84948046a964ceb1bab17" + integrity sha512-tWPA3ehtU+QPKbxdLDzKk4p2wMNGo/R4CjCQydD1i9BIpkBUlA5sBtbNrLTvZ5/KM1RYecFGFrHTVVOzGsUKrA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.3.tgz#4574bf574cc3484869e8ff8bc592f6212d20a969" - integrity sha512-Q5v7WRkGhGcjRg267HXtqs1oU7ts9UXPyCXmg5y2y5qMOyioD+m4MKV4iv67DgoQjabudp8X2egTKxkej6Lzkw== +"@abp/bootstrap@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-6.0.0-rc.4.tgz#f360f86b00f474236ad182cd792df24f9ecbfc47" + integrity sha512-JjHJNPkTJRYwQvRnzTvcYIbxs2TD6n+LVtCd5ItYNbg8bMyd9yMugThxtgZGE3awVQqjLxZ4fwv+CRnf70JdrQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" bootstrap "^5.1.3" -"@abp/clipboard@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.3.tgz#ee3a586b491d89442eefff08aaebbf9d38cb46d4" - integrity sha512-01svpp3mR29z1FTM+2Qe+MUNLPbl95bWlOXY5zz2hvNSbdD45lGud+BiOHfeZwlDk5jjr3FqLel+hxx2ByBvOA== +"@abp/clipboard@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-6.0.0-rc.4.tgz#a1f08eb23ebe7fcac0521aa992c6cebb9753c004" + integrity sha512-dX8l7Akyv5ecx7+Op8Cp/q4JslnhA9G0Eok4iPcnYwHh9NfSLnusack9x4u370Y+eShRxFiiBDq44ZsCN66h/Q== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" clipboard "^2.0.8" -"@abp/core@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.3.tgz#5662ce813d449d97d9fb7ea2552b2774c8df7825" - integrity sha512-X/VRdk5SGNYc5gQzPcBEPAvwcuD9WXsI4YIdrqjnes0s8u2/XmfrTixojh8Y5EYUoOblEE3Soj5hBhY1cVwcbQ== +"@abp/core@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-6.0.0-rc.4.tgz#d164e1ca3546dc710c569ea7ae0145e1b713658e" + integrity sha512-mH3+BCU8Wbe0mieDHd5Awvhd09X7iJKRLBQBIINcDeIIOCJ9x4v8grynvndzlaS7J2AlWZba0XJU6sZ+YpuP2w== dependencies: - "@abp/utils" "~6.0.0-rc.3" + "@abp/utils" "~6.0.0-rc.4" -"@abp/datatables.net-bs5@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.3.tgz#22865c7e621de720b71af6265b3193f6c78695bd" - integrity sha512-T+mhLc6uSzWmxDQogVwnJ6VxI4845gmF68/i9TmVKNlCtpa3EEfyuF/hgWT1hYfCb4XOsvd/CWrunbkC3fsmtg== +"@abp/datatables.net-bs5@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-6.0.0-rc.4.tgz#fc3c43fb9ba8154b4b960ed0799948f5df738f7e" + integrity sha512-QtII4mFFFjvToM2LDqZugVh6/HwKbIdKYqHCxJKprZ1aVmyBeiMHi89z0G4eChAYdTpjHQstoDddYje53DkWOw== dependencies: - "@abp/datatables.net" "~6.0.0-rc.3" + "@abp/datatables.net" "~6.0.0-rc.4" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.3.tgz#d036defe6ad7fc989dffa020ae579362ee3150d1" - integrity sha512-4cUU8/Tn0Vz9bx7jjMOD/0Viyr29fcwoQAAkxaaYZp6qiQbENgz46/xpQf2oBCoudk8CLdzpmNa7jWte7PcJJw== +"@abp/datatables.net@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-6.0.0-rc.4.tgz#f6916ba9a8089b573faddcc38e6a76e38a0dce16" + integrity sha512-9zhIvAO4AX6YIUELodEUz2hsDj+RITGoxWaav90jUJEqK/jVsDfs2mbrWcLzQDMLpZVElZA0p8tUyWS8yMsjaA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" datatables.net "^1.11.4" -"@abp/font-awesome@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.3.tgz#803569d1a7e25f8a1c2be018312449c23fb78217" - integrity sha512-lYdh38UCTSkzzw0B/mpPEo7iFXzSKHCNbBOIHe6dd6O/Qli7wYukTtUOFn5Sh+yoydLY1as92HtiGL1ckSdu1g== +"@abp/font-awesome@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-6.0.0-rc.4.tgz#a3e1664cbebdbc1aa4d2dd1ac48f022b3ce100ad" + integrity sha512-tlBekvBQ/wEkx1Z2sX8cPp/JKzxmTsMSUSbnAc/Uz+De/fxhyepUACb35zFSv2VmLPz1M1xqLvLUCJmciZhINQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.3.tgz#4ec503c07e2194148c3a7e7cf7ddef2871679e6a" - integrity sha512-Q3uEpflntqrSkYakcdsBnnYYfxJWXD/CDjMiwjbb6gIc8s4qkbIYxVxvYvlEezoIDYQkMSXOn7BS4clWsesiJg== +"@abp/jquery-form@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-6.0.0-rc.4.tgz#4dfbef35e4d7dc80534e0f33644142a9ccd54cb4" + integrity sha512-/21ibf99c8q7ygbj2QF7GAGCW1MaalAurueffndTGZPRRSKrCVTPINtBih7NGgh1zcavhog+GBA3INJ3etQIWQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.3.tgz#01da2a59663d373ff1c69022f4c9c66ad0b29403" - integrity sha512-ij1ML2D9rYF3pJthWO6mGQajsJhbDCtOoBvnh9yCZccuwOYkXP22PqfUxjjxtqL4HqFI31KRpFg0ANMGSzEEBg== +"@abp/jquery-validation-unobtrusive@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-6.0.0-rc.4.tgz#6a498b76076683bbc77d7a73fcf893863aecb59f" + integrity sha512-+9RAPaFYsuSZ05RtJJNeHl1PkyHm9Mv3WKAw+QrKHzaK34zpjD/cZdiijcAWM3DrNPiCCuaaUgMMIMn223MIEA== dependencies: - "@abp/jquery-validation" "~6.0.0-rc.3" + "@abp/jquery-validation" "~6.0.0-rc.4" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.3.tgz#724aea9572dcb2faccf8c6355332b0b2a4df9260" - integrity sha512-rTK5oHaMtycvWxunNwzbE/MbsXXIr6qDnOY3rVUmjTHjqUOHYz591t/XeQfjnSXPp4k/SZUjG6viTC3J2jzC1A== +"@abp/jquery-validation@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-6.0.0-rc.4.tgz#2f79457d2c83795449eb6d3c82942568b0e6f273" + integrity sha512-a3v0QDWm2kqrr5r4Nim8unT7p5xHt8KR/TGmGiS6CNMRXVtd6SLMDg36D1d5AcBemFW5evlySiqAl2D7v+g0/g== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" jquery-validation "^1.19.3" -"@abp/jquery@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.3.tgz#ba19cc8b802c46490277939e6c674811127d8016" - integrity sha512-MbD38iInyag7/j5k42cvMT4jLZMtXH4lUK0rjvqUDVaxKEks46Ix/90uczQ9XajYONgx0CJKFj2urgM830+CCA== +"@abp/jquery@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-6.0.0-rc.4.tgz#992222c2e233840ce7bf573b8bb15b0c9c15adde" + integrity sha512-JRf9NltPP++RAfPRvWFoYNgs2i/ydyROjtLSnCGdmO4UwAQZ21YuDY7x0Ia7VSj0a6cFg8d7M2PGIeJlcaXIsg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" jquery "~3.6.0" -"@abp/lodash@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.3.tgz#8a5bab02353e5cab4ca06ab82f6dbe6285faa95a" - integrity sha512-c8yhcapzPsXyeiFjeOC+2a4bn5wFjW5gUoN+p/p+tE+FIcH37yEgyw/tAr6aZPCmR770MqQXct4t7S4Czbbk+A== +"@abp/lodash@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-6.0.0-rc.4.tgz#2c88a9274e6c27334f277404280d43b2fbae6552" + integrity sha512-yOEe3SVvh5IuFMujSgC4waG0JzWzRQj907KUYzjcjfx35J5Q0Mwvu6/9wRYJx1av40YQdnzMrRoqXKDPAKdV6A== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" lodash "^4.17.21" -"@abp/luxon@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.3.tgz#ba515e122c61918d481467d5be39f08a363822f6" - integrity sha512-2lRSSC0DYShlnKdbJ/Pmha/azjt09ZRPx57NQ01dc7ungChPry5EJL6pC3kXWnJrCkrPCF0V5+A3+taut9+l3A== +"@abp/luxon@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-6.0.0-rc.4.tgz#95ae8f70d9b5d8cd753cc7d918c611692d5bf218" + integrity sha512-OFs4Uv82YienRwiiVV78hdWSanS19lvjoBBskPF5s6LK/5mzLMrtbHBRf18wcc/AfBMOxot1BX2q1v4wb2u3qw== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.3.tgz#0798e37ec6a852748118692a5fbd30c99d9745db" - integrity sha512-FlyShmRxG3wGk1OJCjHIZAdi2/Y2FJPkVxaE72CVIceQSmg0nebGTv3a7bhd4QzKkDsSA3+t6gHjnuKlTlDFLA== +"@abp/malihu-custom-scrollbar-plugin@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-6.0.0-rc.4.tgz#f40968c7f64eb6b36ff2bf06b4be8661308abd12" + integrity sha512-lcOskhl+NbPqKBxg+GABYBBrMtHYw2qZ/srFix7DgGUdNlFbXRP/AtTz0Wiav0PNGZgivniRLqvqcLCiCkrBrg== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.3.tgz#e4faf595e29db81c5a66030e59b0e09f09759bfd" - integrity sha512-zzd3iw/Im0M9FUmTviwkTCr4slkoZJExtK+qB1FmLxRY59+hyU9wxd6hwzic/QwhXxFQoYILJ3S3FNxsPIm76A== +"@abp/prismjs@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-6.0.0-rc.4.tgz#9338018487dde7ddc5384cdfbdc35c655a8fd444" + integrity sha512-F1t7ySbj+M6LDmgbvvcY2bFl0heEj1vz14YOnmwMNUhJcaLQXamgyKsWBu5UkEHUJ11DQyjIu5gjoRXbraucdA== dependencies: - "@abp/clipboard" "~6.0.0-rc.3" - "@abp/core" "~6.0.0-rc.3" + "@abp/clipboard" "~6.0.0-rc.4" + "@abp/core" "~6.0.0-rc.4" prismjs "^1.26.0" -"@abp/select2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.3.tgz#deb8332bfce2102a562004893321a48d5194bf53" - integrity sha512-rb0qElmmhiP09xX8ZbjzNLF6ygFBwErysGWt6Bbgzz5waX2sGe575Cgoz53FaMQ4JaRBg1N0/nCejKyDtiINRA== +"@abp/select2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-6.0.0-rc.4.tgz#c7cf0f910fa6a9f97845a0659178ac02cfa022bc" + integrity sha512-NcXMZYiLDSVnjtRgvPwm9RB1M7qZnRyyyM+htdH5laEvDDGCcOLFS8iK6WI4Irmvw6MhBkDTHaH9ssJNbF7pvQ== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" select2 "^4.0.13" -"@abp/sweetalert2@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.3.tgz#e61fc6c1bed1316c1d44ca5c92f590e422db24d4" - integrity sha512-+SNpBb4XrQlWzRQK9lfdJqA9IfJrlgoqmHwPDgf3Q+P922MzO33TgDlZWbeE7MzVj2y2WmNsPuCKwhjSjSL2rw== +"@abp/sweetalert2@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-6.0.0-rc.4.tgz#a1a2a1a5d7e1fb83680cc35ca477cee1f2f2463b" + integrity sha512-dvslRK2oc06JjI6aV1dj1LzWbOb50BfwbHxcmOenl8Q4XMP389bFbaOiVezjk+d3YLsspCMDxxu2NTqaq67Z6g== dependencies: - "@abp/core" "~6.0.0-rc.3" + "@abp/core" "~6.0.0-rc.4" sweetalert2 "^11.3.6" -"@abp/timeago@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.3.tgz#0ef8c4801bfd4623e6895b1d047b1437063bda53" - integrity sha512-P3YRDVKjR5/Fz+cXiPg3IiUr7XGbNh7mgmJ1ywRXmKVmVMJmhQ2RsKmmtkGJn4TfVHu/l5iJXe4rqgL21/yX/g== +"@abp/timeago@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-6.0.0-rc.4.tgz#3a93a65ee6b8260f7e80bb862b60623e967e08a2" + integrity sha512-/ZZy5E3PHtvmkjg+s9BvgO344DOs0jiifimDntp5jZPQPrsQ5WPC9o9hrlGb40tTw5P0wAnznjGvHnZjBiflvA== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" timeago "^1.6.7" -"@abp/toastr@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.3.tgz#6010d4247937531ebf7c8659d6254cd3db6c4855" - integrity sha512-sC9eCzYVgDrLSFIhJGe9hshzfwA1BkZNah4NQhyq+V6HQ8YF7goMS79N+/XmSoLQ9zzRhusqnPFnb+4FHjr7iA== +"@abp/toastr@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-6.0.0-rc.4.tgz#3bf6abc79baf7a2b7de9840e55caf839018ab96e" + integrity sha512-zesojzXYsFd57m7XBgxLwKeAs8HRe25iNKRGC0YR7MK2HP1770jc+dEjnQ0pnqhMHouZejFJZcpqdHGr85ZUgQ== dependencies: - "@abp/jquery" "~6.0.0-rc.3" + "@abp/jquery" "~6.0.0-rc.4" toastr "^2.1.4" -"@abp/utils@~6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.3.tgz#6d3515694314175218606e9518618ce335b4b360" - integrity sha512-K2geJ9P1ztk4Ehzb9YG3CqqLOi+z8/4iBLUzooNZLQqS+KdlUhCmqfuCoI/A5Aq9DGbTYesalp+Fwoh3S2Dl8A== +"@abp/utils@~6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-6.0.0-rc.4.tgz#e18ef1557a2600fa153db13162e1ed097bc6f15a" + integrity sha512-eT6RVfFsyB8uAdMHDdG4M2Erg3RrvkG7Z5Xa0ko7JIhEz5VwsRcXGwTAORYHsu0M1hpewZljdD5OmQRods13LA== dependencies: just-compare "^1.3.0" -"@abp/virtual-file-explorer@^6.0.0-rc.3": - version "6.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-6.0.0-rc.3.tgz#92de34df581cf85d23282484b1686306cbb880b6" - integrity sha512-PrZw+CH7Uwc/SPkhDdU3P9ixhUAX35k1ucXy6/AaMdms9cppKYw5C7O3nkj3UIN+PliLy+etc2nox1Y2WafSzQ== +"@abp/virtual-file-explorer@^6.0.0-rc.4": + version "6.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-6.0.0-rc.4.tgz#310fcaf7db76a0c059aba7d1abec9cffec7838ad" + integrity sha512-coUsXI43oqJRQ+yWCZbaxcWnf2H3y08cYBc9uzQLGuhF74SHQXxIx1HtAdMGsNx/6U0RCKMI54ziBx5gvuxS2A== dependencies: - "@abp/clipboard" "~6.0.0-rc.3" - "@abp/prismjs" "~6.0.0-rc.3" + "@abp/clipboard" "~6.0.0-rc.4" + "@abp/prismjs" "~6.0.0-rc.4" "@fortawesome/fontawesome-free@^5.15.4": version "5.15.4" diff --git a/npm/lerna.json b/npm/lerna.json index 5ec9d9121f..fb8286a304 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index fdf16d3f37..3eeba165f6 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 41314f13c3..581345be5d 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -40,7 +40,7 @@ }, "private": true, "devDependencies": { - "@abp/utils": "~6.0.0-rc.3", + "@abp/utils": "~6.0.0-rc.4", "@angular-devkit/build-angular": "13.3.5", "@angular-devkit/build-ng-packagr": "^0.1002.0", "@angular-devkit/schematics-cli": "~12.2.0", @@ -59,17 +59,17 @@ "@angular/platform-browser": "13.3.6", "@angular/platform-browser-dynamic": "13.3.6", "@angular/router": "13.3.6", - "@abp/ng.account": "~6.0.0-rc.3", - "@abp/ng.account.core": "~6.0.0-rc.3", - "@abp/ng.core": "~6.0.0-rc.3", - "@abp/ng.feature-management": "~6.0.0-rc.3", - "@abp/ng.identity": "~6.0.0-rc.3", - "@abp/ng.permission-management": "~6.0.0-rc.3", - "@abp/ng.schematics": "~6.0.0-rc.3", - "@abp/ng.setting-management": "~6.0.0-rc.3", - "@abp/ng.tenant-management": "~6.0.0-rc.3", - "@abp/ng.theme.basic": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.account": "~6.0.0-rc.4", + "@abp/ng.account.core": "~6.0.0-rc.4", + "@abp/ng.core": "~6.0.0-rc.4", + "@abp/ng.feature-management": "~6.0.0-rc.4", + "@abp/ng.identity": "~6.0.0-rc.4", + "@abp/ng.permission-management": "~6.0.0-rc.4", + "@abp/ng.schematics": "~6.0.0-rc.4", + "@abp/ng.setting-management": "~6.0.0-rc.4", + "@abp/ng.tenant-management": "~6.0.0-rc.4", + "@abp/ng.theme.basic": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~12.0.0-beta.4", "@ngneat/spectator": "^10.0.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index 8ea2bb186b..7514ab82ac 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.core": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 7f6c87ac3f..8e6847d0ba 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.account.core": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.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 479f9b3785..2cc0f0643e 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=6.0.0-rc.3", - "@abp/ng.theme.shared": ">=6.0.0-rc.3", + "@abp/ng.core": ">=6.0.0-rc.4", + "@abp/ng.theme.shared": ">=6.0.0-rc.4", "@ng-bootstrap/ng-bootstrap": ">=10.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index d0e36c50c6..be99579004 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~6.0.0-rc.3", + "@abp/utils": "~6.0.0-rc.4", "angular-oauth2-oidc": "^13.0.1", "just-clone": "^3.2.1", "just-compare": "^1.4.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index a115426e23..f764e6673d 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index f8baa00c38..5ff55b39bc 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.permission-management": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts b/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts index 28c73b4320..232785249d 100644 --- a/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts +++ b/npm/ng-packs/packages/identity/src/lib/defaults/default-users-form-props.ts @@ -1,9 +1,7 @@ import { IdentityUserDto } from '@abp/ng.identity/proxy'; import { getPasswordValidators } from '@abp/ng.theme.shared'; import { ePropType, FormProp } from '@abp/ng.theme.shared/extensions'; -import { Validators } from '@angular/forms' -import { AbpValidators } from '@abp/ng.core'; - +import { Validators } from '@angular/forms'; export const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany([ { @@ -11,7 +9,7 @@ export const DEFAULT_USERS_CREATE_FORM_PROPS = FormProp.createMany [Validators.required, Validators.maxLength(256), AbpValidators.username()], + validators: () => [Validators.required, Validators.maxLength(256)], }, { type: ePropType.Password, diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 40cd9d9444..234917d9c0 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 496b3bb989..34c12bc99c 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -160,8 +160,14 @@ export class PermissionManagementComponent } return per; + }).map((per,index,permissions) => { + const childrens = permissions + .filter(p => p.parentName === per.name); + if(childrens.length > 0 && childrens.every(x => !x.isGranted)){ + return { ...per, isGranted: false }; + } + return per }); - this.setTabCheckboxState(); this.setGrantCheckboxState(); }, 0); diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 0ea70ed553..e4ca5a73c4 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html index 21d3ee1dee..2219cc4bd8 100644 --- a/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html +++ b/npm/ng-packs/packages/setting-management/config/src/lib/components/email-setting-group/email-setting-group.component.html @@ -6,13 +6,13 @@
+ }}*
+ }}*
@@ -20,7 +20,7 @@
- +
diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index bd8dd9a7fd..db0b99a233 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.components": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.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 963b1f766f..1cb40d6dfd 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.feature-management": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.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 2bb2b470d0..d39a21260d 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~6.0.0-rc.3", - "@abp/ng.theme.shared": "~6.0.0-rc.3", + "@abp/ng.account.core": "~6.0.0-rc.4", + "@abp/ng.theme.shared": "~6.0.0-rc.4", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html index a5eeffa31c..9cdc06401c 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html @@ -1,4 +1,5 @@ @@ -8,9 +9,9 @@
- []> = of([]); validators: ValidatorFn[] = []; @@ -183,7 +185,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { ngOnChanges({ prop, data }: SimpleChanges) { const currentProp = prop?.currentValue as FormProp; - const { options, readonly, disabled, validators, template } = currentProp || {}; + const { options, readonly, disabled, validators, className, template } = currentProp || {}; if (template) { this.injectorForCustomComponent = Injector.create({ providers: [ @@ -211,6 +213,9 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { this.validators = validators(this.data); this.setAsterisk(); } + if(className !== undefined){ + this.containerClassName = className; + } const [keyControl, valueControl] = this.getTypeaheadControls(); if (keyControl && valueControl) diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html index 69ad86da5c..c0cdcbea6d 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html @@ -1,23 +1,45 @@ - - - - - + + + + +
+ +
- - - -
+ + + +
+
+ + + + + + + + + + + + + + + + diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts index 17131e9aaf..4e95039889 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts @@ -12,7 +12,7 @@ import { } from '@angular/core'; import { ControlContainer, FormGroup } from '@angular/forms'; import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties'; -import { FormPropList } from '../../models/form-props'; +import { FormPropList, GroupedFormPropList } from '../../models/form-props'; import { ExtensionsService } from '../../services/extensions.service'; import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token'; import { selfFactory } from '../../utils/factory.util'; @@ -38,14 +38,23 @@ export class ExtensibleFormComponent { @Input() set selectedRecord(record: R) { const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit'; - this.propList = this.extensions[`${type}FormProps`].get(this.identifier).props; + const propList = this.extensions[`${type}FormProps`].get(this.identifier).props; + this.groupedPropList = this.createGroupedList(propList); this.record = record; } extraPropertiesKey = EXTRA_PROPERTIES_KEY; - propList!: FormPropList; + groupedPropList: GroupedFormPropList; record!: R; + createGroupedList(propList: FormPropList) { + const groupedFormPropList = new GroupedFormPropList(); + propList.forEach(item => { + groupedFormPropList.addItem(item.value); + }); + return groupedFormPropList; + } + get form(): FormGroup { return (this.container ? this.container.control : { controls: {} }) as FormGroup; } diff --git a/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts b/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts index bfc9f46dba..14de1a94f4 100644 --- a/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts +++ b/npm/ng-packs/packages/theme-shared/extensions/src/lib/models/form-props.ts @@ -21,6 +21,34 @@ export class FormProps extends Props> { protected _ctor: Type> = FormPropList; } +export interface FormPropGroup { + name: string; + className?: string; +} + +export class GroupedFormPropList { + public readonly items: GroupedFormPropItem[] = []; + addItem(item: FormProp) { + const groupName = item.group?.name; + let group = this.items.find(i => i.group?.name === groupName); + if (group) { + group.formPropList.addTail(item); + } else { + group = { + formPropList: new FormPropList(), + group: item.group, + }; + group.formPropList.addHead(item); + this.items.push(group); + } + } +} + +export interface GroupedFormPropItem { + group: FormPropGroup; + formPropList: FormPropList; +} + export class CreateFormPropsFactory extends PropsFactory> { protected _ctor: Type> = FormProps; } @@ -40,6 +68,7 @@ export class FormProp extends Prop { readonly id: string | undefined; readonly template?: Type; readonly className?: string; + readonly group?: FormPropGroup | undefined; constructor(options: FormPropOptions) { super( @@ -52,6 +81,8 @@ export class FormProp extends Prop { options.template, options.className, ); + this.group = options.group; + this.className = options.className; this.asyncValidators = options.asyncValidators || (_ => []); this.validators = options.validators || (_ => []); diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 58d16d0e96..9ebd8aef19 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": "6.0.0-rc.3", + "version": "6.0.0-rc.4", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~6.0.0-rc.3", + "@abp/ng.core": "~6.0.0-rc.4", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~12.0.0-beta.4", "@ngx-validate/core": "^0.1.2", diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html index 89b8645cf3..82c27d2518 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html @@ -1,7 +1,7 @@ -