diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 7073e826e3..8ebcc32bfc 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -48,7 +48,7 @@ permissions: jobs: build-test: runs-on: ubuntu-22.04 - timeout-minutes: 40 + timeout-minutes: 50 if: ${{ !github.event.pull_request.draft }} steps: - uses: actions/checkout@v2 diff --git a/Directory.Packages.props b/Directory.Packages.props index 5673bf6bac..83bae6b88b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -18,10 +18,10 @@ - - - - + + + + @@ -55,61 +55,61 @@ - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -163,17 +163,17 @@ - + - + - - - + + + diff --git a/README.md b/README.md index a6199aab9b..fa6632daa8 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ The following diagram contains the core components of the **ABP Platform** and s ABP offers a complete architectural model to build modern enterprise software solutions. Here, the fundamental architectural structures offered and first-class supported by ABP: -* [Domain Driven Design](https://abp.io/docs/latest/framework/architecture/domain-driven-design) +* [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) * [Microservices](https://abp.io/docs/latest/framework/architecture/microservices) * [Modularity](https://abp.io/docs/latest/framework/architecture/modularity/basics) * [Multi-Tenancy](https://abp.io/docs/latest/framework/architecture/multi-tenancy) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index d056e70b09..072d99b7fc 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -717,6 +717,8 @@ "IncludePrereleaseInfo": "Gets or sets whether to include prerelease versions in the cache", "CacheVersionCount": "Cache Version Count", "CacheVersionCountInfo": "Gets or sets the number of versions to cache", - "CacheLatestVersionsInfo": "This caches the latest versions of the NuGet packages" + "CacheLatestVersionsInfo": "This caches the latest versions of the NuGet packages", + "NuGetApiKey": "NuGet API key", + "QuestionCount": "Question Count" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index 91f0fd81a3..7ea0fb6708 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -66,7 +66,7 @@ "AuditLogging": "Audit Logging", "Caching": "Caching", "Multitenancy": "Multitenancy", - "DataFiltering": "Data filtering", + "DataFiltering": "Data Filtering", "ConventionOverConfiguration": "Convention Over Configuration", "ConventionOverConfigurationExplanation": "ABP implements common application conventions by default with minimal or zero configuration.", "ConventionOverConfigurationExplanationList1": "Auto registers known services to dependency injection.", @@ -1889,6 +1889,7 @@ "FaqIyzicoPaymentIssuesExplanation8": "ABP website doesn't save or process your credit card. We use payment gateways for this and the entire transaction is handled by payment gateways. We have no authority to interfere with the payment process or fix the payment steps. If you have further questions or need additional support, feel free to contact us at abp.io/contact.", "BiographyContainsUrlValidationMessage": "Biography cannot contain URL.", "CreatePostSEOTitleInfo": "SEO URL is a clean, readable, keyword-rich URL that helps both users and search engines understand what this post is about. Keep it short with 60 characters. SEO titles over 60 characters will be truncated. Use hyphens (-) to separate words (not underscores). Include target keywords near the start. Lowercase only. No stop words unless needed (e.g: \"and\", \"or\", \"the\").", - "SEOTitle": "SEO URL" + "SEOTitle": "SEO URL", + "InvalidYouTubeUrl": "The URL you entered is not a valid YouTube video link. Please make sure it points to a specific video and try again." } } diff --git a/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/POST.md b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/POST.md new file mode 100644 index 0000000000..1062195bda --- /dev/null +++ b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/POST.md @@ -0,0 +1,86 @@ +# ABP.IO Platform 9.2 Final Has Been Released! + +We are glad to announce that [ABP](https://abp.io/) 9.2 stable version has been released today. + +## What's New With Version 9.2? + +All the new features were explained in detail in the [9.2 RC Announcement Post](https://abp.io/community/articles/abp-platform-9.2-rc-has-been-released-jpq072nh), so there is no need to review them again. You can check it out for more details. + +## Getting Started with 9.2 + +### Creating New Solutions + +You can check the [Get Started page](https://abp.io/get-started) to see how to get started with ABP. You can either download [ABP Studio](https://abp.io/get-started#abp-studio-tab) (**recommended**, if you prefer a user-friendly GUI application - desktop application) or use the [ABP CLI](https://abp.io/docs/latest/cli) to create new solutions. + +### How to Upgrade an Existing Solution + +You can upgrade your existing solutions with either ABP Studio or ABP CLI. In the following sections, both approaches are explained: + +### Upgrading via ABP Studio + +If you are already using the ABP Studio, you can upgrade it to the latest version. ABP Studio periodically checks for updates in the background, and when a new version of ABP Studio is available, you will be notified through a modal. Then, you can update it by confirming the opened modal. See [the documentation](https://abp.io/docs/latest/studio/installation#upgrading) for more info. + +After upgrading the ABP Studio, then you can open your solution in the application, and simply click the **Upgrade ABP Packages** action button to instantly upgrade your solution: + +![](upgrade-abp-packages.png) + +### Upgrading via ABP CLI + +Alternatively, you can upgrade your existing solution via ABP CLI. First, you need to install the ABP CLI or upgrade it to the latest version. + +If you haven't installed it yet, you can run the following command: + +```bash +dotnet tool install -g Volo.Abp.Studio.Cli +``` + +Or to update the existing CLI, you can run the following command: + +```bash +dotnet tool update -g Volo.Abp.Studio.Cli +``` + +After installing/updating the ABP CLI, you can use the [`update` command](https://abp.io/docs/latest/CLI#update) to update all the ABP related NuGet and NPM packages in your solution as follows: + +```bash +abp update +``` + +You can run this command in the root folder of your solution to update all ABP related packages. + +## Migration Guides + +There are a few breaking changes in this version that may affect your application. Please read the migration guide carefully, if you are upgrading from v9.x: [ABP Version 9.2 Migration Guide](https://abp.io/docs/9.2/release-info/migration-guides/abp-9-2) + +## Community News + +### New ABP Community Articles + +As always, exciting articles have been contributed by the ABP community. I will highlight some of them here: + +* [Liming Ma](https://github.com/maliming) has published 3 new articles: + * [Integrating .NET AI Chat Template with ABP Framework](https://abp.io/community/articles/integrating-.net-ai-chat-template-with-abp-framework-qavb5p2j) + * [Resolving Tenant from Route in ABP Framework](https://abp.io/community/articles/resolving-tenant-from-route-in-abp-framework-ah7oru97) + * [Common Errors in JWT Bearer Authentication](https://abp.io/community/articles/common-errors-in-jwt-bearer-authentication-4u3wrbs5) +* [Engincan Veske](https://engincanveske.substack.com/) has published 3 new articles: + * [Understanding HttpApi.Client Project & Remote Services in an ABP Based Application](https://abp.io/community/articles/http-api-client-and-remote-services-in-abp-based-application-xkknsp6m) + * [Using Elsa 3 with the ABP Framework: A Comprehensive Guide](https://abp.io/community/articles/using-elsa-3-workflow-with-abp-framework-usqk8afg) + * [Implementing Custom Tenant Logo Feature in ABP Framework: A Step-by-Step Guide](https://abp.io/community/articles/implementing-custom-tenant-logo-feature-in-abp-framework-a-stepbystep-guide-sba96ac9) +* [Berkan Şaşmaz](https://berkansasmaz.com/) has published 2 new articles: + * [Understanding the Domain and Application Layers in ABP Framework](https://abp.io/community/articles/understanding-the-domain-and-application-layers-in-abp-1fipc4x4) + * [How Do We Maintain Code Quality and Technical Debt in Our .NET Codebase?](https://abp.io/community/articles/how-do-we-maintain-code-quality-and-technical-debt-in-our-.net-codebase-z7glpya1) +* [Enis Necipoğlu](https://github.com/enisn) has published 2 new articles: + * [White Labeling in ABP Framework](https://abp.io/community/articles/white-labeling-in-abp-framework-5trwmrfm) by [Enis Necipoğlu](https://github.com/enisn) + * [You do it wrong! Customizing ABP Login Page Correctly](https://abp.io/community/articles/you-do-it-wrong-customizing-abp-login-page-correctly-bna7wzt5) +* [Ariful Islam](https://abp.io/community/members/arif) has published 2 new articles: + * [Multi-Workspace Management for ABP Applications](https://abp.io/community/articles/multiworkspace-management-for-abp-applications-eghgty3j) + * [Using Semantic Kernel in the ABP Framework](https://abp.io/community/articles/using-semantic-kernel-in-the-abp-framework-qo5cnuzs) +* [Guide to Add Custom Modules in ABP.IO App](https://abp.io/community/articles/guide-to-add-custom-modules-in-abp.io-app-sttetffa) by [Harsh Gupta](https://abp.io/community/members/harshgupta) +* [Debugging NuGet Packages in ABP.IO: A Complete Guide](https://abp.io/community/articles/debugging-nuget-packages-in-abp.io-a-complete-guide-h13y2033) by [Suhaib Mousa](https://suhaibmousa.com/) +* [Using Microsoft AI Extensions Library and OpenAI to Summarize User Comments](https://abp.io/community/articles/using-microsoft-ai-extensions-library-and-openai-to-summarize-user-comments-gj1lusg7) by [Halil Ibrahim Kalkan](https://twitter.com/hibrahimkalkan) + +Thanks to the ABP Community for all the content they have published. You can also [post your ABP related (text or video) content](https://abp.io/community/posts/create) to the ABP Community. + +## About the Next Version + +The next feature version will be 9.3. You can follow the [release planning here](https://github.com/abpframework/abp/milestones). Please [submit an issue](https://github.com/abpframework/abp/issues/new) if you have any problems with this version. diff --git a/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/cover-image.png b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/cover-image.png new file mode 100644 index 0000000000..dd40555c8e Binary files /dev/null and b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/cover-image.png differ diff --git a/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/upgrade-abp-packages.png b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/upgrade-abp-packages.png new file mode 100644 index 0000000000..ad5e9bd462 Binary files /dev/null and b/docs/en/Blog-Posts/2025-06-02 v9_2_Release_Stable/upgrade-abp-packages.png differ diff --git a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/POST.md b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/POST.md index c499f6e33c..2f5cde6d2d 100644 --- a/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/POST.md +++ b/docs/en/Community-Articles/2021-06-17-Using-Elsa-Workflow-with-ABP-Framework/POST.md @@ -1,5 +1,7 @@ # Using Elsa Workflow with ABP Framework +> **UPDATE:** There is a newer version of this article, which covers Elsa 3 with ABP Framework. You can check it at https://abp.io/community/articles/using-elsa-3-workflow-with-abp-framework-usqk8afg + **Elsa Core** is an open-source workflows library that can be used in any kind of .NET Core application. Using such a workflow library can be useful to implement business rules visually or programmatically. ![elsa-overview](./elsa-overview.gif) @@ -465,4 +467,4 @@ namespace ElsaDemo.Web.Menus > 🛠 Liked this post? I now share all my content on Substack — real-world .NET, AI, and scalable software design. > 👉 Subscribe here → engincanveske.substack.com > 🎥 Also, check out my YouTube channel for hands-on demos and deep dives: https://www.youtube.com/@engincanv ---- \ No newline at end of file +--- diff --git a/docs/en/Community-Articles/2025-03-23-Understanding-the-Embedded-Files-in-ABP-Framework/post.md b/docs/en/Community-Articles/2025-03-23-Understanding-the-Embedded-Files-in-ABP-Framework/post.md index 5664fd8091..ccbf1a285c 100644 --- a/docs/en/Community-Articles/2025-03-23-Understanding-the-Embedded-Files-in-ABP-Framework/post.md +++ b/docs/en/Community-Articles/2025-03-23-Understanding-the-Embedded-Files-in-ABP-Framework/post.md @@ -119,7 +119,7 @@ For example, if your filename is `zh.hans.json`, ABP will generate the following [File] [/MyModule/Volo/Abp/MyModule/Localization/zh/hans.json] ``` -Microsoft provides the `Microsoft.Extensions.FileProviders.Manifest` library to solve this problem. +Microsoft provides the `Microsoft.Extensions.FileProviders.Embedded` library to solve this problem. We need to add this package dependency and set `true` in our project: @@ -136,7 +136,7 @@ We need to add this package dependency and set `t - + diff --git a/docs/en/Community-Articles/2025-04-20-IDX10204/header.png b/docs/en/Community-Articles/2025-04-20-IDX10204/header.png index a71c9a66ff..13109a4515 100644 Binary files a/docs/en/Community-Articles/2025-04-20-IDX10204/header.png and b/docs/en/Community-Articles/2025-04-20-IDX10204/header.png differ diff --git a/docs/en/Community-Articles/2025-04-20-IDX10204/payload.png b/docs/en/Community-Articles/2025-04-20-IDX10204/payload.png index a83d6e1051..04b927bbb2 100644 Binary files a/docs/en/Community-Articles/2025-04-20-IDX10204/payload.png and b/docs/en/Community-Articles/2025-04-20-IDX10204/payload.png differ diff --git a/docs/en/Community-Articles/2025-04-25-AI-Comment-Summarization/summary-card.png b/docs/en/Community-Articles/2025-04-25-AI-Comment-Summarization/summary-card.png index 35151efafb..9a36f3cd35 100644 Binary files a/docs/en/Community-Articles/2025-04-25-AI-Comment-Summarization/summary-card.png and b/docs/en/Community-Articles/2025-04-25-AI-Comment-Summarization/summary-card.png differ diff --git a/docs/en/Community-Articles/2025-05-11-AI-Chat/POST.md b/docs/en/Community-Articles/2025-05-11-AI-Chat/POST.md new file mode 100644 index 0000000000..d6d2a5b6dc --- /dev/null +++ b/docs/en/Community-Articles/2025-05-11-AI-Chat/POST.md @@ -0,0 +1,134 @@ +# Integrating .NET AI Chat Template with ABP Framework + +This article demonstrates how to integrate the [.NET AI Chat Template](https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview2/) into an ABP Framework application, enabling powerful AI chat capabilities in your ABP-based solution. + +![cover](cover.png) + +## Step 1: Create a New ABP Project + +First, let's create a new [single-layer Blazor Server project](https://abp.io/docs/latest/solution-templates/single-layer-web-application/overview) named `AbpAiChat` using ABP Studio, You can also use the following ABP CLI command to create the project: + +```bash +abp new AbpAiChat -t app-nolayers --ui-framework blazor-server --use-open-source-template +``` + +## Step 2: Integrate AI Chat Template + +The integration process involves copying and adapting the .NET AI Chat Template code into our ABP project. The template code is already included in our sample project, so you don't need to install it separately. + +### 2.1 Project Structure Changes + +1. Copy Blazor components to the `Components` folder +2. Copy AI service classes to the `Services` folder +3. Add required entities(`IngestedDocument`, `IngestedRecord`) to the `AbpAiChatDbContext` and add new migration +4. Copy frontend resources to the `wwwroot` folder +5. Adjust some styles to capatible with the ABP theme + +### 2.2 Required NuGet Packages + +Add the following packages to `AbpAiChat.csproj`: + +```xml + + + + + + +``` + +### 2.3 Configure AI Services + +Add the following configuration to `AbpAiChatModule.cs`: + +```csharp +private void ConfigureAi(ServiceConfigurationContext context) +{ + var credential = new ApiKeyCredential(context.Services.GetConfiguration()["GitHubToken"] ?? throw new InvalidOperationException("Missing configuration: GitHubToken. See the README for details.")); + var openAiOptions = new OpenAIClientOptions() + { + Endpoint = new Uri("https://models.inference.ai.azure.com") + }; + + var ghModelsClient = new OpenAIClient(credential, openAiOptions); + var chatClient = ghModelsClient.GetChatClient("gpt-4o-mini").AsIChatClient(); + var embeddingGenerator = ghModelsClient.GetEmbeddingClient("text-embedding-3-small").AsIEmbeddingGenerator(); + + var vectorStore = new JsonVectorStore(Path.Combine(AppContext.BaseDirectory, "vector-store")); + + context.Services.AddSingleton(vectorStore); + context.Services.AddScoped(); + context.Services.AddSingleton(); + context.Services.AddChatClient(chatClient).UseFunctionInvocation().UseLogging(); + context.Services.AddEmbeddingGenerator(embeddingGenerator); + + context.Services.Configure(options => + { + options.ContentTypeMaps.Add(".mjs", "application/javascript"); + }); +} +``` + +The `ConfigureAi` method is called in the `ConfigureServices` method of `AbpAiChatModule`. It sets up the AI services, including the OpenAI client, chat client, embedding generator, and vector store. + +### 2.4 Configure GitHub Token + +Add your GitHub Personal Access Token to `appsettings.json`: + +```json +{ + "GitHubToken": "your-github-token" +} +``` + +You can obtain your token from [GitHub Personal Access Tokens](https://github.com/settings/personal-access-tokens). + +## Step 3: Add Custom AI Functionality + +Let's add a custom AI function to retrieve the current user's information. Update the `Chat.razor` component: + +```csharp +chatOptions.Tools = +[ + AIFunctionFactory.Create(SearchAsync), + AIFunctionFactory.Create(GetWeather), + AIFunctionFactory.Create(GetCurrentUserInfo) +]; + +[Description("Get current user information")] +private Task GetCurrentUserInfo() +{ + return Task.FromResult(CurrentUser.IsAuthenticated ? + $"UserId: {CurrentUser.Id}, Name: {CurrentUser.UserName}, Email: {CurrentUser.Email}, Roles: {string.Join(", ", CurrentUser.Roles)}" : + "No user information available."); +} +``` + +## Step 4: Add Navigation + +Add a `Chat` menu item in `AbpAiChatMenuContributor` to navigate to the AI Chat component. + +## Running the Application + +After completing the integration, you can run the application and access the AI chat functionality. The chat interface allows you to: + +- Get weather information +- Ask questions about PDF content +- Retrieve current user information +- And more! + +![AI Chat Interface](ai-chat.png) + +## Conclusion + +This integration demonstrates how to leverage the power of AI in your ABP Framework applications. The .NET AI Chat Template provides a solid foundation for building intelligent chat interfaces, and ABP Framework makes it more powerful. + +## References + +- [ABP Single Layer Solution](https://abp.io/docs/latest/solution-templates/single-layer-web-application/overview) +- [.NET AI Template Documentation](https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview1/) +- [GitHub Personal Access Tokens Guide](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) + +## Source Code + +- [AbpAiChat Source Code](https://github.com/abpframework/abp-samples/tree/master/AIChat) diff --git a/docs/en/Community-Articles/2025-05-11-AI-Chat/ai-chat.png b/docs/en/Community-Articles/2025-05-11-AI-Chat/ai-chat.png new file mode 100644 index 0000000000..8388e2ca9e Binary files /dev/null and b/docs/en/Community-Articles/2025-05-11-AI-Chat/ai-chat.png differ diff --git a/docs/en/Community-Articles/2025-05-11-AI-Chat/cover.png b/docs/en/Community-Articles/2025-05-11-AI-Chat/cover.png new file mode 100644 index 0000000000..5dce208fd6 Binary files /dev/null and b/docs/en/Community-Articles/2025-05-11-AI-Chat/cover.png differ diff --git a/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/POST.md b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/POST.md new file mode 100644 index 0000000000..6007e5371f --- /dev/null +++ b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/POST.md @@ -0,0 +1,268 @@ +# Resolving Tenant from Route in ABP Framework + +The ABP Framework provides multi-tenancy support with various ways to resolve tenant information, including: Cookie, Header, Domain, Route, and more. + +This article will demonstrate how to resolve tenant information from the route. + +## Tenant Information in Routes + +In the ABP Framework, tenant information in routes is handled by the `RouteTenantResolveContributor`. + +Let's say your application is hosted at `https://abp.io` and you have a tenant named `acme`. You can add the `{__tenant}` variable to your controller or page routes like this: + +```csharp +[Route("{__tenant}/[Controller]")] +public class MyController : MyProjectNameController +{ + [HttpGet] + public IActionResult Get() + { + return Ok("Hello My Page"); + } +} +``` + +```cshtml +@page "{__tenant?}/mypage" +@model MyPageModel + + + +

My Page

+ + +``` + +When you access `https://abp.io/acme/my` or `https://abp.io/acme/mypage`, ABP will automatically resolve the tenant information from the route. + +## Adding __tenant to Global Routes + +While we've shown how to add `{__tenant}` to individual controllers or pages, you might want to add it globally to your entire application. Here's how to implement this: + +```cs +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.AspNetCore.Mvc.ApplicationModels; + +namespace MyCompanyName; + +public class AddTenantRouteToPages : IPageRouteModelConvention, IApplicationModelConvention +{ + public void Apply(PageRouteModel model) + { + var selectorCount = model.Selectors.Count; + var selectorModels = new List(); + for (var i = 0; i < selectorCount; i++) + { + var selector = model.Selectors[i]; + selectorModels.Add(new SelectorModel + { + AttributeRouteModel = new AttributeRouteModel + { + Template = AttributeRouteModel.CombineTemplates("{__tenant:regex(^[a-zA-Z0-9]+$)}", selector.AttributeRouteModel!.Template!.RemovePreFix("/")) + } + }); + } + foreach (var selectorModel in selectorModels) + { + model.Selectors.Add(selectorModel); + } + } +} + +public class AddTenantRouteToControllers :IApplicationModelConvention +{ + public void Apply(ApplicationModel application) + { + var controllers = application.Controllers; + foreach (var controller in controllers) + { + var selector = controller.Selectors.FirstOrDefault(); + if (selector == null || selector.AttributeRouteModel == null) + { + controller.Selectors.Add(new SelectorModel + { + AttributeRouteModel = new AttributeRouteModel + { + Template = AttributeRouteModel.CombineTemplates("{__tenant:regex(^[[a-zA-Z0-9]]+$)}", controller.ControllerName) + } + }); + controller.Selectors.Add(new SelectorModel + { + AttributeRouteModel = new AttributeRouteModel + { + Template = controller.ControllerName + } + }); + } + else + { + var template = selector.AttributeRouteModel?.Template; + template = template.IsNullOrWhiteSpace() ? "{__tenant:regex(^[[a-zA-Z0-9]]+$)}" : AttributeRouteModel.CombineTemplates("{__tenant:regex(^[[a-zA-Z0-9]]+$)}", template.RemovePreFix("/")); + controller.Selectors.Add(new SelectorModel + { + AttributeRouteModel = new AttributeRouteModel + { + Template = template + } + }); + } + } + } +} +``` + +Register the services: + +```cs +public override void ConfigureServices(ServiceConfigurationContext context) +{ + //... + + PostConfigure(options => + { + options.Conventions.Add(new AddTenantRouteToPages()); + }); + + PostConfigure(options => + { + options.Conventions.Add(new AddTenantRouteToControllers()); + }); + + // Configure cookie path to prevent authentication cookie loss + context.Services.ConfigureApplicationCookie(x => + { + x.Cookie.Path = "/"; + }); + //... +} +``` + +After implementing this, you'll notice that all controllers in your Swagger UI will have the `{__tenant}` route added: + +![Swagger UI](./swagger-ui.png) + +## Handling Navigation Links + +To ensure navigation links automatically include tenant information, we need to add middleware that dynamically adds the tenant to the PathBase: + +```cs +public override void OnApplicationInitialization(ApplicationInitializationContext context) +{ + //... + app.Use(async (httpContext, next) => + { + var tenantMatch = Regex.Match(httpContext.Request.Path, "^/([^/.]+)(?:/.*)?$"); + if (tenantMatch.Groups.Count > 1 && !string.IsNullOrEmpty(tenantMatch.Groups[1].Value)) + { + var tenantName = tenantMatch.Groups[1].Value; + if (!tenantName.IsNullOrWhiteSpace()) + { + var tenantStore = httpContext.RequestServices.GetRequiredService(); + var tenantNormalizer = httpContext.RequestServices.GetRequiredService(); + var tenantInfo = await tenantStore.FindAsync(tenantNormalizer.NormalizeName(tenantName)!); + if (tenantInfo != null) + { + if (httpContext.Request.Path.StartsWithSegments(new PathString(tenantName.EnsureStartsWith('/')), out var matchedPath, out var remainingPath)) + { + var originalPath = httpContext.Request.Path; + var originalPathBase = httpContext.Request.PathBase; + httpContext.Request.Path = remainingPath; + httpContext.Request.PathBase = originalPathBase.Add(matchedPath); + try + { + await next(httpContext); + } + finally + { + httpContext.Request.Path = originalPath; + httpContext.Request.PathBase = originalPathBase; + } + return; + } + } + } + } + + await next(httpContext); + }); + app.UseRouting(); + app.MapAbpStaticAssets(); + //... +} +``` + +![ui](ui.png) + +After setting the PathBase, we need to add a custom tenant resolver to extract tenant information from the `PathBase`: + +```cs +public class MyRouteTenantResolveContributor : RouteTenantResolveContributor +{ + public const string ContributorName = "MyRoute"; + + public override string Name => ContributorName; + + protected override Task GetTenantIdOrNameFromHttpContextOrNullAsync(ITenantResolveContext context, HttpContext httpContext) + { + var tenantId = httpContext.GetRouteValue(context.GetAbpAspNetCoreMultiTenancyOptions().TenantKey) ?? httpContext.Request.PathBase.ToString(); + var tenantIdStr = tenantId?.ToString()?.RemovePreFix("/"); + return Task.FromResult(!tenantIdStr.IsNullOrWhiteSpace() ? Convert.ToString(tenantIdStr) : null); + } +} +``` + +Register the MyRouteTenantResolveContributor with the ABP Framework: + +```cs +public override void ConfigureServices(ServiceConfigurationContext context) +{ + //... + Configure(options => + { + options.TenantResolvers.Add(new MyRouteTenantResolveContributor()); + }); + //... +} +``` + +### Modifying abp.appPath + +```csharp +public override void ConfigureServices(ServiceConfigurationContext context) +{ + //... + context.Services.AddOptions().Configure((options, rootServiceProvider) => + { + var currentTenant = rootServiceProvider.GetRequiredService(); + if (!currentTenant.Name.IsNullOrWhiteSpace()) + { + options.BaseUrl = currentTenant.Name.EnsureStartsWith('/').EnsureEndsWith('/'); + } + }); + + context.Services.RemoveAll(x => x.ServiceType == typeof(IOptions)); + context.Services.Add(ServiceDescriptor.Scoped(typeof(IOptions<>), typeof(OptionsManager<>))); + //... +} +``` + +Browser console output: + +```cs +> https://localhost:44303/acme/ +> abp.appPath +> '/acme/' +``` + +## Summary + +By following these steps, you can implement tenant resolution from routes in the ABP Framework and handle navigation links appropriately. This approach provides a clean and maintainable way to manage multi-tenancy in your application. + + +## References + +- [ABP Multi-Tenancy](https://docs.abp.io/en/abp/latest/Multi-Tenancy) +- [Routing in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/routing) +- [HTML base tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base) diff --git a/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/cover.png b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/cover.png new file mode 100644 index 0000000000..ebd7978ac8 Binary files /dev/null and b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/cover.png differ diff --git a/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/swagger-ui.png b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/swagger-ui.png new file mode 100644 index 0000000000..72da9bd571 Binary files /dev/null and b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/swagger-ui.png differ diff --git a/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/ui.png b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/ui.png new file mode 100644 index 0000000000..3ae3f6650c Binary files /dev/null and b/docs/en/Community-Articles/2025-05-19-RouteTenantResolveContributor/ui.png differ diff --git a/docs/en/Community-Articles/2025-06-10-bootcamp/post.md b/docs/en/Community-Articles/2025-06-10-bootcamp/post.md new file mode 100644 index 0000000000..98192235fa --- /dev/null +++ b/docs/en/Community-Articles/2025-06-10-bootcamp/post.md @@ -0,0 +1,38 @@ +You Asked, We Delivered: Introducing Our New Training Bootcamp\! + +Over the past months we’ve heard from countless freelancers, individuals and small teams asking for a focused, high-impact training without the overwhelming commitment or high costs of traditional bootcamps. So here we are\! + +We're excited to introduce **ABP Bootcamp: Mastering Infrastructure & Features**, a full training experience designed to help developers level up fast with practical knowledge they can apply immediately. + +This live, instructor-led program delivers four days of in-depth, real-world training on ABP’s infrastructure and core features. + +**Bootcamp Details** + +Dates: July 1,2,3,4 2025 +Time: 17:00-19:00 (UTC) each day +Format: Live, online sessions +Price: $399 (discounted $799) +Seats: Limited to a small group + +### **What You’ll Learn** + +By the end of this bootcamp, you’ll have: + +\-A solid understanding of ABP’s infrastructure, systems, and design patterns +\-Practical experience with features like dependency injection, configuration, logging, and localization +\-The ability to implement email templating, event bus, caching, and custom settings in real applications +\-Knowledge of best practices for building scalable, maintainable, and high-performance solutions with ABP + +### **Who It’s For** + +This bootcamp is ideal for: + +\-Developers and freelancers using ABP in their daily work +\-Teams looking to speed up onboarding and improve development efficiency +\-Anyone who wants practical ABP knowledge without committing to long-format training programs + +### **Reserve Your Spot** + +Seats are limited to keep the experience interactive and personalized. With the current 50% discount, this is the most accessible way to gain hands-on ABP experience with expert guidance. + +**Registration is now open. Secure your place today and master the infrastructure that powers ABP. Register here: [https://docs.google.com/forms/d/e/1FAIpQLSckMZChdqIJIuWiEvg\_KsSDmrxagRdc5WBYceAemHLrmT1oiA/viewform](https://docs.google.com/forms/d/e/1FAIpQLSckMZChdqIJIuWiEvg_KsSDmrxagRdc5WBYceAemHLrmT1oiA/viewform)** diff --git a/docs/en/framework/data/entity-framework-core/index.md b/docs/en/framework/data/entity-framework-core/index.md index a50edb2d4a..e462662410 100644 --- a/docs/en/framework/data/entity-framework-core/index.md +++ b/docs/en/framework/data/entity-framework-core/index.md @@ -142,24 +142,27 @@ Configure(options => Add actions for the `ConfigureConventions` and `OnModelCreating` methods of the `DbContext` as shown below: ````csharp -options.DefaultConventionAction = (dbContext, builder) => +Configure(options => { - // This action is called for ConfigureConventions method of all DbContexts. -}; + options.ConfigureDefaultConvention((dbContext, builder) => + { + // This action is called for ConfigureConventions method of all DbContexts. + }); -options.ConfigureConventions((dbContext, builder) => -{ - // This action is called for ConfigureConventions method of specific DbContext. -}); + options.ConfigureConventions((dbContext, builder) => + { + // This action is called for ConfigureConventions method of specific DbContext. + }); -options.DefaultOnModelCreatingAction = (dbContext, builder) => -{ - // This action is called for OnModelCreating method of all DbContexts. -}; + options.ConfigureDefaultOnModelCreating((dbContext, builder) => + { + // This action is called for OnModelCreating method of all DbContexts. + }); -options.ConfigureOnModelCreating((dbContext, builder) => -{ - // This action is called for OnModelCreating method of specific DbContext. + options.ConfigureOnModelCreating((dbContext, builder) => + { + // This action is called for OnModelCreating method of specific DbContext. + }); }); ```` @@ -972,4 +975,4 @@ public class MyCustomEfCoreBulkOperationProvider * [Entities](../../architecture/domain-driven-design/entities.md) * [Repositories](../../architecture/domain-driven-design/repositories.md) -* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) \ No newline at end of file +* [Video tutorial](https://abp.io/video-courses/essentials/abp-ef-core) diff --git a/docs/en/framework/infrastructure/background-jobs/index.md b/docs/en/framework/infrastructure/background-jobs/index.md index 5aa58a7d3e..af0c33de21 100644 --- a/docs/en/framework/infrastructure/background-jobs/index.md +++ b/docs/en/framework/infrastructure/background-jobs/index.md @@ -134,6 +134,25 @@ namespace MyProject } ``` +##### Custom Job Name + +You can configure `GetBackgroundJobName` delegate of the `AbpBackgroundJobOptions` to change the default job name. + +```csharp +Configure(options => +{ + options.GetBackgroundJobName = (jobType) => + { + if (jobTyep == typeof(EmailSendingArgs)) + { + return "emails"; + } + + return BackgroundJobNameAttribute.GetName(jobType); + }; +}); +``` + ### Queue a Job Item Now, you can queue an email sending job using the `IBackgroundJobManager` service: diff --git a/docs/en/framework/infrastructure/features.md b/docs/en/framework/infrastructure/features.md index ef5d97bd91..a6bc52e48b 100644 --- a/docs/en/framework/infrastructure/features.md +++ b/docs/en/framework/infrastructure/features.md @@ -424,7 +424,7 @@ namespace FeaturesDemo return Task.FromResult("true"); } - return null; + return Task.FromResult(null); } } } diff --git a/docs/en/framework/infrastructure/simple-state-checker.md b/docs/en/framework/infrastructure/simple-state-checker.md index 584fef1592..981e4f6a61 100644 --- a/docs/en/framework/infrastructure/simple-state-checker.md +++ b/docs/en/framework/infrastructure/simple-state-checker.md @@ -11,11 +11,11 @@ public class MyObject : IHasSimpleStateCheckers { public int Id { get; set; } - public List> SimpleStateCheckers { get; } + public List> StateCheckers { get; } public MyObject() { - SimpleStateCheckers = new List>(); + StateCheckers = new List>(); } } ```` diff --git a/docs/en/modules/account/idle-session-timeout.md b/docs/en/modules/account/idle-session-timeout.md index 231ea31e7d..bb938d0433 100644 --- a/docs/en/modules/account/idle-session-timeout.md +++ b/docs/en/modules/account/idle-session-timeout.md @@ -6,6 +6,8 @@ The `Idle Session Timeout` feature allows you to automatically log out users aft You can enable/disable the `Idle Session Timeout` feature in the `Setting > Account > Idle Session Timeout` page. +> This feature will be disabled if you select the `Remember Me` option on the login page. + The default idle session timeout is 1 hour. You can change it by selecting a different value from the dropdown list or entering a custom value (in minutes). ![idle-setting](../../images/idle-setting.png) diff --git a/docs/en/modules/language-management.md b/docs/en/modules/language-management.md index 3bce0d46b0..62327378a4 100644 --- a/docs/en/modules/language-management.md +++ b/docs/en/modules/language-management.md @@ -77,6 +77,11 @@ This module follows the [Entity Best Practices & Conventions](../framework/archi * `Language` (aggregate root): Represents a language in the system. * `LanguageText` (aggregate root): Represents a language text in the system. +##### Dynamic Localization + +* `LocalizationResourceRecord` (aggregate root): Represents a localization resource in the system. +* `LocalizationTextRecord` (aggregate root): Represents all texts of a localization resource in the system. + #### Repositories This module follows the [Repository Best Practices & Conventions](../framework/architecture/best-practices/repositories.md) guide. @@ -85,6 +90,8 @@ Following custom repositories are defined for this module: * `ILanguageRepository` * `ILanguageTextRepository` +* `ILocalizationResourceRecordRepository` +* `ILocalizationTextRecordRepository` #### Domain Services @@ -121,6 +128,8 @@ See the [connection strings](../framework/fundamentals/connection-strings.md) do * **AbpLanguages** * **AbpLanguageTexts** +* **AbpLocalizationResources** +* **AbpLocalizationTexts** #### MongoDB @@ -128,6 +137,8 @@ See the [connection strings](../framework/fundamentals/connection-strings.md) do * **AbpLanguages** * **AbpLanguageTexts** +* **AbpLocalizationResources** +* **AbpLocalizationTexts** ### Permissions diff --git a/docs/en/modules/payment-custom-gateway.md b/docs/en/modules/payment-custom-gateway.md index 40cd073da6..cdf847b528 100644 --- a/docs/en/modules/payment-custom-gateway.md +++ b/docs/en/modules/payment-custom-gateway.md @@ -6,7 +6,7 @@ This document explains creating custom a payment gateway that's different than t ## Creating Core Operations -- Create **MyPaymentGateway.cs** and implement `IPaymentGateway` +- Create **MyPaymentGateway.cs** in the **Domain** layer of your project and implement `IPaymentGateway`. ```csharp public class MyPaymentGateway : IPaymentGateway, ITransientDependency @@ -57,7 +57,7 @@ This document explains creating custom a payment gateway that's different than t } ``` -- You should configure your gateway in `PaymentOptions` +- You should also configure `PaymentOptions` for your gateway in the **Domain** layer of your project as shown below. ```csharp Configure(options => @@ -119,7 +119,7 @@ There are 2 types of pages that are supported by default. You can define a pre-p

Operation Done

``` -- Configure your pages in `PaymentWebOptions` +- Configure your pages using `PaymentWebOptions` in **Web** layer of your project. ```csharp Configure(options => diff --git a/docs/en/tutorials/book-store/part-01.md b/docs/en/tutorials/book-store/part-01.md index 61de79d035..b404280994 100644 --- a/docs/en/tutorials/book-store/part-01.md +++ b/docs/en/tutorials/book-store/part-01.md @@ -114,9 +114,11 @@ public class BookStoreDbContext : AbpDbContext {{if DB == "Mongo"}} -Add a `IMongoCollection Books` property to the `BookStoreMongoDbContext` inside the `Acme.BookStore.MongoDB` project: +Add an `IMongoCollection Books` property to the `BookStoreMongoDbContext` inside the `Acme.BookStore.MongoDB` project: ```csharp +using Acme.BookStore.Books; + public class BookStoreMongoDbContext : AbpMongoDbContext { public IMongoCollection Books => Collection(); diff --git a/docs/en/tutorials/book-store/part-09.md b/docs/en/tutorials/book-store/part-09.md index 5bf9f90af1..06db5f37d9 100644 --- a/docs/en/tutorials/book-store/part-09.md +++ b/docs/en/tutorials/book-store/part-09.md @@ -1038,8 +1038,6 @@ Create a new Razor Component Page, `/Pages/Authors.razor`, in the {{ if UI == "B * This code is similar to the `Books.razor`, except it doesn't inherit from the `AbpCrudPageBase`, but uses its own implementation. * Injects the `IAuthorAppService` to consume the server side HTTP APIs from the UI. We can directly inject application service interfaces and use just like regular method calls by the help of [Dynamic C# HTTP API Client Proxy System](../../framework/api-development/dynamic-csharp-clients.md), which performs REST API calls for us. See the `Authors` class below to see the usage. -* Injects the `IAuthorizationService` to check [permissions](../../framework/fundamentals/authorization.md). -* Injects the `IObjectMapper` for [object to object mapping](../../framework/infrastructure/object-to-object-mapping.md). Create a new code behind file, `Authors.razor.cs`, under the `Pages` folder, with the following content: @@ -1158,14 +1156,21 @@ public partial class Authors private async Task DeleteAuthorAsync(AuthorDto author) { - var confirmMessage = L["AuthorDeletionConfirmationMessage", author.Name]; - if (!await Message.Confirm(confirmMessage)) + try { - return; - } + var confirmMessage = L["AuthorDeletionConfirmationMessage", author.Name]; + if (!await Message.Confirm(confirmMessage)) + { + return; + } - await AuthorAppService.DeleteAsync(author.Id); - await GetAuthorsAsync(); + await AuthorAppService.DeleteAsync(author.Id); + await GetAuthorsAsync(); + } + catch(Exception ex) + { + await HandleErrorAsync(ex); + } } private void CloseEditAuthorModal() @@ -1175,21 +1180,35 @@ public partial class Authors private async Task CreateAuthorAsync() { - if (await CreateValidationsRef.ValidateAll()) + try { - await AuthorAppService.CreateAsync(NewAuthor); - await GetAuthorsAsync(); - CreateAuthorModal.Hide(); + if (await CreateValidationsRef.ValidateAll()) + { + await AuthorAppService.CreateAsync(NewAuthor); + await GetAuthorsAsync(); + CreateAuthorModal.Hide(); + } + } + catch(Exception ex) + { + await HandleErrorAsync(ex); } } private async Task UpdateAuthorAsync() { - if (await EditValidationsRef.ValidateAll()) + try { - await AuthorAppService.UpdateAsync(EditingAuthorId, EditingAuthor); - await GetAuthorsAsync(); - EditAuthorModal.Hide(); + if (await EditValidationsRef.ValidateAll()) + { + await AuthorAppService.UpdateAsync(EditingAuthorId, EditingAuthor); + await GetAuthorsAsync(); + EditAuthorModal.Hide(); + } + } + catch(Exception ex) + { + await HandleErrorAsync(ex); } } } diff --git a/docs/en/tutorials/microservice/part-01.md b/docs/en/tutorials/microservice/part-01.md index d843e744ca..b2d0dade7f 100644 --- a/docs/en/tutorials/microservice/part-01.md +++ b/docs/en/tutorials/microservice/part-01.md @@ -21,7 +21,7 @@ Follow the *[Get Started](../../get-started/microservice.md)* guide to create a You can select the other options based on your preference. -> **Please complete the *[Get Started](../../get-started/layered-web-application.md)* guide and run the web application before going further.** You can skip the sections after the *Running the Solution* section, if you don't prefer to complete all. +> **Please complete the *[Get Started](../../get-started/microservice.md)* guide and run the applications before going further.** You can skip the sections after the *Running the Solution* section, if you don't prefer to complete all. The initial solution structure should be like the following in ABP Studio's *[Solution Explorer](../../studio/solution-explorer.md)*: @@ -37,4 +37,4 @@ You can see the *[Microservice Solution Template](../../solution-templates/micro ## Summary -In this part, you've created the initial microservice solution, which already contains a few infrastructure services. We will create our first business service in the [next part](part-02.md). \ No newline at end of file +In this part, you've created the initial microservice solution, which already contains a few infrastructure services. We will create our first business service in the [next part](part-02.md). diff --git a/docs/en/ui-themes/lepton-x/images/account-layout-background-style.png b/docs/en/ui-themes/lepton-x/images/account-layout-background-style.png index 5b2f32661d..c8391da4d3 100644 Binary files a/docs/en/ui-themes/lepton-x/images/account-layout-background-style.png and b/docs/en/ui-themes/lepton-x/images/account-layout-background-style.png differ diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js index e10ceefbf9..d05c8dab37 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js @@ -438,6 +438,13 @@ date = date.local(); } if (options.isIso) { + if(abp.clock.supportsMultipleTimezone()){ + var timeZone = abp.clock.timeZone(); + if(timeZone){ + return abp.clock.normalizeToString(date.toDate()); + } + } + return date.toISOString(); } return date.locale('en').format(options.inputDateFormat) diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs index 6b3aaa52b8..f63bc2bb88 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/AbpBackgroundJobOptions.cs @@ -14,10 +14,17 @@ public class AbpBackgroundJobOptions /// public bool IsJobExecutionEnabled { get; set; } = true; + /// + /// The delegate to get the name of a background job. + /// Default: . + /// + public Func GetBackgroundJobName { get; set; } + public AbpBackgroundJobOptions() { _jobConfigurationsByArgsType = new Dictionary(); _jobConfigurationsByName = new Dictionary(); + GetBackgroundJobName = BackgroundJobNameAttribute.GetName; } public BackgroundJobConfiguration GetJob() @@ -61,7 +68,7 @@ public class AbpBackgroundJobOptions public void AddJob(Type jobType) { - AddJob(new BackgroundJobConfiguration(jobType)); + AddJob(new BackgroundJobConfiguration(jobType, GetBackgroundJobName(jobType))); } public void AddJob(BackgroundJobConfiguration jobConfiguration) diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobConfiguration.cs b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobConfiguration.cs index d9f08da2e7..c17ccdc443 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobConfiguration.cs +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobConfiguration.cs @@ -10,10 +10,10 @@ public class BackgroundJobConfiguration public string JobName { get; } - public BackgroundJobConfiguration(Type jobType) + public BackgroundJobConfiguration(Type jobType, string jobName) { JobType = jobType; ArgsType = BackgroundJobArgsHelper.GetJobArgsType(jobType); - JobName = BackgroundJobNameAttribute.GetName(ArgsType); + JobName = jobName; } } diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs index 68851c5043..586b66b5d1 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs @@ -18,6 +18,7 @@ public class DefaultBackgroundJobManager : IBackgroundJobManager, ITransientDepe protected IBackgroundJobSerializer Serializer { get; } protected IGuidGenerator GuidGenerator { get; } protected IBackgroundJobStore Store { get; } + protected IOptions BackgroundJobOptions { get; } protected IOptions BackgroundJobWorkerOptions { get; } public DefaultBackgroundJobManager( @@ -25,18 +26,20 @@ public class DefaultBackgroundJobManager : IBackgroundJobManager, ITransientDepe IBackgroundJobSerializer serializer, IBackgroundJobStore store, IGuidGenerator guidGenerator, + IOptions backgroundJobOptions, IOptions backgroundJobWorkerOptions) { Clock = clock; Serializer = serializer; GuidGenerator = guidGenerator; + BackgroundJobOptions = backgroundJobOptions; BackgroundJobWorkerOptions = backgroundJobWorkerOptions; Store = store; } public virtual async Task EnqueueAsync(TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) { - var jobName = BackgroundJobNameAttribute.GetName(); + var jobName = BackgroundJobOptions.Value.GetBackgroundJobName(typeof(TArgs)); var jobId = await EnqueueAsync(jobName, args!, priority, delay); return jobId.ToString(); } diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 6c4fcf07f9..a2c7193437 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -357,10 +357,10 @@ public abstract class AbpCrudPageBase< } } - protected virtual Task CloseCreateModalAsync() + protected virtual async Task CloseCreateModalAsync() { + await InvokeAsync(CreateModal!.Hide); NewEntity = new TCreateViewModel(); - return InvokeAsync(CreateModal!.Hide); } protected virtual Task ClosingCreateModal(ModalClosingEventArgs eventArgs) @@ -474,11 +474,11 @@ public abstract class AbpCrudPageBase< protected virtual async Task OnCreatedEntityAsync() { - NewEntity = new TCreateViewModel(); await GetEntitiesAsync(); await InvokeAsync(CreateModal!.Hide); await Notify.Success(GetCreateMessage()); + NewEntity = new TCreateViewModel(); } protected virtual string GetCreateMessage() diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs index 2773b88bed..fa4994e2f9 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs @@ -233,19 +233,17 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions switch (dataTypeAttribute.DataType) { case DataType.Password: - return typeof(TextExtensionProperty<,>); - case DataType.Date: - return typeof(DateTimeExtensionProperty<,>); - case DataType.Time: - return typeof(TimeExtensionProperty<,>); case DataType.EmailAddress: - return typeof(TextExtensionProperty<,>); case DataType.Url: - return typeof(TextExtensionProperty<,>); case DataType.PhoneNumber: return typeof(TextExtensionProperty<,>); + case DataType.Date: case DataType.DateTime: return typeof(DateTimeExtensionProperty<,>); + case DataType.Time: + return typeof(TimeExtensionProperty<,>); + case DataType.MultilineText: + return typeof(TextAreaExtensionProperty<,>); } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor new file mode 100644 index 0000000000..6acf7ba69d --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor @@ -0,0 +1,19 @@ +@typeparam TEntity +@typeparam TResourceType +@using Volo.Abp.BlazoriseUI +@using Volo.Abp.Localization +@inherits ExtensionPropertyComponentBase + +@if (PropertyInfo != null && Entity != null) +{ + + + @PropertyInfo.GetLocalizedDisplayName(StringLocalizerFactory) + + + + + + + +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor.cs new file mode 100644 index 0000000000..853d1e7372 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/TextAreaExtensionProperty.razor.cs @@ -0,0 +1,15 @@ +using Volo.Abp.Data; + +namespace Volo.Abp.BlazoriseUI.Components.ObjectExtending; +public partial class TextAreaExtensionProperty + where TEntity : IHasExtraProperties +{ + protected string? Value { + get { + return PropertyInfo.GetTextInputValueOrNull(Entity.GetProperty(PropertyInfo.Name)); + } + set { + Entity.SetProperty(PropertyInfo.Name, value, validate: false); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/wwwroot/volo.abp.blazoriseui.css b/framework/src/Volo.Abp.BlazoriseUI/wwwroot/volo.abp.blazoriseui.css index f42b6735bd..8299895e1e 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/wwwroot/volo.abp.blazoriseui.css +++ b/framework/src/Volo.Abp.BlazoriseUI/wwwroot/volo.abp.blazoriseui.css @@ -61,4 +61,11 @@ .table-responsive .dropdown-menu-position-strategy-fixed { position: fixed !important; -} \ No newline at end of file +} + +/* + blazorise picker workaround for https://github.com/Megabit/Blazorise/issues/4917 +*/ +.card .flatpickr-calendar.static { + top: unset !important; +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj index 48d756465f..547f9f0aff 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj +++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj @@ -16,23 +16,26 @@ - +
+ + + + - diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj index 92753dc30d..e714fcd0b3 100644 --- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj +++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj @@ -15,7 +15,6 @@ - diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs index be365df686..be906c9e74 100644 --- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs +++ b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceCollectionLoggingExtensions.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Logging; namespace Microsoft.Extensions.DependencyInjection; @@ -7,6 +8,7 @@ public static class ServiceCollectionLoggingExtensions { public static ILogger GetInitLogger(this IServiceCollection services) { - return services.GetSingletonInstance().Create(); + var loggerFactory = services.GetSingletonInstanceOrNull(); + return loggerFactory == null ? NullLogger.Instance : loggerFactory.Create(); } } diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index b1605bddd2..caa6b6be94 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -16,7 +16,6 @@ - @@ -26,10 +25,7 @@ - - - @@ -40,6 +36,10 @@ + + + + all runtime; build; native; contentfiles; analyzers diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs index 6d1c345840..d9fae16e16 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; using Volo.Abp.Reflection; namespace Volo.Abp.DependencyInjection; @@ -11,14 +12,30 @@ public abstract class ConventionalRegistrarBase : IConventionalRegistrar { public virtual void AddAssembly(IServiceCollection services, Assembly assembly) { - var types = AssemblyHelper - .GetAllTypes(assembly) - .Where( - type => type != null && - type.IsClass && - !type.IsAbstract && - !type.IsGenericType - ).ToArray(); + var logger = services.GetInitLogger(); + var types = Array.Empty(); + + try + { + types = AssemblyHelper + .GetAllTypes(assembly) + .Where( + type => type != null && + type.IsClass && + !type.IsAbstract && + !type.IsGenericType + ).ToArray(); + } + catch (ReflectionTypeLoadException e) + { + types = e.Types.Select(x => x!).ToArray(); + logger.LogException(e); + } + catch (Exception e) + { + //TODO: Trigger a global event? + logger.LogException(e); + } AddTypes(services, types); } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs index 3f638defe8..be28f569ea 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Internal/InternalServiceCollectionExtensions.cs @@ -23,7 +23,6 @@ internal static class InternalServiceCollectionExtensions { var moduleLoader = new ModuleLoader(); var assemblyFinder = new AssemblyFinder(abpApplication); - var typeFinder = new TypeFinder(assemblyFinder); if (!services.IsAdded()) { @@ -36,8 +35,9 @@ internal static class InternalServiceCollectionExtensions services.TryAddSingleton(moduleLoader); services.TryAddSingleton(assemblyFinder); - services.TryAddSingleton(typeFinder); services.TryAddSingleton(new DefaultInitLoggerFactory()); + var typeFinder = new TypeFinder(services.GetInitLogger(), assemblyFinder); + services.TryAddSingleton(typeFinder); services.AddAssemblyOf(); diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/AssemblyHelper.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/AssemblyHelper.cs index 8e71f011fe..040159dcc8 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/AssemblyHelper.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/AssemblyHelper.cs @@ -25,13 +25,6 @@ internal static class AssemblyHelper public static IReadOnlyList GetAllTypes(Assembly assembly) { - try - { - return assembly.GetTypes(); - } - catch (ReflectionTypeLoadException ex) - { - return ex.Types!; - } + return assembly.GetTypes(); } } diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/TypeFinder.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/TypeFinder.cs index c7350cde18..c4b52604d6 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/TypeFinder.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Reflection/TypeFinder.cs @@ -1,19 +1,24 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Threading; +using Microsoft.Extensions.Logging; namespace Volo.Abp.Reflection; public class TypeFinder : ITypeFinder { + private readonly ILogger _logger; + private readonly IAssemblyFinder _assemblyFinder; private readonly Lazy> _types; - public TypeFinder(IAssemblyFinder assemblyFinder) + public TypeFinder(ILogger logger, IAssemblyFinder assemblyFinder) { _assemblyFinder = assemblyFinder; + _logger = logger; _types = new Lazy>(FindAll, LazyThreadSafetyMode.ExecutionAndPublication); } @@ -37,9 +42,15 @@ public class TypeFinder : ITypeFinder allTypes.AddRange(typesInThisAssembly.Where(type => type != null)); } - catch + catch (ReflectionTypeLoadException e) + { + allTypes = e.Types.Select(x => x!).ToList(); + _logger.LogException(e); + } + catch (Exception e) { //TODO: Trigger a global event? + _logger.LogException(e); } } diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpEventBusRabbitMqModule.cs b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpEventBusRabbitMqModule.cs index 92399b43b0..5d811a76cc 100644 --- a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpEventBusRabbitMqModule.cs +++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/AbpEventBusRabbitMqModule.cs @@ -1,4 +1,6 @@ using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; using Volo.Abp.Modularity; using Volo.Abp.RabbitMQ; @@ -12,8 +14,8 @@ public class AbpEventBusRabbitMqModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); - Configure(configuration.GetSection("RabbitMQ:EventBus")); + context.Services.TryAddEnumerable(ServiceDescriptor.Singleton, PostConfigureAbpRabbitMqEventBusOptions>()); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/PostConfigureAbpRabbitMqEventBusOptions.cs b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/PostConfigureAbpRabbitMqEventBusOptions.cs new file mode 100644 index 0000000000..f4e69c46c6 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo/Abp/EventBus/RabbitMq/PostConfigureAbpRabbitMqEventBusOptions.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; +using Microsoft.Extensions.Options; + +namespace Volo.Abp.EventBus.RabbitMq; + +public class PostConfigureAbpRabbitMqEventBusOptions : IPostConfigureOptions +{ + private readonly HashSet _uint64QueueArguments = + [ + "x-delivery-limit", + "x-expires", + "x-message-ttl", + "x-max-length", + "x-max-length-bytes", + "x-quorum-initial-group-size", + "x-quorum-target-group-size", + "x-stream-filter-size-bytes", + "x-stream-max-segment-size-bytes", + ]; + + private readonly HashSet _boolQueueArguments = + [ + "x-single-active-consumer" + ]; + + public virtual void PostConfigure(string? name, AbpRabbitMqEventBusOptions options) + { + ParseBoolQueueArguments(options); + ParseIntegerQueueArguments(options); + } + + protected virtual void ParseBoolQueueArguments(AbpRabbitMqEventBusOptions options) + { + foreach (var argument in _boolQueueArguments) + { + if (options.QueueArguments.TryGetValue(argument, out var value) && value is string stringValue && bool.TryParse(stringValue, out var boolValue)) + { + options.QueueArguments[argument] = boolValue; + } + } + } + + protected virtual void ParseIntegerQueueArguments(AbpRabbitMqEventBusOptions options) + { + foreach (var argument in _uint64QueueArguments) + { + if (options.QueueArguments.TryGetValue(argument, out var value) && value is string stringValue && int.TryParse(stringValue, out var intValue)) + { + options.QueueArguments[argument] = intValue; + } + } + } + +} diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs index 94822284f5..cdab8e74c8 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs @@ -1,5 +1,7 @@ -using System.Security.Principal; +using System; +using System.Security.Principal; using System.Threading.Tasks; +using Volo.Abp.MultiTenancy; using Volo.Abp.Security.Claims; namespace Volo.Abp.Features; @@ -12,15 +14,25 @@ public class EditionFeatureValueProvider : FeatureValueProvider protected ICurrentPrincipalAccessor PrincipalAccessor; - public EditionFeatureValueProvider(IFeatureStore featureStore, ICurrentPrincipalAccessor principalAccessor) + protected ITenantStore TenantStore { get; } + + protected ICurrentTenant CurrentTenant { get; } + + public EditionFeatureValueProvider( + IFeatureStore featureStore, + ICurrentPrincipalAccessor principalAccessor, + ITenantStore tenantStore, + ICurrentTenant currentTenant) : base(featureStore) { PrincipalAccessor = principalAccessor; + TenantStore = tenantStore; + CurrentTenant = currentTenant; } - public override async Task GetOrNullAsync(FeatureDefinition feature) + public async override Task GetOrNullAsync(FeatureDefinition feature) { - var editionId = PrincipalAccessor.Principal?.FindEditionId(); + var editionId = await FindEditionIdAsync(); if (editionId == null) { return null; @@ -28,4 +40,21 @@ public class EditionFeatureValueProvider : FeatureValueProvider return await FeatureStore.GetOrNullAsync(feature.Name, Name, editionId.Value.ToString()); } + + protected virtual async Task FindEditionIdAsync() + { + var editionId = PrincipalAccessor.Principal?.FindEditionId(); + if (editionId != null) + { + return editionId; + } + + if (CurrentTenant.Id == null) + { + return null; + } + + var tenant = await TenantStore.FindAsync(CurrentTenant.Id.Value); + return tenant?.EditionId; + } } diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs index 5be598af20..09ec183929 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs @@ -119,8 +119,8 @@ public class ClientProxyUrlBuilder : ITransientDependency if (path != null) { urlBuilder = urlBuilder.Replace($"{{{pathParameter.Name}}}", path); - continue; } + continue; } } @@ -164,8 +164,8 @@ public class ClientProxyUrlBuilder : ITransientDependency urlBuilder.Append(isFirstParam ? "?" : "&"); urlBuilder.Append(queryString); isFirstParam = false; - continue; } + continue; } } diff --git a/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj b/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj index 15a6e37336..6d388b5764 100644 --- a/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj +++ b/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj @@ -20,6 +20,9 @@ + + + diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/AbpMongoClientFactory.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/AbpMongoClientFactory.cs new file mode 100644 index 0000000000..983f7e067e --- /dev/null +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/AbpMongoClientFactory.cs @@ -0,0 +1,44 @@ +using System.Collections.Concurrent; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; +using MongoDB.Driver; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.MongoDB.Clients; + +public class AbpMongoClientFactory : IAbpMongoClientFactory, ISingletonDependency +{ + protected ConcurrentDictionary ClientCache { get; } + protected AbpMongoDbContextOptions Options { get; } + + public AbpMongoClientFactory(IOptions options) + { + Options = options.Value; + ClientCache = new ConcurrentDictionary(); + } + + public virtual Task GetAsync(MongoUrl mongoUrl) + { + Check.NotNull(mongoUrl, nameof(mongoUrl)); + + return Task.FromResult( + ClientCache.GetOrAdd(mongoUrl.ToString(), _ => + { + var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl); + Options.MongoClientSettingsConfigurer?.Invoke(mongoClientSettings); + return new MongoClient(mongoClientSettings); + })); + } + + public virtual MongoClient Get(MongoUrl mongoUrl) + { + Check.NotNull(mongoUrl, nameof(mongoUrl)); + + return ClientCache.GetOrAdd(mongoUrl.ToString(), _ => + { + var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl); + Options.MongoClientSettingsConfigurer?.Invoke(mongoClientSettings); + return new MongoClient(mongoClientSettings); + }); + } +} diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/IAbpMongoClientFactory.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/IAbpMongoClientFactory.cs new file mode 100644 index 0000000000..bf0d20d3ae --- /dev/null +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Clients/IAbpMongoClientFactory.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; +using MongoDB.Driver; + +namespace Volo.Abp.MongoDB.Clients; + +public interface IAbpMongoClientFactory +{ + Task GetAsync(MongoUrl mongoUrl); + + [Obsolete("Use GetAsync method")] + MongoClient Get(MongoUrl mongoUrl); +} diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs index 9d1b706d8b..e5d726526b 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs @@ -64,7 +64,7 @@ public class MongoDbContextEventInbox : IMongoDbContextEventInb var outgoingEventRecords = await dbContext .IncomingEvents .AsQueryable() - .Where(x => !x.Processed) + .Where(x => x.Processed == false) .WhereIf(transformedFilter != null, transformedFilter!) .OrderBy(x => x.CreationTime) .Take(maxCount) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs index 1585bc1332..acea595dce 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Uow/MongoDB/UnitOfWorkMongoDbContextProvider.cs @@ -4,11 +4,11 @@ using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using Volo.Abp.Data; using Volo.Abp.MongoDB; +using Volo.Abp.MongoDB.Clients; using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; @@ -24,23 +24,23 @@ public class UnitOfWorkMongoDbContextProvider : IMongoDbContext protected readonly IConnectionStringResolver ConnectionStringResolver; protected readonly ICancellationTokenProvider CancellationTokenProvider; protected readonly ICurrentTenant CurrentTenant; - protected readonly AbpMongoDbContextOptions Options; protected readonly IMongoDbContextTypeProvider DbContextTypeProvider; + protected readonly IAbpMongoClientFactory MongoClientFactory; public UnitOfWorkMongoDbContextProvider( IUnitOfWorkManager unitOfWorkManager, IConnectionStringResolver connectionStringResolver, ICancellationTokenProvider cancellationTokenProvider, ICurrentTenant currentTenant, - IOptions options, - IMongoDbContextTypeProvider dbContextTypeProvider) + IMongoDbContextTypeProvider dbContextTypeProvider, + IAbpMongoClientFactory mongoClientFactory) { UnitOfWorkManager = unitOfWorkManager; ConnectionStringResolver = connectionStringResolver; CancellationTokenProvider = cancellationTokenProvider; CurrentTenant = currentTenant; DbContextTypeProvider = dbContextTypeProvider; - Options = options.Value; + MongoClientFactory = mongoClientFactory; Logger = NullLogger>.Instance; } @@ -77,12 +77,11 @@ public class UnitOfWorkMongoDbContextProvider : IMongoDbContext databaseName = ConnectionStringNameAttribute.GetConnStringName(targetDbContextType); } - //TODO: Create only single MongoDbClient per connection string in an application (extract MongoClientCache for example). var databaseApi = unitOfWork.GetOrAddDatabaseApi( dbContextKey, () => new MongoDbDatabaseApi(CreateDbContext(unitOfWork, mongoUrl, databaseName))); - return (TMongoDbContext)((MongoDbDatabaseApi) databaseApi).DbContext; + return (TMongoDbContext)((MongoDbDatabaseApi)databaseApi).DbContext; } public virtual async Task GetDbContextAsync(CancellationToken cancellationToken = default) @@ -121,14 +120,13 @@ public class UnitOfWorkMongoDbContextProvider : IMongoDbContext unitOfWork.AddDatabaseApi(dbContextKey, databaseApi); } - return (TMongoDbContext)((MongoDbDatabaseApi) databaseApi).DbContext; + return (TMongoDbContext)((MongoDbDatabaseApi)databaseApi).DbContext; } [Obsolete("Use CreateDbContextAsync")] - private TMongoDbContext CreateDbContext(IUnitOfWork unitOfWork, MongoUrl mongoUrl, string databaseName) { - var client = CreateMongoClient(mongoUrl); + var client = MongoClientFactory.Get(mongoUrl); var database = client.GetDatabase(databaseName); if (unitOfWork.Options.IsTransactional) @@ -148,7 +146,7 @@ public class UnitOfWorkMongoDbContextProvider : IMongoDbContext string databaseName, CancellationToken cancellationToken = default) { - var client = CreateMongoClient(mongoUrl); + var client = await MongoClientFactory.GetAsync(mongoUrl); var database = client.GetDatabase(databaseName); if (unitOfWork.Options.IsTransactional) @@ -297,14 +295,6 @@ public class UnitOfWorkMongoDbContextProvider : IMongoDbContext return ConnectionStringResolver.Resolve(dbContextType); } - protected virtual MongoClient CreateMongoClient(MongoUrl mongoUrl) - { - var mongoClientSettings = MongoClientSettings.FromUrl(mongoUrl); - Options.MongoClientSettingsConfigurer?.Invoke(mongoClientSettings); - - return new MongoClient(mongoClientSettings); - } - protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default) { return CancellationTokenProvider.FallbackToProvider(preferredValue); diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantConfiguration.cs b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantConfiguration.cs index 29b0971708..674bce6e94 100644 --- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantConfiguration.cs +++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo/Abp/MultiTenancy/TenantConfiguration.cs @@ -17,6 +17,8 @@ public class TenantConfiguration public bool IsActive { get; set; } + public Guid? EditionId { get; set; } + public TenantConfiguration() { IsActive = true; @@ -33,11 +35,12 @@ public class TenantConfiguration ConnectionStrings = new ConnectionStrings(); } - public TenantConfiguration(Guid id, [NotNull] string name, [NotNull] string normalizedName) + public TenantConfiguration(Guid id, [NotNull] string name, [NotNull] string normalizedName, Guid? editionId = null) : this(id, name) { Check.NotNull(normalizedName, nameof(normalizedName)); NormalizedName = normalizedName; + EditionId = editionId; } } diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Reflection/TypeFinder_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Reflection/TypeFinder_Tests.cs index 480352d69c..4884f07d16 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Reflection/TypeFinder_Tests.cs +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Reflection/TypeFinder_Tests.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Reflection; +using Microsoft.Extensions.Logging.Abstractions; using NSubstitute; using Shouldly; using Xunit; @@ -21,7 +22,7 @@ public class TypeFinder_Tests //Act - var typeFinder = new TypeFinder(fakeAssemblyFinder); + var typeFinder = new TypeFinder(NullLogger.Instance, fakeAssemblyFinder); //Assert diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs index a9b7936578..358d842228 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/DynamicProxying/TestObjectToPath.cs @@ -15,9 +15,8 @@ public class TestObjectToPath : IObjectToPath, ITransientDependency { value = 888; } - return Task.FromResult(value.ToString()); } - return Task.FromResult(null); + return Task.FromResult(value.ToString()); } } diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Clients/MongoClient_Factory_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Clients/MongoClient_Factory_Tests.cs new file mode 100644 index 0000000000..df649132fa --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Clients/MongoClient_Factory_Tests.cs @@ -0,0 +1,79 @@ +using System; +using System.Threading.Tasks; +using MongoDB.Driver; +using Xunit; + +namespace Volo.Abp.MongoDB.Clients; + +[Collection(MongoTestCollection.Name)] +public class MongoClient_Factory_Tests : MongoDbTestBase +{ + private readonly IAbpMongoClientFactory _factory; + + public MongoClient_Factory_Tests() + { + _factory = GetRequiredService(); + } + + [Fact] + public async Task Should_Return_Same_Instance_For_Same_ConnectionString() + { + // Arrange + var mongoUrl = new MongoUrl("mongodb://localhost:27017/my-db"); + + // Act + var client1 = await _factory.GetAsync(mongoUrl); + var client2 = await _factory.GetAsync(mongoUrl); + + // Assert + Assert.Same(client1, client2); + } + + [Fact] + public async Task Should_Return_Different_Instances_For_Different_ConnectionStrings() + { + // Arrange + var mongoUrl1 = new MongoUrl("mongodb://localhost:27017/db1"); + var mongoUrl2 = new MongoUrl("mongodb://localhost:27017/db2"); + + // Act + var client1 = await _factory.GetAsync(mongoUrl1); + var client2 = await _factory.GetAsync(mongoUrl2); + + // Assert + Assert.NotSame(client1, client2); + } + + [Fact] + public async Task Should_Not_Throw_For_Valid_But_Unreachable_Connection() + { + // Arrange + var mongoUrl = new MongoUrl("mongodb://unreachablehost:12345/any"); + + // Act + var client = await _factory.GetAsync(mongoUrl); + + // Assert + Assert.NotNull(client); // Even though it's not connectable now, the instance can be created + } + + [Fact] + public async Task Should_Be_ThreadSafe_When_Accessed_Concurrently() + { + var mongoUrl = new MongoUrl("mongodb://localhost:27017/threadsafe"); + var results = new MongoClient[100]; + + await Parallel.ForAsync(0, 100, async (i, _) => + { + results[i] = await _factory.GetAsync(mongoUrl); + }); + + Assert.All(results, client => Assert.Same(results[0], client)); + } + + [Fact] + public async Task Should_Throw_If_ConnectionString_Is_Null_Or_Empty() + { + await Assert.ThrowsAsync(() => _factory.GetAsync(null!)); + } +} diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs index a7d64228bd..6981eb1e57 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/PeopleAppService.cs @@ -5,7 +5,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Shouldly; using Volo.Abp.Application.Dtos; using Volo.Abp.TestApp.Domain; using Volo.Abp.Domain.Repositories; @@ -17,10 +19,11 @@ namespace Volo.Abp.TestApp.Application; public class PeopleAppService : CrudAppService, IPeopleAppService { - public PeopleAppService(IRepository repository) + private readonly IHttpContextAccessor _httpContextAccessor; + public PeopleAppService(IRepository repository, IHttpContextAccessor httpContextAccessor) : base(repository) { - + _httpContextAccessor = httpContextAccessor; } public async Task> GetPhones(Guid id, GetPersonPhonesFilter filter) @@ -129,6 +132,11 @@ public class PeopleAppService : CrudAppService, IPeople public Task GetParamsFromQueryAsync([FromQuery] GetParamsInput input) { + if (_httpContextAccessor.HttpContext != null) + { + _httpContextAccessor.HttpContext.Request.QueryString.ToString().ShouldNotContain("ExtraProperties=Volo.Abp.Data.ExtraPropertyDictionary"); + } + return Task.FromResult(input.NameValues?.FirstOrDefault()?.Name + "-" + input.NameValues?.FirstOrDefault()?.Value + ":" + input.NameValues?.FirstOrDefault()?.ExtraProperties["TestPropertyInList"] + ":" + input.NameValues?.LastOrDefault()?.Name + "-" + input.NameValues?.LastOrDefault()?.Value + ":" + diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs index 0c8339d6f7..f30774838e 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs @@ -27,7 +27,8 @@ public class TestAppModule : AbpModule { ConfigureAutoMapper(); ConfigureDistributedEventBus(); - + + context.Services.AddHttpContextAccessor(); context.Services.Replace(ServiceDescriptor.Singleton()); context.Services.AddEntityCache(); context.Services.AddEntityCache(); diff --git a/latest-versions.json b/latest-versions.json index 340ed62653..7e756d726b 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,5 +1,23 @@ [ - { + { + "version": "9.2.0", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.2.0" + } + }, + { + "version": "9.1.3", + "releaseDate": "", + "type": "stable", + "message": "", + "leptonx": { + "version": "4.1.3" + } + }, + { "version": "9.1.1", "releaseDate": "", "type": "stable", diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index e32c705afb..d8c149f8b5 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -17,7 +17,6 @@ - diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index e4235dbd94..6abd877a2c 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -33,10 +33,6 @@ - - - - diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml index 145fd82d0d..4b3d2a67dc 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml @@ -13,6 +13,11 @@ } + +@section styles { + +} + @if (!Model.ReturnUrl.IsNullOrWhiteSpace()) { @@ -31,8 +36,6 @@ @foreach (var group in Model.ProfileManagementPageCreationContext.Groups) { -

@group.DisplayName

-
@await Component.InvokeAsync(group.ComponentType, new { parameter = group.Parameter diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.css b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.css new file mode 100644 index 0000000000..1493caceac --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.css @@ -0,0 +1,3 @@ +#ProfileManagementWrapper .tab-content { + padding-top: 0 !important; +} \ No newline at end of file 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 429ad9af1c..d0e6ac3931 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~9.2.0-rc.3", - "@abp/prismjs": "~9.2.0-rc.3", - "@abp/highlight.js": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared": "~9.2.0", + "@abp/prismjs": "~9.2.0", + "@abp/highlight.js": "~9.2.0" } } 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 1da4353296..267e042944 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,203 +2,203 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/clipboard@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0-rc.3.tgz#a05b2819065f74105cd1716320722012ca484de0" - integrity sha512-2Mv/h7BciMOykARi+7rOkbMYO813nqIla4bBIZqc32muH8wuNcnaSAxZwbk0h2IJrgaTvMMK6KBFTVRaFsK/Pw== +"@abp/clipboard@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0.tgz#348a0e45752c7eb055fb00af52660593ad340caf" + integrity sha512-2+wt2ShLBfoHqx0DNNevJkaz1POLcs1tcK1hL4ZqsjOnS7BrTk1r8zwNvCw1XEeH2S1rPftAWH4PvzL4j86DFA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" clipboard "^2.0.11" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/highlight.js@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.2.0-rc.3.tgz#08d44398c165a7d6d0b1c4161d8221ae756bea90" - integrity sha512-HixRwHZggcFVFpPwEdDWX4bts33b/enjNE9AYFtDgdjOQ91lqrIy+BAomkUpEmO50gASRLM/ap4fhwshlyCKhA== +"@abp/highlight.js@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.2.0.tgz#85ac7c252aee377c2ff9e15153c692fdea5cb96d" + integrity sha512-zD6UVZNUQEJ22ynqQs14jR8eBWQR7loOCpt9lPlIjXF6tnoBvcc7NBeBFw9ehKjkG2cegJCmahYb4cFnlJFigA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@highlightjs/cdn-assets" "~11.10.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0-rc.3.tgz#0eed2fd2710dd260330533cf72600d89683b1e42" - integrity sha512-V/cF+oKDmHkPc5AhSNnq0msICshqHVKAKi4ivSOI9+FbTK34hdThUPaVfbrFu5AFbpY4yp+6VC0bgdJtEk3qWw== +"@abp/prismjs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0.tgz#03fca8cd2f4bdc09a68bd9b1fcdeaede56f96542" + integrity sha512-OUbjaxeXKxmrR9fZe/wazS9hGrYXYam/CypnQNTVaNNgSpwvgoKoCFCll9SJUGV8tXA6iEpVdszMGyRY5Hov+g== dependencies: - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/core" "~9.2.0-rc.3" + "@abp/clipboard" "~9.2.0" + "@abp/core" "~9.2.0" prismjs "^1.29.0" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index cfb5e52a90..63f441f6f3 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3", - "@abp/prismjs": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0", + "@abp/prismjs": "~9.2.0" }, "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 65c83e0b82..e2f54a2f6b 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,202 +2,202 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/clipboard@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0-rc.3.tgz#a05b2819065f74105cd1716320722012ca484de0" - integrity sha512-2Mv/h7BciMOykARi+7rOkbMYO813nqIla4bBIZqc32muH8wuNcnaSAxZwbk0h2IJrgaTvMMK6KBFTVRaFsK/Pw== +"@abp/clipboard@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0.tgz#348a0e45752c7eb055fb00af52660593ad340caf" + integrity sha512-2+wt2ShLBfoHqx0DNNevJkaz1POLcs1tcK1hL4ZqsjOnS7BrTk1r8zwNvCw1XEeH2S1rPftAWH4PvzL4j86DFA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" clipboard "^2.0.11" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0-rc.3.tgz#0eed2fd2710dd260330533cf72600d89683b1e42" - integrity sha512-V/cF+oKDmHkPc5AhSNnq0msICshqHVKAKi4ivSOI9+FbTK34hdThUPaVfbrFu5AFbpY4yp+6VC0bgdJtEk3qWw== +"@abp/prismjs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0.tgz#03fca8cd2f4bdc09a68bd9b1fcdeaede56f96542" + integrity sha512-OUbjaxeXKxmrR9fZe/wazS9hGrYXYam/CypnQNTVaNNgSpwvgoKoCFCll9SJUGV8tXA6iEpVdszMGyRY5Hov+g== dependencies: - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/core" "~9.2.0-rc.3" + "@abp/clipboard" "~9.2.0" + "@abp/core" "~9.2.0" prismjs "^1.29.0" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 6c20b7531e..7a947aa7e3 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3", - "@abp/blogging": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0", + "@abp/blogging": "~9.2.0" } } diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 50f3caa5b2..7da6e7ae57 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,228 +2,228 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/blogging@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-9.2.0-rc.3.tgz#5ea5cbf53e65e4f5a82e2fa36f93f9d121869947" - integrity sha512-XXszmqniQVHCG1ej3A6T4LbYd9lTZBxVz8ywuOgX5w8/K9+kqIM7QGbqVUkJFttrYOCqy2iwuuWcNbd4Q1mlLQ== +"@abp/blogging@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-9.2.0.tgz#62f4490e4c454fff8e10a84c1a7d8aee85b94313" + integrity sha512-ptaawKmyUTgGCWOxKPjLCxTY7X/fYTyxoB4sTy2O9vcaDrNqZephppKGl/nTn2EBxsYLKRGDKCl5z0Kl9MG6pQ== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" - "@abp/owl.carousel" "~9.2.0-rc.3" - "@abp/prismjs" "~9.2.0-rc.3" - "@abp/tui-editor" "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" + "@abp/owl.carousel" "~9.2.0" + "@abp/prismjs" "~9.2.0" + "@abp/tui-editor" "~9.2.0" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/clipboard@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0-rc.3.tgz#a05b2819065f74105cd1716320722012ca484de0" - integrity sha512-2Mv/h7BciMOykARi+7rOkbMYO813nqIla4bBIZqc32muH8wuNcnaSAxZwbk0h2IJrgaTvMMK6KBFTVRaFsK/Pw== +"@abp/clipboard@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0.tgz#348a0e45752c7eb055fb00af52660593ad340caf" + integrity sha512-2+wt2ShLBfoHqx0DNNevJkaz1POLcs1tcK1hL4ZqsjOnS7BrTk1r8zwNvCw1XEeH2S1rPftAWH4PvzL4j86DFA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" clipboard "^2.0.11" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/owl.carousel@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-9.2.0-rc.3.tgz#2cd48dcef256fc24e5c61fe5d569e443d0539c93" - integrity sha512-Cgjgqoih5aXV0dAv4ewA8rCzsquwusm1qDjFfwYEEttcrz+DkolWBku7HIJHicz+3G7/zYhLRNSvKIgv0P+x2g== +"@abp/owl.carousel@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-9.2.0.tgz#e2bd2c6a67cf942302393cd12c44519ea55eb27b" + integrity sha512-nu1noD/VX9Fae6PGDPMGMTV+/973xoRS4oolYDiYUBVcCzXjPNI6bvVGpnwNJbx+pgHyW07eh008qZ6pR3R3ug== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" owl.carousel "^2.3.4" -"@abp/prismjs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0-rc.3.tgz#0eed2fd2710dd260330533cf72600d89683b1e42" - integrity sha512-V/cF+oKDmHkPc5AhSNnq0msICshqHVKAKi4ivSOI9+FbTK34hdThUPaVfbrFu5AFbpY4yp+6VC0bgdJtEk3qWw== +"@abp/prismjs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0.tgz#03fca8cd2f4bdc09a68bd9b1fcdeaede56f96542" + integrity sha512-OUbjaxeXKxmrR9fZe/wazS9hGrYXYam/CypnQNTVaNNgSpwvgoKoCFCll9SJUGV8tXA6iEpVdszMGyRY5Hov+g== dependencies: - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/core" "~9.2.0-rc.3" + "@abp/clipboard" "~9.2.0" + "@abp/core" "~9.2.0" prismjs "^1.29.0" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/tui-editor@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.2.0-rc.3.tgz#bcbaa507cf7541932fd2f883b28c8b9c98d71040" - integrity sha512-H5ZgNpps24YSP77yEwzy+nVl3lQ8ITIgndg96G4ueilXD7BaW2ips+9pmzfcamMZkRYTs2RHflpK9eV112VNfw== +"@abp/tui-editor@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.2.0.tgz#f28e1099e39def76ff81d1db64f5e352f0d28f02" + integrity sha512-h3Nq0LmkmPWBx1tzPnImJAhPFlAD8sX/GnlAvEZGY3XJ7X6146TPl7HIzZ4fnttm+ilhuDUG2qydgIek/5pWLw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" - "@abp/prismjs" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" + "@abp/prismjs" "~9.2.0" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.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 c17d4c896a..d190683ea4 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0" } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 54885b91b3..6c8afa8deb 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,185 +2,185 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 3371cca553..c3f2f5712a 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.2.0-rc.3", - "@abp/ng.identity": "~9.2.0-rc.3", - "@abp/ng.setting-management": "~9.2.0-rc.3", - "@abp/ng.tenant-management": "~9.2.0-rc.3", - "@abp/ng.theme.basic": "~9.2.0-rc.3", + "@abp/ng.account": "~9.2.0", + "@abp/ng.identity": "~9.2.0", + "@abp/ng.setting-management": "~9.2.0", + "@abp/ng.tenant-management": "~9.2.0", + "@abp/ng.theme.basic": "~9.2.0", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index ec44d5f94b..b02a75bb34 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=9.2.0-rc.3", - "@abp/ng.theme.shared": ">=9.2.0-rc.3" + "@abp/ng.core": ">=9.2.0", + "@abp/ng.theme.shared": ">=9.2.0" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index f84eb409f5..39e7548d18 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0" } } diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 54885b91b3..6c8afa8deb 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,185 +2,185 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.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 dd8a470c2f..8bcd4ab173 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0" } } 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 54885b91b3..6c8afa8deb 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,185 +2,185 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 8a59bcfa6b..697f1c7ba2 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3", - "@abp/cms-kit": "9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0", + "@abp/cms-kit": "9.2.0" } } 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 9c2a8ed357..37cacca8fb 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,293 +2,293 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/clipboard@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0-rc.3.tgz#a05b2819065f74105cd1716320722012ca484de0" - integrity sha512-2Mv/h7BciMOykARi+7rOkbMYO813nqIla4bBIZqc32muH8wuNcnaSAxZwbk0h2IJrgaTvMMK6KBFTVRaFsK/Pw== +"@abp/clipboard@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0.tgz#348a0e45752c7eb055fb00af52660593ad340caf" + integrity sha512-2+wt2ShLBfoHqx0DNNevJkaz1POLcs1tcK1hL4ZqsjOnS7BrTk1r8zwNvCw1XEeH2S1rPftAWH4PvzL4j86DFA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" clipboard "^2.0.11" -"@abp/cms-kit.admin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-9.2.0-rc.3.tgz#2c0f2b3fb815290a6b541a2342ed3ddd06ebb729" - integrity sha512-sR9FQ/85qYyucmMRFCBxwBBTyyZtLZcE0myBNvglXwAuPuANICc8SUqEx2AKvhdsynFWglGcJqKOOgLnB9gMDA== +"@abp/cms-kit.admin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-9.2.0.tgz#b86b76692214ab793175d275c9c2845ac44524ce" + integrity sha512-s5Mh7OrDBngxD67AE5amtFFCpqY3ZaYVCPnboIvsMNiGk5U3JTqRZU+Ec1L1OpuoBg+jJDbKvPGQEFRuadMKQA== dependencies: - "@abp/codemirror" "~9.2.0-rc.3" - "@abp/jstree" "~9.2.0-rc.3" - "@abp/markdown-it" "~9.2.0-rc.3" - "@abp/slugify" "~9.2.0-rc.3" - "@abp/tui-editor" "~9.2.0-rc.3" - "@abp/uppy" "~9.2.0-rc.3" + "@abp/codemirror" "~9.2.0" + "@abp/jstree" "~9.2.0" + "@abp/markdown-it" "~9.2.0" + "@abp/slugify" "~9.2.0" + "@abp/tui-editor" "~9.2.0" + "@abp/uppy" "~9.2.0" -"@abp/cms-kit.public@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-9.2.0-rc.3.tgz#b52e08a47b38aabdd8522ff9fb4476e5d1bf5c66" - integrity sha512-iKjWhB26IHMQ1TYXMv7h5S9unyXhMfpjD2sHGCmPeIqbGSs1BYmV+kUBuw6K2IqbgkVyfSOyWS8duSksLuRgaQ== +"@abp/cms-kit.public@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-9.2.0.tgz#a85c5923593354614f7a339a5ef17b12ea71a2ea" + integrity sha512-W2KhpFZLBK+Q9ZdHI0IYhrfC1ZRem+Ox55tg1G0Ai3TabOLMyr6ubgE4maU6BUNak76DKBkzDXB/SxNFWMvS+g== dependencies: - "@abp/highlight.js" "~9.2.0-rc.3" - "@abp/star-rating-svg" "~9.2.0-rc.3" + "@abp/highlight.js" "~9.2.0" + "@abp/star-rating-svg" "~9.2.0" -"@abp/cms-kit@9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-9.2.0-rc.3.tgz#6fb327f163016463342e8c329e08770c09b3c0ed" - integrity sha512-xB7MGsZdHMA1HMjvBYmEsIjkjZW9vmUG9fD+0Hor8p8x/Y1Z/cCfbcxawyJXa07E5loYjHwLIh/c3UVJALWLCw== +"@abp/cms-kit@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-9.2.0.tgz#da9a3dfc3c83755a3c920b0392ec2b37106b5bf1" + integrity sha512-JHAiyppt9+Vx9f70duawR8OSWFaSrlPl1mOdLOD4fUWek7j7HhSyFgjddwzaBjLXqSnicTFwg2pmY1qTa8XjMw== dependencies: - "@abp/cms-kit.admin" "~9.2.0-rc.3" - "@abp/cms-kit.public" "~9.2.0-rc.3" + "@abp/cms-kit.admin" "~9.2.0" + "@abp/cms-kit.public" "~9.2.0" -"@abp/codemirror@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-9.2.0-rc.3.tgz#80f8a053723796de9440603af46f1a63638c8d80" - integrity sha512-LhviqHNuvltbYSrAFWmCJInt8Ko1UhN48zbVMDTh2nMkDC+lwokTOn9rYIMd7gBwg6IbgKKwCCAdjhBeJ62N1g== +"@abp/codemirror@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-9.2.0.tgz#83b9c805669640e739a68ad26788547202958bff" + integrity sha512-feYwaVZT7LH46BZPEkgpRHIEpn/vqcU5yo4QQ/u8t/D4veYfgLUdMqzt6P6kyFpgzb0X1+SOqvlWBRHBAHeQrQ== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" codemirror "^5.65.1" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/highlight.js@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.2.0-rc.3.tgz#08d44398c165a7d6d0b1c4161d8221ae756bea90" - integrity sha512-HixRwHZggcFVFpPwEdDWX4bts33b/enjNE9AYFtDgdjOQ91lqrIy+BAomkUpEmO50gASRLM/ap4fhwshlyCKhA== +"@abp/highlight.js@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-9.2.0.tgz#85ac7c252aee377c2ff9e15153c692fdea5cb96d" + integrity sha512-zD6UVZNUQEJ22ynqQs14jR8eBWQR7loOCpt9lPlIjXF6tnoBvcc7NBeBFw9ehKjkG2cegJCmahYb4cFnlJFigA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@highlightjs/cdn-assets" "~11.10.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/jstree@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-9.2.0-rc.3.tgz#da406e239ede4cb3da1a1489b39db99bbb5f6c70" - integrity sha512-W14lR+TQFBcFwlHX1vSRpJbD1gIEMP5FVDWc4ubtP6e/IMNLVVhuxG2hl+jXu7OROhM42pbShdogVvwdDNwnbw== +"@abp/jstree@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-9.2.0.tgz#eb167f0909aacbe3652f169f35b8e62743ed43b8" + integrity sha512-Aj35TeMTN1zwgITeCUsg9rFsiJ0r3IeGfKCv7PEL1AJUh37fU0CwVtHNhM0aOi1oUNJeMjs4XnFVYCqzJzVaNw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jstree "^3.3.17" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-9.2.0-rc.3.tgz#7eb8d062a42aba837a29eaf1838bc0d0070d638b" - integrity sha512-CC/rYNpVf6jmvzs2He7gxTtrEPxoE9pXZqNRBZZwSQ/deHQomy3DDLC8hZlACj7QVaD5ApLL1+zBijLRgtU1SA== +"@abp/markdown-it@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-9.2.0.tgz#74946415e4893deb5952e626d7314db1b926e4a3" + integrity sha512-yc0N0MeaqhBYkUw3/mIMuafNCk/tnh/paG3xObTFrGTqvU7yhlNH5je3ZQ2oBOlF3wHe/6ge0foS/3/fuGvsOQ== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" markdown-it "^14.1.0" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/prismjs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0-rc.3.tgz#0eed2fd2710dd260330533cf72600d89683b1e42" - integrity sha512-V/cF+oKDmHkPc5AhSNnq0msICshqHVKAKi4ivSOI9+FbTK34hdThUPaVfbrFu5AFbpY4yp+6VC0bgdJtEk3qWw== +"@abp/prismjs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0.tgz#03fca8cd2f4bdc09a68bd9b1fcdeaede56f96542" + integrity sha512-OUbjaxeXKxmrR9fZe/wazS9hGrYXYam/CypnQNTVaNNgSpwvgoKoCFCll9SJUGV8tXA6iEpVdszMGyRY5Hov+g== dependencies: - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/core" "~9.2.0-rc.3" + "@abp/clipboard" "~9.2.0" + "@abp/core" "~9.2.0" prismjs "^1.29.0" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/slugify@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-9.2.0-rc.3.tgz#a3620feb7889f0ed4f508b4d2afc4402b94f1dc3" - integrity sha512-PhphQXqsYUv7FH2/Z4aeYCm7NVcAEgI9sfwVQ8fLYbYkpIdXHBWD9dFCsMTnBiOy4CI0MrIkzBBhwFjdV8GQOg== +"@abp/slugify@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-9.2.0.tgz#b71ae2f237866a97422c4fe1720ab62b8971ead5" + integrity sha512-yjNKhWOTxW9T87g+5CGH9R3w/Pm97H5eJLAEMYs4th5CqpU6ECtab4+1xIboF7LEkB1HwLHjAxa80UUKpdGe+A== dependencies: slugify "^1.6.6" -"@abp/star-rating-svg@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-9.2.0-rc.3.tgz#69b6411f1bade60c031d6207bd22f449da28bd89" - integrity sha512-K5FJzVG5+Lyb81LdDeARAr2rsFRBvQCvcUJOUINtQYOH89lMMjwioNVlqVUsY5n31dZ5Uxcs7b8DQq410r73lA== +"@abp/star-rating-svg@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-9.2.0.tgz#a1cccb2dd82bbaf1288dc530b3c5ff81a4dd772e" + integrity sha512-eMYhBlWzEK8EUIS/FYEafhyc1CbCB3qL8PpenFYyLDjMb9kfv3z5x05MYIn2o8vTYYuMrTS/bWAYCAYQOVJCBg== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/tui-editor@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.2.0-rc.3.tgz#bcbaa507cf7541932fd2f883b28c8b9c98d71040" - integrity sha512-H5ZgNpps24YSP77yEwzy+nVl3lQ8ITIgndg96G4ueilXD7BaW2ips+9pmzfcamMZkRYTs2RHflpK9eV112VNfw== +"@abp/tui-editor@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-9.2.0.tgz#f28e1099e39def76ff81d1db64f5e352f0d28f02" + integrity sha512-h3Nq0LmkmPWBx1tzPnImJAhPFlAD8sX/GnlAvEZGY3XJ7X6146TPl7HIzZ4fnttm+ilhuDUG2qydgIek/5pWLw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" - "@abp/prismjs" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" + "@abp/prismjs" "~9.2.0" -"@abp/uppy@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-9.2.0-rc.3.tgz#ec6ddb2904d20d1fcdc2fe47e3c867b3c1a00f82" - integrity sha512-9KifT0F57L7GNtzXJb2TvrMEYOqEMHef5g3Nkwlr6tmNBLvB3RXj6G9y9XYKBqyJzxq/UP2QiH2d591l4p0iuQ== +"@abp/uppy@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-9.2.0.tgz#319cc21b655c310e5bf76bca787a181cd59bb2df" + integrity sha512-8SpMK46F9nNwZpXGn1AjzSTARC47K1hPqX2uzuNePCC0nT4RtP/711XrloawOhlefFwvG7n66cknU9LSBvwcMA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" uppy "^4.4.1" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml index a9d064235f..8cb0b482b5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml @@ -3,6 +3,7 @@ @using System.Globalization @using Microsoft.AspNetCore.Mvc.Localization @using Volo.Abp.AspNetCore.Mvc.UI.Layout +@using Volo.Abp.Timing @using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments @using Volo.CmsKit.Admin.Web.Menus @using Volo.CmsKit.Comments @@ -10,6 +11,7 @@ @inject IPageLayout PageLayout @inject IHtmlLocalizer L +@inject IClock Clock @model DetailsModel @@ -50,7 +52,7 @@ @L["CreationTime"]: - @Model.CommentWithAuthorDto.CreationTime.ToString(CultureInfo.CurrentUICulture) + @Clock.ConvertToUserTime(Model.CommentWithAuthorDto.CreationTime).ToString(CultureInfo.CurrentUICulture)) @L["Username"]: diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index f35c0ab64d..440ad2c655 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3", - "@abp/docs": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0", + "@abp/docs": "~9.2.0" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 8d1ebaebc8..6cff27f688 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,229 +2,229 @@ # yarn lockfile v1 -"@abp/anchor-js@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-9.2.0-rc.3.tgz#298403978effc79043fd3797fd1c9f9006970614" - integrity sha512-bNPOgXbU5twM2KLVqsZLjieLCsr/MorgLo2EMzJwEetpF/7Nc2yX5grY/olBZHVIwOYFLa2QZaEVi4rSsUGTjg== +"@abp/anchor-js@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-9.2.0.tgz#86aab2407c30a61be5babadb54e137e5ad4bfa9c" + integrity sha512-CdWo4jUxHiAFA6T0rx1ZxpmGB6GwUmklTSfugRbCRdhoUSTXXoh+xdUaoMkBmygP+S/o2BWekhIz1TE0dUeseg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" anchor-js "^5.0.0" -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/clipboard@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0-rc.3.tgz#a05b2819065f74105cd1716320722012ca484de0" - integrity sha512-2Mv/h7BciMOykARi+7rOkbMYO813nqIla4bBIZqc32muH8wuNcnaSAxZwbk0h2IJrgaTvMMK6KBFTVRaFsK/Pw== +"@abp/clipboard@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-9.2.0.tgz#348a0e45752c7eb055fb00af52660593ad340caf" + integrity sha512-2+wt2ShLBfoHqx0DNNevJkaz1POLcs1tcK1hL4ZqsjOnS7BrTk1r8zwNvCw1XEeH2S1rPftAWH4PvzL4j86DFA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" clipboard "^2.0.11" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/docs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-9.2.0-rc.3.tgz#75910bf2ce2f174a3f40ecbe0a8d3b593dce8376" - integrity sha512-dm9WvwBbjKcEIaREESjCZckdZo6jNLCrdOSVH+ZnA/GRhCdA0j6LwC6FYY7jWriIcAtSm9r9vnqsrRXMJ48NFg== +"@abp/docs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-9.2.0.tgz#6a400df7f91710ff529cbcfbaa6c6657bad9927b" + integrity sha512-zW3gh+VpaBubCMMMsH5gu8mcq3Mdm8kNCAQs/BlzRsrX1XqgRwXGOh9Dmrw7f5Ul1htbibsMYMDEXH0HNumebg== dependencies: - "@abp/anchor-js" "~9.2.0-rc.3" - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/popper.js" "~9.2.0-rc.3" - "@abp/prismjs" "~9.2.0-rc.3" + "@abp/anchor-js" "~9.2.0" + "@abp/clipboard" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/popper.js" "~9.2.0" + "@abp/prismjs" "~9.2.0" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/popper.js@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-9.2.0-rc.3.tgz#532406ed8202324e39d689ea8a2c3df4898f901c" - integrity sha512-ztfCfOAx9uP/Gr3bbZkdOv0D5NQr/rjN0l/ib1Is3ZTvdYmyC5RNkg8XV5mGOl7lG/LNn9l2OA1QcTIsZVxnLg== +"@abp/popper.js@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-9.2.0.tgz#674cda57e74e3ce20d7e6e1a21fa48b72c35aeb6" + integrity sha512-OVsAbW1UbuLZlfoQg1BR8GNQpARvUMx2GE7MrobVVDQ0l8a9JM1i/MQzmCi1XAns5nCk/NqPzSN0NywF/G4FTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@popperjs/core" "^2.11.8" -"@abp/prismjs@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0-rc.3.tgz#0eed2fd2710dd260330533cf72600d89683b1e42" - integrity sha512-V/cF+oKDmHkPc5AhSNnq0msICshqHVKAKi4ivSOI9+FbTK34hdThUPaVfbrFu5AFbpY4yp+6VC0bgdJtEk3qWw== +"@abp/prismjs@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-9.2.0.tgz#03fca8cd2f4bdc09a68bd9b1fcdeaede56f96542" + integrity sha512-OUbjaxeXKxmrR9fZe/wazS9hGrYXYam/CypnQNTVaNNgSpwvgoKoCFCll9SJUGV8tXA6iEpVdszMGyRY5Hov+g== dependencies: - "@abp/clipboard" "~9.2.0-rc.3" - "@abp/core" "~9.2.0-rc.3" + "@abp/clipboard" "~9.2.0" + "@abp/core" "~9.2.0" prismjs "^1.29.0" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentSource.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentSource.cs index e16f81d2c9..ca5c1221ad 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentSource.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentSource.cs @@ -32,7 +32,8 @@ namespace Volo.Docs.FileSystem.Documents localDirectory = documentName.Substring(0, documentName.LastIndexOf('/')); } - version = File.GetLastWriteTime(path).ToString("yyyyMMddHHmmss"); + // The version is intentionally set to "1.0.0" as part of the versioning strategy for file system documents. + version = "1.0.0"; return new Document(GuidGenerator.Create(), project.Id, diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs index b0b7b6f70f..8a48db4b4a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs @@ -152,10 +152,13 @@ public partial class FeatureManagementModal protected virtual bool IsDisabled(FeatureDto feature) { - return feature.Provider.Name != ProviderName && feature.Provider.Name != DefaultValueFeatureValueProvider.ProviderName; + return feature.Value != null && + feature.Provider.Name != null && + feature.Provider.Name != ProviderName && + feature.Provider.Name != DefaultValueFeatureValueProvider.ProviderName; } - public string GetShownName(FeatureDto featureDto) + public virtual string GetShownName(FeatureDto featureDto) { return !IsDisabled(featureDto) ? featureDto.DisplayName diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagementProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagementProvider.cs index 82c1c98cb9..f9de4cbd1f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagementProvider.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagementProvider.cs @@ -1,7 +1,9 @@ -using System.Security.Principal; +using System; +using System.Security.Principal; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Features; +using Volo.Abp.MultiTenancy; using Volo.Abp.Security.Claims; namespace Volo.Abp.FeatureManagement; @@ -11,22 +13,58 @@ public class EditionFeatureManagementProvider : FeatureManagementProvider, ITran public override string Name => EditionFeatureValueProvider.ProviderName; protected ICurrentPrincipalAccessor PrincipalAccessor { get; } + protected ITenantStore TenantStore { get; } + protected ICurrentTenant CurrentTenant { get; } + protected string CurrentCompatibleProviderName { get; set; } public EditionFeatureManagementProvider( IFeatureManagementStore store, - ICurrentPrincipalAccessor principalAccessor) + ICurrentPrincipalAccessor principalAccessor, + ITenantStore tenantStore, + ICurrentTenant currentTenant) : base(store) { PrincipalAccessor = principalAccessor; + TenantStore = tenantStore; + CurrentTenant = currentTenant; } - protected override Task NormalizeProviderKeyAsync(string providerKey) + public override bool Compatible(string providerName) { - if (providerKey != null) + CurrentCompatibleProviderName = providerName; + return providerName == TenantFeatureValueProvider.ProviderName || base.Compatible(providerName); + } + + protected async override Task NormalizeProviderKeyAsync(string providerKey) + { + return (await FindEditionIdAsync(providerKey))?.ToString(); + } + + protected virtual async Task FindEditionIdAsync(string providerKey) + { + if (Guid.TryParse(providerKey, out var parsedEditionOrTenantId)) + { + if (CurrentCompatibleProviderName == TenantFeatureValueProvider.ProviderName) + { + var tenant = await TenantStore.FindAsync(parsedEditionOrTenantId); + if (tenant != null) + { + return tenant?.EditionId; + } + } + + return parsedEditionOrTenantId; + } + + if (CurrentTenant.Id.HasValue) { - return Task.FromResult(providerKey); + var tenant = await TenantStore.FindAsync(CurrentTenant.GetId()); + if (tenant != null) + { + return tenant?.EditionId; + } } - return Task.FromResult(PrincipalAccessor.Principal?.FindEditionId()?.ToString("N")); + return PrincipalAccessor.Principal?.FindEditionId(); } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs index 39bb3ad4f0..eb27c63aae 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs @@ -85,12 +85,15 @@ public class FeatureManagementModal : AbpPageModel return NoContent(); } - public bool IsDisabled(FeatureDto featureDto) + public virtual bool IsDisabled(FeatureDto feature) { - return featureDto.Provider.Name != ProviderName && featureDto.Provider.Name != DefaultValueFeatureValueProvider.ProviderName; + return feature.Value != null && + feature.Provider.Name != null && + feature.Provider.Name != ProviderName && + feature.Provider.Name != DefaultValueFeatureValueProvider.ProviderName; } - public string GetShownName(FeatureDto featureDto) + public virtual string GetShownName(FeatureDto featureDto) { return !IsDisabled(featureDto) ? featureDto.DisplayName diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json index dd8a470c2f..8bcd4ab173 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/package.json +++ b/modules/openiddict/app/OpenIddict.Demo.Server/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0" } } diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json index 13f9fe5070..5829ce8bfd 100644 --- a/modules/openiddict/app/angular/package.json +++ b/modules/openiddict/app/angular/package.json @@ -12,15 +12,15 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~9.2.0-rc.3", - "@abp/ng.components": "~9.2.0-rc.3", - "@abp/ng.core": "~9.2.0-rc.3", - "@abp/ng.oauth": "~9.2.0-rc.3", - "@abp/ng.identity": "~9.2.0-rc.3", - "@abp/ng.setting-management": "~9.2.0-rc.3", - "@abp/ng.tenant-management": "~9.2.0-rc.3", - "@abp/ng.theme.shared": "~9.2.0-rc.3", - "@abp/ng.theme.lepton-x": "~4.2.0-rc.3", + "@abp/ng.account": "~9.2.0", + "@abp/ng.components": "~9.2.0", + "@abp/ng.core": "~9.2.0", + "@abp/ng.oauth": "~9.2.0", + "@abp/ng.identity": "~9.2.0", + "@abp/ng.setting-management": "~9.2.0", + "@abp/ng.tenant-management": "~9.2.0", + "@abp/ng.theme.shared": "~9.2.0", + "@abp/ng.theme.lepton-x": "~4.2.0", "@angular/animations": "^15.0.1", "@angular/common": "^15.0.1", "@angular/compiler": "^15.0.1", @@ -36,7 +36,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~9.2.0-rc.3", + "@abp/ng.schematics": "~9.2.0", "@angular-devkit/build-angular": "^15.0.1", "@angular-eslint/builder": "~15.1.0", "@angular-eslint/eslint-plugin": "~15.1.0", diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs index 0b0dd59968..819d643a21 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/IPermissionAppService.cs @@ -8,5 +8,7 @@ public interface IPermissionAppService : IApplicationService { Task GetAsync([NotNull] string providerName, [NotNull] string providerKey); + Task GetByGroupAsync([NotNull] string groupName, [NotNull] string providerName, [NotNull] string providerKey); + Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdatePermissionsDto input); } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index aa9bfe0029..28abc4d75b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -33,6 +33,16 @@ public class PermissionAppService : ApplicationService, IPermissionAppService } public virtual async Task GetAsync(string providerName, string providerKey) + { + return await GetInternalAsync(null, providerName, providerKey); + } + + public virtual async Task GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return await GetInternalAsync(groupName, providerName, providerKey); + } + + protected virtual async Task GetInternalAsync(string groupName, string providerName, string providerKey) { await CheckProviderPolicy(providerName); @@ -45,7 +55,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService var multiTenancySide = CurrentTenant.GetMultiTenancySide(); var permissionGroups = new List(); - foreach (var group in await PermissionDefinitionManager.GetGroupsAsync()) + foreach (var group in (await PermissionDefinitionManager.GetGroupsAsync()).WhereIf(!groupName.IsNullOrWhiteSpace(), x => x.Name == groupName)) { var groupDto = CreatePermissionGroupDto(group); var permissions = group.GetPermissionsWithChildren() @@ -108,7 +118,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService return result; } - protected virtual PermissionGrantInfoDto CreatePermissionGrantInfoDto(PermissionDefinition permission) + protected virtual PermissionGrantInfoDto CreatePermissionGrantInfoDto(PermissionDefinition permission) { return new PermissionGrantInfoDto { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs index c89b505da2..2fe22472f0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/Volo/Abp/PermissionManagement/PermissionsClientProxy.Generated.cs @@ -26,6 +26,16 @@ public partial class PermissionsClientProxy : ClientProxyBase GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return await RequestAsync(nameof(GetByGroupAsync), new ClientProxyRequestTypeValue + { + { typeof(string), groupName }, + { typeof(string), providerName }, + { typeof(string), providerKey } + }); + } + public virtual async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { await RequestAsync(nameof(UpdateAsync), new ClientProxyRequestTypeValue diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json index 2a57defab4..208271e67d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/ClientProxies/permissionManagement-generate-proxy.json @@ -4,6 +4,78 @@ "rootPath": "permissionManagement", "remoteServiceName": "AbpPermissionManagement", "controllers": { + "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController": { + "controllerName": "PermissionIntegration", + "controllerGroupName": "PermissionIntegration", + "isRemoteService": true, + "isIntegrationService": true, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController", + "interfaces": [ + { + "type": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService", + "name": "IPermissionIntegrationService", + "methods": [ + { + "name": "IsGrantedAsync", + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=9.3.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + } + } + ] + } + ], + "actions": { + "IsGrantedAsyncByInput": { + "uniqueName": "IsGrantedAsyncByInput", + "name": "IsGrantedAsync", + "httpMethod": "GET", + "url": "integration-api/permission-management/permissions/is-granted", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=9.3.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "System.Collections.Generic.List", + "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + } + } + }, "Volo.Abp.PermissionManagement.PermissionsController": { "controllerName": "Permissions", "controllerGroupName": "Permissions", @@ -41,6 +113,39 @@ "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" } }, + { + "name": "GetByGroupAsync", + "parametersOnMethod": [ + { + "name": "groupName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + } + }, { "name": "UpdateAsync", "parametersOnMethod": [ @@ -135,15 +240,15 @@ "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/permission-management/permissions", + "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey": { + "uniqueName": "GetByGroupAsyncByGroupNameAndProviderNameAndProviderKey", + "name": "GetByGroupAsync", + "httpMethod": "GET", + "url": "api/permission-management/permissions/by-group", "supportedVersions": [], "parametersOnMethod": [ { - "name": "providerName", + "name": "groupName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -151,7 +256,7 @@ "defaultValue": null }, { - "name": "providerKey", + "name": "providerName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -159,18 +264,18 @@ "defaultValue": null }, { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "providerName", - "name": "providerName", + "nameOnMethod": "groupName", + "name": "groupName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -181,8 +286,8 @@ "descriptorName": "" }, { - "nameOnMethod": "providerKey", - "name": "providerKey", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -193,96 +298,101 @@ "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", + "bindingSourceId": "ModelBinding", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" }, "allowAnonymous": null, "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - } - }, - "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController": { - "controllerName": "PermissionIntegration", - "controllerGroupName": "PermissionIntegration", - "isRemoteService": true, - "isIntegrationService": true, - "apiVersion": null, - "type": "Volo.Abp.PermissionManagement.Integration.PermissionIntegrationController", - "interfaces": [ - { - "type": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService", - "name": "IPermissionIntegrationService", - "methods": [ - { - "name": "IsGrantedAsync", - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", - "isOptional": false, - "defaultValue": null - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - } - ] - } - ], - "actions": { - "IsGrantedAsyncByInput": { - "uniqueName": "IsGrantedAsyncByInput", - "name": "IsGrantedAsync", - "httpMethod": "GET", - "url": "integration-api/permission-management/permissions/is-granted", + }, + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ + { + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, { "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.PermissionManagement.IsGrantedRequest, Volo.Abp.PermissionManagement.Domain.Shared, Version=7.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null } ], "parameters": [ + { + "nameOnMethod": "providerName", + "name": "providerName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, + { + "nameOnMethod": "providerKey", + "name": "providerKey", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "" + }, { "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.PermissionManagement.IsGrantedRequest]", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + "type": "System.Void", + "typeSimple": "System.Void" }, "allowAnonymous": null, - "implementFrom": "Volo.Abp.PermissionManagement.Integration.IPermissionIntegrationService" + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" } } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs index 28dab8da28..ff6d7e6128 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs @@ -22,6 +22,13 @@ public class PermissionsController : AbpControllerBase, IPermissionAppService return PermissionAppService.GetAsync(providerName, providerKey); } + [HttpGet] + [Route("by-group")] + public virtual Task GetByGroupAsync(string groupName, string providerName, string providerKey) + { + return PermissionAppService.GetByGroupAsync(groupName, providerName, providerKey); + } + [HttpPut] public virtual Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input) { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js index ab0daefa90..a296877917 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/wwwroot/client-proxies/permissionManagement-proxy.js @@ -18,6 +18,13 @@ }, ajaxParams)); }; + volo.abp.permissionManagement.permissions.getByGroup = function(groupName, providerName, providerKey, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/permission-management/permissions/by-group' + abp.utils.buildQueryString([{ name: 'groupName', value: groupName }, { name: 'providerName', value: providerName }, { name: 'providerKey', value: providerKey }]) + '', + type: 'GET' + }, ajaxParams)); + }; + volo.abp.permissionManagement.permissions.update = function(providerName, providerKey, input, ajaxParams) { return abp.ajax($.extend(true, { url: abp.appPath + 'api/permission-management/permissions' + abp.utils.buildQueryString([{ name: 'providerName', value: providerName }, { name: 'providerKey', value: providerKey }]) + '', diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo/Abp/PermissionManagement/PermissionAppService_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo/Abp/PermissionManagement/PermissionAppService_Tests.cs index 52a68f60d3..11e9e8ca04 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo/Abp/PermissionManagement/PermissionAppService_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo/Abp/PermissionManagement/PermissionAppService_Tests.cs @@ -32,7 +32,7 @@ public class PermissionAppService_Tests : AbpPermissionManagementApplicationTest permissionListResultDto.ShouldNotBeNull(); permissionListResultDto.EntityDisplayName.ShouldBe(PermissionTestDataBuilder.User1Id.ToString()); - permissionListResultDto.Groups.Count.ShouldBe(1); + permissionListResultDto.Groups.Count.ShouldBe(2); permissionListResultDto.Groups.ShouldContain(x => x.Name == "TestGroup"); permissionListResultDto.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission1"); @@ -50,11 +50,11 @@ public class PermissionAppService_Tests : AbpPermissionManagementApplicationTest result.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission5"); result.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission5.ChildPermission1"); } - + permissionListResultDto.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission6"); permissionListResultDto.Groups.First().Permissions.ShouldNotContain(x => x.Name == "MyPermission6.ChildDisabledPermission1"); permissionListResultDto.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission6.ChildPermission2"); - + permissionListResultDto.Groups.First().Permissions.ShouldNotContain(x => x.Name == "MyDisabledPermission1"); permissionListResultDto.Groups.First().Permissions.ShouldNotContain(x => x.Name == "MyDisabledPermission2"); permissionListResultDto.Groups.First().Permissions.ShouldNotContain(x => x.Name == "MyDisabledPermission2.ChildPermission1"); @@ -62,6 +62,21 @@ public class PermissionAppService_Tests : AbpPermissionManagementApplicationTest permissionListResultDto.Groups.First().Permissions.ShouldNotContain(x => x.Name == "MyDisabledPermission2.ChildPermission2.ChildPermission1"); } + [Fact] + public async Task GetByGroupAsync() + { + var permissionListResultDto = await _permissionAppService.GetByGroupAsync("TestGroup2", UserPermissionValueProvider.ProviderName, + PermissionTestDataBuilder.User1Id.ToString()); + + permissionListResultDto.ShouldNotBeNull(); + permissionListResultDto.EntityDisplayName.ShouldBe(PermissionTestDataBuilder.User1Id.ToString()); + permissionListResultDto.Groups.Count.ShouldBe(1); + permissionListResultDto.Groups.ShouldContain(x => x.Name == "TestGroup2"); + + permissionListResultDto.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission7"); + permissionListResultDto.Groups.First().Permissions.ShouldContain(x => x.Name == "MyPermission8"); + } + [Fact] public async Task UpdateAsync() { diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionDefinitionProvider.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionDefinitionProvider.cs index 55d034ad61..e644de8d71 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionDefinitionProvider.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionDefinitionProvider.cs @@ -22,14 +22,18 @@ public class TestPermissionDefinitionProvider : PermissionDefinitionProvider var myPermission5 = testGroup.AddPermission("MyPermission5"); myPermission5.StateCheckers.Add(new TestRequireRolePermissionStateProvider("super-admin")); myPermission5.AddChild("MyPermission5.ChildPermission1"); - + var myPermission6 = testGroup.AddPermission("MyPermission6"); myPermission6.AddChild("MyPermission6.ChildDisabledPermission1", isEnabled: false); myPermission6.AddChild("MyPermission6.ChildPermission2"); - + var myDisabledPermission2 = testGroup.AddPermission("MyDisabledPermission2", isEnabled: false); myDisabledPermission2.AddChild("MyDisabledPermission2.ChildPermission1"); var myDisabledPermission2Child2 = myDisabledPermission2.AddChild("MyDisabledPermission2.ChildPermission2"); myDisabledPermission2Child2.AddChild("MyDisabledPermission2.ChildPermission2.ChildPermission1"); + + var testGroup2 = context.AddGroup("TestGroup2"); + testGroup2.AddPermission("MyPermission7"); + testGroup2.AddPermission("MyPermission8"); } } 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 0041fdae11..a155a90e38 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0" } } 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 54885b91b3..6c8afa8deb 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,185 +2,185 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0-rc.3.tgz#7fff474f68baac1c6330bf3ddd8e1bdbf36dabd7" - integrity sha512-Xjt+1JSllrFJOgyk2opdWGIEFLOIZlS/ZDGXWFfyCcsFPgJRNHcuXY8SUyZo5aebH/w42i1OVYj24mnJEO7zIg== +"@abp/aspnetcore.mvc.ui.theme.basic@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.2.0.tgz#af6ff5071cadb480b4aece0f15400d56b105a350" + integrity sha512-+LOmhSfsua7i3VQy9vYTDv7nE0fdIA+kNvorQ4wkkRzijOAlwmS4fkupglwOKJQSCWGAM7VXccPy2NzdmwvEtw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.0" -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0-rc.3.tgz#f576805a0be069a8df2698f05a43e24e0333cc94" - integrity sha512-MX7bgp/n0WDIX+qONMHbAIAQ4zANkCapKCWiEn/7O4TgUmNyiCL4/EfqaxxJajD3W4tu+fwply8uRClCngSm6w== +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.0.tgz#791f419e8e0fab229e3f93f7a90edcd259100206" + integrity sha512-Mrs+kQg0S5OyRsPBwXQTqOq2DBWDdot7emETcX/gatv26GFbRe3nTOk1E+VWD/nsxHEOKTSE8LClC6TgkMxD8Q== dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.0-rc.3" - "@abp/bootstrap" "~9.2.0-rc.3" - "@abp/bootstrap-datepicker" "~9.2.0-rc.3" - "@abp/bootstrap-daterangepicker" "~9.2.0-rc.3" - "@abp/datatables.net-bs5" "~9.2.0-rc.3" - "@abp/font-awesome" "~9.2.0-rc.3" - "@abp/jquery-form" "~9.2.0-rc.3" - "@abp/jquery-validation-unobtrusive" "~9.2.0-rc.3" - "@abp/lodash" "~9.2.0-rc.3" - "@abp/luxon" "~9.2.0-rc.3" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.0-rc.3" - "@abp/moment" "~9.2.0-rc.3" - "@abp/select2" "~9.2.0-rc.3" - "@abp/sweetalert2" "~9.2.0-rc.3" - "@abp/timeago" "~9.2.0-rc.3" - -"@abp/aspnetcore.mvc.ui@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0-rc.3.tgz#5452ff91aed1ca042c54595ef68cb4e695ad2ce3" - integrity sha512-KAhDAS5anhYdH3x6S1uPBeT24mfdlc2LF6LcA5CZdEzUvNwpE1Ymhc0dPmlCHkGWN/R4+ykSmJwPG0uQWFeaXg== + "@abp/aspnetcore.mvc.ui" "~9.2.0" + "@abp/bootstrap" "~9.2.0" + "@abp/bootstrap-datepicker" "~9.2.0" + "@abp/bootstrap-daterangepicker" "~9.2.0" + "@abp/datatables.net-bs5" "~9.2.0" + "@abp/font-awesome" "~9.2.0" + "@abp/jquery-form" "~9.2.0" + "@abp/jquery-validation-unobtrusive" "~9.2.0" + "@abp/lodash" "~9.2.0" + "@abp/luxon" "~9.2.0" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.0" + "@abp/moment" "~9.2.0" + "@abp/select2" "~9.2.0" + "@abp/sweetalert2" "~9.2.0" + "@abp/timeago" "~9.2.0" + +"@abp/aspnetcore.mvc.ui@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.0.tgz#e3e703ea46caf04cc966ea0af6deb64427a90d4c" + integrity sha512-VHH68/7Bw7r8p70T9grnVISgYPe2t3m9199S/wAXGtpGHML/lbHhDflWbm7y1MHcrmCfaXy42O9SmTHV25BJhA== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0-rc.3.tgz#45d1f05942c47fd04195fceda79cb6ce1407abce" - integrity sha512-IzcgeoQm294ZG+M2cxwLFeMvk3+OQOEcZrussQTChIuGnqzH+/KHboLR0wZMnmpO/4OsbYhklMS6EaWUSgmfbQ== +"@abp/bootstrap-datepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.0.tgz#271ff68e2cee7b4ffe5a60406561a05948d6bbe6" + integrity sha512-V8o1cn1MKXE5GH1ZpBHiWWilzxjHIp4IS6rNoCDBSnaQcVvRku9KPI8tPNQSf+4x3jBfHDV9aOBDbDGTQ6J2yw== dependencies: bootstrap-datepicker "^1.10.0" -"@abp/bootstrap-daterangepicker@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0-rc.3.tgz#9a094243e8e06258f2988c7759b1f042f36a3975" - integrity sha512-NAjL+TdcmhvKjxDZwooOZr09x+mPXXLydI5UoFizf1C/OXBxXOaLi08lertF85FJN9i3o0Bv2n6gbUoTEYR/og== +"@abp/bootstrap-daterangepicker@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.0.tgz#a239f8c2efce57d2e2beca70ceeede52d1b177d5" + integrity sha512-Cd9naCyepTvmUotkR1VyOBqUMgyeSXnOVWR7HxXm+jugKtnWRzrztZB6UyfnNzzjc1RMOyiAUEjzitKSJrXeoA== dependencies: bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0-rc.3.tgz#20087792a43416635ba37949b4b5fcc4d72a192a" - integrity sha512-X2YmErQaRrjnfgDW08GJxZ6bLg03d4/ovE7ZBmiurkcQFJs5vezkkV3CRm88ntPDEfJDE2HAJnzYR0s2FK2QLw== +"@abp/bootstrap@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.0.tgz#08859288b8372ea111a240b507047b144d6caca9" + integrity sha512-L3EZQza2c/5VmvZkLsf0EOuaMi8fseyyiwlFN65i1hpcDwhOLcaqnxMneeaSJ+Dy4xczJT+oBml9D9OSTuzmkA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" bootstrap "^5.3.3" -"@abp/core@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0-rc.3.tgz#05793ff9823861983a01b2f85c40c7e80cc556b1" - integrity sha512-QUgV+aeILnRo/8H+dalIKrd6s60+qGeAQXFxykG9WPwH112VVg7CVZ90NGW5UJ2OOdkYyBx2B/JnY0QEUQ31WQ== +"@abp/core@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.0.tgz#db08fd34cfc891e94eb9e59ed3c0d0e6ef45c51a" + integrity sha512-3iESoHFj8I2xK81dwQVpCI6C1bc87VfWKyJE3/IUv4zWvG4QvI0aKhe1wxocmJqTjjowPUA3/fa2hvpfqPs2Bw== dependencies: - "@abp/utils" "~9.2.0-rc.3" + "@abp/utils" "~9.2.0" -"@abp/datatables.net-bs5@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0-rc.3.tgz#bae729cd2fd37565ca0851bfe577d7bf68fc3c19" - integrity sha512-2M6oQw2sv0UqN8NZeCmKYWetKgkQUVqo/LDWH30As7Xjtnn5sLKIDobdgUSuib0R/+cP4HuXid0uL+wV+4R5eg== +"@abp/datatables.net-bs5@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.0.tgz#eab201c959727c27aaab30dc5bd8159249d8b54b" + integrity sha512-bmK6GKffXzYbfkDIlN27D7mohnYsXoODEiHqhZnBdIzeSJyHwrwRPRVbO1EcBn1SEBHjGJp3S69Z6gDbRs018g== dependencies: - "@abp/datatables.net" "~9.2.0-rc.3" + "@abp/datatables.net" "~9.2.0" datatables.net-bs5 "^2.1.8" -"@abp/datatables.net@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0-rc.3.tgz#b6563334315df15c22267e57b258c72f90e1c246" - integrity sha512-5FVrRzOZsKt71oX1gcMprIGINEi/FaTM0nuddfrVR5eJrkO8s2Ldiop1u5t7JMOxg6E960kqv7Qa9p/Z2xV5QA== +"@abp/datatables.net@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.0.tgz#e4880fe074d86d3c5dbd7f48c86244790fc376c2" + integrity sha512-bKaaa+tl0Pt4oNaV+X8pBbvsHc2mPYoL7yuAs+LN8ZLwBdsGoUw7RNhLQ63O3tuYdHuaHhI/mx23X6JThr0SYw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" datatables.net "^2.1.8" -"@abp/font-awesome@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0-rc.3.tgz#b6f46c3faa61095b8a34fea08cf3888865bb694b" - integrity sha512-V8NEcFsIaVCsZ0CRVF1CD4hOtsiGWAtIvnRTTDRyc7/ABGniZbFbhbGzkBRZFynOLPQ24Ci7aPsPF8NnIHN8tQ== +"@abp/font-awesome@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.0.tgz#3e359da2510cbc0e5b9e46e9cb3664baf285722e" + integrity sha512-HRGg6XK3bCxFdVvEBnBKyLamqMUrenj//E4JuKOs8DtGLVH0jTyh8TwUT5/E/pI+POV7HEOpv9WpSB2p8pfsAg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" "@fortawesome/fontawesome-free" "^6.6.0" -"@abp/jquery-form@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0-rc.3.tgz#03ebb39443f4b139bf91d638dcbaf8d3879c598e" - integrity sha512-7BE6Z8tZ190XFrgfZgOqULcpsj+y9tx2MU8DTw5dZYNi6Up7MiqPbbZZ4grVF65/m4OMrwEhclp4AZl75h7dww== +"@abp/jquery-form@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.0.tgz#40fac992584c26e6c54f66e7f68f8abf8944a626" + integrity sha512-B7Shq1itQjsnzdU1kjLpGHWjkSGFhIM2iF5BNMkqcylG3Yq1Se4+8QPoJpn/soilmtX8gbO2fx8TOejfIazXIw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0-rc.3.tgz#39fa67d49f47bef5683552cd997bf4d1d4900c8c" - integrity sha512-vrlyHE0mThB1gHTZaV5Do13P8QljgOIC+lntL1NHe8QAi1HQhsQTHEaVaAv5akJHgg3KegAXx/QGde9Oc1eCGw== +"@abp/jquery-validation-unobtrusive@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.0.tgz#c2df51d024d48e71f0e7fb8d4207a8b2855393f4" + integrity sha512-c1cPfWVdo+gpaMoegAkw0DzGL2fy/1ylEi/shb95MAGt3iyECVx+X+R/XOxbVHKVI57D4d5IGj6cXYBhdKkvAw== dependencies: - "@abp/jquery-validation" "~9.2.0-rc.3" + "@abp/jquery-validation" "~9.2.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0-rc.3.tgz#4a321097fdf77cec53a0deae87d186b1ff47db22" - integrity sha512-nOnGPLkD/Dwd/ZSd74usQi5BmTPYsVzpqSf4xCWXIy9tQj+9mPpXGDTrdp/XoWCUG61VEPD0ll94PAWEj1ULfQ== +"@abp/jquery-validation@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.0.tgz#97688d2e3c25699d4368ebf7234e04943aa5e6ab" + integrity sha512-UO+T6SqXBrh0ODwvMm840CGbE2fdYNo5oqJL4V4JbHv9uz7MH+k0bB1DK7mFb94iDM7QcglLzIfcN4hLRV7arw== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0-rc.3.tgz#5e930ad91b52dad7d4bdeda9725fb633e9171c9e" - integrity sha512-uwuj9TmM2EFaUEySC4C1nalc4+aF193pJx31uhNquP51s04IJoQeRpYGRhcqmLPej1V0SXtp9elTblM9zrm/eg== +"@abp/jquery@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.0.tgz#38c249be6eda0cdc899cc8a1f20e5152c39ae9a0" + integrity sha512-sIe3Zk+8549ytydCtDlECZ930PapW/2J0652two/sJwYG/SGUGxYQbw3QnJGFTcL9TFwcWwRj5iWX0gWrLEIyA== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" jquery "~3.7.1" -"@abp/lodash@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0-rc.3.tgz#340bd0268f86f9f0d9a0bc710f0af91bb1077c3e" - integrity sha512-/lcb0MiFJsRb5IU9aPVVJ38NwnJ5ndPd33NkNbjcfXe48q37JQ0ruWri2Pn4bhAxyxXoITtPg7nuBuDjZ8oWGQ== +"@abp/lodash@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.0.tgz#7fa4c9e956c766e34ec4677d2102a6d00f899a4b" + integrity sha512-2elXj/eWw875tF9ixbOm3uqXCxGaG5gL9Tub5k7cP+XhFpNBOYijNaXdN8SeDSxr83WDVWdrk//OQL8BF7XPdw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" lodash "^4.17.21" -"@abp/luxon@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0-rc.3.tgz#a551aa33b7c4c33500cac0431648e7d37ab60c62" - integrity sha512-gUBnuqm1GT7qxAdt8XGc+8eDFnMRwlNB8/IEsFzZTFumIMPdBV6ZDOPnFvMZzJdcLFaPnEDN38RIP2aGGaE6fg== +"@abp/luxon@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.0.tgz#865db7b60dba4029134fb4a4b5eaa08c723dcea8" + integrity sha512-LWjczvzu1gFIq0/2fRz+bJW2+zsmXAmfz0I+lZ3wmqUdkViqAqwTa+5NMIl2tC92u4Dv3LGXKtH37Jw8m+XjTg== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" luxon "^3.5.0" -"@abp/malihu-custom-scrollbar-plugin@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0-rc.3.tgz#ecd35f7636b27904ddb8a638cbeb1d7119098a1b" - integrity sha512-kvlX0OcxOMKfZUSF4fViu9vGxN7PUJP/1useNqUis8I068FjotHpcc6qUSciCGiX+lvFP3wcqX4RGEsQt9tGZQ== +"@abp/malihu-custom-scrollbar-plugin@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.0.tgz#09722b1e7ca34b96e2a68368db0e96cdf9ab0e6c" + integrity sha512-kfDf/1RwGtAlos/7BW+7xbh3LtJ4VG0Z4mxS+b2HsywAwlt/kE5FltfBj2ResQb030bsGNl7A5JglV9Pv1UlPw== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0-rc.3.tgz#bb9b94244fa943eacdca6294ff90c43846df47df" - integrity sha512-maE6NiGgdBws3y8GbJLvWchNxXpIpurd5lTso+qI4WgCnxT06L3lZMFHXKiQbCqy86XaRkr5E8Jdwj/CxFA4UA== +"@abp/moment@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.0.tgz#137d688af4df195742061ac2b8a2bf460a027071" + integrity sha512-15aTjYAxHK+upkiZ94XCe8CoSPKMl1D8f6GXJIfwPkuYZ+na4ma17qBu4P8bFsc4gu3ngxYiLHRSzYzr4oCSYQ== dependencies: moment "^2.30.1" -"@abp/select2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0-rc.3.tgz#e181a888d4aaa56f57900dd2a92b3d5f1ccbd90c" - integrity sha512-yCmqJSy13vIxbhNSg5mRhef/LJCuuhM6ewmoEafBhdJdns/4N6PuzdIXt4cqgxAqkHCurcsagZevlmxLUcSf1A== +"@abp/select2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.0.tgz#c96d869be0d3298ed7c0888288ea9829e6266cd4" + integrity sha512-V+qx9hw3oe7o0WbG03ZgAjbqRJPVuedzrdy7ExEdueTc6LRP/WEgbVpXhsNISObtouE6Dadwp3iXYSExgNUC6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0-rc.3.tgz#fb19e319058682f73b293920e620771aa54e4129" - integrity sha512-yJ8+GjnYPQ1h1epSqn2GkEBH7syMj/+3cX6ZZ7U1MPSw1RACELJIcH/MjZQG82D2SsvsCfoPLTzh46Jh1c9Hpg== +"@abp/sweetalert2@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.0.tgz#826d6dd0b70c35a7401cc884fb1e82af99a0305d" + integrity sha512-0r338ayjaL9uzmLKE8oHpcMgJeVgVoMYfhQAPINeQHv1TPXuYCLo0aoRNoLsfmUo3ayYBBa3zOrugFIVis7Q6A== dependencies: - "@abp/core" "~9.2.0-rc.3" + "@abp/core" "~9.2.0" sweetalert2 "^11.14.1" -"@abp/timeago@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0-rc.3.tgz#f50436c0d3cb9c703e1b712735609e47f300f7de" - integrity sha512-lQtKUSHp4L4xBI+ZUicMXtZABvX8MF2udRPP1zVaZ/xcZ5MV1rRGcCM+YjRYpF0lB0DRyuGvgXFztQEok/xu5A== +"@abp/timeago@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.0.tgz#79bbe6dd32b0ee7df2e8ebd05274a0ecc7882ba7" + integrity sha512-hEUi5re5N1YkDSpaUaUtXF1Mz4YyiEvNzVADbKRz11kbR4ZAFzcvVqsQLeNo7qnuFLfJNAtuzyjkuxwL75kmaA== dependencies: - "@abp/jquery" "~9.2.0-rc.3" + "@abp/jquery" "~9.2.0" timeago "^1.6.7" -"@abp/utils@~9.2.0-rc.3": - version "9.2.0-rc.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0-rc.3.tgz#95ba7545627ae1d2fc8c19c6c9da1bd8a7f8d31a" - integrity sha512-4HJCS/4qlYnqyMKH5A9JL9FWZDGYElTkLuUGuvlhsy/0BxOoJKsPPZCiX8S7RqkLEjdQSU8nkkXVANhXgIgkTA== +"@abp/utils@~9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.0.tgz#bf32ced1175e45fbe010c3cb806c7cd37f85089c" + integrity sha512-aciBuXhzlaqe+o7mNt536bCk425cmxY5BE0wwl13u3pX3LfWYWLEgwl8GS0aeI11TS1/7+1N85RJELyz/+y0hQ== dependencies: just-compare "^2.3.0" diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs index 496095c807..6fe1edafc6 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/AbpTenantManagementDomainMappingProfile.cs @@ -28,7 +28,8 @@ public class AbpTenantManagementDomainMappingProfile : Profile return connStrings; }); }) - .ForMember(x => x.IsActive, x => x.Ignore()); + .ForMember(x => x.IsActive, x => x.Ignore()) + .ForMember(x => x.EditionId, x => x.Ignore()); CreateMap(); } diff --git a/modules/virtual-file-explorer/app/package.json b/modules/virtual-file-explorer/app/package.json index 1deafc8fe1..8218af60fc 100644 --- a/modules/virtual-file-explorer/app/package.json +++ b/modules/virtual-file-explorer/app/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0-rc.3", - "@abp/virtual-file-explorer": "~9.2.0-rc.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~9.2.0", + "@abp/virtual-file-explorer": "~9.2.0" } } diff --git a/npm/lerna.json b/npm/lerna.json index b41b7a7a5a..c0ef92d64e 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "9.2.0-rc.3", + "version": "9.2.0", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts b/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts deleted file mode 100644 index 0d9f82ea25..0000000000 --- a/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; - -const routes: Routes = [ - { - path: '', - pathMatch: 'full', - loadChildren: () => import('./home/home.module').then(m => m.HomeModule), - }, - { - path: 'account', - loadChildren: () => import('@abp/ng.account').then(m => m.AccountModule.forLazy()), - }, - { - path: 'identity', - loadChildren: () => import('@abp/ng.identity').then(m => m.IdentityModule.forLazy()), - }, - { - path: 'tenant-management', - loadChildren: () => - import('@abp/ng.tenant-management').then(m => m.TenantManagementModule.forLazy()), - }, - { - path: 'setting-management', - loadChildren: () => - import('@abp/ng.setting-management').then(m => m.SettingManagementModule.forLazy()), - }, -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes, {})], - exports: [RouterModule], -}) -export class AppRoutingModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/app.component.ts b/npm/ng-packs/apps/dev-app/src/app/app.component.ts index 1b0993cd2f..5220d57353 100644 --- a/npm/ng-packs/apps/dev-app/src/app/app.component.ts +++ b/npm/ng-packs/apps/dev-app/src/app/app.component.ts @@ -1,12 +1,14 @@ import { Component } from '@angular/core'; +import { InternetConnectionStatusComponent, LoaderBarComponent } from '@abp/ng.theme.shared'; +import { DynamicLayoutComponent } from '@abp/ng.core'; @Component({ - standalone: false, selector: 'app-root', template: ` `, + imports: [LoaderBarComponent, DynamicLayoutComponent, InternetConnectionStatusComponent], }) export class AppComponent {} diff --git a/npm/ng-packs/apps/dev-app/src/app/app.config.ts b/npm/ng-packs/apps/dev-app/src/app/app.config.ts new file mode 100644 index 0000000000..3075c477fc --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/app.config.ts @@ -0,0 +1,42 @@ +import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { appRoutes } from './app.routes'; +import { APP_ROUTE_PROVIDER } from './route.provider'; +import { provideAbpCore, withOptions } from '@abp/ng.core'; +import { environment } from '../environments/environment'; +import { registerLocale } from '@abp/ng.core/locale'; +import { provideAbpOAuth } from '@abp/ng.oauth'; +import { provideAbpThemeShared } from '@abp/ng.theme.shared'; +import { provideSettingManagementConfig } from '@abp/ng.setting-management/config'; +import { provideAccountConfig } from '@abp/ng.account/config'; +import { provideIdentityConfig } from '@abp/ng.identity/config'; +import { provideTenantManagementConfig } from '@abp/ng.tenant-management/config'; +import { provideFeatureManagementConfig } from '@abp/ng.feature-management'; +import { provideThemeBasicConfig } from '@abp/ng.theme.basic'; +import { provideAnimations } from '@angular/platform-browser/animations'; + +export const appConfig: ApplicationConfig = { + providers: [ + provideRouter(appRoutes), + APP_ROUTE_PROVIDER, + provideAbpCore( + withOptions({ + environment, + registerLocaleFn: registerLocale(), + sendNullsAsQueryParam: false, + skipGetAppConfiguration: false, + }), + ), + provideAbpOAuth(), + provideAbpThemeShared(), + provideSettingManagementConfig(), + provideAccountConfig(), + provideIdentityConfig(), + provideTenantManagementConfig(), + provideFeatureManagementConfig(), + provideZoneChangeDetection({ eventCoalescing: true }), + provideThemeBasicConfig(), + provideAnimations(), + ], +}; diff --git a/npm/ng-packs/apps/dev-app/src/app/app.module.ts b/npm/ng-packs/apps/dev-app/src/app/app.module.ts deleted file mode 100644 index 707f1f846f..0000000000 --- a/npm/ng-packs/apps/dev-app/src/app/app.module.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { CoreModule, provideAbpCore, withOptions } from '@abp/ng.core'; -import { registerLocale } from '@abp/ng.core/locale'; -import { - InternetConnectionStatusComponent, - ThemeSharedModule, - provideAbpThemeShared, -} from '@abp/ng.theme.shared'; -import { ThemeLeptonXModule } from '@abp/ng.theme.lepton-x'; -import { SideMenuLayoutModule } from '@abp/ng.theme.lepton-x/layouts'; -import { provideAbpOAuth } from '@abp/ng.oauth'; -import { provideSettingManagementConfig } from '@abp/ng.setting-management/config'; -import { provideAccountConfig } from '@abp/ng.account/config'; -import { provideIdentityConfig } from '@abp/ng.identity/config'; -import { provideTenantManagementConfig } from '@abp/ng.tenant-management/config'; -import { provideFeatureManagementConfig } from '@abp/ng.feature-management'; -import { AccountLayoutModule } from '@abp/ng.theme.lepton-x/account'; -import { environment } from '../environments/environment'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { APP_ROUTE_PROVIDER } from './route.provider'; - -@NgModule({ - imports: [ - BrowserModule, - BrowserAnimationsModule, - AppRoutingModule, - CoreModule, - ThemeSharedModule, - ThemeLeptonXModule.forRoot(), - SideMenuLayoutModule.forRoot(), - AccountLayoutModule.forRoot(), - InternetConnectionStatusComponent, - ], - providers: [ - APP_ROUTE_PROVIDER, - provideAbpCore( - withOptions({ - environment, - registerLocaleFn: registerLocale(), - sendNullsAsQueryParam: false, - skipGetAppConfiguration: false, - }), - ), - provideAbpOAuth(), - provideAbpThemeShared(), - provideSettingManagementConfig(), - provideAccountConfig(), - provideIdentityConfig(), - provideTenantManagementConfig(), - provideFeatureManagementConfig(), - ], - declarations: [AppComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/app.routes.ts b/npm/ng-packs/apps/dev-app/src/app/app.routes.ts new file mode 100644 index 0000000000..47462b7f8f --- /dev/null +++ b/npm/ng-packs/apps/dev-app/src/app/app.routes.ts @@ -0,0 +1,25 @@ +import { Routes } from '@angular/router'; + +export const appRoutes: Routes = [ + { + path: '', + pathMatch: 'full', + loadComponent: () => import('./home/home.component').then(m => m.HomeComponent), + }, + { + path: 'account', + loadChildren: () => import('@abp/ng.account').then(m => m.createRoutes()), + }, + { + path: 'identity', + loadChildren: () => import('@abp/ng.identity').then(m => m.createRoutes()), + }, + { + path: 'tenant-management', + loadChildren: () => import('@abp/ng.tenant-management').then(m => m.createRoutes()), + }, + { + path: 'setting-management', + loadChildren: () => import('@abp/ng.setting-management').then(m => m.createRoutes()), + }, +]; diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts b/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts deleted file mode 100644 index 7089990134..0000000000 --- a/npm/ng-packs/apps/dev-app/src/app/home/home-routing.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { HomeComponent } from './home.component'; - -const routes: Routes = [{ path: '', component: HomeComponent }]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule], -}) -export class HomeRoutingModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts index ad791cabec..4a6287a7c0 100644 --- a/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts +++ b/npm/ng-packs/apps/dev-app/src/app/home/home.component.ts @@ -1,10 +1,12 @@ -import { AuthService } from '@abp/ng.core'; +import { AuthService, LocalizationPipe } from '@abp/ng.core'; import { Component, inject } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { ButtonComponent, CardBodyComponent, CardComponent } from '@abp/ng.theme.shared'; @Component({ - standalone: false, selector: 'app-home', templateUrl: './home.component.html', + imports: [CommonModule, LocalizationPipe, CardComponent, CardBodyComponent, ButtonComponent], }) export class HomeComponent { protected readonly authService = inject(AuthService); diff --git a/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts b/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts deleted file mode 100644 index 72d20ccc65..0000000000 --- a/npm/ng-packs/apps/dev-app/src/app/home/home.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { SharedModule } from '../shared/shared.module'; -import { HomeRoutingModule } from './home-routing.module'; -import { HomeComponent } from './home.component'; - -@NgModule({ - declarations: [HomeComponent], - imports: [SharedModule, HomeRoutingModule], -}) -export class HomeModule {} diff --git a/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts b/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts deleted file mode 100644 index 964170499d..0000000000 --- a/npm/ng-packs/apps/dev-app/src/app/shared/shared.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { CoreModule } from '@abp/ng.core'; -import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; -import { NgModule } from '@angular/core'; -import { ThemeSharedModule } from '@abp/ng.theme.shared'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; - -@NgModule({ - declarations: [], - imports: [CoreModule, ThemeSharedModule, NgbDropdownModule, NgxValidateCoreModule], - exports: [CoreModule, ThemeSharedModule, NgbDropdownModule, NgxValidateCoreModule], - providers: [], -}) -export class SharedModule {} diff --git a/npm/ng-packs/apps/dev-app/src/main.ts b/npm/ng-packs/apps/dev-app/src/main.ts index fa4e0aef33..7180ec1a32 100644 --- a/npm/ng-packs/apps/dev-app/src/main.ts +++ b/npm/ng-packs/apps/dev-app/src/main.ts @@ -1,13 +1,5 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch(err => console.error(err)); +bootstrapApplication(AppComponent, appConfig).catch(err => console.error(err)); diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index df6bd05ea0..92326eadb4 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -44,8 +44,8 @@ }, "private": true, "devDependencies": { - "@abp/ng.theme.lepton-x": "~4.2.0-rc.3", - "@abp/utils": "~9.2.0-rc.3", + "@abp/ng.theme.lepton-x": "~4.2.0", + "@abp/utils": "~9.2.0", "@angular-devkit/build-angular": "~19.1.0", "@angular-devkit/core": "~19.1.0", "@angular-devkit/schematics": "~19.1.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index e4252639bf..6cba82d222 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "9.2.0-rc.3", + "version": "9.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~9.2.0-rc.3", - "@abp/ng.theme.shared": "~9.2.0-rc.3", + "@abp/ng.core": "~9.2.0", + "@abp/ng.theme.shared": "~9.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index e14dface29..fc34941743 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "9.2.0-rc.3", + "version": "9.2.0", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~9.2.0-rc.3", - "@abp/ng.theme.shared": "~9.2.0-rc.3", + "@abp/ng.account.core": "~9.2.0", + "@abp/ng.theme.shared": "~9.2.0", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/account/src/lib/account.module.ts b/npm/ng-packs/packages/account/src/lib/account.module.ts index 58df433232..31c629bb4d 100644 --- a/npm/ng-packs/packages/account/src/lib/account.module.ts +++ b/npm/ng-packs/packages/account/src/lib/account.module.ts @@ -1,49 +1,33 @@ -import { CoreModule, LazyModuleFactory } from '@abp/ng.core'; -import { ThemeSharedModule } from '@abp/ng.theme.shared'; +import { LazyModuleFactory } from '@abp/ng.core'; import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core'; -import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; -import { NgxValidateCoreModule } from '@ngx-validate/core'; -import { AccountRoutingModule } from './account-routing.module'; -import { ChangePasswordComponent } from './components/change-password/change-password.component'; -import { LoginComponent } from './components/login/login.component'; -import { ManageProfileComponent } from './components/manage-profile/manage-profile.component'; -import { PersonalSettingsComponent } from './components/personal-settings/personal-settings.component'; -import { RegisterComponent } from './components/register/register.component'; import { AccountConfigOptions } from './models/config-options'; import { ACCOUNT_CONFIG_OPTIONS } from './tokens/config-options.token'; import { accountConfigOptionsFactory } from './utils/factory-utils'; import { AuthenticationFlowGuard } from './guards/authentication-flow.guard'; -import { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component'; -import { ResetPasswordComponent } from './components/reset-password/reset-password.component'; import { RE_LOGIN_CONFIRMATION_TOKEN } from './tokens'; import { ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS } from './tokens/extensions.token'; import { AccountExtensionsGuard } from './guards/extensions.guard'; -import { PersonalSettingsHalfRowComponent } from './components/personal-settings/personal-settings-half-row.component'; -import { ExtensibleModule } from "@abp/ng.components/extensible"; - -const declarations = [ +import { + ForgotPasswordComponent, LoginComponent, - RegisterComponent, - ChangePasswordComponent, ManageProfileComponent, - PersonalSettingsComponent, - ForgotPasswordComponent, + RegisterComponent, ResetPasswordComponent, - PersonalSettingsHalfRowComponent, -]; +} from './components'; +import { AccountRoutingModule } from './account-routing.module'; @NgModule({ - declarations: [...declarations], + declarations: [], imports: [ - CoreModule, + LoginComponent, + RegisterComponent, + ForgotPasswordComponent, + ResetPasswordComponent, + ManageProfileComponent, AccountRoutingModule, - ThemeSharedModule, - NgbDropdownModule, - NgxValidateCoreModule, - ExtensibleModule, ], - exports: [...declarations], + exports: [], }) export class AccountModule { static forChild(options = {} as AccountConfigOptions): ModuleWithProviders { @@ -69,7 +53,9 @@ export class AccountModule { ], }; } - + /** + * @deprecated `AccountModule.forLazy()` is deprecated. You can use `createRoutes` **function** instead. + */ static forLazy(options = {} as AccountConfigOptions): NgModuleFactory { return new LazyModuleFactory(AccountModule.forChild(options)); } diff --git a/npm/ng-packs/packages/account/src/lib/account.routes.ts b/npm/ng-packs/packages/account/src/lib/account.routes.ts new file mode 100644 index 0000000000..5fb4236ee1 --- /dev/null +++ b/npm/ng-packs/packages/account/src/lib/account.routes.ts @@ -0,0 +1,119 @@ +import { Routes } from '@angular/router'; +import { + ForgotPasswordComponent, + LoginComponent, + RegisterComponent, + ResetPasswordComponent, + ManageProfileComponent, +} from './components'; +import { eAccountComponents } from './enums'; +import { authenticationFlowGuard } from './guards'; +import { accountExtensionsResolver } from './resolvers'; +import { + RE_LOGIN_CONFIRMATION_TOKEN, + ACCOUNT_CONFIG_OPTIONS, + ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, +} from './tokens'; +import { AccountConfigOptions } from './models'; +import { accountConfigOptionsFactory } from './utils'; +import { + authGuard, + ReplaceableComponents, + ReplaceableRouteContainerComponent, + RouterOutletComponent, +} from '@abp/ng.core'; + +export function provideAccount(options: AccountConfigOptions = {}) { + return [ + { provide: ACCOUNT_CONFIG_OPTIONS, useValue: options }, + { + provide: 'ACCOUNT_OPTIONS', + useFactory: accountConfigOptionsFactory, + deps: [ACCOUNT_CONFIG_OPTIONS], + }, + { + provide: RE_LOGIN_CONFIRMATION_TOKEN, + useValue: options.isPersonalSettingsChangedConfirmationActive ?? true, + }, + { + provide: ACCOUNT_EDIT_FORM_PROP_CONTRIBUTORS, + useValue: options.editFormPropContributors, + }, + ]; +} + +const canActivate = [authenticationFlowGuard]; + +export const createRoutes = (options: AccountConfigOptions = {}): Routes => [ + { + path: '', + component: RouterOutletComponent, + providers: provideAccount(options), + children: [ + { path: '', pathMatch: 'full', redirectTo: 'login' }, + { + path: 'login', + component: ReplaceableRouteContainerComponent, + canActivate, + data: { + replaceableComponent: { + key: eAccountComponents.Login, + defaultComponent: LoginComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpAccount::Login', + }, + { + path: 'register', + component: ReplaceableRouteContainerComponent, + canActivate, + data: { + replaceableComponent: { + key: eAccountComponents.Register, + defaultComponent: RegisterComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpAccount::Register', + }, + { + path: 'forgot-password', + component: ReplaceableRouteContainerComponent, + canActivate, + + data: { + replaceableComponent: { + key: eAccountComponents.ForgotPassword, + defaultComponent: ForgotPasswordComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpAccount::ForgotPassword', + }, + { + path: 'reset-password', + component: ReplaceableRouteContainerComponent, + canActivate: [], + data: { + tenantBoxVisible: false, + replaceableComponent: { + key: eAccountComponents.ResetPassword, + defaultComponent: ResetPasswordComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpAccount::ResetPassword', + }, + { + path: 'manage', + component: ReplaceableRouteContainerComponent, + canActivate: [authGuard], + resolve: [accountExtensionsResolver], + data: { + replaceableComponent: { + key: eAccountComponents.ManageProfile, + defaultComponent: ManageProfileComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpAccount::MyAccount', + }, + ], + }, +]; diff --git a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html index 074b6d53ac..a10e190664 100644 --- a/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html +++ b/npm/ng-packs/packages/account/src/lib/components/change-password/change-password.component.html @@ -1,4 +1,4 @@ -
+ @if (!hideCurrentPassword) {