L
+Its supported language list is controlled by `AbpAdminConsoleOptions` using the `AdminConsole:LocalizationLanguages` configuration key, which is exposed to the SPA through `/admin-console/api/config`. If no languages are configured, the frontend falls back to `en`.
-
-
@L["LongWelcomeMessage"]
-
-```
+Use the admin console locale files for UI-only texts that are specific to the administration surface. Keep shared module texts in backend localization resources.
-### Angular UI
-
-Angular UI gets the localization resources from the [`application-localization`](../../framework/api-development/standard-apis/localization.md) API's response and merges these resources in the `ConfigStateService` for the localization entries/resources coming from the backend side.
-
-In addition, you may need to define some localization entries and only use them on the UI side. ABP already provides the related configuration for you, so you don't need to make any configurations related to that and instead you can directly define localization entries in the `app.config.ts` file of your angular application as follows:
-
-```ts
-import { provideAbpCore, withOptions } from '@abp/ng.core';
-
-export const appConfig: ApplicationConfig = {
- providers: [
- // ...
- provideAbpCore(
- withOptions({
- environment,
- registerLocaleFn: registerLocale(),
- localizations: [
- {
- culture: 'en',
- resources: [
- {
- resourceName: 'MyProjectName',
- texts: {
- "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit"
- }
- }
- ]
- }
- ]
- }),
- ),
- ],
-};
-```
+### `react-native`
-After defining the localization entries, it can be used as below:
+When mobile is enabled, the generated React Native client stores its bundled translations under `apps/mobile/react-native/src/locales`. The `LocalizationService.ts` file:
-{%{
-```html
-{{ 'MyProjectName::LongWelcomePage' | abpLocalization }}
-```
-}%}
+* registers the available locale files
+* exposes the language list used by the app
+* maps the default resource name from `Environment.ts`
-> For more information, please refer to [UI Localization section of the Angular Localization document](../../framework/ui/angular/localization.md).
+Use these locale files for mobile-specific UI strings.
## Creating a New Localization Resource
diff --git a/docs/en/solution-templates/microservice/mobile-applications.md b/docs/en/solution-templates/microservice/mobile-applications.md
index c14895b7b9..224ff906e0 100644
--- a/docs/en/solution-templates/microservice/mobile-applications.md
+++ b/docs/en/solution-templates/microservice/mobile-applications.md
@@ -1,7 +1,7 @@
```json
//[doc-seo]
{
- "Description": "Explore how to integrate mobile applications with ABP's microservice solution, featuring options like MAUI and React Native for seamless development."
+ "Description": "Understand the optional React Native mobile application in ABP Studio's modern microservice solution template."
}
```
@@ -19,162 +19,62 @@
> You must have an ABP Business or a higher license to be able to create a microservice solution.
-The ABP Studio microservice solution template comes with an optional mobile application that is completely integrated to the solution. There are two options for the mobile application:
+The current ABP Studio modern microservice solution template can optionally generate a mobile application under `apps/mobile/react-native`.
-* MAUI
-* React Native
+The modern template does not generate a MAUI mobile application. Its mobile choices are **None** and **React Native**.
-You can select the mobile application type while [creating your solution](../../get-started/microservice.md).
+## The Mobile Gateway
-## Fundamental Structures
+If you enable the mobile application, an API gateway named `MobileGateway` is added under `gateways/mobile`. The React Native client calls backend APIs through this gateway.
-The following sections explain the common structure of the mobile applications (valid for both of MAUI and React Native applications).
+See *[API Gateways](api-gateways.md)* for the shared gateway structure.
-### The Mobile Gateway
+## Authentication
-If you've selected to include the mobile application into your solution, an API Gateway, named `MobileGateway` is also added to the solution. It is located under the `gateways/mobile` in the solution folder.
+The generated React Native app is configured in `Environment.ts` with:
-You can refer to the *[API Gateways](api-gateways.md)* document to understand the structure of the mobile gateway.
+* the `AuthServer` issuer URL
+* the `MobileGateway` base URL
+* the `ReactNative` client id and scopes
-### Authentication
+At runtime, the mobile client uses the password grant to exchange credentials for access and refresh tokens at the `AuthServer` `/connect/token` endpoint, then sends bearer tokens to backend APIs through the `MobileGateway`. Account-related operations such as registration, password reset, profile picture management, and logout use the generated API client under `src/api`.
-Both of the MAUI and React Native applications are installed as native applications to the devices. So, they are using the [OpenID Connect](../../modules/openiddict.md) protocol to authenticate the users. The authentication is done by the `AuthServer` application.
+## Built-in Capabilities
-They don't run on a browser, so they can't use the [Cookie Authentication](../../modules/account.md#cookie-authentication) method. They are using the [JWT Bearer Authentication](../../modules/account.md#jwt-bearer-authentication) method.
+The generated mobile app already includes screens and flows for:
-Best way to communicate with the `AuthServer` application is using the browser. So, the mobile applications are opening a browser window to authenticate the user. Then browser redirects back to the mobile application with the authentication result.
+* sign in, registration, forgot password, and reset password
+* account and profile picture management
+* user-facing settings such as language, theme, and logout
-The following screenshot was taken from the *Login* page of the [Account](../../modules/account.md) module in the mobile application's UI:
+Localization is handled by the bundled locale files under `src/locales` and `src/services/LocalizationService.ts`. Theme handling lives under `src/theme`.
-
+## Solution Structure
+The React Native application is based on [React Native](https://reactnative.dev/) and [Expo](https://expo.dev/). The main files and folders in `apps/mobile/react-native` are:
-### User Management
+* `Environment.ts`: runtime URLs, client id, scopes, and default localization resource name.
+* `src/api`: HTTP clients for token, account, and application configuration calls.
+* `src/components`: reusable UI components.
+* `src/contexts`: shared React contexts, including localization context.
+* `src/hooks`: reusable React hooks.
+* `src/interceptors`: request and response interception for the API client.
+* `src/locales`: bundled UI translations.
+* `src/navigators`: drawer, stack, and tab navigation definitions.
+* `src/screens`: application pages such as login, home, settings, and account flows.
+* `src/services`: cross-cutting services such as localization helpers.
+* `src/store`: Redux actions, listeners, reducers, and selectors.
+* `src/theme`, `src/types`, `src/utils`: shared theming, typings, and helper utilities.
-User Management is implemented in the MAUI Application in the `Acme.CloudCrm.Maui` project with XAML and C# for MAUI and it is implemented in the React Native Application in the react-native project for React Native UI option.
+## Running the Application
-
+The React Native app is not started by the ABP Studio solution runner. Run `AuthServer`, `MobileGateway`, and the required backend services first, then start the mobile app with the standard React Native / Expo toolchain.
-
-### Profile Management
-
-Profile management allows users to view and update their personal profile picture and their passwords. It provides a seamless experience for users to manage their profiles within the mobile application without navigating to the authserver web application.
-
-The following screenshot was taken from the *Profile* page in the MAUI application:
-
-
-
-### Other Features
-
-#### Settings Page
-The settings page allows users to change the language and theme of the application, manage their profiles, change their passwords, and also to logout from the application.
-
-
-
-- **Language**: Applications implements ABP localization logic on the platforms. The language is automatically selected based on the device's language. Users can also change the language manually from the settings page.
-
-- **Dark/Light Theme**: ABP MAUI and React Native applications support both dark and light themes. The theme is automatically selected based on the device's theme. Users can also change the theme manually from the settings page.
-
-## Applications
-
-Following sections explain the structure of MAUI and React Native Applications.
-
-### The MAUI Application
-
-This is the mobile application that is built based on Microsoft's [MAUI framework](https://learn.microsoft.com/en-us/dotnet/maui). It will be in the solution only if you've selected the MAUI as your mobile application option.
-
-#### Project Structure
-Entire MAUI application is built on the AppShell pattern of MAUI. You can find the AppShell class in the `Acme.CloudCrm.Maui` project. It is the entry point of the application. It is responsible for initializing the application and registering the services. You find all the pages and routing information in the `AppShell.xaml` file.
-
-- **Pages**: Pages are located in the `Pages` folder of the project. Each page has a XAML & C# file. XAML file is responsible for the UI and C# file is responsible for the initialization of the page.
-
-- **ViewModels**: ViewModels are located in the `ViewModels` folder of the project. Each ViewModel has a C# file. ViewModels are responsible for the business logic of the pages.
-
-- **Oidc**: Oidc folder contains the logic for the authentication of the application. It contains the `MauiAuthenticationBrowser` class which manages the authentication process of the application.
-
-- **Localization**: Localization folder contains the localization logic of the application. It contains regular ABP Localization logic and the `LocalizationResourceManager` class which is wrapper for the ABP localization logic on MAUI.
-
-- **Messages**: Messages folder contains the message data for the communication inside application. Messages are used to send data between pages and viewmodels. It's designed on the [MVVM Toolkit Messenger](https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/messenger) feature.
-
-- **Storage**: Storage folder contains the storage logic of the application. It contains the `IStorage` class which is wrapper for the [SecureStorage](https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/storage/secure-storage) feature. It is used to store the authentication data of the user and preferences of the application.
-
-_Rest of the folders are MAUI default folders. You can check the [.NET MAUI single project documentatipon](https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/single-project?view=net-maui-8.0) for more information._
-
-#### Running the application
-Before running the MAUI Application, rest of the applications in the solution must be running. Such as AuthServer, MobileGateway and the microservices.
-
-Make sure that you prepared devices for debugging. You can check the following documentation for each platform.
-
-- [Android](https://learn.microsoft.com/en-us/dotnet/maui/android/emulator/)
-- [iOS](https://learn.microsoft.com/en-us/dotnet/maui/ios/pair-to-mac)
-- [MacCatalyst](https://learn.microsoft.com/en-us/dotnet/maui/mac-catalyst/cli)
-- [Windows](https://learn.microsoft.com/en-us/dotnet/maui/windows/setup)
-
-##### Network
-
-All the platforms including iOS, MacCataylst and Windows, runs the applications in the same network of the host. So, you can use the `localhost` address to connect to the applications.
-
-But in the **Android Emulator**, you need to use the `adb reverse` command to connect to the applications. You can use the following command to connect to the AuthServer application:
+For Android emulators or devices, map the development ports before testing:
```bash
-adb reverse tcp:44300 tcp:44300
+adb reverse tcp: tcp:
+adb reverse tcp: tcp:
```
-> `44300` is an example port. You need to change it based on the port of the AuthServer & MobileGateway application.
-
-> You need to run the command for a running emulator. If you run the emulator after running the command, you need to run the command again.
-
-
-##### Target Framework
-
-Since MAUI Applications have multiple target frameworks, you need to select the target framework before running the application. You can select the target framework from the context menu of the Solution Runner.
-
-
-
-
-##### Running with ABP Studio
-You can start the MAUI application with the solution runner. You can click the start button of the MAUI application in the solution runner tree. It will start the application on the selected target framework. Since they're not running on a process and they're running on a device, you can't see them as running state in the solution runner. After the application is deployed, it'll be opened on the device and it'll be shown as stopped in the solution runner.
-
----
-
-#### Development on MAUI Application
-
-You can follow [Mobile Application Development Tutorial - MAUI](../../tutorials/mobile/maui) to learn how to develop on MAUI Application.
-
-### The React Native Application
-
-This is the mobile application that is built based on Facebook's [React Native framework](https://reactnative.dev/) and [Expo](https://expo.dev/). It will be in the solution only if you've selected React Native as your mobile application option.
-
-#### Project Structure
-- **Environment.ts**: file using for providing application level variables like `apiUrl`, `oAuthConfig` and etc.
-
-- **api**: The `api` folder contains HTTP request files that simplify API management in the React Native starter template
- - `API.ts:` exports **axiosInstance**. It provides axios instance filled api url.
-
-- **components**: In the `components` folder, you can reach built in react native components that you can use in your app. These components **facilitates** your list, select and etc. operations.
-
-- **contexts**: `contexts` folder contains [react context](https://react.dev/reference/react/createContext). You can expots your contexts in this folder. `Localization context provided in here`
-
-- **hocs**: this folder is added to contain higher order components. The purpose is to wrap components with additional features or properties. It initially has a `PermissionHoc.tsx` that wraps a component to check the permission grant status.
-
-- **hooks**: covers the react native hooks where you can get a reference from [the official documentation](https://react.dev/reference/react/hooks).
-
-- **interceptors**: initializes a file called `APIInterceptor.ts` that has a function to manage the http operations in a better way.
-
-- **navigators**: folder contains [react-native stacks](https://reactnavigation.org/docs/stack-navigator/). After creating a new *FeatureName*Navigator we need to provide in `DrawerNavigator.ts` file as `Drawer.Screen`
-
-- **screens**: folder has the content of navigated page. We will pass as component property to [Stack.Screen](https://reactnavigation.org/docs/native-stack-navigator/)
-
-- **store**: folder manages state-management operations. We will define `actions`, `listeners`, `reducers`, and `selectors` here.
-
-- **styles**: folder contains app styles. `system-style.ts` comes built in template we can also add new styles.
-
-- **utils**: folder contains helper functions that we can use in application
-
-#### Running the Application
-
-React Native applications can't be run with the solution runner. You need to run them with the React Native CLI. You can check the [React Native documentation](https://reactnative.dev/docs/environment-setup) to learn how to setup the environment for React Native development.
-
-Before running the React Native application, the rest of the applications in the solution must be running. Such as AuthServer, MobileGateway and the microservices.
-
-Then you can run the React Native application by following this documentation: [Getting Started with the React Native](../../framework/ui/react-native/index.md).
\ No newline at end of file
+Use the ports assigned to `MobileGateway` and `AuthServer` in your generated solution.
diff --git a/docs/en/solution-templates/microservice/overview.md b/docs/en/solution-templates/microservice/overview.md
index fc322565c3..5d1438f22c 100644
--- a/docs/en/solution-templates/microservice/overview.md
+++ b/docs/en/solution-templates/microservice/overview.md
@@ -1,7 +1,7 @@
```json
//[doc-seo]
{
- "Description": "Explore the Microservice solution template for ABP Framework, featuring pre-installed libraries and services for seamless development and production."
+ "Description": "Explore the modern ABP microservice solution template, featuring React-based web apps, API gateways, and pre-installed libraries and services for development and production."
}
```
@@ -21,6 +21,8 @@
In this document, you will learn what the Microservice solution template offers to you.
+This page describes the current modern microservice template. In this template family, the web layer supports `React` or `No UI`.
+
## The Big Picture

@@ -45,9 +47,8 @@ All the following **libraries and services** are **pre-installed** and **configu
The following features are built and pre-configured for you in the solution.
* **Authentication** is fully configured based on best practices;
- * **JWT Bearer Authentication** for microservices and applications.
- * **OpenId Connect Authentication**, if you have selected the MVC UI.
- * **Authorization code flow** is implemented, if you have selected a SPA UI (Angular or Blazor WASM).
+ * **JWT Bearer Authentication** for microservices and gateways.
+ * **OpenId Connect / authorization code flow** for the React web applications (`react`, `react-admin-console`, and `react-public-web` when enabled).
* Other flows (resource owner password, client credentials...) are easy to use when you need them.
* **[Permission](../../framework/fundamentals/authorization/index.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use.
* **[Background job system](../../framework/infrastructure/background-jobs/index.md)** with [RabbitMQ integrated](../../framework/infrastructure/background-jobs/rabbitmq.md).
@@ -98,21 +99,22 @@ There are two database provider options are provided on a new microservice solut
### UI Frameworks
-The solution comes with a main web application with the following UI Framework options:
+The current modern microservice template supports the following web options:
+
+* **None**: Doesn't include the React web applications.
+* **React**: Creates the web application set for the solution.
+
+When you select **React**, ABP Studio creates:
-* **None** (doesn't include a web application to the solution)
-* **Angular**
-* **MVC / Razor Pages UI**
-* **Blazor WebAssembly**
-* **Blazor Server**
-* **MAUI with Blazor (Hybrid)**
+* `apps/react` as the main SPA behind the `web` gateway.
+* `apps/react-admin-console` as the dedicated administration SPA.
+* `apps/react-public-web` as an additional public site when the *Public Website* option is enabled.
### The Mobile Application
-If you prefer, the solution includes a mobile application with its dedicated API Gateway. The mobile application is fully integrated to the system, implements authentication (login) and other ABP features, and includes a few screens that you can use and take as example. The following options are available:
+If you prefer, the solution includes a mobile application with its dedicated API Gateway. The mobile application is fully integrated to the system, implements authentication (login) and other ABP features, and includes a few screens that you can use and take as example. In the current modern template, the available options are:
* **None** (doesn't include a mobile application to the solution)
-* **MAUI**
* **React Native**
### Multi-Tenancy & SaaS Module
diff --git a/docs/en/solution-templates/microservice/solution-structure.md b/docs/en/solution-templates/microservice/solution-structure.md
index 90fd211136..efca1a2f44 100644
--- a/docs/en/solution-templates/microservice/solution-structure.md
+++ b/docs/en/solution-templates/microservice/solution-structure.md
@@ -1,7 +1,7 @@
```json
//[doc-seo]
{
- "Description": "Explore the folder structure of ABP Studio's microservice solution template, essential for effective project organization and development."
+ "Description": "Explore the folder structure of ABP Studio's modern microservice solution template, including its React apps, gateways, and services."
}
```
@@ -23,15 +23,17 @@ This document explains the solution and folder structure of ABP Studio's [micros
> This document assumes that you've created a new microservice solution by following the *[Quick Start: Creating a Microservice Solution with ABP Studio](../../get-started/microservice.md)* guide.
+The current modern template uses React-based web applications. Older MVC, Angular, Blazor, and MAUI web app layouts are not part of this structure.
+
## Understanding the ABP Solution Structure
When you create a new microservice solution, you will see a tree structure similar to the one below in the *Solution Explorer* panel:

-Each leaf item (e.g. `Acme.CloudCrm.IdentityService`, `Acme.CloudCrm.Web`, `Acme.CloudCrm.WebGateway`...) in the tree above is an **ABP Studio module**. An ABP Studio module can be a web application, an API gateway, a microservice, a console application or whatever .NET allows you to build. They are grouped into **folders** (`apps`, `gateways` and `services`) in that solution.
+Each leaf item in the tree above is an **ABP Studio module**. They are grouped into **folders** (`apps`, `gateways` and `services`) in that solution.
-**Each ABP Studio module has a separate .NET solution**; this allows your team to develop them individually, in keeping with the nature of the microservices architecture.
+The .NET-based modules, such as `auth-server`, gateways, and backend services, keep their own .NET solution structure. Frontend applications such as `react`, `react-admin-console`, and `react-public-web` live in their own frontend folders.
> Refer to the *[Concepts](../../studio/concepts.md)* document for a full definition of ABP Studio solution, module and package terms.
@@ -48,13 +50,21 @@ The root folder of the solution will be similar to the following:
The folder structure basically matches to the solution in ABP Studio's *Solution Explorer*:
* `.abpstudio` folder contains your personal preferences for this solution and it is not added to your source control system (Git ignored). It is created and used by ABP Studio.
-* `app` folder contains the applications that has a UI and typically used by the end users of your system.
+* `apps` folder contains the applications of the solution:
+ * `auth-server` is the authentication server based on OpenIddict.
+ * `react` is the main React SPA when the web UI is enabled.
+ * `react-admin-console` is the dedicated administration SPA when the web UI is enabled.
+ * `react-public-web` is the optional public-facing site.
+ * `mobile/react-native` is the optional mobile application.
* `etc` folder contains some additional files for the solution. It has the following sub-folders:
* `abp-studio` folder contains settings that are managed by ABP Studio. This folder is added to your source control system and shared between developers.
* `docker` folder contains docker-compose configuration to easily run infrastructure dependencies (e.g. RabbitMQ, Redis) of the solution on your local computer.
* `helm` folder contains all the Helm charts and related scripts to deploy the solution to Kubernetes.
- * `k8s` folder contains some additional files to setup *Kubernetes Dashboard* on your local machine.
-* `gateways` folder contains one or more API Gateways (the count depends on if you've selected mobile application or other applications if available). This solution implements the [BFF](https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends) (Backend for frontend pattern), that means it has a dedicated API Gateway for each different UI application.
+ * `scripts` folder contains helper scripts for initializing and running the solution.
+* `gateways` folder contains one or more API Gateways. This solution implements the [BFF](https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends) pattern, so it has a dedicated API Gateway for each different client type:
+ * `web` is the gateway for `react`.
+ * `public` is the gateway for `react-public-web`, when the public website is enabled.
+ * `mobile` is the gateway for the React Native application, when mobile is enabled.
* `services` folder contains the microservices. The microservice count varies based on the options you've selected during the solution creation. However, the following microservices are always included:
- * `administration` microservice is used to manage permissions, languages and other fundamental settings of the system.
- * `identity` microservice is used to manage users, roles and their permissions. It basically serves to the [Identity](../../modules/identity.md) module's UI (and [OpenIddict](../../modules/openiddict.md) module's UI, if selected).
\ No newline at end of file
+ * `administration` microservice manages permissions, settings, features, and other operational capabilities used by the solution.
+ * `identity` microservice manages users, roles, and related identity/OpenIddict endpoints used by the web applications.
diff --git a/docs/en/solution-templates/microservice/web-applications.md b/docs/en/solution-templates/microservice/web-applications.md
index 6c50a7801a..4e9e7eea0c 100644
--- a/docs/en/solution-templates/microservice/web-applications.md
+++ b/docs/en/solution-templates/microservice/web-applications.md
@@ -1,7 +1,7 @@
```json
//[doc-seo]
{
- "Description": "Explore the ABP Framework's microservice solution template, featuring integrated web applications and API gateways for seamless development."
+ "Description": "Explore the web applications in ABP Studio's modern microservice solution template, including react, react-admin-console, react-public-web, and AuthServer."
}
```
@@ -19,15 +19,9 @@
> You must have an ABP Business or a higher license to be able to create a microservice solution.
-The ABP Studio microservice solution template contains a few web applications. These applications are fully integrated to the solution, uses the [microservices](microservices.md) through the [API gateways](api-gateways.md).
+The current ABP Studio microservice solution template uses React-based web applications. These applications are fully integrated to the solution and use the [microservices](microservices.md) through the [API gateways](api-gateways.md).
-The following figure shows the application in the *[Solution Explorer](../../studio/solution-explorer.md)* pane of ABP Studio:
-
-
-
-
-
-Count and types of the web applications depends on the options you've selected while [creating your solution](../../get-started/microservice.md). This document introduces and explains all the pre-built web applications included in the microservice solution template.
+Count and type of the web applications depend on the options you've selected while [creating your solution](../../get-started/microservice.md). This document introduces the pre-built web applications included in the current modern microservice template.
## AuthServer
@@ -35,7 +29,7 @@ Count and types of the web applications depends on the options you've selected w
The `AuthServer` application is also used by microservices as Authority for JWT Bearer Authentication.
-> You normally do not directly browse this application. It is used by the other applications to authenticate the users and applications..
+> You normally do not directly browse this application. It is used by the other applications to authenticate users and applications.
The following screenshot was taken from the *Login* page of the [Account](../../modules/account.md) module in the application's UI:
@@ -43,40 +37,42 @@ The following screenshot was taken from the *Login* page of the [Account](../../
That application is mainly based on the [OpenIddict](../../modules/openiddict.md), the [Identity](../../modules/identity.md), and the [Account](../../modules/account.md) modules. So, it basically has login, register, forgot password, two factor authentication and other authentication related pages.
-## The Main Web Application (optional)
-
-This is the main web application of the solution. It uses the `Acme.CloudCrm.AuthServer` application as the [API gateway](api-gateways.md). It also uses the Authentication Server application to make users login.
+## `react`
-The following screenshot was taken from the *Role Management* page of the [Identity](../../modules/identity.md) module in the web application's UI:
+`apps/react` is the main authenticated React SPA of the solution. It talks to backend services through the `web` [API gateway](api-gateways.md) and uses `AuthServer` for user login.
-
+This application is the main user-facing web UI for the solution. In the generated route configuration, it can also deep-link users to the separate `react-admin-console` application for operational and administration tasks.
-The following options are provided while [creating the solution](../../get-started/microservice.md):
+If you choose `No UI` while creating the solution, ABP Studio doesn't generate `apps/react`.
-* MVC / Razor Pages UI
-* Angular
-* Blazor WebAssembly
-* Blazor Server
-* MAUI Blazor (Hybrid)
+## `react-admin-console`
-The following sections explain each of these UI types.
+`apps/react-admin-console` is the dedicated administration SPA. It uses the `/admin-console/` base path and focuses on back-office and operational capabilities such as:
-### MVC / Razor Pages Web Application
+* account management
+* users, roles, claim types, and organization units
+* tenants and editions
+* OpenIddict applications and scopes
+* settings, audit logs, and optional module UIs
-`Acme.CloudCrm.Web` module is created if you've selected the MVC / Razor Pages UI while creating the solution. It has own .NET solution that is located under the `apps/web` folder of the solution root.
+The route list is filtered by backend permissions and by which backend modules are actually available.
-### Angular Web Application
+## `Volo.Abp.AdminConsole` Backend Role
-If you've selected the Angular UI while creating your solution, a folder named `angular` is included in the `apps` folder of the solution. That folder contains the main web application of the solution that is implemented using Angular.
+`Volo.Abp.AdminConsole` is the backend-side companion for the admin console when you host it from an ASP.NET Core application. It is responsible for:
-### Blazor WebAssembly Web Application
+* serving the admin console under `/admin-console`
+* exposing runtime configuration from `/admin-console/api/config`
+* exposing module discovery from `/admin-console/api/modules`
+* applying branding, theme, localization, and customization settings for the admin console
+* optionally redirecting `/` to `/admin-console`
-If you've selected the Blazor WebAssembly UI while creating your solution, `Acme.CloudCrm.Blazor` project is included in the `apps` folder of the solution. That folder contains the main web application of the solution that is implemented using Blazor WebAssembly.
+The standalone `react-admin-console` app follows the same `/admin-console` route and OIDC conventions, so the frontend and backend pieces stay aligned.
-### Blazor Server Web Application
+## `react-public-web`
-If you've selected the Blazor Server UI while creating your solution, `Acme.CloudCrm.Blazor` project is included in the `apps` folder of the solution. That folder contains the main web application of the solution that is implemented using Blazor Server.
+When you enable the *Public Website* option, ABP Studio creates `apps/react-public-web`. This is a separate public-facing React application behind the `public` gateway.
-### MAUI Blazor (Hybrid) Web Application
+Use this application for anonymous or customer-facing traffic. Keep authenticated operational flows in `react` and `react-admin-console`.
-If you've selected the MAUI Blazor (Hybrid) UI while creating your solution, `Acme.CloudCrm.MauiBlazor` project is included in the `apps` folder of the solution. That folder contains the main desktop application of the solution that is implemented using MAUI Blazor (Hybrid) that uses existing Blazor UI Implementation.
+`react-public-web` can still participate in authentication flows when needed, but its role is different from the back-office applications: it is the public entry point, not the administration surface.
diff --git a/docs/en/solution-templates/modular-monolith/index.md b/docs/en/solution-templates/modular-monolith/index.md
new file mode 100644
index 0000000000..a49a268bc7
--- /dev/null
+++ b/docs/en/solution-templates/modular-monolith/index.md
@@ -0,0 +1,62 @@
+```json
+//[doc-seo]
+{
+ "Description": "Learn how ABP Studio's modern Modular Monolith solution template organizes a main application and reusable modules in a single deployable solution."
+}
+```
+
+# ABP Studio: Modular Monolith Solution Template
+
+````json
+//[doc-nav]
+{
+ "Previous": {
+ "Name": "Layered Solution",
+ "Path": "solution-templates/layered-web-application/index.md"
+ },
+ "Next": {
+ "Name": "Microservice Solution",
+ "Path": "solution-templates/microservice/index.md"
+ }
+}
+````
+
+ABP Studio's modern solution wizard includes a dedicated **Modular Monolith** architecture. Under the hood, it uses the modern no-layers application template for the main application, then enables modularity automatically.
+
+> **This page documents the modern modular monolith path. If you are working with the classic template family, see the [Solution Template Selection Guide](../guide.md) for the host + module composition approach.**
+
+## What ABP Studio Creates
+
+When you choose `Modular Monolith` in the modern solution wizard, ABP Studio:
+
+* creates the main application by using the modern no-layers host template.
+* locks the solution into modular mode.
+* creates a `main` folder in the solution model and moves the main application into it.
+* creates a `modules` folder for reusable module solutions.
+* lets you add additional modules during solution creation and optionally install them into the main application immediately.
+
+## Typical Layout
+
+In ABP Studio's *Solution Explorer*, the solution is organized around these areas:
+
+* `main`: the main application and its host-side assets.
+* `modules`: one module solution per business capability.
+* `etc`: shared infrastructure, run profiles, and deployment files.
+
+Additional modules are generated under the solution's `modules/` directory, while the main application remains the single deployable host.
+
+## How Modules Fit In
+
+The module solutions created for a modular monolith use the same reusable module concepts documented in the [Application Module Template](../application-module/index.md) page.
+
+Use this template when you want:
+
+* clear module boundaries without a distributed deployment model.
+* separate module solutions for teams or business domains.
+* a monolith today, with a cleaner path toward microservices later.
+
+## See Also
+
+* [Solution Template Selection Guide](../guide.md)
+* [Application Module Template](../application-module/index.md)
+* [Modular Monolith Application Development Tutorial](../../tutorials/modular-crm/index.md)
diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md
index dcfa904fe0..c07b95d054 100644
--- a/docs/en/studio/release-notes.md
+++ b/docs/en/studio/release-notes.md
@@ -9,7 +9,26 @@
This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version.
-## 3.0.1 (2026-05-06) Latest
+## 3.0.3 (2026-05-20) Latest
+
+* AI Agent Upgrades: Added browser automation tools and overall performance fixes
+* React Language Fix: Fixed language and localization settings being ignored in React templates
+* Admin Console Polish: Added icon support and visual enhancements to the React sidebar
+* Admin Mode Drag & Drop: Fixed solution file drag-and-drop when running as Administrator on Windows
+* Project Wizard Improvements: Added helpful guidance texts for modularity and options steps
+* User & Security Fixes: Enhanced user management and fixed account-linking login permissions
+* UI & System Tweaks: Polished modal window styles and resolved minor background template issues
+
+## 3.0.2 (2026-05-12)
+
+* AI Agent Enhancements: Optimized the core system prompt and continued overall agent improvements
+* Elsa Workflow Integration: Added Volo.Abp.Elsa to the available module selection list
+* Enhanced Security: Added automatic reCAPTCHA registration for CMS Kit contact forms in API templates
+* macOS Template Fix: Resolved compatibility issues specifically affecting modern templates on macOS
+* Dark Theme Polish: Updated the dark mode with a lighter, more balanced background color contrast
+* Template Configuration Fixes: Automatically configured missing root URL settings and improved initial task warning handling
+
+## 3.0.1 (2026-05-06)
* Enhanced Project Wizard: Fixed the optional module selection step for a smoother project setup experience
* React Admin Console Improvements: Resolved identified issues in the React administration templates for better stability
diff --git a/docs/en/studio/version-mapping.md b/docs/en/studio/version-mapping.md
index 209413d5dd..14098122c2 100644
--- a/docs/en/studio/version-mapping.md
+++ b/docs/en/studio/version-mapping.md
@@ -11,7 +11,8 @@ This document provides a general overview of the relationship between various ve
| **ABP Studio Version** | **ABP Version of Startup Template** |
|------------------------|---------------------------|
-| 2.2.7 - 3.0.1 | 10.3.0 |
+| 3.0.3 | 10.4.0 |
+| 2.2.7 - 3.0.2 | 10.3.0 |
| 2.2.5 - 2.2.6 | 10.2.0 |
| 2.2.2 - 2.2.4 | 10.1.1 |
| 2.2.1 | 10.1.0 |
diff --git a/docs/en/suite/create-solution.md b/docs/en/suite/create-solution.md
index 39d3fb925e..1ec5a799cd 100644
--- a/docs/en/suite/create-solution.md
+++ b/docs/en/suite/create-solution.md
@@ -25,4 +25,6 @@
From ABP Suite v8.3, **create a new solution** option has been removed. Instead, it's suggessted to use [ABP Studio](../studio/index.md) or [ABP CLI](../cli/index.md) to create a new solution. After, creating an ABP Solution, then you can generate CRUD pages via ABP Suite as always.
+> **Note:** ABP Suite does not generate React UI pages. If you create a modern React solution, use Suite where applicable for backend and application-layer generation, and develop the React UI in the source-owned [React UI](../framework/ui/react/index.md) application. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages more easily.
+
> ABP Studio has a shortcut for running [ABP Suite](./index.md) to allow using it without starting it externally and using it on a browser, which means you can create, manage, deploy your applications in a single desktop application and also generate CRUD pages via Suite as a pre-integrated application to ABP Studio.
\ No newline at end of file
diff --git a/docs/en/suite/creating-many-to-many-relationship.md b/docs/en/suite/creating-many-to-many-relationship.md
index f711c2a891..005cab9896 100644
--- a/docs/en/suite/creating-many-to-many-relationship.md
+++ b/docs/en/suite/creating-many-to-many-relationship.md
@@ -75,4 +75,6 @@ Click the **Navigations** tab. Then click the **Add navigation collection** butt
The below image is the final page created by ABP Suite. The **new book** dialog has a **Categories** tab which lists all categories of the book and allows add/remove categories.
+> **Note:** ABP Suite does not generate React UI for this page. The generated UI applies to Suite-supported UI stacks such as MVC, Blazor and Angular. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages more easily.
+

diff --git a/docs/en/suite/creating-master-detail-relationship.md b/docs/en/suite/creating-master-detail-relationship.md
index b1d8874d5b..94bda1b7fa 100644
--- a/docs/en/suite/creating-master-detail-relationship.md
+++ b/docs/en/suite/creating-master-detail-relationship.md
@@ -39,6 +39,8 @@ You need to specify the **Entity type** as _Master_ (default). Then, provide the
Create a child entity, specify the **Entity type** as _Child_, and associate it with a master entity. In the figure above, you can see an example of, a child entity **OrderLine** with the associated master entity **Order**. When you specify the **Entity type** as _Child_, then the UI and tests will not be generated for the child entity and instead, all of the orchestration of the entity will be delegated to its master entity.
+> **Note:** ABP Suite does not generate React UI for master-detail pages. The generated UI applies to Suite-supported UI stacks such as MVC, Blazor and Angular. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages more easily.
+
Application services will be generated for the child entity, so it's possible for you to consume its endpoints and create-update-list or delete the child entity specifically. Suite also respects your multi-tenancy selection and sets the child entity as a multi-tenant entity, if the master entity has multi-tenancy enabled.
> **Note**: Child entities are not a good candidate to establish a many-to-many relationship and therefore that's disabled in the Suite UI. So, you can't create a many-to-many relationship for child entities, but you can create a one-to-many relationship.
diff --git a/docs/en/suite/customizing-the-generated-code.md b/docs/en/suite/customizing-the-generated-code.md
index e5061ca700..350405ddb0 100644
--- a/docs/en/suite/customizing-the-generated-code.md
+++ b/docs/en/suite/customizing-the-generated-code.md
@@ -58,6 +58,8 @@ You can see the example below, which demonstrates defining a new method in the `
For the UI side, ABP Suite provides convenient comment placeholders within pages for MVC, Blazor, and Angular UIs. These comment sections serve as hook points where you can add your custom code. By placing your custom logic with these hook points, you can enhance the UI to your needs without the fear of losing your changes during the next CRUD page generation.
+> **Note:** ABP Suite does not generate React UI pages or React customization hook points. React UI is part of ABP's modern template system and is customized directly in the source-owned [React UI](../framework/ui/react/index.md) application. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages and customize them more easily.
+
### Customizations on MVC UI
If you have created your application with MVC UI, you can see the extended classes for _the code-behind classes of your pages_, under the `Pages` folder:
diff --git a/docs/en/suite/editing-templates.md b/docs/en/suite/editing-templates.md
index 354adc8ead..dd91fee86c 100644
--- a/docs/en/suite/editing-templates.md
+++ b/docs/en/suite/editing-templates.md
@@ -16,6 +16,8 @@ The are 2 template filters:
1. **UI**: You can switch between `Angular`, `MVC` and `Blazor` templates.
2. **Database provider:** You can switch between `EF Core` and `MongoDb` templates.
+> **Note:** ABP Suite does not include React UI templates or generate React client-side code. React UI belongs to the modern template system and should be developed in the source-owned [React UI](../framework/ui/react/index.md) application. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages more easily.
+
These filters are automatically selected based on your ABP solution. The selected solution is shown on the top right of the page. In the current screenshot it is "Acme.BookStore".
ABP Suite templates are embedded resources which are stored in the `Volo.Abp.Commercial.SuiteTemplates` package. When you update your project, Suite templates are also being updated. To be able to generate the correct code for your project, the version of `Volo.Abp.Commercial.SuiteTemplates` must be the same as your Suite version.
diff --git a/docs/en/suite/generating-crud-page.md b/docs/en/suite/generating-crud-page.md
index 8c605418e8..3325e8c03c 100644
--- a/docs/en/suite/generating-crud-page.md
+++ b/docs/en/suite/generating-crud-page.md
@@ -108,7 +108,9 @@ To create a new entity, make sure the *-New entity-* is selected in the **Entity
* **Update database:** When you add a new migration, ABP Suite can automatically execute update-database command so that the changes are being applied to the database.
-* **Create user interface:** Creates pages, modals, components, `JavaScript`, `CSS ` files and adds the new page to the main menu. If you don't have a requirement to manage the entity via user interface, you can uncheck this option.
+* **Create user interface:** Creates pages, modals, components, `JavaScript`, `CSS` files and adds the new page to the main menu. If you don't have a requirement to manage the entity via user interface, you can uncheck this option.
+
+ > **Note:** This option does not generate React UI pages. ABP Suite's UI generation targets Suite-supported UI stacks such as MVC, Blazor and Angular. For React-based solutions, build the UI in the source-owned [React UI](../framework/ui/react/index.md) application. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages more easily.
* **Excel export**: Creates a button that exports a list of all the data that were added to the entity to an Excel file.
diff --git a/docs/en/suite/index.md b/docs/en/suite/index.md
index b1c8d43fa7..d24b36af5a 100644
--- a/docs/en/suite/index.md
+++ b/docs/en/suite/index.md
@@ -21,6 +21,8 @@
ABP Suite is a complementary tool to the ABP Platform. ABP Suite allows you to build web pages in a matter of minutes.
+> **Important:** ABP Suite does not generate React UI pages or client-side React code. Its CRUD UI generation is designed for the established Suite-supported UI stacks, such as MVC, Blazor and Angular. The new [React UI](../framework/ui/react/index.md) belongs to ABP's modern template system and is designed for an AI-first, AI-oriented development flow with a modern frontend stack such as React, TypeScript, Vite, TanStack Router, TanStack Query, shadcn/ui, Zod and React Hook Form. In React UI solutions, ABP Suite can still be useful for the backend and application layers where applicable, but the React UI side is expected to be developed in the source-owned React application. ABP license holders can use [ABP Studio AI Agent](https://abp.io/studio/ai-agent) with predefined AI credits to generate React pages and evolve the UI more easily.
+
It's a .NET Core Global tool that can be installed from the command line. If you are using [ABP Studio](../studio/index.md), you don't even need to install it because it should already be installed, when you first installed the [ABP Studio](../studio/index.md).
By using the ABP Suite, you can generate CRUD pages from the database to the front-end and directly get a kickstart for your application. ABP Suite is actively developed and new features are being added version by version according to the roadmap and your feedback.
diff --git a/docs/en/testing/ui-tests.md b/docs/en/testing/ui-tests.md
index ac9e6eb91f..f8256ac2b1 100644
--- a/docs/en/testing/ui-tests.md
+++ b/docs/en/testing/ui-tests.md
@@ -34,6 +34,7 @@ See the following documents to learn Non Visual UI Testing:
* [Testing in ASP.NET Core MVC / Razor Pages](../framework/ui/mvc-razor-pages/testing.md)
* [Testing in Angular](../framework/ui/angular/testing.md)
* [Testing in Blazor](../framework/ui/blazor/testing.md)
+* [Testing in React](../framework/ui/react/unit-testing.md)
## Visual Tests
diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs
index d23273e7a2..13c6f92d94 100644
--- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs
+++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/AuthenticatedSimpleStateCheckerSerializerContributor.cs
@@ -10,7 +10,7 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor :
{
public const string CheckerShortName = "A";
- public string? SerializeToJson(ISimpleStateChecker checker)
+ public string? SerializeToJson(ISimpleStateChecker checker)
where TState : IHasSimpleStateCheckers
{
if (checker is not RequireAuthenticatedSimpleStateChecker)
@@ -25,6 +25,10 @@ public class AuthenticatedSimpleStateCheckerSerializerContributor :
return jsonObject.ToJsonString();
}
+ public string? SerializeToJson(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers
+ => SerializeToJson(checker);
+
public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers
{
diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs
index 1a06b83ed7..61978be6c4 100644
--- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs
+++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionsSimpleStateCheckerSerializerContributor.cs
@@ -20,13 +20,31 @@ public class PermissionsSimpleStateCheckerSerializerContributor :
return null;
}
- var jsonObject = new JsonObject {
+ return BuildJson(permissionsSimpleStateChecker.RequiresAll, permissionsSimpleStateChecker.PermissionNames);
+ }
+
+ public string? SerializeToJson(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers
+ {
+ if (checker is RequirePermissionsSimpleBatchStateChecker batch)
+ {
+ var model = batch.GetModelOrNull(state);
+ return model == null ? null : BuildJson(model.RequiresAll, model.Permissions);
+ }
+
+ return SerializeToJson(checker);
+ }
+
+ private static string BuildJson(bool requiresAll, string[] permissionNames)
+ {
+ var jsonObject = new JsonObject
+ {
["T"] = CheckerShortName,
- ["A"] = permissionsSimpleStateChecker.RequiresAll
+ ["A"] = requiresAll
};
var nameArray = new JsonArray();
- foreach (var permissionName in permissionsSimpleStateChecker.PermissionNames)
+ foreach (var permissionName in permissionNames)
{
nameArray.Add(permissionName);
}
diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs
index 0957f51666..d78e0ceb6f 100644
--- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs
+++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RequirePermissionsSimpleBatchStateChecker.cs
@@ -27,9 +27,12 @@ public class RequirePermissionsSimpleBatchStateChecker : SimpleBatchStat
private readonly List> _models;
+ private readonly Dictionary> _modelsByState;
+
public RequirePermissionsSimpleBatchStateChecker()
{
_models = new List>();
+ _modelsByState = new Dictionary>();
}
public RequirePermissionsSimpleBatchStateChecker AddCheckModels(params RequirePermissionsSimpleBatchStateCheckerModel[] models)
@@ -37,6 +40,13 @@ public class RequirePermissionsSimpleBatchStateChecker : SimpleBatchStat
Check.NotNullOrEmpty(models, nameof(models));
_models.AddRange(models);
+ foreach (var model in models)
+ {
+ if (!_modelsByState.ContainsKey(model.State))
+ {
+ _modelsByState[model.State] = model;
+ }
+ }
return this;
}
@@ -47,6 +57,11 @@ public class RequirePermissionsSimpleBatchStateChecker : SimpleBatchStat
return new DisposeAction(() => _current.Value = previousValue);
}
+ public virtual RequirePermissionsSimpleBatchStateCheckerModel? GetModelOrNull(TState state)
+ {
+ return _modelsByState.TryGetValue(state, out var model) ? model : null;
+ }
+
public override async Task> IsEnabledAsync(SimpleBatchStateCheckerContext context)
{
var permissionChecker = context.ServiceProvider.GetRequiredService();
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
index a594613b44..257e12d0dc 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Net;
using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
@@ -240,14 +241,14 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
using (var response = await client.PostAsync(url, stringContent,
_cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10))))
{
- await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response);
+ await EnsureAbpIoSuccessfulResponseAsync(response);
var result = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize(result).Version;
}
}
- catch (Exception ex)
+ catch (Exception ex) when (ex is not CliUsageException)
{
- Console.WriteLine("Error occured while getting the latest version from {0} : {1}", url, ex.Message);
+ Console.WriteLine("Error occurred while getting the latest version from {0} : {1}", url, ex.Message);
return null;
}
}
@@ -273,17 +274,39 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
using (var response = await client.PostAsync(url, stringContent,
_cliHttpClientFactory.GetCancellationToken(TimeSpan.FromMinutes(10))))
{
- await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response);
+ await EnsureAbpIoSuccessfulResponseAsync(response);
var result = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize(result).Version;
}
}
- catch (Exception)
+ catch (Exception ex) when (ex is not CliUsageException)
{
return null;
}
}
+ private async Task EnsureAbpIoSuccessfulResponseAsync(HttpResponseMessage responseMessage)
+ {
+ if (responseMessage is { StatusCode: HttpStatusCode.Unauthorized or HttpStatusCode.Forbidden })
+ {
+ var message = $"Remote server returns '{(int)responseMessage.StatusCode}-{responseMessage.ReasonPhrase}'. ";
+
+ var serverError = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage);
+ if (!string.IsNullOrWhiteSpace(serverError))
+ {
+ message += serverError + " ";
+ }
+
+ message += $"Authentication or license check failed while accessing {CliUrls.WwwAbpIo}. " +
+ "Please make sure you are logged in with `abp login ` and your ABP commercial license is active and covers the requested version. " +
+ $"You can check your license at {CliUrls.WwwAbpIo}my-organizations";
+
+ throw new CliUsageException(message);
+ }
+
+ await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage);
+ }
+
private async Task IsVersionExists(string templateName, string version)
{
var url = $"{CliUrls.WwwAbpIo}api/download/all-versions?includePreReleases=true";
@@ -313,6 +336,8 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
private async Task DownloadSourceCodeContentAsync(SourceCodeDownloadInputDto input)
{
var url = $"{CliUrls.WwwAbpIo}api/download/{input.Type}/";
+ var isAbpIoDownload = input.TemplateSource.IsNullOrWhiteSpace();
+ var downloadUrl = isAbpIoDownload ? url : input.TemplateSource;
HttpResponseMessage responseMessage = null;
@@ -320,7 +345,7 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
{
var client = _cliHttpClientFactory.CreateClient(timeout: TimeSpan.FromMinutes(5));
- if (input.TemplateSource.IsNullOrWhiteSpace())
+ if (isAbpIoDownload)
{
responseMessage = await client.PostAsync(
url,
@@ -334,24 +359,38 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency
_cliHttpClientFactory.GetCancellationToken());
}
- await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage);
- var resultAsBytes = await responseMessage.Content.ReadAsByteArrayAsync();
- responseMessage.Dispose();
+ if (isAbpIoDownload)
+ {
+ await EnsureAbpIoSuccessfulResponseAsync(responseMessage);
+ }
+ else
+ {
+ await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage);
+ }
- return resultAsBytes;
+ return await responseMessage.Content.ReadAsByteArrayAsync();
}
catch (Exception ex)
{
- if(ex is UserFriendlyException)
+ if (ex is CliUsageException)
+ {
+ throw;
+ }
+
+ if (ex is UserFriendlyException)
{
Logger.LogWarning(ex.Message);
throw;
}
- Console.WriteLine("Error occured while downloading source-code from {0} : {1}{2}{3}", url,
+ Console.WriteLine("Error occurred while downloading source-code from {0} : {1}{2}{3}", downloadUrl,
responseMessage?.ToString(), Environment.NewLine, ex.Message);
throw;
}
+ finally
+ {
+ responseMessage?.Dispose();
+ }
}
private static bool IsNetworkSource(string source)
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler.cs
index fffdb6291f..2cf1e5f6ab 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler.cs
@@ -4,10 +4,11 @@ using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
-using Newtonsoft.Json;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http;
using Volo.Abp.Json;
+using NewtonsoftJsonException = Newtonsoft.Json.JsonException;
+using SystemJsonException = System.Text.Json.JsonException;
namespace Volo.Abp.Cli.ProjectBuilding;
@@ -49,12 +50,11 @@ public class RemoteServiceExceptionHandler : IRemoteServiceExceptionHandler, ITr
RemoteServiceErrorResponse errorResult;
try
{
- errorResult = _jsonSerializer.Deserialize
- (
+ errorResult = _jsonSerializer.Deserialize(
await responseMessage.Content.ReadAsStringAsync()
);
}
- catch (JsonReaderException)
+ catch (Exception ex) when (IsJsonException(ex))
{
return null;
}
@@ -98,4 +98,9 @@ public class RemoteServiceExceptionHandler : IRemoteServiceExceptionHandler, ITr
return sbError.ToString();
}
+
+ private static bool IsJsonException(Exception ex)
+ {
+ return ex is SystemJsonException or NewtonsoftJsonException;
+ }
}
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializer.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializer.cs
index 96c0785d6e..0be80ff319 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializer.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializer.cs
@@ -7,6 +7,10 @@ public interface ISimpleStateCheckerSerializer
public string? Serialize(ISimpleStateChecker checker)
where TState : IHasSimpleStateCheckers;
+
+ public string? Serialize(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers;
+
public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers;
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializerContributor.cs
index 79510024b7..b8c3e4943f 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializerContributor.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/ISimpleStateCheckerSerializerContributor.cs
@@ -7,6 +7,9 @@ public interface ISimpleStateCheckerSerializerContributor
public string? SerializeToJson(ISimpleStateChecker checker)
where TState : IHasSimpleStateCheckers;
+ public string? SerializeToJson(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers;
+
public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers;
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs
index 3d01c3c48d..ffc02d3207 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerManager.cs
@@ -46,7 +46,7 @@ public class SimpleStateCheckerManager : ISimpleStateCheckerManager !x))
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializer.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializer.cs
index 8ae58d16be..bc4004ec89 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializer.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializer.cs
@@ -15,7 +15,7 @@ public class SimpleStateCheckerSerializer :
_contributors = contributors;
}
- public string? Serialize(ISimpleStateChecker checker)
+ public string? Serialize(ISimpleStateChecker checker)
where TState : IHasSimpleStateCheckers
{
foreach (var contributor in _contributors)
@@ -30,6 +30,21 @@ public class SimpleStateCheckerSerializer :
return null;
}
+ public string? Serialize(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers
+ {
+ foreach (var contributor in _contributors)
+ {
+ var result = contributor.SerializeToJson(checker, state);
+ if (result != null)
+ {
+ return result;
+ }
+ }
+
+ return null;
+ }
+
public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers
{
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs
index 8d06c7cfc3..43e8ca0d6c 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs
@@ -8,25 +8,42 @@ namespace Volo.Abp.SimpleStateChecking;
public static class SimpleStateCheckerSerializerExtensions
{
public static string? Serialize(
- this ISimpleStateCheckerSerializer serializer,
+ this ISimpleStateCheckerSerializer serializer,
IList> stateCheckers)
where TState : IHasSimpleStateCheckers
+ {
+ return SerializeCore(stateCheckers, serializer.Serialize);
+ }
+
+ public static string? Serialize(
+ this ISimpleStateCheckerSerializer serializer,
+ IList> stateCheckers,
+ TState state)
+ where TState : IHasSimpleStateCheckers
+ {
+ return SerializeCore(stateCheckers, c => serializer.Serialize(c, state));
+ }
+
+ private static string? SerializeCore(
+ IList> stateCheckers,
+ Func, string?> serializeChecker)
+ where TState : IHasSimpleStateCheckers
{
switch (stateCheckers.Count)
{
case 0:
return null;
case 1:
- var serializedChecker = serializer.Serialize(stateCheckers.Single());
+ var serializedChecker = serializeChecker(stateCheckers.Single());
return serializedChecker != null
? $"[{serializedChecker}]"
: null;
default:
var serializedCheckers = new List(stateCheckers.Count);
-
+
foreach (var stateChecker in stateCheckers)
{
- var serialized = serializer.Serialize(stateChecker);
+ var serialized = serializeChecker(stateChecker);
if (serialized != null)
{
serializedCheckers.Add(serialized);
diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeaturesSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeaturesSimpleStateCheckerSerializerContributor.cs
index 5f652269b5..555a9d32a5 100644
--- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeaturesSimpleStateCheckerSerializerContributor.cs
+++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeaturesSimpleStateCheckerSerializerContributor.cs
@@ -19,13 +19,31 @@ public class FeaturesSimpleStateCheckerSerializerContributor :
return null;
}
- var jsonObject = new JsonObject {
+ return BuildJson(featuresSimpleStateChecker.RequiresAll, featuresSimpleStateChecker.FeatureNames);
+ }
+
+ public string? SerializeToJson(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers
+ {
+ if (checker is RequireFeaturesSimpleBatchStateChecker batch)
+ {
+ var model = batch.GetModelOrNull(state);
+ return model == null ? null : BuildJson(model.RequiresAll, model.FeatureNames);
+ }
+
+ return SerializeToJson(checker);
+ }
+
+ private static string BuildJson(bool requiresAll, string[] featureNames)
+ {
+ var jsonObject = new JsonObject
+ {
["T"] = CheckerShortName,
- ["A"] = featuresSimpleStateChecker.RequiresAll
+ ["A"] = requiresAll
};
var nameArray = new JsonArray();
- foreach (var featureName in featuresSimpleStateChecker.FeatureNames)
+ foreach (var featureName in featureNames)
{
nameArray.Add(featureName);
}
diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker.cs
index 66d484f7f9..5faf1b891a 100644
--- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker.cs
+++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker.cs
@@ -27,9 +27,12 @@ public class RequireFeaturesSimpleBatchStateChecker : SimpleBatchStateCh
private readonly List> _models;
+ private readonly Dictionary> _modelsByState;
+
public RequireFeaturesSimpleBatchStateChecker()
{
_models = new List>();
+ _modelsByState = new Dictionary>();
}
public RequireFeaturesSimpleBatchStateChecker AddCheckModels(
@@ -38,6 +41,13 @@ public class RequireFeaturesSimpleBatchStateChecker : SimpleBatchStateCh
Check.NotNullOrEmpty(models, nameof(models));
_models.AddRange(models);
+ foreach (var model in models)
+ {
+ if (!_modelsByState.ContainsKey(model.State))
+ {
+ _modelsByState[model.State] = model;
+ }
+ }
return this;
}
@@ -48,6 +58,11 @@ public class RequireFeaturesSimpleBatchStateChecker : SimpleBatchStateCh
return new DisposeAction(() => _current.Value = previousValue);
}
+ public virtual RequireFeaturesSimpleBatchStateCheckerModel? GetModelOrNull(TState state)
+ {
+ return _modelsByState.TryGetValue(state, out var model) ? model : null;
+ }
+
public override async Task> IsEnabledAsync(
SimpleBatchStateCheckerContext context)
{
diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeaturesSimpleStateCheckerSerializerContributor.cs b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeaturesSimpleStateCheckerSerializerContributor.cs
index fe8530435b..4063197cf1 100644
--- a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeaturesSimpleStateCheckerSerializerContributor.cs
+++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeaturesSimpleStateCheckerSerializerContributor.cs
@@ -34,6 +34,10 @@ public class GlobalFeaturesSimpleStateCheckerSerializerContributor :
return jsonObject.ToJsonString();
}
+ public string? SerializeToJson(ISimpleStateChecker checker, TState state)
+ where TState : IHasSimpleStateCheckers
+ => SerializeToJson(checker);
+
public ISimpleStateChecker? Deserialize(JsonObject jsonObject, TState state)
where TState : IHasSimpleStateCheckers
{
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpCompressOptions.cs b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpCompressOptions.cs
new file mode 100644
index 0000000000..1c7e029807
--- /dev/null
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpCompressOptions.cs
@@ -0,0 +1,11 @@
+namespace Volo.Abp.Imaging;
+
+public class SkiaSharpCompressOptions
+{
+ public int Quality { get; set; }
+
+ public SkiaSharpCompressOptions()
+ {
+ Quality = 75;
+ }
+}
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageCompressorContributor.cs b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageCompressorContributor.cs
new file mode 100644
index 0000000000..c3117d0461
--- /dev/null
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageCompressorContributor.cs
@@ -0,0 +1,152 @@
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.Options;
+using SkiaSharp;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.Http;
+
+namespace Volo.Abp.Imaging;
+
+public class SkiaSharpImageCompressorContributor : IImageCompressorContributor, ITransientDependency
+{
+ protected SkiaSharpCompressOptions Options { get; }
+
+ public SkiaSharpImageCompressorContributor(IOptions options)
+ {
+ Options = options.Value;
+ }
+
+ public virtual async Task> TryCompressAsync(
+ Stream stream,
+ string? mimeType = null,
+ CancellationToken cancellationToken = default)
+ {
+ if (!string.IsNullOrWhiteSpace(mimeType) && !CanCompress(mimeType))
+ {
+ return new ImageCompressResult(stream, ImageProcessState.Unsupported);
+ }
+
+ var (memoryBitmapStream, memorySkCodecStream) = await CreateMemoryStream(stream, cancellationToken);
+ var originalLength = memoryBitmapStream.Length;
+
+ try
+ {
+ using var codec = SKCodec.Create(memorySkCodecStream);
+ if (codec == null || !CanEncodeFormat(codec.EncodedFormat))
+ {
+ return new ImageCompressResult(stream, ImageProcessState.Unsupported);
+ }
+
+ using var bitmap = SKBitmap.Decode(memoryBitmapStream);
+ if (bitmap == null)
+ {
+ return new ImageCompressResult(stream, ImageProcessState.Unsupported);
+ }
+
+ using var image = SKImage.FromBitmap(bitmap);
+ using var encoded = image.Encode(codec.EncodedFormat, Options.Quality);
+
+ var output = new MemoryStream();
+ try
+ {
+ encoded.SaveTo(output);
+ output.Position = 0;
+
+ if (output.Length < originalLength)
+ {
+ return new ImageCompressResult(output, ImageProcessState.Done);
+ }
+
+ output.Dispose();
+ return new ImageCompressResult(stream, ImageProcessState.Canceled);
+ }
+ catch
+ {
+ output.Dispose();
+ throw;
+ }
+ }
+ finally
+ {
+ memoryBitmapStream.Dispose();
+ memorySkCodecStream.Dispose();
+ }
+ }
+
+ public virtual async Task> TryCompressAsync(
+ byte[] bytes,
+ string? mimeType = null,
+ CancellationToken cancellationToken = default)
+ {
+ if (!string.IsNullOrWhiteSpace(mimeType) && !CanCompress(mimeType))
+ {
+ return new ImageCompressResult(bytes, ImageProcessState.Unsupported);
+ }
+
+ using var ms = new MemoryStream(bytes);
+ var result = await TryCompressAsync(ms, mimeType, cancellationToken);
+
+ if (result.State != ImageProcessState.Done)
+ {
+ return new ImageCompressResult(bytes, result.State);
+ }
+
+ var newBytes = await result.Result.GetAllBytesAsync(cancellationToken);
+ result.Result.Dispose();
+ return new ImageCompressResult(newBytes, result.State);
+ }
+
+ protected virtual bool CanCompress(string? mimeType)
+ {
+ return mimeType switch {
+ MimeTypes.Image.Jpeg => true,
+ MimeTypes.Image.Png => true,
+ MimeTypes.Image.Webp => true,
+ _ => false
+ };
+ }
+
+ protected virtual bool CanEncodeFormat(SKEncodedImageFormat format)
+ {
+ return format switch
+ {
+ SKEncodedImageFormat.Jpeg => true,
+ SKEncodedImageFormat.Png => true,
+ SKEncodedImageFormat.Webp => true,
+ _ => false
+ };
+ }
+
+ protected virtual async Task<(MemoryStream, MemoryStream)> CreateMemoryStream(Stream stream, CancellationToken cancellationToken)
+ {
+ var streamPosition = stream.CanSeek ? stream.Position : 0;
+
+ var memoryBitmapStream = new MemoryStream();
+ var memorySkCodecStream = new MemoryStream();
+
+ try
+ {
+ await stream.CopyToAsync(memoryBitmapStream, cancellationToken);
+
+ if (stream.CanSeek)
+ {
+ stream.Position = streamPosition;
+ }
+
+ memoryBitmapStream.Position = 0;
+ await memoryBitmapStream.CopyToAsync(memorySkCodecStream, cancellationToken);
+
+ memoryBitmapStream.Position = 0;
+ memorySkCodecStream.Position = 0;
+
+ return (memoryBitmapStream, memorySkCodecStream);
+ }
+ catch
+ {
+ memoryBitmapStream.Dispose();
+ memorySkCodecStream.Dispose();
+ throw;
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
index 7a5db23620..dd7da3251a 100644
--- a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
@@ -47,34 +47,76 @@ public class SkiaSharpImageResizerContributor : IImageResizerContributor, ITrans
return new ImageResizeResult(stream, ImageProcessState.Unsupported);
}
- var (memoryBitmapStream, memorySkCodecStream) = await CreateMemoryStream(stream);
-
- using var original = SKBitmap.Decode(memoryBitmapStream);
- using var resized = original.Resize(new SKImageInfo((int)resizeArgs.Width, (int)resizeArgs.Height), Options.SKSamplingOptions);
- using var image = SKImage.FromBitmap(resized);
- using var codec = SKCodec.Create(memorySkCodecStream);
- var memoryStream = new MemoryStream();
- using var skData = image.Encode(codec.EncodedFormat, Options.Quality);
- skData.SaveTo(memoryStream);
- return new ImageResizeResult(memoryStream, ImageProcessState.Done);
+ var (memoryBitmapStream, memorySkCodecStream) = await CreateMemoryStream(stream, cancellationToken);
+
+ try
+ {
+ using var codec = SKCodec.Create(memorySkCodecStream);
+ if (codec == null || !CanEncodeFormat(codec.EncodedFormat))
+ {
+ return new ImageResizeResult(stream, ImageProcessState.Unsupported);
+ }
+
+ using var original = SKBitmap.Decode(memoryBitmapStream);
+ if (original == null)
+ {
+ return new ImageResizeResult(stream, ImageProcessState.Unsupported);
+ }
+
+ using var resized = ApplyResize(original, resizeArgs);
+ using var image = SKImage.FromBitmap(resized);
+
+ var memoryStream = new MemoryStream();
+ try
+ {
+ using var skData = image.Encode(codec.EncodedFormat, Options.Quality);
+ skData.SaveTo(memoryStream);
+ memoryStream.Position = 0;
+ return new ImageResizeResult(memoryStream, ImageProcessState.Done);
+ }
+ catch
+ {
+ memoryStream.Dispose();
+ throw;
+ }
+ }
+ finally
+ {
+ memoryBitmapStream.Dispose();
+ memorySkCodecStream.Dispose();
+ }
}
- protected virtual async Task<(MemoryStream, MemoryStream)> CreateMemoryStream(Stream stream)
+ protected virtual async Task<(MemoryStream, MemoryStream)> CreateMemoryStream(Stream stream, CancellationToken cancellationToken = default)
{
- var streamPosition = stream.Position;
+ var streamPosition = stream.CanSeek ? stream.Position : 0;
var memoryBitmapStream = new MemoryStream();
var memorySkCodecStream = new MemoryStream();
- await stream.CopyToAsync(memoryBitmapStream);
- stream.Position = streamPosition;
- await stream.CopyToAsync(memorySkCodecStream);
- stream.Position = streamPosition;
+ try
+ {
+ await stream.CopyToAsync(memoryBitmapStream, cancellationToken);
+
+ if (stream.CanSeek)
+ {
+ stream.Position = streamPosition;
+ }
+
+ memoryBitmapStream.Position = 0;
+ await memoryBitmapStream.CopyToAsync(memorySkCodecStream, cancellationToken);
- memoryBitmapStream.Position = 0;
- memorySkCodecStream.Position = 0;
+ memoryBitmapStream.Position = 0;
+ memorySkCodecStream.Position = 0;
- return (memoryBitmapStream, memorySkCodecStream);
+ return (memoryBitmapStream, memorySkCodecStream);
+ }
+ catch
+ {
+ memoryBitmapStream.Dispose();
+ memorySkCodecStream.Dispose();
+ throw;
+ }
}
protected virtual bool CanResize(string? mimeType)
@@ -86,4 +128,150 @@ public class SkiaSharpImageResizerContributor : IImageResizerContributor, ITrans
_ => false
};
}
+
+ protected virtual bool CanEncodeFormat(SKEncodedImageFormat format)
+ {
+ return format switch
+ {
+ SKEncodedImageFormat.Jpeg => true,
+ SKEncodedImageFormat.Png => true,
+ SKEncodedImageFormat.Webp => true,
+ _ => false
+ };
+ }
+
+ protected virtual SKBitmap ApplyResize(SKBitmap source, ImageResizeArgs resizeArgs)
+ {
+ var targetWidth = (int)resizeArgs.Width;
+ var targetHeight = (int)resizeArgs.Height;
+
+ if (targetWidth <= 0 && targetHeight <= 0)
+ {
+ return source.Copy();
+ }
+
+ if (targetWidth <= 0)
+ {
+ targetWidth = Math.Max(1, (int)Math.Round((double)source.Width * targetHeight / source.Height));
+ }
+ else if (targetHeight <= 0)
+ {
+ targetHeight = Math.Max(1, (int)Math.Round((double)source.Height * targetWidth / source.Width));
+ }
+
+ var mode = resizeArgs.Mode == ImageResizeMode.Default ? ImageResizeMode.Stretch : resizeArgs.Mode;
+
+ switch (mode)
+ {
+ case ImageResizeMode.None:
+ case ImageResizeMode.Stretch:
+ return source.Resize(new SKImageInfo(targetWidth, targetHeight), Options.SKSamplingOptions);
+
+ case ImageResizeMode.Max:
+ {
+ var scale = Math.Min((double)targetWidth / source.Width, (double)targetHeight / source.Height);
+ var newW = Math.Max(1, (int)Math.Round(source.Width * scale));
+ var newH = Math.Max(1, (int)Math.Round(source.Height * scale));
+ return source.Resize(new SKImageInfo(newW, newH), Options.SKSamplingOptions);
+ }
+
+ case ImageResizeMode.Min:
+ {
+ var scale = Math.Max((double)targetWidth / source.Width, (double)targetHeight / source.Height);
+ var newW = Math.Max(1, (int)Math.Round(source.Width * scale));
+ var newH = Math.Max(1, (int)Math.Round(source.Height * scale));
+ return source.Resize(new SKImageInfo(newW, newH), Options.SKSamplingOptions);
+ }
+
+ case ImageResizeMode.Crop:
+ {
+ var scale = Math.Max((double)targetWidth / source.Width, (double)targetHeight / source.Height);
+ var intermediateW = Math.Max(1, (int)Math.Round(source.Width * scale));
+ var intermediateH = Math.Max(1, (int)Math.Round(source.Height * scale));
+ using var intermediate = source.Resize(new SKImageInfo(intermediateW, intermediateH), Options.SKSamplingOptions);
+
+ var bitmap = new SKBitmap(targetWidth, targetHeight);
+ try
+ {
+ using var canvas = new SKCanvas(bitmap);
+ var srcX = (intermediateW - targetWidth) / 2;
+ var srcY = (intermediateH - targetHeight) / 2;
+ canvas.DrawBitmap(
+ intermediate,
+ new SKRect(srcX, srcY, srcX + targetWidth, srcY + targetHeight),
+ new SKRect(0, 0, targetWidth, targetHeight));
+ return bitmap;
+ }
+ catch
+ {
+ bitmap.Dispose();
+ throw;
+ }
+ }
+
+ case ImageResizeMode.Pad:
+ {
+ var scale = Math.Min((double)targetWidth / source.Width, (double)targetHeight / source.Height);
+ var intermediateW = Math.Max(1, (int)Math.Round(source.Width * scale));
+ var intermediateH = Math.Max(1, (int)Math.Round(source.Height * scale));
+ using var intermediate = source.Resize(new SKImageInfo(intermediateW, intermediateH), Options.SKSamplingOptions);
+
+ var bitmap = new SKBitmap(targetWidth, targetHeight);
+ try
+ {
+ using var canvas = new SKCanvas(bitmap);
+ canvas.Clear(SKColors.Transparent);
+ var dstX = (targetWidth - intermediateW) / 2;
+ var dstY = (targetHeight - intermediateH) / 2;
+ canvas.DrawBitmap(intermediate, new SKPoint(dstX, dstY));
+ return bitmap;
+ }
+ catch
+ {
+ bitmap.Dispose();
+ throw;
+ }
+ }
+
+ case ImageResizeMode.BoxPad:
+ {
+ SKBitmap? scaled = null;
+ try
+ {
+ var working = source;
+ if (source.Width > targetWidth || source.Height > targetHeight)
+ {
+ var scale = Math.Min((double)targetWidth / source.Width, (double)targetHeight / source.Height);
+ var newW = Math.Max(1, (int)Math.Round(source.Width * scale));
+ var newH = Math.Max(1, (int)Math.Round(source.Height * scale));
+ scaled = source.Resize(new SKImageInfo(newW, newH), Options.SKSamplingOptions);
+ working = scaled;
+ }
+
+ var bitmap = new SKBitmap(targetWidth, targetHeight);
+ try
+ {
+ using var canvas = new SKCanvas(bitmap);
+ canvas.Clear(SKColors.Transparent);
+ var dstX = (targetWidth - working.Width) / 2;
+ var dstY = (targetHeight - working.Height) / 2;
+ canvas.DrawBitmap(working, new SKPoint(dstX, dstY));
+ return bitmap;
+ }
+ catch
+ {
+ bitmap.Dispose();
+ throw;
+ }
+ }
+ finally
+ {
+ scaled?.Dispose();
+ }
+ }
+
+ default:
+ throw new NotSupportedException("Resize mode " + resizeArgs.Mode + " is not supported!");
+ }
+ }
}
diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler_Tests.cs b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler_Tests.cs
new file mode 100644
index 0000000000..32e60e9605
--- /dev/null
+++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectBuilding/RemoteServiceExceptionHandler_Tests.cs
@@ -0,0 +1,193 @@
+using System;
+using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Shouldly;
+using Volo.Abp.Cli.ProjectBuilding;
+using Volo.Abp.Json;
+using Volo.Abp.Json.SystemTextJson;
+using Xunit;
+
+namespace Volo.Abp.Cli.ProjectBuilding;
+
+public class RemoteServiceExceptionHandler_Tests
+{
+ private readonly RemoteServiceExceptionHandler _handler;
+
+ public RemoteServiceExceptionHandler_Tests()
+ {
+ var jsonSerializer = new AbpSystemTextJsonSerializer(
+ Microsoft.Extensions.Options.Options.Create(new AbpSystemTextJsonSerializerOptions())
+ );
+ _handler = new RemoteServiceExceptionHandler(jsonSerializer);
+ }
+
+ [Fact]
+ public async Task EnsureSuccessfulHttpResponseAsync_Should_Not_Throw_On_Success()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.OK)
+ {
+ Content = new StringContent("{}")
+ };
+
+ await _handler.EnsureSuccessfulHttpResponseAsync(response);
+ }
+
+ [Fact]
+ public async Task EnsureSuccessfulHttpResponseAsync_Should_Not_Throw_When_Response_Is_Null()
+ {
+ await _handler.EnsureSuccessfulHttpResponseAsync(null);
+ }
+
+ [Fact]
+ public async Task Should_Wrap_Html_Body_Without_Json_Parse_Exception()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ ReasonPhrase = "Forbidden",
+ Content = new StringContent("Forbidden", System.Text.Encoding.UTF8, "text/html")
+ };
+
+ var exception = await Should.ThrowAsync(() => _handler.EnsureSuccessfulHttpResponseAsync(response));
+
+ exception.Message.ShouldContain("403-Forbidden");
+ exception.Message.ShouldNotContain("invalid start of a value");
+ }
+
+ [Fact]
+ public async Task Should_Surface_Server_Error_Message_When_Body_Is_Valid_Json()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ ReasonPhrase = "Forbidden",
+ Content = new StringContent(
+ "{\"error\":{\"code\":\"LicenseExpired\",\"message\":\"Your ABP license has expired.\"}}",
+ System.Text.Encoding.UTF8,
+ "application/json")
+ };
+
+ var exception = await Should.ThrowAsync(() => _handler.EnsureSuccessfulHttpResponseAsync(response));
+
+ exception.Message.ShouldContain("403-Forbidden");
+ exception.Message.ShouldContain("LicenseExpired");
+ exception.Message.ShouldContain("Your ABP license has expired.");
+ }
+
+ [Fact]
+ public async Task Should_Surface_Server_Error_Message_For_5xx_With_Json_Body()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.InternalServerError)
+ {
+ ReasonPhrase = "Internal Server Error",
+ Content = new StringContent(
+ "{\"error\":{\"code\":\"InternalError\",\"message\":\"Database connection failed\"}}",
+ System.Text.Encoding.UTF8,
+ "application/json")
+ };
+
+ var exception = await Should.ThrowAsync(() => _handler.EnsureSuccessfulHttpResponseAsync(response));
+
+ exception.Message.ShouldContain("500-Internal Server Error");
+ exception.Message.ShouldContain("InternalError");
+ exception.Message.ShouldContain("Database connection failed");
+ }
+
+ [Fact]
+ public async Task GetAbpRemoteServiceErrorAsync_Should_Propagate_OperationCanceledException()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ Content = new CanceledStringContent()
+ };
+
+ await Should.ThrowAsync(
+ () => _handler.GetAbpRemoteServiceErrorAsync(response)
+ );
+ }
+
+ [Fact]
+ public async Task GetAbpRemoteServiceErrorAsync_Should_Return_Null_For_Html_Body()
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ Content = new StringContent("", System.Text.Encoding.UTF8, "text/html")
+ };
+
+ var result = await _handler.GetAbpRemoteServiceErrorAsync(response);
+
+ result.ShouldBeNull();
+ }
+
+ [Fact]
+ public async Task GetAbpRemoteServiceErrorAsync_Should_Return_Null_For_Newtonsoft_JsonException()
+ {
+ var handler = new RemoteServiceExceptionHandler(
+ new ThrowingJsonSerializer(new Newtonsoft.Json.JsonException("Invalid JSON"))
+ );
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ Content = new StringContent("{}")
+ };
+
+ var result = await handler.GetAbpRemoteServiceErrorAsync(response);
+
+ result.ShouldBeNull();
+ }
+
+ [Fact]
+ public async Task GetAbpRemoteServiceErrorAsync_Should_Propagate_Non_Json_Exceptions()
+ {
+ var handler = new RemoteServiceExceptionHandler(
+ new ThrowingJsonSerializer(new InvalidOperationException("Unexpected serializer failure"))
+ );
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden)
+ {
+ Content = new StringContent("{}")
+ };
+
+ var exception = await Should.ThrowAsync(
+ () => handler.GetAbpRemoteServiceErrorAsync(response)
+ );
+
+ exception.Message.ShouldBe("Unexpected serializer failure");
+ }
+
+ private class CanceledStringContent : HttpContent
+ {
+ protected override Task SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context)
+ {
+ throw new OperationCanceledException();
+ }
+
+ protected override bool TryComputeLength(out long length)
+ {
+ length = 0;
+ return false;
+ }
+ }
+
+ private class ThrowingJsonSerializer : IJsonSerializer
+ {
+ private readonly Exception _exception;
+
+ public ThrowingJsonSerializer(Exception exception)
+ {
+ _exception = exception;
+ }
+
+ public string Serialize(object obj, bool camelCase = true, bool indented = false)
+ {
+ throw new NotImplementedException();
+ }
+
+ public T Deserialize(string jsonString, bool camelCase = true)
+ {
+ throw _exception;
+ }
+
+ public object Deserialize(Type type, string jsonString, bool camelCase = true)
+ {
+ throw _exception;
+ }
+ }
+}
diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/SimpleStateChecking/SimpleStateChecker_AndCombineResults_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/SimpleStateChecking/SimpleStateChecker_AndCombineResults_Tests.cs
new file mode 100644
index 0000000000..6fdc54b940
--- /dev/null
+++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/SimpleStateChecking/SimpleStateChecker_AndCombineResults_Tests.cs
@@ -0,0 +1,101 @@
+using System.Threading.Tasks;
+using Shouldly;
+using Volo.Abp.DependencyInjection;
+using Xunit;
+
+namespace Volo.Abp.SimpleStateChecking;
+
+public class SimpleStateChecker_AndCombineResults_Tests : SimpleStateCheckerTestBase
+{
+ [Fact]
+ public async Task False_Result_From_One_Batch_Checker_Should_Not_Be_Overwritten_By_Later_True_Checker()
+ {
+ // Regression test for the bug fixed in SimpleStateCheckerManager.IsEnabledAsync:
+ // when a state had multiple batch checkers the manager used to OVERWRITE
+ // result[x.Key] on each checker, so a later "true" silently masked an earlier "false".
+ // The fix AND-combines results.
+ //
+ // To make sure we actually hit the second batch checker (and not the early-return
+ // `result.Values.All(x => !x)` short-circuit), we use two states:
+ // - state1: [falseChecker, trueChecker] - the target case
+ // - state2: [trueChecker] - keeps result.Values not all-false
+ // so the loop continues to the next checker
+
+ var falseChecker = new AlwaysFalseBatchStateChecker();
+ var trueChecker = new AlwaysTrueBatchStateChecker();
+
+ var state1 = new MyStateEntity();
+ state1.AddSimpleStateChecker(falseChecker);
+ state1.AddSimpleStateChecker(trueChecker);
+
+ var state2 = new MyStateEntity();
+ state2.AddSimpleStateChecker(trueChecker);
+
+ var result = await SimpleStateCheckerManager.IsEnabledAsync(new[] { state1, state2 });
+
+ result[state1].ShouldBeFalse(); // before the fix this was True (bug)
+ result[state2].ShouldBeTrue();
+ }
+
+ [Fact]
+ public async Task True_Result_From_One_Batch_Checker_Should_Be_AND_Combined_With_Later_False_Checker()
+ {
+ // Reverse order: true first then false. Add a second always-true state to keep
+ // result.Values not all-false after both checkers ran.
+ var trueChecker = new AlwaysTrueBatchStateChecker();
+ var falseChecker = new AlwaysFalseBatchStateChecker();
+
+ var state1 = new MyStateEntity();
+ state1.AddSimpleStateChecker(trueChecker);
+ state1.AddSimpleStateChecker(falseChecker);
+
+ var state2 = new MyStateEntity();
+ state2.AddSimpleStateChecker(trueChecker);
+
+ var result = await SimpleStateCheckerManager.IsEnabledAsync(new[] { state1, state2 });
+
+ result[state1].ShouldBeFalse();
+ result[state2].ShouldBeTrue();
+ }
+
+ [Fact]
+ public async Task All_True_Batch_Checkers_Should_Produce_True()
+ {
+ var trueChecker1 = new AlwaysTrueBatchStateChecker();
+ var trueChecker2 = new AlwaysTrueBatchStateChecker();
+
+ var state = new MyStateEntity();
+ state.AddSimpleStateChecker(trueChecker1);
+ state.AddSimpleStateChecker(trueChecker2);
+
+ var result = await SimpleStateCheckerManager.IsEnabledAsync(new[] { state });
+
+ result[state].ShouldBeTrue();
+ }
+
+ public class AlwaysFalseBatchStateChecker : SimpleBatchStateCheckerBase, ITransientDependency
+ {
+ public override Task> IsEnabledAsync(SimpleBatchStateCheckerContext context)
+ {
+ var result = new SimpleStateCheckerResult(context.States);
+ foreach (var x in result)
+ {
+ result[x.Key] = false;
+ }
+ return Task.FromResult(result);
+ }
+ }
+
+ public class AlwaysTrueBatchStateChecker : SimpleBatchStateCheckerBase, ITransientDependency
+ {
+ public override Task> IsEnabledAsync(SimpleBatchStateCheckerContext context)
+ {
+ var result = new SimpleStateCheckerResult(context.States);
+ foreach (var x in result)
+ {
+ result[x.Key] = true;
+ }
+ return Task.FromResult(result);
+ }
+ }
+}
diff --git a/framework/test/Volo.Abp.Features.Tests/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker_Tests.cs b/framework/test/Volo.Abp.Features.Tests/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker_Tests.cs
index b0775e70d2..acd961931e 100644
--- a/framework/test/Volo.Abp.Features.Tests/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker_Tests.cs
+++ b/framework/test/Volo.Abp.Features.Tests/Volo/Abp/Features/RequireFeaturesSimpleBatchStateChecker_Tests.cs
@@ -85,6 +85,58 @@ public class RequireFeaturesSimpleBatchStateChecker_Tests : FeatureTestBase
}
}
+ [Fact]
+ public void GetModelOrNull_Returns_First_Win_When_Same_State_Registered_Twice()
+ {
+ // Mirrors IsEnabledAsync's modelLookup behaviour: when the same state is registered
+ // multiple times, the first registration wins. Backed by the dictionary index.
+
+ var checker = new RequireFeaturesSimpleBatchStateChecker();
+ var state = new NamedState("A");
+
+ checker.AddCheckModels(
+ new RequireFeaturesSimpleBatchStateCheckerModel(state, new[] { "First" }, true));
+ checker.AddCheckModels(
+ new RequireFeaturesSimpleBatchStateCheckerModel(state, new[] { "Second" }, true));
+
+ checker.GetModelOrNull(state)!.FeatureNames.ShouldBe(new[] { "First" });
+ }
+
+ [Fact]
+ public void GetModelOrNull_Uses_Same_Equality_As_Runtime()
+ {
+ // The runtime path (IsEnabledAsync) looks up models via HashSet(context.States),
+ // i.e. EqualityComparer.Default. GetModelOrNull must use the same semantics or
+ // a custom TState.Equals would make the runtime gate and the serializer disagree.
+
+ var checker = new RequireFeaturesSimpleBatchStateChecker();
+ var stateA1 = new NamedState("A");
+ var stateA2 = new NamedState("A"); // distinct instance, equal by Name
+ var stateB = new NamedState("B");
+
+ checker.AddCheckModels(
+ new RequireFeaturesSimpleBatchStateCheckerModel(stateA1, new[] { "F1" }, true),
+ new RequireFeaturesSimpleBatchStateCheckerModel(stateB, new[] { "F2" }, true));
+
+ // Same equality semantics as the runtime: A2 hits A1's model.
+ checker.GetModelOrNull(stateA1).ShouldNotBeNull();
+ checker.GetModelOrNull(stateA2).ShouldNotBeNull();
+ checker.GetModelOrNull(stateA2)!.FeatureNames.ShouldBe(new[] { "F1" });
+ checker.GetModelOrNull(new NamedState("missing")).ShouldBeNull();
+ }
+
+ private sealed class NamedState : IHasSimpleStateCheckers, IEquatable
+ {
+ public string Name { get; }
+ public List> StateCheckers { get; } = new();
+
+ public NamedState(string name) => Name = name;
+
+ public bool Equals(NamedState? other) => other is not null && other.Name == Name;
+ public override bool Equals(object? obj) => obj is NamedState other && Equals(other);
+ public override int GetHashCode() => Name.GetHashCode();
+ }
+
[Fact]
public async Task Current_Should_Not_Be_Null_In_Fresh_ExecutionContext()
{
diff --git a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.gif b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.gif
new file mode 100644
index 0000000000..27f6a1e4dc
Binary files /dev/null and b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/Files/abp.gif differ
diff --git a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/ImageFileHelper.cs b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/ImageFileHelper.cs
index de249fb2e5..2696bcbd3b 100644
--- a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/ImageFileHelper.cs
+++ b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo/Abp/Imaging/ImageFileHelper.cs
@@ -19,7 +19,12 @@ public static class ImageFileHelper
{
return GetTestFileStream("abp.webp");
}
-
+
+ public static Stream GetGifTestFileStream()
+ {
+ return GetTestFileStream("abp.gif");
+ }
+
private static Stream GetTestFileStream(string fileName)
{
var assembly = typeof(ImageFileHelper).Assembly;
diff --git a/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageCompressorTests.cs b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageCompressorTests.cs
new file mode 100644
index 0000000000..4c575d9f04
--- /dev/null
+++ b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageCompressorTests.cs
@@ -0,0 +1,179 @@
+using System;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.Extensions.DependencyInjection;
+using Shouldly;
+using Xunit;
+
+namespace Volo.Abp.Imaging;
+
+public class SkiaSharpImageCompressorTests : AbpImagingSkiaSharpTestBase
+{
+ public IImageCompressor ImageCompressor { get; }
+
+ public SkiaSharpImageCompressorTests()
+ {
+ ImageCompressor = GetRequiredService();
+ }
+
+ protected override void AfterAddApplication(IServiceCollection services)
+ {
+ services.Configure(options =>
+ {
+ options.Quality = 50;
+ });
+
+ base.AfterAddApplication(services);
+ }
+
+ [Fact]
+ public async Task Should_Compress_Jpg()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var compressedImage = await ImageCompressor.CompressAsync(jpegImage);
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBe(ImageProcessState.Done);
+ compressedImage.Result.Length.ShouldBeLessThan(jpegImage.Length);
+ compressedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Compress_Png()
+ {
+ await using var pngImage = ImageFileHelper.GetPngTestFileStream();
+ var compressedImage = await ImageCompressor.CompressAsync(pngImage);
+
+ compressedImage.ShouldNotBeNull();
+
+ if (compressedImage.State == ImageProcessState.Done)
+ {
+ compressedImage.Result.Length.ShouldBeLessThan(pngImage.Length);
+ }
+ else
+ {
+ compressedImage.State.ShouldBe(ImageProcessState.Canceled);
+ compressedImage.Result.Length.ShouldBe(pngImage.Length);
+ }
+
+ compressedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Compress_Webp()
+ {
+ await using var webpImage = ImageFileHelper.GetWebpTestFileStream();
+ var compressedImage = await ImageCompressor.CompressAsync(webpImage);
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBe(ImageProcessState.Done);
+ compressedImage.Result.Length.ShouldBeLessThan(webpImage.Length);
+ compressedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Compress_Stream_And_Byte_Array_The_Same()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var byteArr = await jpegImage.GetAllBytesAsync();
+
+ var compressedImage1 = await ImageCompressor.CompressAsync(jpegImage);
+ var compressedImage2 = await ImageCompressor.CompressAsync(byteArr);
+
+ compressedImage1.ShouldNotBeNull();
+ compressedImage1.State.ShouldBe(ImageProcessState.Done);
+
+ compressedImage2.ShouldNotBeNull();
+ compressedImage2.State.ShouldBe(ImageProcessState.Done);
+
+ compressedImage1.Result.Length.ShouldBeLessThan(jpegImage.Length);
+ compressedImage2.Result.LongLength.ShouldBeLessThan(jpegImage.Length);
+
+ compressedImage1.Result.Length.ShouldBe(compressedImage2.Result.LongLength);
+
+ compressedImage1.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Return_Compressed_Stream_Positioned_At_Start()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var compressedImage = await ImageCompressor.CompressAsync(jpegImage);
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBe(ImageProcessState.Done);
+ compressedImage.Result.Position.ShouldBe(0);
+
+ using var copy = new MemoryStream();
+ await compressedImage.Result.CopyToAsync(copy);
+ copy.Length.ShouldBe(compressedImage.Result.Length);
+
+ compressedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Return_Unsupported_For_Gif_Stream()
+ {
+ await using var gifImage = ImageFileHelper.GetGifTestFileStream();
+ var compressedImage = await ImageCompressor.CompressAsync(gifImage);
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBe(ImageProcessState.Unsupported);
+ compressedImage.Result.ShouldBe(gifImage);
+ }
+
+ [Fact]
+ public async Task Should_Return_Unsupported_For_Gif_Bytes()
+ {
+ await using var gifImage = ImageFileHelper.GetGifTestFileStream();
+ var bytes = await gifImage.GetAllBytesAsync();
+ var compressedImage = await ImageCompressor.CompressAsync(bytes);
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBe(ImageProcessState.Unsupported);
+ compressedImage.Result.ShouldBe(bytes);
+ }
+
+ [Fact]
+ public async Task Should_Handle_Non_Seekable_Stream_Directly_On_Contributor()
+ {
+ var contributor = GetRequiredService();
+
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var bytes = await jpegImage.GetAllBytesAsync();
+ await using var nonSeekable = new NonSeekableStream(new MemoryStream(bytes));
+
+ var compressedImage = await contributor.TryCompressAsync(nonSeekable, "image/jpeg");
+
+ compressedImage.ShouldNotBeNull();
+ compressedImage.State.ShouldBeOneOf(ImageProcessState.Done, ImageProcessState.Canceled);
+ if (compressedImage.State == ImageProcessState.Done)
+ {
+ compressedImage.Result.ShouldNotBe(nonSeekable);
+ compressedImage.Result.Dispose();
+ }
+ }
+
+ private sealed class NonSeekableStream : Stream
+ {
+ private readonly Stream _inner;
+ public NonSeekableStream(Stream inner) { _inner = inner; }
+ public override bool CanRead => _inner.CanRead;
+ public override bool CanSeek => false;
+ public override bool CanWrite => false;
+ public override long Length => throw new NotSupportedException();
+ public override long Position { get => throw new NotSupportedException(); set => throw new NotSupportedException(); }
+ public override int Read(byte[] buffer, int offset, int count) => _inner.Read(buffer, offset, count);
+ public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) => _inner.ReadAsync(buffer, offset, count, cancellationToken);
+ public override void Flush() { }
+ public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException();
+ public override void SetLength(long value) => throw new NotSupportedException();
+ public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException();
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing) _inner.Dispose();
+ base.Dispose(disposing);
+ }
+ }
+}
diff --git a/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageResizerTests.cs b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageResizerTests.cs
index 460c83bf5b..593beb506d 100644
--- a/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageResizerTests.cs
+++ b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo/Abp/Imaging/SkiaSharpImageResizerTests.cs
@@ -1,6 +1,7 @@
using System.IO;
using System.Threading.Tasks;
using Shouldly;
+using SkiaSharp;
using Xunit;
namespace Volo.Abp.Imaging;
@@ -72,4 +73,120 @@ public class SkiaSharpImageResizerTests : AbpImagingSkiaSharpTestBase
resizedImage1.Result.Dispose();
}
+
+ [Fact]
+ public async Task Should_Return_Resized_Stream_Positioned_At_Start()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var resizedImage = await ImageResizer.ResizeAsync(jpegImage, new ImageResizeArgs(100, 100));
+
+ resizedImage.ShouldNotBeNull();
+ resizedImage.State.ShouldBe(ImageProcessState.Done);
+ resizedImage.Result.Position.ShouldBe(0);
+
+ using var copy = new MemoryStream();
+ await resizedImage.Result.CopyToAsync(copy);
+ copy.Length.ShouldBe(resizedImage.Result.Length);
+
+ resizedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Return_Unsupported_For_Gif_Stream()
+ {
+ await using var gifImage = ImageFileHelper.GetGifTestFileStream();
+ var resizedImage = await ImageResizer.ResizeAsync(gifImage, new ImageResizeArgs(100, 100));
+
+ resizedImage.ShouldNotBeNull();
+ resizedImage.State.ShouldBe(ImageProcessState.Unsupported);
+ resizedImage.Result.ShouldBe(gifImage);
+ }
+
+ [Fact]
+ public async Task Should_Return_Unsupported_For_Gif_Bytes()
+ {
+ await using var gifImage = ImageFileHelper.GetGifTestFileStream();
+ var bytes = await gifImage.GetAllBytesAsync();
+ var resizedImage = await ImageResizer.ResizeAsync(bytes, new ImageResizeArgs(100, 100));
+
+ resizedImage.ShouldNotBeNull();
+ resizedImage.State.ShouldBe(ImageProcessState.Unsupported);
+ resizedImage.Result.ShouldBe(bytes);
+ }
+
+ [Theory]
+ [InlineData(ImageResizeMode.None)]
+ [InlineData(ImageResizeMode.Stretch)]
+ [InlineData(ImageResizeMode.Crop)]
+ [InlineData(ImageResizeMode.Pad)]
+ [InlineData(ImageResizeMode.BoxPad)]
+ [InlineData(ImageResizeMode.Default)]
+ public async Task Should_Produce_Exact_Target_Size_For_Fixed_Modes(ImageResizeMode mode)
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var resizedImage = await ImageResizer.ResizeAsync(jpegImage, new ImageResizeArgs(120, 80, mode));
+
+ resizedImage.State.ShouldBe(ImageProcessState.Done);
+ using var decoded = SKBitmap.Decode(resizedImage.Result);
+ decoded.ShouldNotBeNull();
+ decoded.Width.ShouldBe(120);
+ decoded.Height.ShouldBe(80);
+ resizedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Produce_Bounded_Size_For_Max_Mode()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var resizedImage = await ImageResizer.ResizeAsync(jpegImage, new ImageResizeArgs(120, 80, ImageResizeMode.Max));
+
+ resizedImage.State.ShouldBe(ImageProcessState.Done);
+ using var decoded = SKBitmap.Decode(resizedImage.Result);
+ decoded.Width.ShouldBeLessThanOrEqualTo(120);
+ decoded.Height.ShouldBeLessThanOrEqualTo(80);
+ (decoded.Width == 120 || decoded.Height == 80).ShouldBeTrue();
+ resizedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Max_Fit_Source_Larger_Than_Target_For_BoxPad_Mode()
+ {
+ using var src = new SKBitmap(400, 100);
+ using (var canvas = new SKCanvas(src))
+ {
+ canvas.Clear(SKColors.Red);
+ }
+ using var srcImage = SKImage.FromBitmap(src);
+ using var srcData = srcImage.Encode(SKEncodedImageFormat.Png, 100);
+ using var srcStream = new MemoryStream();
+ srcData.SaveTo(srcStream);
+ srcStream.Position = 0;
+
+ var resizedImage = await ImageResizer.ResizeAsync(srcStream, new ImageResizeArgs(100, 100, ImageResizeMode.BoxPad));
+
+ resizedImage.State.ShouldBe(ImageProcessState.Done);
+ using var decoded = SKBitmap.Decode(resizedImage.Result);
+ decoded.Width.ShouldBe(100);
+ decoded.Height.ShouldBe(100);
+
+ decoded.GetPixel(50, 0).Alpha.ShouldBe((byte)0);
+ decoded.GetPixel(50, 99).Alpha.ShouldBe((byte)0);
+ decoded.GetPixel(50, 50).Red.ShouldBeGreaterThan((byte)200);
+
+ resizedImage.Result.Dispose();
+ }
+
+ [Fact]
+ public async Task Should_Produce_Bounded_Size_For_Min_Mode()
+ {
+ await using var jpegImage = ImageFileHelper.GetJpgTestFileStream();
+ var resizedImage = await ImageResizer.ResizeAsync(jpegImage, new ImageResizeArgs(120, 80, ImageResizeMode.Min));
+
+ resizedImage.State.ShouldBe(ImageProcessState.Done);
+ using var decoded = SKBitmap.Decode(resizedImage.Result);
+ decoded.Width.ShouldBeGreaterThanOrEqualTo(120);
+ decoded.Height.ShouldBeGreaterThanOrEqualTo(80);
+ (decoded.Width == 120 || decoded.Height == 80).ShouldBeTrue();
+ resizedImage.Result.Dispose();
+ }
}
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 7c289e8c34..243fc50605 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": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2",
- "@abp/highlight.js": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.4.0",
+ "@abp/prismjs": "~10.4.0",
+ "@abp/highlight.js": "~10.4.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 abdd7e717d..0686fa964b 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,204 +2,204 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0-rc.2.tgz#6cdb71282ca31f0aeb902d3188f8b5a626934970"
- integrity sha512-9eWL6tqK4uZTdaRBx0UBKqWR3A6jXNS91uiNmRIce4gPYao++lpx3hlQtq4WttvTs6QD3P7OBlSy4pjBdggNIw==
+"@abp/clipboard@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0.tgz#bac5854af4f8bcaa987d39f234edd58b675a71c8"
+ integrity sha512-KTTzCDEe+wjpGLdud8MHlwnPr/NdzFDmfHtENgESdIa5KilGOwy2wv24lQ5cyJOB4ftoJzkBaHinKJxg/KU0pw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
clipboard "^2.0.11"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/highlight.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.4.0-rc.2.tgz#0e98ae1dd3b14a77794d95ab707008c629c28c05"
- integrity sha512-ZoZPvC3RDFktIZb8UjiapKkYLioT4jANR70P6dWosXMUteHu9kfAllXvyMHk9/DQ0A2y7bqTh5CfmxRh8WSguQ==
+"@abp/highlight.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.4.0.tgz#b1b53329743f3eeb203ec35ebcf9c6e79c9fbe93"
+ integrity sha512-L0mL/AErFsYdJbCLUu22lm/fn+Eelc0H57OQrUAzVy+22XXALiFtyq/cci3sjOcxfpf2CW/v+z0JKCouuJd7Ag==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@highlightjs/cdn-assets" "~11.11.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0-rc.2.tgz#a17284bd233b048f6be7bf31a7a7fc6af2a63057"
- integrity sha512-lqIT3RUvhHNyy/DcTi/w+tXs02NT1yhY7b1pzm+mOWH9wBEOpEMtqFTHfX/oQpj8VRV3Ye/NDpWAZd11+4EMzQ==
+"@abp/prismjs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0.tgz#0061d71d18252bc1e66e763aab6d81a7b4fe51b7"
+ integrity sha512-kjV11XNt2uP01zlhrrScr4WA27lgZ03Cz3svA7/HHnfhFy76MHYo+Dyn7sS4Gp3UobMcf1QWHl4KQNCUnYNTOQ==
dependencies:
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/core" "~10.4.0"
prismjs "^1.30.0"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
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 1f7278093d..432c74459b 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": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0",
+ "@abp/prismjs": "~10.4.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 ad994c3e61..7b7ba0a9a7 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,203 +2,203 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0-rc.2.tgz#6cdb71282ca31f0aeb902d3188f8b5a626934970"
- integrity sha512-9eWL6tqK4uZTdaRBx0UBKqWR3A6jXNS91uiNmRIce4gPYao++lpx3hlQtq4WttvTs6QD3P7OBlSy4pjBdggNIw==
+"@abp/clipboard@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0.tgz#bac5854af4f8bcaa987d39f234edd58b675a71c8"
+ integrity sha512-KTTzCDEe+wjpGLdud8MHlwnPr/NdzFDmfHtENgESdIa5KilGOwy2wv24lQ5cyJOB4ftoJzkBaHinKJxg/KU0pw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
clipboard "^2.0.11"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0-rc.2.tgz#a17284bd233b048f6be7bf31a7a7fc6af2a63057"
- integrity sha512-lqIT3RUvhHNyy/DcTi/w+tXs02NT1yhY7b1pzm+mOWH9wBEOpEMtqFTHfX/oQpj8VRV3Ye/NDpWAZd11+4EMzQ==
+"@abp/prismjs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0.tgz#0061d71d18252bc1e66e763aab6d81a7b4fe51b7"
+ integrity sha512-kjV11XNt2uP01zlhrrScr4WA27lgZ03Cz3svA7/HHnfhFy76MHYo+Dyn7sS4Gp3UobMcf1QWHl4KQNCUnYNTOQ==
dependencies:
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/core" "~10.4.0"
prismjs "^1.30.0"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
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 229ba8e292..2ed7bc314a 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": "~10.4.0-rc.2",
- "@abp/blogging": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0",
+ "@abp/blogging": "~10.4.0"
}
}
diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
index 969af1b3db..e9417a19ba 100644
--- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
+++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock
@@ -2,229 +2,229 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/blogging@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-10.4.0-rc.2.tgz#634d8fd72242a0449b48a76c586e4bb2b5e9451c"
- integrity sha512-MfLzWqnxmfs0WRKTu+49zmOrVo4a7OoVxRq8Exj7uB2rJVGYeSLbCNU/Ty7FTPjW/cszadMJUi2tssHXO7tQkg==
+"@abp/blogging@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-10.4.0.tgz#ae468b0cdfdd011fcb709b627dc9cb7a3076506b"
+ integrity sha512-UHoEeo3lBTXA4TpkPkOSaNklsbB4MG6OC6oM2l9ApihMzJyKV3osczBr8COZ+awpRGCsEAjotOw8OMIVH4evcQ==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
- "@abp/owl.carousel" "~10.4.0-rc.2"
- "@abp/prismjs" "~10.4.0-rc.2"
- "@abp/tui-editor" "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
+ "@abp/owl.carousel" "~10.4.0"
+ "@abp/prismjs" "~10.4.0"
+ "@abp/tui-editor" "~10.4.0"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0-rc.2.tgz#6cdb71282ca31f0aeb902d3188f8b5a626934970"
- integrity sha512-9eWL6tqK4uZTdaRBx0UBKqWR3A6jXNS91uiNmRIce4gPYao++lpx3hlQtq4WttvTs6QD3P7OBlSy4pjBdggNIw==
+"@abp/clipboard@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0.tgz#bac5854af4f8bcaa987d39f234edd58b675a71c8"
+ integrity sha512-KTTzCDEe+wjpGLdud8MHlwnPr/NdzFDmfHtENgESdIa5KilGOwy2wv24lQ5cyJOB4ftoJzkBaHinKJxg/KU0pw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
clipboard "^2.0.11"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/owl.carousel@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-10.4.0-rc.2.tgz#57afe9137ccd24e7930050e722034348d5cec587"
- integrity sha512-JFPEtPoAoKgqloRYbtcAtLbL8Cq9eR8EjYDEGGRRco5Q1kj25849CduE5woFLD2op0HbBQR0esYenPmYojZ6Dw==
+"@abp/owl.carousel@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-10.4.0.tgz#03cb3abec37b9e61196982d20f8b48ca9ff9818a"
+ integrity sha512-wSMMMVJ5LRSmmV4jXekrWJdI7MQ+37LWKu83dQRD1Bwegy2USuB2efBcwVB/juI2iaxP9b0jTrKmxTlFPkNbCg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
owl.carousel "^2.3.4"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0-rc.2.tgz#a17284bd233b048f6be7bf31a7a7fc6af2a63057"
- integrity sha512-lqIT3RUvhHNyy/DcTi/w+tXs02NT1yhY7b1pzm+mOWH9wBEOpEMtqFTHfX/oQpj8VRV3Ye/NDpWAZd11+4EMzQ==
+"@abp/prismjs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0.tgz#0061d71d18252bc1e66e763aab6d81a7b4fe51b7"
+ integrity sha512-kjV11XNt2uP01zlhrrScr4WA27lgZ03Cz3svA7/HHnfhFy76MHYo+Dyn7sS4Gp3UobMcf1QWHl4KQNCUnYNTOQ==
dependencies:
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/core" "~10.4.0"
prismjs "^1.30.0"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/tui-editor@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.4.0-rc.2.tgz#22e2fcf7f2ab02507a8f3ed159044f1d14bfd875"
- integrity sha512-+xwOazOVxJTPGW+Fn+Gwwj94rzS5rCArqzPNQJ5mE87ZJ9/qK0yygiMqDgA9fomEc2vrvtXWPZYuF4/r2/PQ/g==
+"@abp/tui-editor@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.4.0.tgz#8041b62eb464f4a8adddc043904e2bc8475d45e3"
+ integrity sha512-SbbAs3V94UaF6xaMIaRNpDE9KSvOU45XZl24jCWjCAwkyTkN0bHlpnqs0UuJUtCnnQAzj4C+AvVy5ykrDKGtIg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
- "@abp/prismjs" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
+ "@abp/prismjs" "~10.4.0"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
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 18f0278717..667968540e 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": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
index 008b25c437..6cbad6797a 100644
--- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
+++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
@@ -2,186 +2,186 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json
index f840ba0cdb..d752aab145 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": "~10.4.0-rc.2",
- "@abp/ng.identity": "~10.4.0-rc.1",
- "@abp/ng.setting-management": "~10.4.0-rc.2",
- "@abp/ng.tenant-management": "~10.4.0-rc.2",
- "@abp/ng.theme.basic": "~10.4.0-rc.1",
+ "@abp/ng.account": "~10.4.0",
+ "@abp/ng.identity": "~10.4.0",
+ "@abp/ng.setting-management": "~10.4.0",
+ "@abp/ng.tenant-management": "~10.4.0",
+ "@abp/ng.theme.basic": "~10.4.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 e68d854ebe..d1c09fb92e 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": ">=10.4.0-rc.2",
- "@abp/ng.theme.shared": ">=10.4.0-rc.2"
+ "@abp/ng.core": ">=10.4.0",
+ "@abp/ng.theme.shared": ">=10.4.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 d8f8e2f865..9ab2f0e3a0 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": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
index 008b25c437..6cbad6797a 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
@@ -2,186 +2,186 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
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 26556e2652..0b8b07c6be 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": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.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 008b25c437..6cbad6797a 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
@@ -2,186 +2,186 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
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 8779090b1f..ba4f6cad1d 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": "~10.4.0-rc.2",
- "@abp/cms-kit": "10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0",
+ "@abp/cms-kit": "10.4.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 448b82003f..22a1070b60 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
@@ -2,294 +2,294 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0-rc.2.tgz#6cdb71282ca31f0aeb902d3188f8b5a626934970"
- integrity sha512-9eWL6tqK4uZTdaRBx0UBKqWR3A6jXNS91uiNmRIce4gPYao++lpx3hlQtq4WttvTs6QD3P7OBlSy4pjBdggNIw==
+"@abp/clipboard@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0.tgz#bac5854af4f8bcaa987d39f234edd58b675a71c8"
+ integrity sha512-KTTzCDEe+wjpGLdud8MHlwnPr/NdzFDmfHtENgESdIa5KilGOwy2wv24lQ5cyJOB4ftoJzkBaHinKJxg/KU0pw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
clipboard "^2.0.11"
-"@abp/cms-kit.admin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-10.4.0-rc.2.tgz#fc48f420a8362521eee64cef7b4fab3f478d4041"
- integrity sha512-ID0v2kUDFKf+dCGaOb3YLv8UkTnfGtUxIa3Xv3SoJUaCeiW/EbUZX/LTBOtCoe61EckfLw7ye+cpThVCODmvpg==
+"@abp/cms-kit.admin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-10.4.0.tgz#f3d2272d8ab6adb60b7b23807b1d48a174411377"
+ integrity sha512-klxpGOF4aiJevsZT+7zM/TpWfoEAXlBBWSrFWNtxMNMmYisOFEX2AWCDVl2lQvoEiwTFNR+D9zhuKYFdWKQXFQ==
dependencies:
- "@abp/codemirror" "~10.4.0-rc.2"
- "@abp/jstree" "~10.4.0-rc.2"
- "@abp/markdown-it" "~10.4.0-rc.2"
- "@abp/slugify" "~10.4.0-rc.2"
- "@abp/tui-editor" "~10.4.0-rc.2"
- "@abp/uppy" "~10.4.0-rc.2"
+ "@abp/codemirror" "~10.4.0"
+ "@abp/jstree" "~10.4.0"
+ "@abp/markdown-it" "~10.4.0"
+ "@abp/slugify" "~10.4.0"
+ "@abp/tui-editor" "~10.4.0"
+ "@abp/uppy" "~10.4.0"
-"@abp/cms-kit.public@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-10.4.0-rc.2.tgz#59084743233abf797ba60b2d594e9a6d6923604a"
- integrity sha512-BtBfxK8nQZgXlKMBt9m1M/iEtOtF1cPQsHj+o66cDEJ3BD2Ew2BxHzlW0bZpu4/a4F5lDidW8Pnagbz934cXtg==
+"@abp/cms-kit.public@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-10.4.0.tgz#a7f0c5b45f7cd4c6189311f4f293fa4ee09d4e2c"
+ integrity sha512-LbQC0Q05fCuTa9ZXIcNYGp3b9vbdlFif/tL8LReNWVQQ2FgzjdtOoCajz9v4lfbqbjsQeH+fMir+gCQDQggYOQ==
dependencies:
- "@abp/highlight.js" "~10.4.0-rc.2"
- "@abp/star-rating-svg" "~10.4.0-rc.2"
+ "@abp/highlight.js" "~10.4.0"
+ "@abp/star-rating-svg" "~10.4.0"
-"@abp/cms-kit@10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-10.4.0-rc.2.tgz#d73883226dcf6c324ec7685818355ebb826252d0"
- integrity sha512-fbyJ/CWWdVwJc/59n2u41ScsfRxvB53m9G6mGWPTxC4pyokFUHNkjr8O0TdNaiXiZGZKZCEF4uptF3CptoI8rA==
+"@abp/cms-kit@10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-10.4.0.tgz#03773131bf5e74d410f4657d68179328059a04c4"
+ integrity sha512-7J93H3pWbsD0fAoEJP+ELkYMlcj+bC442ypB5sLrPDOBZ2cLB4Nji4m9D/17KMIb87vu7gNQuUnk+OhjpBrmFg==
dependencies:
- "@abp/cms-kit.admin" "~10.4.0-rc.2"
- "@abp/cms-kit.public" "~10.4.0-rc.2"
+ "@abp/cms-kit.admin" "~10.4.0"
+ "@abp/cms-kit.public" "~10.4.0"
-"@abp/codemirror@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-10.4.0-rc.2.tgz#60fa9ffe5be0ce0cb5fa419316eae26bd3023108"
- integrity sha512-nixjVgxjP8pXLat5nSXKz/AJSYhOyoVZzwtqK9AU9Xj5mnn6XdnIL0Yhps+oLSX74Drbfn/haBPKulCou8FbCQ==
+"@abp/codemirror@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-10.4.0.tgz#1e5f9a37dbaaa6484f67ce57a187263b8b95b860"
+ integrity sha512-6C0AOVon9S89b+8SuBy3fuKq/CQ4rvgpJk+8o90veGm4s0BDZkyGbee/vaJItX7c3ZzAYpWdcO22ybUuJVHpJA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
codemirror "^5.65.1"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/highlight.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.4.0-rc.2.tgz#0e98ae1dd3b14a77794d95ab707008c629c28c05"
- integrity sha512-ZoZPvC3RDFktIZb8UjiapKkYLioT4jANR70P6dWosXMUteHu9kfAllXvyMHk9/DQ0A2y7bqTh5CfmxRh8WSguQ==
+"@abp/highlight.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-10.4.0.tgz#b1b53329743f3eeb203ec35ebcf9c6e79c9fbe93"
+ integrity sha512-L0mL/AErFsYdJbCLUu22lm/fn+Eelc0H57OQrUAzVy+22XXALiFtyq/cci3sjOcxfpf2CW/v+z0JKCouuJd7Ag==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@highlightjs/cdn-assets" "~11.11.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/jstree@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-10.4.0-rc.2.tgz#67889b03529df1c4b4eb0bb6a1ec71fc5c2f3e3b"
- integrity sha512-mFCViFBdPuhYgcaSV4e+3Uusda+opHDGKmzcu8VqSp7dvAdBV01p2xddyAD6MdW6dukpLMydvTO+YCaa72ep9A==
+"@abp/jstree@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-10.4.0.tgz#99f49383dd016bfa66e0512603a4a02b3534b36a"
+ integrity sha512-GXcK+JZGLBwGWs3GiFK/sLQt4VJIlweXR6MymE9YvG2X9i9Q8GrhfivINhbWAttSvbBTGca0RiKG2SxiZMAyhg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jstree "^3.3.17"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/markdown-it@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-10.4.0-rc.2.tgz#6e5ef4dc241f95dc74bb62c0f285d7aca81238a3"
- integrity sha512-574qe5KnrxyVcG5Nz5syo7e8goXfKuAUC1X9QbQmnhj+RdNIKUaIdaRplO+D9XNlspqAWO475zbONOIuB0flzw==
+"@abp/markdown-it@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-10.4.0.tgz#bb0bf97f13462454fc84782a09b50f637a49f200"
+ integrity sha512-Tb1hiZiq024WeveNJBS49HL6W+uNAGEn3NHV335wSlN9e+x4LeyYd79wj+PAfRaX9yWCXjupqrafpDZ6Nj0C7g==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
markdown-it "^14.1.0"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0-rc.2.tgz#a17284bd233b048f6be7bf31a7a7fc6af2a63057"
- integrity sha512-lqIT3RUvhHNyy/DcTi/w+tXs02NT1yhY7b1pzm+mOWH9wBEOpEMtqFTHfX/oQpj8VRV3Ye/NDpWAZd11+4EMzQ==
+"@abp/prismjs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0.tgz#0061d71d18252bc1e66e763aab6d81a7b4fe51b7"
+ integrity sha512-kjV11XNt2uP01zlhrrScr4WA27lgZ03Cz3svA7/HHnfhFy76MHYo+Dyn7sS4Gp3UobMcf1QWHl4KQNCUnYNTOQ==
dependencies:
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/core" "~10.4.0"
prismjs "^1.30.0"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/slugify@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-10.4.0-rc.2.tgz#5f6cb78687cab9be4de12a096eb3e3d13797e551"
- integrity sha512-+X8Qs8yB+qQNzSCtOxTClGnTQMss5ogKotPqx+ztG19qn30YcxVOmlPXzDFFkMYO++xxoZh8Ny9RIYaNxiKNfA==
+"@abp/slugify@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-10.4.0.tgz#eb70ee28499f4406b738478cf4a26319ea4b9097"
+ integrity sha512-bJXo86hWHQiF9QlYHu869AcDV1sy1p7nlqWxjA3kMkZ5OvP+/7qkwuGfRzkhVhQ9MK6hcMOKwasZ6xw9UPERFQ==
dependencies:
slugify "^1.6.6"
-"@abp/star-rating-svg@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-10.4.0-rc.2.tgz#f5534ed85fa5001fefb778ee0ad61d4000ff52e3"
- integrity sha512-ol5LaDvf3hhpYz/Jpdk/5SwSwLfd9KhW5Si/SKZG43ie+M7xcU1AMhGJjOccx4iBV7s5HjGwwmy+I6+fik02yg==
+"@abp/star-rating-svg@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-10.4.0.tgz#9aa9226494be5d0d4cd99237d6bd75cedf41a0c6"
+ integrity sha512-cvu+9ARD9dq7qWHsmb+7Ml9ITyzuUzDHBvBxt5xE4WV0e3jszJRhOJ4TROlh15Z8ymZtStMVb2m1F2JGx1i3xA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
star-rating-svg "^3.5.0"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/tui-editor@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.4.0-rc.2.tgz#22e2fcf7f2ab02507a8f3ed159044f1d14bfd875"
- integrity sha512-+xwOazOVxJTPGW+Fn+Gwwj94rzS5rCArqzPNQJ5mE87ZJ9/qK0yygiMqDgA9fomEc2vrvtXWPZYuF4/r2/PQ/g==
+"@abp/tui-editor@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-10.4.0.tgz#8041b62eb464f4a8adddc043904e2bc8475d45e3"
+ integrity sha512-SbbAs3V94UaF6xaMIaRNpDE9KSvOU45XZl24jCWjCAwkyTkN0bHlpnqs0UuJUtCnnQAzj4C+AvVy5ykrDKGtIg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
- "@abp/prismjs" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
+ "@abp/prismjs" "~10.4.0"
-"@abp/uppy@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-10.4.0-rc.2.tgz#ce33d8c0dc17c48fd61472432776c8e8037d40bc"
- integrity sha512-O89y2r7WsfvPwG9E9MLdIZlSuzsW2Z6b0mN6hlDIni1LQEYFAACnzyO95Iq04a37e7TwqSPp+JwZ93n7UL3ltw==
+"@abp/uppy@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-10.4.0.tgz#876650cda8f5187cf9e4a0f4731632fed9be1356"
+ integrity sha512-E+86xlPFZemx56K6nK1gbDC1pcYHMEWw03QOfZwtwP5UGU5JvyyW6CpV3M8PdfBRo4sx+lRqOW2I/X8MIsbTig==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
uppy "^5.1.2"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json
index 07a3f1100c..eb3423aca9 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": "~10.4.0-rc.2",
- "@abp/docs": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0",
+ "@abp/docs": "~10.4.0"
}
}
diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock
index 2cd36e5670..2c8b945a40 100644
--- a/modules/docs/app/VoloDocs.Web/yarn.lock
+++ b/modules/docs/app/VoloDocs.Web/yarn.lock
@@ -2,222 +2,222 @@
# yarn lockfile v1
-"@abp/anchor-js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-10.4.0-rc.2.tgz#d099cc8e7128743b4f3471db1be5669b01886eed"
- integrity sha512-TuPCyIZl9yNTb26StwACswZsrhcukOTSsox5oLjKFukDd9cavmPnuK9aXc1ngGL1PsxUlE8x6df4exWXIhFr2w==
+"@abp/anchor-js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-10.4.0.tgz#32a6e61e7d2ca6cd5b5b1fc53a684bd52d1fc710"
+ integrity sha512-/ZmG6hbKFRY1w18jNdhfEX9614d/OAH++BTOGuQ/1ZQUZqxu+FTLLlDMczce3UmL4d5devYocu5f/x2JnKROZw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
anchor-js "^5.0.0"
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
- dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
- dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
+ dependencies:
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/clipboard@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0-rc.2.tgz#6cdb71282ca31f0aeb902d3188f8b5a626934970"
- integrity sha512-9eWL6tqK4uZTdaRBx0UBKqWR3A6jXNS91uiNmRIce4gPYao++lpx3hlQtq4WttvTs6QD3P7OBlSy4pjBdggNIw==
+"@abp/clipboard@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-10.4.0.tgz#bac5854af4f8bcaa987d39f234edd58b675a71c8"
+ integrity sha512-KTTzCDEe+wjpGLdud8MHlwnPr/NdzFDmfHtENgESdIa5KilGOwy2wv24lQ5cyJOB4ftoJzkBaHinKJxg/KU0pw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
clipboard "^2.0.11"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/docs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-10.4.0-rc.2.tgz#2e4758c509311885223bf71a33ae5934c0080698"
- integrity sha512-4CmVRQFI/AW806oKLvjzKTtelduScaaeEZwgPd22WsXMqlVEA5DJQmfdQ1hMc2yHICt8cCgrMfAALcOqOPmxDg==
+"@abp/docs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-10.4.0.tgz#b5ad9177888b2421cd5bfc417d2ae2260ded2a63"
+ integrity sha512-JMdqns4h/Bm9yOu2aXz6LmxGvTnWRTlZ3gFUKV3KiVy0FZfX09DhGh1zZbpr2lBxkSjhjBzcLYptLlUjIL6bzA==
dependencies:
- "@abp/anchor-js" "~10.4.0-rc.2"
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
- "@abp/prismjs" "~10.4.0-rc.2"
+ "@abp/anchor-js" "~10.4.0"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
+ "@abp/prismjs" "~10.4.0"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/prismjs@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0-rc.2.tgz#a17284bd233b048f6be7bf31a7a7fc6af2a63057"
- integrity sha512-lqIT3RUvhHNyy/DcTi/w+tXs02NT1yhY7b1pzm+mOWH9wBEOpEMtqFTHfX/oQpj8VRV3Ye/NDpWAZd11+4EMzQ==
+"@abp/prismjs@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-10.4.0.tgz#0061d71d18252bc1e66e763aab6d81a7b4fe51b7"
+ integrity sha512-kjV11XNt2uP01zlhrrScr4WA27lgZ03Cz3svA7/HHnfhFy76MHYo+Dyn7sS4Gp3UobMcf1QWHl4KQNCUnYNTOQ==
dependencies:
- "@abp/clipboard" "~10.4.0-rc.2"
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/clipboard" "~10.4.0"
+ "@abp/core" "~10.4.0"
prismjs "^1.30.0"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/package.json b/modules/openiddict/app/OpenIddict.Demo.Server/package.json
index 26556e2652..0b8b07c6be 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": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}
diff --git a/modules/openiddict/app/angular/package.json b/modules/openiddict/app/angular/package.json
index 429bd3e4d0..3903400110 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": "~10.4.0-rc.2",
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/ng.oauth": "~10.4.0-rc.2",
- "@abp/ng.identity": "~10.4.0-rc.2",
- "@abp/ng.setting-management": "~10.4.0-rc.2",
- "@abp/ng.tenant-management": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
- "@abp/ng.theme.lepton-x": "~5.4.0-rc.2",
+ "@abp/ng.account": "~10.4.0",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.core": "~10.4.0",
+ "@abp/ng.oauth": "~10.4.0",
+ "@abp/ng.identity": "~10.4.0",
+ "@abp/ng.setting-management": "~10.4.0",
+ "@abp/ng.tenant-management": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
+ "@abp/ng.theme.lepton-x": "~5.4.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": "~10.4.0-rc.2",
+ "@abp/ng.schematics": "~10.4.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.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs
index 707a3e89ea..22d0b0e179 100644
--- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs
+++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs
@@ -93,7 +93,7 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
permission.IsEnabled,
permission.MultiTenancySide,
SerializeProviders(permission.Providers),
- SerializeStateCheckers(permission.StateCheckers)
+ SerializeStateCheckers(permission, permission.StateCheckers)
);
foreach (var property in permission.Properties)
@@ -112,8 +112,10 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
: null;
}
- protected virtual string SerializeStateCheckers(List> stateCheckers)
+ protected virtual string SerializeStateCheckers(
+ PermissionDefinition permission,
+ List> stateCheckers)
{
- return StateCheckerSerializer.Serialize(stateCheckers);
+ return StateCheckerSerializer.Serialize(stateCheckers, permission);
}
}
diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs
index a8bdc4b4ea..c395398bb7 100644
--- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs
+++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs
@@ -79,6 +79,74 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
}
+ [Fact]
+ public async Task Serialize_Permission_With_Default_Batch_RequireFeatures()
+ {
+ var context = new PermissionDefinitionContext(null);
+ var group = context.AddGroup("AbpAuditLogging");
+ var permission = group.AddPermission(
+ "AbpAuditLogging.Settings",
+ new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequireFeatures("AbpAuditLogging.SettingManagement");
+
+ var record = await _serializer.SerializeAsync(permission, group);
+
+ record.StateCheckers.ShouldBe(
+ "[{\"T\":\"F\",\"A\":true,\"N\":[\"AbpAuditLogging.SettingManagement\"]}]");
+ }
+
+ [Fact]
+ public async Task Serialize_Permission_With_Default_Batch_RequireFeatures_Picks_Per_State_Model()
+ {
+ var context = new PermissionDefinitionContext(null);
+ var group = context.AddGroup("Group1");
+
+ var permA = group.AddPermission("PermA", new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequireFeatures("FeatureForA");
+ var permB = group.AddPermission("PermB", new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequireFeatures("FeatureForB1", "FeatureForB2");
+
+ var recordA = await _serializer.SerializeAsync(permA, group);
+ var recordB = await _serializer.SerializeAsync(permB, group);
+
+ recordA.StateCheckers.ShouldBe("[{\"T\":\"F\",\"A\":true,\"N\":[\"FeatureForA\"]}]");
+ recordB.StateCheckers.ShouldBe("[{\"T\":\"F\",\"A\":true,\"N\":[\"FeatureForB1\",\"FeatureForB2\"]}]");
+ }
+
+ [Fact]
+ public async Task Serialize_Permission_With_Default_Batch_RequirePermissions()
+ {
+ var context = new PermissionDefinitionContext(null);
+ var group = context.AddGroup("Group1");
+ var permission = group.AddPermission(
+ "Permission1",
+ new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequirePermissions("OtherPermission1", "OtherPermission2");
+
+ var record = await _serializer.SerializeAsync(permission, group);
+
+ record.StateCheckers.ShouldBe(
+ "[{\"T\":\"P\",\"A\":true,\"N\":[\"OtherPermission1\",\"OtherPermission2\"]}]");
+ }
+
+ [Fact]
+ public async Task Serialize_Permission_With_Default_Batch_RequirePermissions_Picks_Per_State_Model()
+ {
+ var context = new PermissionDefinitionContext(null);
+ var group = context.AddGroup("Group1");
+
+ var permA = group.AddPermission("PermA", new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequirePermissions("OtherForA");
+ var permB = group.AddPermission("PermB", new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"))
+ .RequirePermissions(requiresAll: false, "OtherForB1", "OtherForB2");
+
+ var recordA = await _serializer.SerializeAsync(permA, group);
+ var recordB = await _serializer.SerializeAsync(permB, group);
+
+ recordA.StateCheckers.ShouldBe("[{\"T\":\"P\",\"A\":true,\"N\":[\"OtherForA\"]}]");
+ recordB.StateCheckers.ShouldBe("[{\"T\":\"P\",\"A\":false,\"N\":[\"OtherForB1\",\"OtherForB2\"]}]");
+ }
+
[Fact]
public async Task Serialize_Complex_Resource_Permission_Definition()
{
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 e4fd8fca83..50a8ad3d4c 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": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.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 008b25c437..6cbad6797a 100644
--- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock
+++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock
@@ -2,186 +2,186 @@
# yarn lockfile v1
-"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0-rc.2.tgz#77d3ea3f4cccd0cda7c9cf7c4ca3e136e106e385"
- integrity sha512-+zvkAFm1D1SXdZGdKjibn1yqIAYp8xNYccnipPrc5b+4xxvH8QaihymT4Z/g/XPT484wdDk3mq8G1Z3COPxPgg==
+"@abp/aspnetcore.mvc.ui.theme.basic@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-10.4.0.tgz#c0414583f1c1fca14b0133818a63434b4fbf7df0"
+ integrity sha512-sOg3URmFRO/18D734B56jdFuC4LflGXXpw4w1Rdd77BJxugynxcmwNOQbLYFvMfqj0eKqDOH3E4yEcmS2IT1BQ==
dependencies:
- "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared" "~10.4.0"
-"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0-rc.2.tgz#ab4bd8d5d4a3491f1666a34f3c48d961bb1d67f8"
- integrity sha512-f5WcdNAi1CsMbb0yzllTOD757d4hP+FrmjwZax67QSw91e6uDK6huxn//UIOGTKKPQM7gsy6Ov46/D4UiWQRmQ==
+"@abp/aspnetcore.mvc.ui.theme.shared@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.4.0.tgz#49002e55db00c98931d27357f7ea40eeab09e2e8"
+ integrity sha512-bNQ+WOnsfQhb98Z9YO0zZsW2K8ZEgOQ+7/86QaqoYTf+ZFvLJsICmNuHryNkCGRM1XJf9EaDZ3qSOwoOGQwS9A==
dependencies:
- "@abp/aspnetcore.mvc.ui" "~10.4.0-rc.2"
- "@abp/bootstrap" "~10.4.0-rc.2"
- "@abp/bootstrap-datepicker" "~10.4.0-rc.2"
- "@abp/bootstrap-daterangepicker" "~10.4.0-rc.2"
- "@abp/datatables.net-bs5" "~10.4.0-rc.2"
- "@abp/font-awesome" "~10.4.0-rc.2"
- "@abp/jquery-validation-unobtrusive" "~10.4.0-rc.2"
- "@abp/lodash" "~10.4.0-rc.2"
- "@abp/luxon" "~10.4.0-rc.2"
- "@abp/malihu-custom-scrollbar-plugin" "~10.4.0-rc.2"
- "@abp/moment" "~10.4.0-rc.2"
- "@abp/select2" "~10.4.0-rc.2"
- "@abp/sweetalert2" "~10.4.0-rc.2"
- "@abp/timeago" "~10.4.0-rc.2"
-
-"@abp/aspnetcore.mvc.ui@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0-rc.2.tgz#5916af13a18dfe97d83e3282187ec81df51d0a11"
- integrity sha512-hptwcUxq/IyL/jDPt2H7mcukaStTNNCOK2P785RHmTiT6t6YZSh1gTnJkjQkyxZLelilNbXY9jlIB//2ZHZsmw==
+ "@abp/aspnetcore.mvc.ui" "~10.4.0"
+ "@abp/bootstrap" "~10.4.0"
+ "@abp/bootstrap-datepicker" "~10.4.0"
+ "@abp/bootstrap-daterangepicker" "~10.4.0"
+ "@abp/datatables.net-bs5" "~10.4.0"
+ "@abp/font-awesome" "~10.4.0"
+ "@abp/jquery-validation-unobtrusive" "~10.4.0"
+ "@abp/lodash" "~10.4.0"
+ "@abp/luxon" "~10.4.0"
+ "@abp/malihu-custom-scrollbar-plugin" "~10.4.0"
+ "@abp/moment" "~10.4.0"
+ "@abp/select2" "~10.4.0"
+ "@abp/sweetalert2" "~10.4.0"
+ "@abp/timeago" "~10.4.0"
+
+"@abp/aspnetcore.mvc.ui@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.4.0.tgz#24e40fdc101c411f29a87adb77baa642299e979c"
+ integrity sha512-0qVFthS4f4fkCv//UY2GseO+NX+XYqlamZJJwOTmv1UXFW6LxAXxuEQqWYVfFKzwk2lbkXDUcgP8NhhQ9xp3Sw==
dependencies:
ansi-colors "^4.1.3"
-"@abp/bootstrap-datepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0-rc.2.tgz#5178d87e00144715c3d8ff6f561cb04e04d3615c"
- integrity sha512-6D+YCEAkrQBTPzAF+87AsB9iCewz1WEaZ707bSzcKGAComYSv04/vWmTXWiYBYJlYWj9wzPYyGU4+Xb+p8L73g==
+"@abp/bootstrap-datepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.4.0.tgz#a392fd5ce31c86e9fc07f7dedbd0c56a02af341e"
+ integrity sha512-kOpuCEO64zoJ7a9JASsCLFZIjEYgN0GG/oApS2L729pv6/oEhcupWpwrnvDUhsdGOezXwLIsgTzc6tiG3HxwGA==
dependencies:
bootstrap-datepicker "^1.10.1"
-"@abp/bootstrap-daterangepicker@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0-rc.2.tgz#e7f5f776542393a79573912c970279b65cb92d78"
- integrity sha512-6fRgqgkh1gn2Ign9vQbEzP7G3fNyeLU7zpnixUxKLmBr0STo0vtf8CPG7c6CDLEwbXqdQy2wFE7pTlj61fOJzg==
+"@abp/bootstrap-daterangepicker@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.4.0.tgz#95f68d3f488a12ede3c12352637b48782eeb031a"
+ integrity sha512-HX4HutkbPDQWBJNPDozpT1Um9mHcfV+RL+ukwEy0N4e7nD8VJyqLT/a+/FzQN7iUkwV+aNR2v5c0W+dgyqTaEA==
dependencies:
- "@abp/moment" "~10.4.0-rc.2"
+ "@abp/moment" "~10.4.0"
bootstrap-daterangepicker "^3.1.0"
-"@abp/bootstrap@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0-rc.2.tgz#734ef046f238b80bea5851091e00afd2f6d9bb13"
- integrity sha512-/RqQ7M352TL8dU+R2qKr3C2PVyPNHIa3QNYcUI3/G4PFrY50hIIgW5jDoptaZZ1RkijjFyMyhh4DKTHuKtSzkA==
+"@abp/bootstrap@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.4.0.tgz#64b22bbdbf6b5bda279b21a7bae0652290b1221f"
+ integrity sha512-WQzXi5h1mej9twrAB6kD4aJtTNfSxpnuo1pxIOu/8GKGWoDayVY2NMQl+MCVel6dST+6EUTmuDRxc2q9qHRxLg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
- "@abp/popper.js" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
+ "@abp/popper.js" "~10.4.0"
bootstrap "^5.3.8"
-"@abp/core@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0-rc.2.tgz#2de1844bb1e06fe74c32b1519e228401752e0575"
- integrity sha512-yvJLhebmo17T0lgOcq02EtslbZuMzdeQ/r5brNtxFWIX2l1vQye3jd1uCYQqSR6X7lv/GbZbygxd6AHZo7V8Qw==
+"@abp/core@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.4.0.tgz#de0c09e26d1f20451da9430d939beebb5bb6e9dd"
+ integrity sha512-3yKLFqUtFo5rgBPQxWkNPsdq1bE9VKwm02yB14lu913EIYhP//akizY4uSK08BozocJNveCASQbgd66z4x6v/Q==
dependencies:
- "@abp/utils" "~10.4.0-rc.2"
+ "@abp/utils" "~10.4.0"
-"@abp/datatables.net-bs5@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0-rc.2.tgz#5ee12d5735a149ecfe43c2153260189342e31b8f"
- integrity sha512-1GXj/A0jjCbPtFM2r+ERnIJDlpTDRoj4ZkVkEJs20vHYvXzA/zh5efp5tP/As5Xie8+pTsh8XN7eK3IynJXa/g==
+"@abp/datatables.net-bs5@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.4.0.tgz#a24eef99399324e4b89a00a204d2c4c2de379da1"
+ integrity sha512-T4f7e6sR1qHcvygNUNfdPWsK61C3NQORV35Lzpl98eDwY8XLg2/RLAegpFI8GjESVy2+2PCKVqUoSYZtXaMFmw==
dependencies:
- "@abp/datatables.net" "~10.4.0-rc.2"
+ "@abp/datatables.net" "~10.4.0"
datatables.net-bs5 "^2.3.4"
-"@abp/datatables.net@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0-rc.2.tgz#e8696867580e16766c123d5e3e6f424f2e165af6"
- integrity sha512-Ah1oO9MIfAY3s50xvuRhfc0nS44+AoCQuOUbdHLRWQrzNaw6mETqYRCYF7CWajUdvCzV+O002cYr6U8iVfjSWw==
+"@abp/datatables.net@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.4.0.tgz#ab48f6e3ccae8d0644f0c01011ff98cc6ca16181"
+ integrity sha512-esIUozaSEa29G7bdWbEZr22fRChaTuGfNNB8rgBHmVKwgkbHSG7qUTgsfGhNz0T2vfDsK3X37n55xmSdE9RElg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
datatables.net "^2.3.4"
-"@abp/font-awesome@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0-rc.2.tgz#83a3e8b47ef0e9b466cb786dfd7f34abe4a945f4"
- integrity sha512-/Mzzcp8CANHWx+d7PZmZJvNBfnRj4E0+/eaXGK8I/vqGtiot0rXoHkgB+Mg4y83dJgPcBwDW9BEv8Q9gGEgswg==
+"@abp/font-awesome@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.4.0.tgz#327979191615fff571f0ea2e99d01bbcca5378ce"
+ integrity sha512-RBzDSi/hrjhLKc7h6Kf9CQqC+LCGvS7h8HrRVaIzWCZSeqTfIMFpixjCUrNgkqWI0bU4NDUKXZ4XCOv4nPVlBg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@fortawesome/fontawesome-free" "^7.0.1"
-"@abp/jquery-validation-unobtrusive@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0-rc.2.tgz#d595ba387bff99fa7e7c3a9d416c1f7692c73760"
- integrity sha512-lqZh5Y7Wk96pzykdZd6Z3TaQo5KnkV3ZDMqJIhc/Rfu5ReLGS+dqsLlA/2S7ZTtuaJMEerSX6g3M7v1QGRQPvQ==
+"@abp/jquery-validation-unobtrusive@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.4.0.tgz#e0114347344931667f48e0f2de5ea4bd6f9d2a88"
+ integrity sha512-AJncXVB+eTSizq0fTAwLii9a0GeYFPiY+gw+Ki5pak8Pp9LQivphsW32TqQmPC3qZVuYtd4myUUraWuOTT1Adg==
dependencies:
- "@abp/jquery-validation" "~10.4.0-rc.2"
+ "@abp/jquery-validation" "~10.4.0"
jquery-validation-unobtrusive "^4.0.0"
-"@abp/jquery-validation@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0-rc.2.tgz#1b8231a256c34566960fc53749acdd596d4b0d4e"
- integrity sha512-axnYg2zd3v9mxWW3eePnqQV6/j56hgR949ppopa5aGmv4pQwBkeY4qhOzAkKWwhZ/R7PB+zDygBX4UGAABR8GQ==
+"@abp/jquery-validation@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.4.0.tgz#bd1ef0217c2500363f25223dd7316ba919a505b5"
+ integrity sha512-W9QiGnOpaq6uDDwBy4UEqWrP1p2UegHQShW5Cev9vr6g7Lk97UsS1Agh9lnjbvMzFSAiLl3M9gHmyMD4aU3NPA==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
jquery-validation "^1.21.0"
-"@abp/jquery@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0-rc.2.tgz#f3ecd9b874c44409f3fa287b3735eb05327cf8b8"
- integrity sha512-F9ntMu+SyfzGyOU6t/ymSdzv1StQT6iazZZCtzWPz6zVZcQfE2h/KU1tIoVy3QQylBVGM5jUbYtBgLUN7izKlw==
+"@abp/jquery@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.4.0.tgz#7ed3f1808682717ccfa7c6ac6e8db8a8b648b1e1"
+ integrity sha512-kjFoVIhqlaIHlEs917sIeP1sHmLWXMn+DVKaCkVQUXC2KVq+yvQRC8AZiFQVxOwLvzd9dFFpGwGZgpWkDfvhvg==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
jquery "~3.7.1"
-"@abp/lodash@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0-rc.2.tgz#5acfdd1c3d6b21531fa70ba1665c5115df7855fd"
- integrity sha512-iSkNvwp7W74flDm3hv6gsIP1ie9rNsI95/TbgZN1yBEU+GC27zl2vDcUJuIZvl1GZOxGQWrVNNGsTPzemokXKQ==
+"@abp/lodash@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.4.0.tgz#b6fc25b6e2fd74420ca16a5a13cb8fcd39b89efd"
+ integrity sha512-RuiIGAqJtSBS+4VAk4cg7Zsfj07B3xkiewCaK5j0xUcyjsCJKL1UdXe2zVNL3oE5bXTNMU7yNQWJS4knv2mfwA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
lodash "^4.18.1"
-"@abp/luxon@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0-rc.2.tgz#ca5bd2e4f8c92303b9d1a3e557d02f04596efd6c"
- integrity sha512-W5Y0TO1/CUEpquBZ2jg7FzbXgiw10Ik+a5wXupRXHKHNFhLG4gSh1l+w0Olvoxx0OwmKWztBHqDsSoMXrizcgA==
+"@abp/luxon@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.4.0.tgz#731d20877ec679fa518b7199128676631d030a90"
+ integrity sha512-/hF+FBugJMkp/H9WNZxlsOy3Rl4DTeR2hqmRPI0sPcdFOixCziYrwzyHg/2Kx8cI/zHa6GRRt1B4Jz4yjQTvdw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
luxon "^3.7.2"
-"@abp/malihu-custom-scrollbar-plugin@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0-rc.2.tgz#d3732924171865e626b1cfd3a5fc995da1143ba6"
- integrity sha512-fxagBRXD3Ukn3ZrhiadMl76GjEou66eBCsJoIbHHM+6MQKXcxr7LzktbPAo2W2TllyQVvQvVv8g/MpR2ZtpOZQ==
+"@abp/malihu-custom-scrollbar-plugin@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.4.0.tgz#e1c207d9c66cce64fcb4fe13c091c4b86b00b6d7"
+ integrity sha512-LC+imsGQganhKWybvQytATjQMXfQwfCfi6RRWREP+pejKPuHpqHzPd+AjKwZpx500K2/ZTwT62FKJ1uDiJXSKA==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
malihu-custom-scrollbar-plugin "^3.1.5"
-"@abp/moment@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0-rc.2.tgz#321f2117460f74b0e00a823098c3495aabfde676"
- integrity sha512-5xUjKagARURtCB3bPcj5rcZDKlwDzZoEdC5nE637u2DJwhHPRKSAL6sJN1NrouOZnSrv8QWp4YptwbjigRYeHA==
+"@abp/moment@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.4.0.tgz#6737898b90b579ce5e0d683657757725a4def09d"
+ integrity sha512-WUtzjD6+1JGpgS6Yv2Qo/h4jM77LkkasPrywsetmtj/6zyVQWrkk7tKHTCjhAJtdinctcROwIIcwLsELi0nDHg==
dependencies:
moment "^2.30.1"
-"@abp/popper.js@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0-rc.2.tgz#d0ae71c8ac1edc20ae1c3e77b9d314e2374fbb70"
- integrity sha512-VmXHdbbWjh5qiNQoxvr0geGMoKWAby+COB+ymHEiBjSXfL6Cg0W6R5kZEAZFGhtXImXqjzUxphWF/97CGvS4Zg==
+"@abp/popper.js@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.4.0.tgz#9d8d09c4e18020b6a75ba30daf6786606f555e84"
+ integrity sha512-KR5wGZ/MfR1rOPcmFr5ekraYhOSRul9gqempir69hlqrFKUFqt46F9/wLWyaJ7vlsMU6o4gBo6/jE5tICIpzNw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
"@popperjs/core" "^2.11.8"
-"@abp/select2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0-rc.2.tgz#38dd0ed5ce9ffcec24f8c5932303bd78d6afcb35"
- integrity sha512-7WSECOwknIPNDOJUYOrs+k6lMLn9HPwaO1kz0594F2D0q/G2UzNE+aDiJ0DnWUVnUOZvKDYfesdG+aaL+Lg8VQ==
+"@abp/select2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.4.0.tgz#e744988abf81e2194a5850acc4ac1333e9578df8"
+ integrity sha512-tyAdGzX32joI5vw+MUJGR0iToWCGZrbQg/zKeoCib80Zx5cn+e6GXj6wZyPbsJgVm0jZ7zBweWt3x8HzW9N8Ww==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
select2 "^4.0.13"
-"@abp/sweetalert2@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0-rc.2.tgz#70828ec8421f0a8e313b7573a999232dae21a664"
- integrity sha512-oJXNcLwQmV52sBL/g5ZaDM16TmDgA8h4CxpvG9GapTyIxU/oXtrXDpDeR62eHYSwNsEnBKp1/CiG70N8dDMOag==
+"@abp/sweetalert2@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.4.0.tgz#65cb26c8c7c9c02158c9a487969eef033fe04a73"
+ integrity sha512-kyVMlfnI6MZojJlaRstdHj/CL3olOn4BszjQ155UQaDsGHUu0THmbhpfi4P0q3TCLLzcLM4pkuY3wJHPNl3ZOw==
dependencies:
- "@abp/core" "~10.4.0-rc.2"
+ "@abp/core" "~10.4.0"
sweetalert2 "^11.23.0"
-"@abp/timeago@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0-rc.2.tgz#896de9979f7fc9693da5f817e792e26e32d69449"
- integrity sha512-BxFpQGg/LUqvRf4wbzCf0fz4ZyU37QKGEUKzUSV9RzNj8VaHuWBIW/OaS2op9D2Z2m94Cq8WQYMFUap0lQP8oA==
+"@abp/timeago@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.4.0.tgz#100fc0598e3a605346397f8a395bb96dc70f429d"
+ integrity sha512-G0ppO7Evai3DdhSg4ozxQpvIke0t3vyg63pNdfOtAPngmuam7WBM1WemBi4u29M84WcSfmk4KuAubXO0aCJgDg==
dependencies:
- "@abp/jquery" "~10.4.0-rc.2"
+ "@abp/jquery" "~10.4.0"
timeago "^1.6.7"
-"@abp/utils@~10.4.0-rc.2":
- version "10.4.0-rc.2"
- resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0-rc.2.tgz#7ac5d652c9f4f3e44593c3ce7a89556e09fa2c43"
- integrity sha512-+kT1N+E3D1TqvQD2kJqH+EmXUN6xUvSoOAEkDI6kwtfYfjjBWvxaNfy5AnT938qiFkU03npbAB+x/2H3A6St1Q==
+"@abp/utils@~10.4.0":
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.4.0.tgz#75175f798e58643c0dec1e85a502186c811e9226"
+ integrity sha512-BPc7KGDcbdFZ4GonAt3SOi/gYhG+iXI76TMlAzSKMBRhBU0vxFS8I/pb7U5zX0Gjh5M+aT0l2vA3l+POCHPBfw==
dependencies:
just-compare "^2.3.0"
diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
index 5efa90dd23..49e4c64822 100644
--- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
+++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor
@@ -25,6 +25,7 @@
@* ************************* DATA GRID ************************* *@
=10.4.0-rc.2",
- "@abp/ng.theme.shared": ">=10.4.0-rc.2"
+ "@abp/ng.core": ">=10.4.0",
+ "@abp/ng.theme.shared": ">=10.4.0"
},
"dependencies": {
"chart.js": "^3.5.1",
diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json
index 3f6fce066d..0c590df172 100644
--- a/npm/ng-packs/packages/core/package.json
+++ b/npm/ng-packs/packages/core/package.json
@@ -1,13 +1,13 @@
{
"name": "@abp/ng.core",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/utils": "~10.4.0-rc.2",
+ "@abp/utils": "~10.4.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"ts-toolbelt": "^9.0.0",
diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json
index f75a537070..69219c053c 100644
--- a/npm/ng-packs/packages/feature-management/package.json
+++ b/npm/ng-packs/packages/feature-management/package.json
@@ -1,13 +1,13 @@
{
"name": "@abp/ng.feature-management",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"peerDependencies": {
diff --git a/npm/ng-packs/packages/generators/package.json b/npm/ng-packs/packages/generators/package.json
index 51dc120c3e..02cceff83b 100644
--- a/npm/ng-packs/packages/generators/package.json
+++ b/npm/ng-packs/packages/generators/package.json
@@ -1,6 +1,6 @@
{
"name": "@abp/nx.generators",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"generators": "./generators.json",
"type": "commonjs",
diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json
index fecf6a8a34..9de16b4b54 100644
--- a/npm/ng-packs/packages/identity/package.json
+++ b/npm/ng-packs/packages/identity/package.json
@@ -1,15 +1,15 @@
{
"name": "@abp/ng.identity",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.permission-management": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.permission-management": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/oauth/package.json b/npm/ng-packs/packages/oauth/package.json
index 518f50879b..5aff284c44 100644
--- a/npm/ng-packs/packages/oauth/package.json
+++ b/npm/ng-packs/packages/oauth/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.oauth",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/utils": "~10.4.0-rc.2",
+ "@abp/ng.core": "~10.4.0",
+ "@abp/utils": "~10.4.0",
"angular-oauth2-oidc": "^20.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json
index bc3436e75f..73c2f067f6 100644
--- a/npm/ng-packs/packages/permission-management/package.json
+++ b/npm/ng-packs/packages/permission-management/package.json
@@ -1,13 +1,13 @@
{
"name": "@abp/ng.permission-management",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"peerDependencies": {
diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json
index 70719702a7..46ecaef37a 100644
--- a/npm/ng-packs/packages/schematics/package.json
+++ b/npm/ng-packs/packages/schematics/package.json
@@ -1,6 +1,6 @@
{
"name": "@abp/ng.schematics",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"author": "",
"schematics": "./collection.json",
"dependencies": {
diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json
index 8b0a426747..8f42c8e1f7 100644
--- a/npm/ng-packs/packages/setting-management/package.json
+++ b/npm/ng-packs/packages/setting-management/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.setting-management",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"peerDependencies": {
diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json
index 7aa0f8fe23..7c1095880f 100644
--- a/npm/ng-packs/packages/tenant-management/package.json
+++ b/npm/ng-packs/packages/tenant-management/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.tenant-management",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.feature-management": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.feature-management": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json
index de8fe2916a..4aedfb963f 100644
--- a/npm/ng-packs/packages/theme-basic/package.json
+++ b/npm/ng-packs/packages/theme-basic/package.json
@@ -1,14 +1,14 @@
{
"name": "@abp/ng.theme.basic",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.account.core": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.account.core": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"tslib": "^2.0.0"
},
"publishConfig": {
diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json
index 8f06c2b890..4d3915f869 100644
--- a/npm/ng-packs/packages/theme-shared/package.json
+++ b/npm/ng-packs/packages/theme-shared/package.json
@@ -1,13 +1,13 @@
{
"name": "@abp/ng.theme.shared",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"homepage": "https://abp.io",
"repository": {
"type": "git",
"url": "https://github.com/abpframework/abp.git"
},
"dependencies": {
- "@abp/ng.core": "~10.4.0-rc.2",
+ "@abp/ng.core": "~10.4.0",
"@fortawesome/fontawesome-free": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "~20.0.0",
"@ngx-validate/core": "^0.2.0",
diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json
index 70a9ed8ddb..df098a575d 100644
--- a/npm/packs/anchor-js/package.json
+++ b/npm/packs/anchor-js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/anchor-js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"anchor-js": "^5.0.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json
index 40c5f902b9..219a3daf76 100644
--- a/npm/packs/aspnetcore.components.server.basictheme/package.json
+++ b/npm/packs/aspnetcore.components.server.basictheme/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/aspnetcore.components.server.basictheme",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.components.server.theming": "~10.4.0-rc.2"
+ "@abp/aspnetcore.components.server.theming": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json
index 3729e5a20e..4e0417d56a 100644
--- a/npm/packs/aspnetcore.components.server.theming/package.json
+++ b/npm/packs/aspnetcore.components.server.theming/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/aspnetcore.components.server.theming",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/bootstrap": "~10.4.0-rc.2",
- "@abp/font-awesome": "~10.4.0-rc.2"
+ "@abp/bootstrap": "~10.4.0",
+ "@abp/font-awesome": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json
index 6bf58353a1..755b3200e1 100644
--- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json
+++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/aspnetcore.mvc.ui.theme.basic",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.shared": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json
index 260f089415..ba7ddefd63 100644
--- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json
+++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/aspnetcore.mvc.ui.theme.shared",
"repository": {
"type": "git",
@@ -10,20 +10,20 @@
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui": "~10.4.0-rc.2",
- "@abp/bootstrap": "~10.4.0-rc.2",
- "@abp/bootstrap-datepicker": "~10.4.0-rc.2",
- "@abp/bootstrap-daterangepicker": "~10.4.0-rc.2",
- "@abp/datatables.net-bs5": "~10.4.0-rc.2",
- "@abp/font-awesome": "~10.4.0-rc.2",
- "@abp/jquery-validation-unobtrusive": "~10.4.0-rc.2",
- "@abp/lodash": "~10.4.0-rc.2",
- "@abp/luxon": "~10.4.0-rc.2",
- "@abp/malihu-custom-scrollbar-plugin": "~10.4.0-rc.2",
- "@abp/moment": "~10.4.0-rc.2",
- "@abp/select2": "~10.4.0-rc.2",
- "@abp/sweetalert2": "~10.4.0-rc.2",
- "@abp/timeago": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui": "~10.4.0",
+ "@abp/bootstrap": "~10.4.0",
+ "@abp/bootstrap-datepicker": "~10.4.0",
+ "@abp/bootstrap-daterangepicker": "~10.4.0",
+ "@abp/datatables.net-bs5": "~10.4.0",
+ "@abp/font-awesome": "~10.4.0",
+ "@abp/jquery-validation-unobtrusive": "~10.4.0",
+ "@abp/lodash": "~10.4.0",
+ "@abp/luxon": "~10.4.0",
+ "@abp/malihu-custom-scrollbar-plugin": "~10.4.0",
+ "@abp/moment": "~10.4.0",
+ "@abp/select2": "~10.4.0",
+ "@abp/sweetalert2": "~10.4.0",
+ "@abp/timeago": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json
index 966552599a..a25febdb8c 100644
--- a/npm/packs/aspnetcore.mvc.ui/package-lock.json
+++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "@abp/aspnetcore.mvc.ui",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"lockfileVersion": 1,
"requires": true,
"packages": {
diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json
index b9e8bc0198..6e6897df9f 100644
--- a/npm/packs/aspnetcore.mvc.ui/package.json
+++ b/npm/packs/aspnetcore.mvc.ui/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/aspnetcore.mvc.ui",
"repository": {
"type": "git",
diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json
index ccee255849..e7ddbdc5dc 100644
--- a/npm/packs/blogging/package.json
+++ b/npm/packs/blogging/package.json
@@ -1,14 +1,14 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/blogging",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.shared": "~10.4.0-rc.2",
- "@abp/owl.carousel": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2",
- "@abp/tui-editor": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.shared": "~10.4.0",
+ "@abp/owl.carousel": "~10.4.0",
+ "@abp/prismjs": "~10.4.0",
+ "@abp/tui-editor": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json
index 2cbace0f66..cc64ddcab8 100644
--- a/npm/packs/bootstrap-datepicker/package.json
+++ b/npm/packs/bootstrap-datepicker/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/bootstrap-datepicker",
"repository": {
"type": "git",
diff --git a/npm/packs/bootstrap-daterangepicker/package.json b/npm/packs/bootstrap-daterangepicker/package.json
index 31ac058457..a1e73a6e2b 100644
--- a/npm/packs/bootstrap-daterangepicker/package.json
+++ b/npm/packs/bootstrap-daterangepicker/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/bootstrap-daterangepicker",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/moment": "~10.4.0-rc.2",
+ "@abp/moment": "~10.4.0",
"bootstrap-daterangepicker": "^3.1.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json
index e31f70802b..a67c77d53d 100644
--- a/npm/packs/bootstrap/package.json
+++ b/npm/packs/bootstrap/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/bootstrap",
"repository": {
"type": "git",
@@ -10,8 +10,8 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
- "@abp/popper.js": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
+ "@abp/popper.js": "~10.4.0",
"bootstrap": "^5.3.8"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json
index 6373db6a7d..cf1ae9b469 100644
--- a/npm/packs/chart.js/package.json
+++ b/npm/packs/chart.js/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/chart.js",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json
index 06600826fe..d88e8abe1b 100644
--- a/npm/packs/clipboard/package.json
+++ b/npm/packs/clipboard/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/clipboard",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"clipboard": "^2.0.11"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json
index a78b6b4e77..06cc7002f3 100644
--- a/npm/packs/cms-kit.admin/package.json
+++ b/npm/packs/cms-kit.admin/package.json
@@ -1,16 +1,16 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/cms-kit.admin",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/codemirror": "~10.4.0-rc.2",
- "@abp/jstree": "~10.4.0-rc.2",
- "@abp/markdown-it": "~10.4.0-rc.2",
- "@abp/slugify": "~10.4.0-rc.2",
- "@abp/tui-editor": "~10.4.0-rc.2",
- "@abp/uppy": "~10.4.0-rc.2"
+ "@abp/codemirror": "~10.4.0",
+ "@abp/jstree": "~10.4.0",
+ "@abp/markdown-it": "~10.4.0",
+ "@abp/slugify": "~10.4.0",
+ "@abp/tui-editor": "~10.4.0",
+ "@abp/uppy": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json
index dae2cebd32..2cfed064d1 100644
--- a/npm/packs/cms-kit.public/package.json
+++ b/npm/packs/cms-kit.public/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/cms-kit.public",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/highlight.js": "~10.4.0-rc.2",
- "@abp/star-rating-svg": "~10.4.0-rc.2"
+ "@abp/highlight.js": "~10.4.0",
+ "@abp/star-rating-svg": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json
index c92e0b673c..7bb036947f 100644
--- a/npm/packs/cms-kit/package.json
+++ b/npm/packs/cms-kit/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/cms-kit",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/cms-kit.admin": "~10.4.0-rc.2",
- "@abp/cms-kit.public": "~10.4.0-rc.2"
+ "@abp/cms-kit.admin": "~10.4.0",
+ "@abp/cms-kit.public": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json
index 6b878ba10d..88ec6b738e 100644
--- a/npm/packs/codemirror/package.json
+++ b/npm/packs/codemirror/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/codemirror",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"codemirror": "^5.65.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json
index 60d7323bb6..7240e0a35c 100644
--- a/npm/packs/core/package.json
+++ b/npm/packs/core/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/core",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/utils": "~10.4.0-rc.2"
+ "@abp/utils": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json
index 935fd224a9..3ac34528c8 100644
--- a/npm/packs/cropperjs/package.json
+++ b/npm/packs/cropperjs/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/cropperjs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"cropperjs": "^1.6.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json
index ac8aa50a4b..2651bacc00 100644
--- a/npm/packs/datatables.net-bs4/package.json
+++ b/npm/packs/datatables.net-bs4/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/datatables.net-bs4",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/datatables.net": "~10.4.0-rc.2",
+ "@abp/datatables.net": "~10.4.0",
"datatables.net-bs4": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json
index 9aa0cd52f5..87e4148b44 100644
--- a/npm/packs/datatables.net-bs5/package.json
+++ b/npm/packs/datatables.net-bs5/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/datatables.net-bs5",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/datatables.net": "~10.4.0-rc.2",
+ "@abp/datatables.net": "~10.4.0",
"datatables.net-bs5": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json
index 39d03b479e..68ada5243e 100644
--- a/npm/packs/datatables.net/package.json
+++ b/npm/packs/datatables.net/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/datatables.net",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"datatables.net": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json
index 384cc53455..7dbdbe62c3 100644
--- a/npm/packs/docs/package.json
+++ b/npm/packs/docs/package.json
@@ -1,15 +1,15 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/docs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/anchor-js": "~10.4.0-rc.2",
- "@abp/clipboard": "~10.4.0-rc.2",
- "@abp/malihu-custom-scrollbar-plugin": "~10.4.0-rc.2",
- "@abp/popper.js": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2"
+ "@abp/anchor-js": "~10.4.0",
+ "@abp/clipboard": "~10.4.0",
+ "@abp/malihu-custom-scrollbar-plugin": "~10.4.0",
+ "@abp/popper.js": "~10.4.0",
+ "@abp/prismjs": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json
index 8f1f18bfa7..e3150bcce5 100644
--- a/npm/packs/flag-icon-css/package.json
+++ b/npm/packs/flag-icon-css/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/flag-icon-css",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/flag-icons/package.json b/npm/packs/flag-icons/package.json
index ac8383e8af..03d5e89951 100644
--- a/npm/packs/flag-icons/package.json
+++ b/npm/packs/flag-icons/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/flag-icons",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json
index 4afc64510c..d6a63b817b 100644
--- a/npm/packs/font-awesome/package.json
+++ b/npm/packs/font-awesome/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/font-awesome",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"@fortawesome/fontawesome-free": "^7.0.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json
index c1c30f59dd..9905d5157e 100644
--- a/npm/packs/highlight.js/package.json
+++ b/npm/packs/highlight.js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/highlight.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"@highlightjs/cdn-assets": "~11.11.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json
index 9493d827a9..4df991d2bc 100644
--- a/npm/packs/jquery-form/package.json
+++ b/npm/packs/jquery-form/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/jquery-form",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"jquery-form": "^4.3.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json
index cb7de6c01d..0d7b73cd14 100644
--- a/npm/packs/jquery-validation-unobtrusive/package.json
+++ b/npm/packs/jquery-validation-unobtrusive/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/jquery-validation-unobtrusive",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery-validation": "~10.4.0-rc.2",
+ "@abp/jquery-validation": "~10.4.0",
"jquery-validation-unobtrusive": "^4.0.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json
index 7371ee6884..c866883ffd 100644
--- a/npm/packs/jquery-validation/package.json
+++ b/npm/packs/jquery-validation/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/jquery-validation",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"jquery-validation": "^1.21.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json
index b965a04598..dd8e5421a0 100644
--- a/npm/packs/jquery/package.json
+++ b/npm/packs/jquery/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/jquery",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"jquery": "~3.7.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json
index f10444c359..a937aa4626 100644
--- a/npm/packs/jstree/package.json
+++ b/npm/packs/jstree/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/jstree",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"jstree": "^3.3.17"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json
index a848aa9cf4..8bc0bb9e65 100644
--- a/npm/packs/lodash/package.json
+++ b/npm/packs/lodash/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/lodash",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"lodash": "^4.18.1"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json
index 9656ec45e7..8f4a25b404 100644
--- a/npm/packs/luxon/package.json
+++ b/npm/packs/luxon/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/luxon",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"luxon": "^3.7.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json
index 4a9897a916..34da2724f0 100644
--- a/npm/packs/malihu-custom-scrollbar-plugin/package.json
+++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/malihu-custom-scrollbar-plugin",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"malihu-custom-scrollbar-plugin": "^3.1.5"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json
index 6231c69651..da4b1b42ea 100644
--- a/npm/packs/markdown-it/package.json
+++ b/npm/packs/markdown-it/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/markdown-it",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"markdown-it": "^14.1.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/moment/package.json b/npm/packs/moment/package.json
index c331c46ed1..42dc61b15e 100644
--- a/npm/packs/moment/package.json
+++ b/npm/packs/moment/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/moment",
"repository": {
"type": "git",
diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json
index 064dd8e1c5..b891f5935e 100644
--- a/npm/packs/owl.carousel/package.json
+++ b/npm/packs/owl.carousel/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/owl.carousel",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"owl.carousel": "^2.3.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json
index a19549fd5a..617d7d6c76 100644
--- a/npm/packs/popper.js/package.json
+++ b/npm/packs/popper.js/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/popper.js",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"@popperjs/core": "^2.11.8"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json
index 2856b22332..cf688d8983 100644
--- a/npm/packs/prismjs/package.json
+++ b/npm/packs/prismjs/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/prismjs",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/clipboard": "~10.4.0-rc.2",
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/clipboard": "~10.4.0",
+ "@abp/core": "~10.4.0",
"prismjs": "^1.30.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/qrcode/package.json b/npm/packs/qrcode/package.json
index ac79ff274d..cacad4a3ea 100644
--- a/npm/packs/qrcode/package.json
+++ b/npm/packs/qrcode/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/qrcode",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2"
+ "@abp/core": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json
index 470ed050f2..6b542d55f9 100644
--- a/npm/packs/select2/package.json
+++ b/npm/packs/select2/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/select2",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"select2": "^4.0.13"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json
index 334a336d93..df66a2992d 100644
--- a/npm/packs/signalr/package.json
+++ b/npm/packs/signalr/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/signalr",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"@microsoft/signalr": "~9.0.6"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json
index f1cb808437..987d1db8df 100644
--- a/npm/packs/slugify/package.json
+++ b/npm/packs/slugify/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/slugify",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json
index d2bb3f9ad6..c91f372ded 100644
--- a/npm/packs/star-rating-svg/package.json
+++ b/npm/packs/star-rating-svg/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/star-rating-svg",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"star-rating-svg": "^3.5.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json
index 91399a31bc..f05e59638e 100644
--- a/npm/packs/sweetalert2/package.json
+++ b/npm/packs/sweetalert2/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/sweetalert2",
"publishConfig": {
"access": "public"
@@ -10,7 +10,7 @@
"directory": "npm/packs/sweetalert2"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"sweetalert2": "^11.23.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json
index 8a054aaa0d..b82344d248 100644
--- a/npm/packs/timeago/package.json
+++ b/npm/packs/timeago/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/timeago",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"timeago": "^1.6.7"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json
index d4efe1fb8e..791e89876a 100644
--- a/npm/packs/toastr/package.json
+++ b/npm/packs/toastr/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/toastr",
"repository": {
"type": "git",
@@ -10,7 +10,7 @@
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
+ "@abp/jquery": "~10.4.0",
"toastr": "^2.1.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json
index 6e65112ad0..660f8f2b23 100644
--- a/npm/packs/tui-editor/package.json
+++ b/npm/packs/tui-editor/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/tui-editor",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/jquery": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2"
+ "@abp/jquery": "~10.4.0",
+ "@abp/prismjs": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json
index 60fc941d7c..62eee541e4 100644
--- a/npm/packs/uppy/package.json
+++ b/npm/packs/uppy/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/uppy",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"uppy": "^5.1.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json
index 3f018f43dc..b707809042 100644
--- a/npm/packs/utils/package.json
+++ b/npm/packs/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@abp/utils",
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"scripts": {
"prepublishOnly": "yarn install --ignore-scripts && node prepublish.js",
"ng": "ng",
diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json
index 50c6a8b576..5b236f5f6c 100644
--- a/npm/packs/vee-validate/package.json
+++ b/npm/packs/vee-validate/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/vee-validate",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/vue": "~10.4.0-rc.2",
+ "@abp/vue": "~10.4.0",
"vee-validate": "~3.4.4"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json
index 6e7bcba222..eddad1a6eb 100644
--- a/npm/packs/virtual-file-explorer/package.json
+++ b/npm/packs/virtual-file-explorer/package.json
@@ -1,12 +1,12 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/virtual-file-explorer",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/clipboard": "~10.4.0-rc.2",
- "@abp/prismjs": "~10.4.0-rc.2"
+ "@abp/clipboard": "~10.4.0",
+ "@abp/prismjs": "~10.4.0"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
"homepage": "https://abp.io",
diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json
index 06d354e7ea..3857af7964 100644
--- a/npm/packs/vue/package.json
+++ b/npm/packs/vue/package.json
@@ -1,5 +1,5 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/vue",
"publishConfig": {
"access": "public"
diff --git a/npm/packs/zxcvbn/package.json b/npm/packs/zxcvbn/package.json
index e43f2d8786..4e241d0d21 100644
--- a/npm/packs/zxcvbn/package.json
+++ b/npm/packs/zxcvbn/package.json
@@ -1,11 +1,11 @@
{
- "version": "10.4.0-rc.2",
+ "version": "10.4.0",
"name": "@abp/zxcvbn",
"publishConfig": {
"access": "public"
},
"dependencies": {
- "@abp/core": "~10.4.0-rc.2",
+ "@abp/core": "~10.4.0",
"zxcvbn": "^4.4.2"
},
"gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431",
diff --git a/nupkg/0 b/nupkg/0
index ec635144f6..573541ac97 100644
--- a/nupkg/0
+++ b/nupkg/0
@@ -1 +1 @@
-9
+0
diff --git a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip
index 90f80c4eb9..3a496157f5 100644
Binary files a/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip and b/source-code/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip
index c067085a72..e1ca33d049 100644
Binary files a/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip and b/source-code/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip
index b7e9d15984..a426ca0b9d 100644
Binary files a/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip and b/source-code/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip
index 90539eeefe..ebec6915ef 100644
Binary files a/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip and b/source-code/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip
index f3e8ecb378..2c55be8f9e 100644
Binary files a/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip and b/source-code/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip
index ab6e046679..acda6b15dc 100644
Binary files a/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip and b/source-code/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip
index 9bc7d440e9..b6b148e695 100644
Binary files a/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip and b/source-code/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip
index e1caf43b77..fd142199d1 100644
Binary files a/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip and b/source-code/Volo.Abp.OpenIddict.SourceCode/Volo.Abp.OpenIddict.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip
index 496c9ec96b..fb77821a9d 100644
Binary files a/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip and b/source-code/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip
index cef7f0ace0..1b781b64ed 100644
Binary files a/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip and b/source-code/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip
index 233fe8341a..ca84861e1b 100644
Binary files a/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip and b/source-code/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip
index d9345afdee..8287f904b9 100644
Binary files a/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip and b/source-code/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ
diff --git a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip
index 482c4581dd..24c7e65fb9 100644
Binary files a/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip and b/source-code/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ
diff --git a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip
index c1bc6d27ab..b54d5a2bc2 100644
Binary files a/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip and b/source-code/Volo.Blogging.SourceCode/Volo.Blogging.SourceCode.zip differ
diff --git a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip
index 6a2e1310ee..c79eae7884 100644
Binary files a/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip and b/source-code/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ
diff --git a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip
index 44961e9a85..085401311d 100644
Binary files a/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip and b/source-code/Volo.Docs.SourceCode/Volo.Docs.SourceCode.zip differ
diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json
index 065be6dd98..43cde95c59 100644
--- a/templates/app-nolayers/angular/package.json
+++ b/templates/app-nolayers/angular/package.json
@@ -12,15 +12,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.4.0-rc.2",
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/ng.identity": "~10.4.0-rc.2",
- "@abp/ng.oauth": "~10.4.0-rc.2",
- "@abp/ng.setting-management": "~10.4.0-rc.2",
- "@abp/ng.tenant-management": "~10.4.0-rc.2",
- "@abp/ng.theme.lepton-x": "~5.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.account": "~10.4.0",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.core": "~10.4.0",
+ "@abp/ng.identity": "~10.4.0",
+ "@abp/ng.oauth": "~10.4.0",
+ "@abp/ng.setting-management": "~10.4.0",
+ "@abp/ng.tenant-management": "~10.4.0",
+ "@abp/ng.theme.lepton-x": "~5.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"@angular/animations": "~21.2.0",
"@angular/aria": "~21.2.0",
"@angular/common": "~21.2.0",
@@ -37,7 +37,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.4.0-rc.2",
+ "@abp/ng.schematics": "~10.4.0",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json
index ba5914c2f9..1ddb8af741 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2",
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0",
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json
index dbbf59cad1..964755e648 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json
index f2cb08a2eb..70d14326ac 100644
--- a/templates/app/angular/package.json
+++ b/templates/app/angular/package.json
@@ -12,15 +12,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.4.0-rc.2",
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/ng.identity": "~10.4.0-rc.2",
- "@abp/ng.oauth": "~10.4.0-rc.2",
- "@abp/ng.setting-management": "~10.4.0-rc.2",
- "@abp/ng.tenant-management": "~10.4.0-rc.2",
- "@abp/ng.theme.lepton-x": "~5.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.account": "~10.4.0",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.core": "~10.4.0",
+ "@abp/ng.identity": "~10.4.0",
+ "@abp/ng.oauth": "~10.4.0",
+ "@abp/ng.setting-management": "~10.4.0",
+ "@abp/ng.tenant-management": "~10.4.0",
+ "@abp/ng.theme.lepton-x": "~5.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"@angular/animations": "~21.2.0",
"@angular/aria": "~21.2.0",
"@angular/common": "~21.2.0",
@@ -37,7 +37,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.4.0-rc.2",
+ "@abp/ng.schematics": "~10.4.0",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
index 92f746b69e..4f52fa5c73 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
@@ -3,6 +3,6 @@
"name": "my-app-authserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
index dbbf59cad1..964755e648 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
index dbbf59cad1..964755e648 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
index dbbf59cad1..964755e648 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
index dbbf59cad1..964755e648 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
index 520fcd7a40..0fe746056e 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.4.0"
}
}
diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json
index 390d2daee9..a0be416c22 100644
--- a/templates/module/angular/package.json
+++ b/templates/module/angular/package.json
@@ -13,15 +13,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.4.0-rc.2",
- "@abp/ng.components": "~10.4.0-rc.2",
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/ng.identity": "~10.4.0-rc.2",
- "@abp/ng.oauth": "~10.4.0-rc.2",
- "@abp/ng.setting-management": "~10.4.0-rc.2",
- "@abp/ng.tenant-management": "~10.4.0-rc.2",
- "@abp/ng.theme.basic": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2",
+ "@abp/ng.account": "~10.4.0",
+ "@abp/ng.components": "~10.4.0",
+ "@abp/ng.core": "~10.4.0",
+ "@abp/ng.identity": "~10.4.0",
+ "@abp/ng.oauth": "~10.4.0",
+ "@abp/ng.setting-management": "~10.4.0",
+ "@abp/ng.tenant-management": "~10.4.0",
+ "@abp/ng.theme.basic": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0",
"@angular/animations": "~21.2.0",
"@angular/aria": "~21.2.0",
"@angular/common": "~21.2.0",
@@ -37,7 +37,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.4.0-rc.2",
+ "@abp/ng.schematics": "~10.4.0",
"@angular-eslint/builder": "~21.2.0",
"@angular-eslint/eslint-plugin": "~21.2.0",
"@angular-eslint/eslint-plugin-template": "~21.2.0",
diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json
index 4355d231a1..e87456cc64 100644
--- a/templates/module/angular/projects/my-project-name/package.json
+++ b/templates/module/angular/projects/my-project-name/package.json
@@ -4,8 +4,8 @@
"peerDependencies": {
"@angular/common": "~21.2.0",
"@angular/core": "~21.2.0",
- "@abp/ng.core": "~10.4.0-rc.2",
- "@abp/ng.theme.shared": "~10.4.0-rc.2"
+ "@abp/ng.core": "~10.4.0",
+ "@abp/ng.theme.shared": "~10.4.0"
},
"dependencies": {
"tslib": "^2.1.0"
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
index 2487d353b1..d15c5dfb60 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
@@ -3,6 +3,6 @@
"name": "my-app-authserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
index a76206e820..9a6e08f751 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0-rc.2",
- "@abp/aspnetcore.components.server.basictheme": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0",
+ "@abp/aspnetcore.components.server.basictheme": "~10.4.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
index dc673dea89..2d75677571 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
index dc673dea89..2d75677571 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0-rc.2"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.4.0"
}
}