diff --git a/docs/en/get-started/layered-web-application.md b/docs/en/get-started/layered-web-application.md
index 76afeb6dab..ee26397797 100644
--- a/docs/en/get-started/layered-web-application.md
+++ b/docs/en/get-started/layered-web-application.md
@@ -11,6 +11,34 @@
In this quick start guide, you will learn how to create and run a layered (and potentially modular) web application using [ABP Studio](../studio/index.md).
+## Setup your development environment
+
+First things first! Let's setup your development environment before creating the first project.
+
+### Pre-requirements
+
+The following tools should be installed on your development machine:
+
+* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor)
+* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
+{{ if UI != "Blazor" }}
+* [Node v16 or v18](https://nodejs.org/)
+* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node)
+{{ end }}
+{{ if Tiered == "Yes" }}
+* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)).
+{{ else }}
+* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option.
+{{ end }}
+
+1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor)
+
+{{ if UI != "Blazor" }}
+
+2 _Yarn v2 works differently and is not supported._ [↩](#a-yarn)
+
+{{ end }}
+
## Creating a New Solution
> 🛈 This document uses [ABP Studio](../studio/index.md) to create new ABP solutions. **ABP Studio** is in the beta version now. If you have any issues, you can use the [ABP CLI](../cli/index.md) to create new solutions. You can also use the [getting started page](https://abp.io/get-started) to easily build ABP CLI commands for new project creations.
diff --git a/docs/en/get-started/single-layer-web-application.md b/docs/en/get-started/single-layer-web-application.md
index ff9868eff9..9708c513cb 100644
--- a/docs/en/get-started/single-layer-web-application.md
+++ b/docs/en/get-started/single-layer-web-application.md
@@ -10,6 +10,34 @@
In this quick start guide, you will learn how to create and run a single layer web application using [ABP Studio](../studio/index.md).
+## Setup your development environment
+
+First things first! Let's setup your development environment before creating the first project.
+
+### Pre-requirements
+
+The following tools should be installed on your development machine:
+
+* [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor)
+* [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet)
+{{ if UI != "Blazor" }}
+* [Node v16 or v18](https://nodejs.org/)
+* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node)
+{{ end }}
+{{ if Tiered == "Yes" }}
+* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)).
+{{ else }}
+* [Redis](https://redis.io/) (as the [distributed cache](Caching.md)) is required if you select the Public website option.
+{{ end }}
+
+1 _You can use another editor instead of Visual Studio as long as it supports .NET Core and ASP.NET Core._ [↩](#a-editor)
+
+{{ if UI != "Blazor" }}
+
+2 _Yarn v2 works differently and is not supported._ [↩](#a-yarn)
+
+{{ end }}
+
## Creating a New Solution
> 🛈 This document uses [ABP Studio](../studio/index.md) to create new ABP solutions. **ABP Studio** is in the beta version now. If you have any issues, you can use the [ABP CLI](../cli/index.md) to create new solutions. You can also use the [getting started page](https://abp.io/get-started) to easily build ABP CLI commands for new project creations.
diff --git a/docs/en/images/payment-module-subscription-flow.png b/docs/en/images/payment-module-subscription-flow.png
index d5036932a3..e36c1ee61f 100644
Binary files a/docs/en/images/payment-module-subscription-flow.png and b/docs/en/images/payment-module-subscription-flow.png differ
diff --git a/npm/ng-packs/.eslintrc.json b/npm/ng-packs/.eslintrc.json
index 8649f90b2d..e532db22cc 100644
--- a/npm/ng-packs/.eslintrc.json
+++ b/npm/ng-packs/.eslintrc.json
@@ -31,14 +31,18 @@
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-empty-function": ["warn"],
- "@typescript-eslint/no-empty-interface": ["warn"]
-
+ "@typescript-eslint/no-empty-interface": ["warn"],
+ "@typescript-eslint/no-extra-semi": "error",
+ "no-extra-semi": "off"
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
- "rules": {}
+ "rules": {
+ "@typescript-eslint/no-extra-semi": "error",
+ "no-extra-semi": "off"
+ }
},
{
"files": "*.json",
diff --git a/npm/ng-packs/.prettierignore b/npm/ng-packs/.prettierignore
index 1d94f2ad3d..ab9e6cdaa7 100644
--- a/npm/ng-packs/.prettierignore
+++ b/npm/ng-packs/.prettierignore
@@ -8,4 +8,5 @@
/scripts
/tools
/source-code-requirements
-/.nx/cache
\ No newline at end of file
+/.nx/cache
+/.nx/workspace-data
\ No newline at end of file
diff --git a/npm/ng-packs/migrations.json b/npm/ng-packs/migrations.json
index 8e84624df1..c7f89c3394 100644
--- a/npm/ng-packs/migrations.json
+++ b/npm/ng-packs/migrations.json
@@ -1,56 +1,84 @@
{
"migrations": [
{
- "version": "18.1.0-beta.3",
- "description": "Moves affected.defaultBase to defaultBase in `nx.json`",
- "implementation": "./src/migrations/update-17-2-0/move-default-base",
+ "cli": "nx",
+ "version": "19.2.0-beta.2",
+ "description": "Updates the default workspace data directory to .nx/workspace-data",
+ "implementation": "./src/migrations/update-19-2-0/move-workspace-data-directory",
+ "package": "nx",
+ "name": "19-2-0-move-graph-cache-directory"
+ },
+ {
+ "cli": "nx",
+ "version": "19.2.2-beta.0",
+ "description": "Updates the nx wrapper.",
+ "implementation": "./src/migrations/update-17-3-0/update-nxw",
+ "package": "nx",
+ "name": "19-2-2-update-nx-wrapper"
+ },
+ {
+ "version": "19.2.4-beta.0",
+ "description": "Set project name in nx.json explicitly",
+ "implementation": "./src/migrations/update-19-2-4/set-project-name",
+ "x-repair-skip": true,
"package": "nx",
- "name": "move-default-base-to-nx-json-root"
+ "name": "19-2-4-set-project-name"
},
{
"cli": "nx",
- "version": "18.1.0-beta.3",
- "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.",
- "implementation": "./src/migrations/update-18-1-0/update-cypress-version-13-6-6",
- "package": "@nx/cypress",
- "name": "update-cypress-version-13-6-6"
+ "version": "19.1.0-beta.6",
+ "description": "Migrate no-extra-semi rules into user config, out of nx extendable configs",
+ "implementation": "./src/migrations/update-19-1-0-migrate-no-extra-semi/migrate-no-extra-semi",
+ "package": "@nx/eslint-plugin",
+ "name": "update-19-1-0-rename-no-extra-semi"
},
{
"cli": "nx",
- "version": "18.1.0-beta.1",
- "requires": {
- "@angular/core": ">=17.2.0"
- },
- "description": "Update the @angular/cli package version to ~17.2.0.",
- "factory": "./src/migrations/update-18-1-0/update-angular-cli",
+ "version": "19.1.0-beta.2",
+ "requires": { "@angular/core": ">=18.0.0" },
+ "description": "Update the @angular/cli package version to ~18.0.0.",
+ "factory": "./src/migrations/update-19-1-0/update-angular-cli",
"package": "@nx/angular",
- "name": "update-angular-cli-version-17-2-0"
+ "name": "update-angular-cli-version-18-0-0"
},
{
"cli": "nx",
- "version": "18.1.1-beta.0",
- "description": "Ensure targetDefaults inputs for task hashing when '@nx/angular:webpack-browser' is used are correct for Module Federation.",
- "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs",
+ "version": "19.2.1-beta.0",
+ "requires": { "@angular-eslint/eslint-plugin": ">=18.0.0" },
+ "description": "Installs the '@typescript-eslint/utils' package when having installed '@angular-eslint/eslint-plugin' or '@angular-eslint/eslint-plugin-template' with version >=18.0.0.",
+ "factory": "./src/migrations/update-19-2-1/add-typescript-eslint-utils",
"package": "@nx/angular",
- "name": "fix-target-defaults-for-webpack-browser"
+ "name": "add-typescript-eslint-utils"
},
{
"cli": "nx",
- "version": "18.2.0-beta.0",
- "requires": {
- "@angular/core": ">=17.3.0"
- },
- "description": "Update the @angular/cli package version to ~17.3.0.",
- "factory": "./src/migrations/update-18-2-0/update-angular-cli",
+ "version": "19.5.0-beta.1",
+ "requires": { "@angular/core": ">=18.1.0" },
+ "description": "Update the @angular/cli package version to ~18.1.0.",
+ "factory": "./src/migrations/update-19-5-0/update-angular-cli",
"package": "@nx/angular",
- "name": "update-angular-cli-version-17-3-0"
+ "name": "update-angular-cli-version-18-1-0"
},
{
- "version": "17.3.0",
+ "version": "18.0.0",
"description": "Updates two-way bindings that have an invalid expression to use the longform expression instead.",
"factory": "./migrations/invalid-two-way-bindings/bundle",
"package": "@angular/core",
"name": "invalid-two-way-bindings"
+ },
+ {
+ "version": "18.0.0",
+ "description": "Replace deprecated HTTP related modules with provider functions",
+ "factory": "./migrations/http-providers/bundle",
+ "package": "@angular/core",
+ "name": "migration-http-providers"
+ },
+ {
+ "version": "18.1.0",
+ "description": "Updates calls to afterRender with an explicit phase to the new API",
+ "factory": "./migrations/after-render-phase/bundle",
+ "package": "@angular/core",
+ "name": "migration-after-render-phase"
}
]
}
diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json
index 4129477fb8..e62cbf9e09 100644
--- a/npm/ng-packs/package.json
+++ b/npm/ng-packs/package.json
@@ -44,51 +44,52 @@
},
"private": true,
"devDependencies": {
- "@abp/ng.theme.lepton-x": "~3.2.0",
+ "@abp/ng.theme.lepton-x": "~3.3.0-rc.1",
"@abp/utils": "~8.3.0-rc.1",
- "@angular-devkit/build-angular": "~17.3.0",
- "@angular-devkit/core": "~17.3.0",
- "@angular-devkit/schematics": "~17.3.0",
- "@angular-devkit/schematics-cli": "~17.3.0",
- "@angular-eslint/eslint-plugin": "~17.3.0",
- "@angular-eslint/eslint-plugin-template": "~17.3.0",
- "@angular-eslint/template-parser": "~17.3.0",
- "@angular/animations": "~17.3.0",
- "@angular/cli": "~17.3.0",
- "@angular/common": "~17.3.0",
- "@angular/compiler": "~17.3.0",
- "@angular/compiler-cli": "~17.3.0",
- "@angular/core": "~17.3.0",
- "@angular/forms": "~17.3.0",
- "@angular/language-service": "~17.3.0",
- "@angular/localize": "~17.3.0",
- "@angular/platform-browser": "~17.3.0",
- "@angular/platform-browser-dynamic": "~17.3.0",
- "@angular/router": "~17.3.0",
+ "@angular-devkit/build-angular": "~18.1.0",
+ "@angular-devkit/core": "~18.1.0",
+ "@angular-devkit/schematics": "~18.1.0",
+ "@angular-devkit/schematics-cli": "~18.1.0",
+ "@angular-eslint/eslint-plugin": "~18.1.0",
+ "@angular-eslint/eslint-plugin-template": "~18.1.0",
+ "@angular-eslint/template-parser": "~18.1.0",
+ "@angular/animations": "~18.1.0",
+ "@angular/cli": "~18.1.0",
+ "@angular/common": "~18.1.0",
+ "@angular/compiler": "~18.1.0",
+ "@angular/compiler-cli": "~18.1.0",
+ "@angular/core": "~18.1.0",
+ "@angular/forms": "~18.1.0",
+ "@angular/language-service": "~18.1.0",
+ "@angular/localize": "~18.1.0",
+ "@angular/platform-browser": "~18.1.0",
+ "@angular/platform-browser-dynamic": "~18.1.0",
+ "@angular/router": "~18.1.0",
"@fortawesome/fontawesome-free": "^6.0.0",
- "@ng-bootstrap/ng-bootstrap": "~16.0.0",
+ "@ng-bootstrap/ng-bootstrap": "~17.0.0",
"@ngneat/spectator": "^16.0.0",
"@ngx-validate/core": "^0.2.0",
- "@nx/angular": "~19.0.0",
- "@nx/cypress": "~19.0.0",
- "@nx/devkit": "~19.0.0",
- "@nx/eslint": "~19.0.0",
- "@nx/eslint-plugin": "~19.0.0",
- "@nx/jest": "~19.0.0",
- "@nx/js": "~19.0.0",
- "@nx/plugin": "~19.0.0",
- "@nx/workspace": "~19.0.0",
+ "@nx/angular": "~19.5.0",
+ "@nx/cypress": "~19.5.0",
+ "@nx/devkit": "~19.5.0",
+ "@nx/eslint": "~19.5.0",
+ "@nx/eslint-plugin": "~19.5.0",
+ "@nx/jest": "~19.5.0",
+ "@nx/js": "~19.5.0",
+ "@nx/plugin": "~19.5.0",
+ "@nx/workspace": "~19.5.0",
"@popperjs/core": "~2.11.0",
- "@schematics/angular": "~17.3.0",
- "@swc-node/register": "1.6.8",
+ "@schematics/angular": "~18.1.0",
+ "@swc-node/register": "1.9.2",
"@swc/cli": "0.3.12",
- "@swc/core": "1.3.94",
- "@swc/helpers": "0.5.3",
+ "@swc/core": "~1.5.0",
+ "@swc/helpers": "~0.5.0",
"@swimlane/ngx-datatable": "^20.0.0",
"@types/jest": "29.4.4",
"@types/node": "^20.0.0",
- "@typescript-eslint/eslint-plugin": "6.13.2",
- "@typescript-eslint/parser": "6.13.2",
+ "@typescript-eslint/eslint-plugin": "7.16.0",
+ "@typescript-eslint/parser": "7.16.0",
+ "@typescript-eslint/utils": "^7.16.0",
"angular-oauth2-oidc": "^17.0.0",
"autoprefixer": "^10.0.0",
"bootstrap": "^5.0.0",
@@ -96,23 +97,23 @@
"chart.js": "^4.0.0",
"cypress": "^7.0.0",
"dotenv": "10.0.0",
- "eslint": "8.57.0",
+ "eslint": "^8.0.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-cypress": "^2.10.3",
"got": "^11.0.0",
"jest": "^29.0.0",
"jest-canvas-mock": "^2.0.0",
"jest-environment-jsdom": "^29.0.0",
- "jest-preset-angular": "14.0.3",
+ "jest-preset-angular": "14.1.1",
"jsonc-eslint-parser": "^2.0.0",
"jsonc-parser": "^2.0.0",
"just-clone": "^6.0.0",
"just-compare": "^2.0.0",
"lerna": "^4.0.0",
"lint-staged": "^13.0.0",
- "ng-packagr": "~17.3.0",
+ "ng-packagr": "~18.1.0",
"ng-zorro-antd": "^17.0.0",
- "nx": "~19.0.0",
+ "nx": "~19.5.0",
"perfect-scrollbar": "^1.0.0",
"postcss": "^8.0.0",
"postcss-import": "14.1.0",
@@ -127,7 +128,7 @@
"ts-toolbelt": "^9.0.0",
"tslib": "^2.0.0",
"tslint": "~6.1.0",
- "typescript": "~5.4.0",
+ "typescript": "~5.5.0",
"zone.js": "~0.14.0"
},
"lint-staged": {
diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts
index 30c09c4c0c..83881a5246 100644
--- a/npm/ng-packs/packages/core/src/lib/core.module.ts
+++ b/npm/ng-packs/packages/core/src/lib/core.module.ts
@@ -1,5 +1,9 @@
import { CommonModule } from '@angular/common';
-import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
+import {
+ provideHttpClient,
+ withInterceptorsFromDi,
+ withXsrfConfiguration,
+} from '@angular/common/http';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
@@ -46,7 +50,6 @@ const standaloneDirectives = [
@NgModule({
exports: [
CommonModule,
- HttpClientModule,
FormsModule,
ReactiveFormsModule,
RouterModule,
@@ -65,7 +68,6 @@ const standaloneDirectives = [
],
imports: [
CommonModule,
- HttpClientModule,
FormsModule,
ReactiveFormsModule,
RouterModule,
@@ -84,7 +86,7 @@ const standaloneDirectives = [
ShortTimePipe,
ShortDatePipe,
],
- providers: [LocalizationPipe],
+ providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())],
})
export class BaseCoreModule {}
@@ -94,13 +96,14 @@ export class BaseCoreModule {}
*/
@NgModule({
exports: [BaseCoreModule, LocalizationModule],
- imports: [
- BaseCoreModule,
- LocalizationModule,
- HttpClientXsrfModule.withOptions({
- cookieName: 'XSRF-TOKEN',
- headerName: 'RequestVerificationToken',
- }),
+ imports: [BaseCoreModule, LocalizationModule],
+ providers: [
+ provideHttpClient(
+ withXsrfConfiguration({
+ cookieName: 'XSRF-TOKEN',
+ headerName: 'RequestVerificationToken',
+ }),
+ ),
],
})
export class RootCoreModule {}
diff --git a/npm/ng-packs/packages/schematics/.eslintrc.json b/npm/ng-packs/packages/schematics/.eslintrc.json
index 15e5145560..a291bd52a8 100644
--- a/npm/ng-packs/packages/schematics/.eslintrc.json
+++ b/npm/ng-packs/packages/schematics/.eslintrc.json
@@ -29,13 +29,18 @@
"extends": ["plugin:@nx/typescript"],
"rules": {
"@typescript-eslint/no-non-null-assertion": "off",
- "@typescript-eslint/no-empty-function": ["warn"]
+ "@typescript-eslint/no-empty-function": ["warn"],
+ "@typescript-eslint/no-extra-semi": "error",
+ "no-extra-semi": "off"
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
- "rules": {}
+ "rules": {
+ "@typescript-eslint/no-extra-semi": "error",
+ "no-extra-semi": "off"
+ }
},
{
"files": ["*.html"],
diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json
index 853ade2c71..e6fdaf6537 100644
--- a/npm/ng-packs/packages/schematics/package.json
+++ b/npm/ng-packs/packages/schematics/package.json
@@ -4,16 +4,16 @@
"author": "",
"schematics": "./collection.json",
"dependencies": {
- "@angular-devkit/core": "~16.2.0",
- "@angular-devkit/schematics": "~16.2.0",
- "@angular/cli": "~16.2.0",
+ "@angular-devkit/core": "~18.1.0",
+ "@angular-devkit/schematics": "~18.1.0",
+ "@angular/cli": "~18.1.0",
"got": "^11.5.2",
"jsonc-parser": "^2.3.0",
"should-quote": "^1.0.0",
"typescript": "5.0.4"
},
"devDependencies": {
- "@schematics/angular": "~16.2.0",
+ "@schematics/angular": "~18.1.0",
"@types/jest": "29.4.4",
"@types/node": "20.2.5",
"jest": "29.4.3",
diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json
index e39918da48..024a47bf6a 100644
--- a/templates/app-nolayers/angular/package.json
+++ b/templates/app-nolayers/angular/package.json
@@ -15,21 +15,21 @@
"@abp/ng.account": "~8.3.0-rc.1",
"@abp/ng.components": "~8.3.0-rc.1",
"@abp/ng.core": "~8.3.0-rc.1",
- "@abp/ng.oauth": "~8.3.0-rc.1",
"@abp/ng.identity": "~8.3.0-rc.1",
+ "@abp/ng.oauth": "~8.3.0-rc.1",
"@abp/ng.setting-management": "~8.3.0-rc.1",
"@abp/ng.tenant-management": "~8.3.0-rc.1",
- "@abp/ng.theme.shared": "~8.3.0-rc.1",
"@abp/ng.theme.lepton-x": "~3.3.0-rc.1",
- "@angular/animations": "~17.3.0",
- "@angular/common": "~17.3.0",
- "@angular/compiler": "~17.3.0",
- "@angular/core": "~17.3.0",
- "@angular/forms": "~17.3.0",
- "@angular/localize": "~17.3.0",
- "@angular/platform-browser": "~17.3.0",
- "@angular/platform-browser-dynamic": "~17.3.0",
- "@angular/router": "~17.3.0",
+ "@abp/ng.theme.shared": "~8.3.0-rc.1",
+ "@angular/animations": "~18.1.0",
+ "@angular/common": "~18.1.0",
+ "@angular/compiler": "~18.1.0",
+ "@angular/core": "~18.1.0",
+ "@angular/forms": "~18.1.0",
+ "@angular/localize": "~18.1.0",
+ "@angular/platform-browser": "~18.1.0",
+ "@angular/platform-browser-dynamic": "~18.1.0",
+ "@angular/router": "~18.1.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@@ -37,26 +37,26 @@
},
"devDependencies": {
"@abp/ng.schematics": "~8.3.0-rc.1",
- "@angular-devkit/build-angular": "~17.3.0",
- "@angular-eslint/builder": "~17.3.0",
- "@angular-eslint/eslint-plugin": "~17.3.0",
- "@angular-eslint/eslint-plugin-template": "~17.3.0",
- "@angular-eslint/schematics": "~17.3.0",
- "@angular-eslint/template-parser": "~17.3.0",
- "@angular/cli": "~17.3.0",
- "@angular/compiler-cli": "~17.3.0",
- "@angular/language-service": "~17.3.0",
+ "@angular-devkit/build-angular": "~18.1.0",
+ "@angular-eslint/builder": "~18.1.0",
+ "@angular-eslint/eslint-plugin": "~18.1.0",
+ "@angular-eslint/eslint-plugin-template": "~18.1.0",
+ "@angular-eslint/schematics": "~18.1.0",
+ "@angular-eslint/template-parser": "~18.1.0",
+ "@angular/cli": "~18.1.0",
+ "@angular/compiler-cli": "~18.1.0",
+ "@angular/language-service": "~18.1.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
- "@typescript-eslint/eslint-plugin": "6.9.1",
- "@typescript-eslint/parser": "6.9.1",
- "eslint": "^8.23.0",
+ "@typescript-eslint/eslint-plugin": "7.16.0",
+ "@typescript-eslint/parser": "7.16.0",
+ "eslint": "^8.0.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
- "typescript": "~5.3.0"
+ "typescript": "~5.5.0"
}
}
diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json
index 0fc4890e2b..024a47bf6a 100644
--- a/templates/app/angular/package.json
+++ b/templates/app/angular/package.json
@@ -21,15 +21,15 @@
"@abp/ng.tenant-management": "~8.3.0-rc.1",
"@abp/ng.theme.lepton-x": "~3.3.0-rc.1",
"@abp/ng.theme.shared": "~8.3.0-rc.1",
- "@angular/animations": "~17.3.0",
- "@angular/common": "~17.3.0",
- "@angular/compiler": "~17.3.0",
- "@angular/core": "~17.3.0",
- "@angular/forms": "~17.3.0",
- "@angular/localize": "~17.3.0",
- "@angular/platform-browser": "~17.3.0",
- "@angular/platform-browser-dynamic": "~17.3.0",
- "@angular/router": "~17.3.0",
+ "@angular/animations": "~18.1.0",
+ "@angular/common": "~18.1.0",
+ "@angular/compiler": "~18.1.0",
+ "@angular/core": "~18.1.0",
+ "@angular/forms": "~18.1.0",
+ "@angular/localize": "~18.1.0",
+ "@angular/platform-browser": "~18.1.0",
+ "@angular/platform-browser-dynamic": "~18.1.0",
+ "@angular/router": "~18.1.0",
"bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0",
"tslib": "^2.0.0",
@@ -37,26 +37,26 @@
},
"devDependencies": {
"@abp/ng.schematics": "~8.3.0-rc.1",
- "@angular-devkit/build-angular": "~17.3.0",
- "@angular-eslint/builder": "~17.3.0",
- "@angular-eslint/eslint-plugin": "~17.3.0",
- "@angular-eslint/eslint-plugin-template": "~17.3.0",
- "@angular-eslint/schematics": "~17.3.0",
- "@angular-eslint/template-parser": "~17.3.0",
- "@angular/cli": "~17.3.0",
- "@angular/compiler-cli": "~17.3.0",
- "@angular/language-service": "~17.3.0",
+ "@angular-devkit/build-angular": "~18.1.0",
+ "@angular-eslint/builder": "~18.1.0",
+ "@angular-eslint/eslint-plugin": "~18.1.0",
+ "@angular-eslint/eslint-plugin-template": "~18.1.0",
+ "@angular-eslint/schematics": "~18.1.0",
+ "@angular-eslint/template-parser": "~18.1.0",
+ "@angular/cli": "~18.1.0",
+ "@angular/compiler-cli": "~18.1.0",
+ "@angular/language-service": "~18.1.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
- "@typescript-eslint/eslint-plugin": "6.9.1",
- "@typescript-eslint/parser": "6.9.1",
- "eslint": "^8.23.0",
+ "@typescript-eslint/eslint-plugin": "7.16.0",
+ "@typescript-eslint/parser": "7.16.0",
+ "eslint": "^8.0.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
- "typescript": "~5.3.0"
+ "typescript": "~5.5.0"
}
}
diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json
index de7ab6fc3b..98aee1dd65 100644
--- a/templates/module/angular/package.json
+++ b/templates/module/angular/package.json
@@ -22,35 +22,35 @@
"@abp/ng.tenant-management": "~8.3.0-rc.1",
"@abp/ng.theme.basic": "~8.3.0-rc.1",
"@abp/ng.theme.shared": "~8.3.0-rc.1",
- "@angular/animations": "~17.3.0",
- "@angular/common": "~17.3.0",
- "@angular/compiler": "~17.3.0",
- "@angular/core": "~17.3.0",
- "@angular/forms": "~17.3.0",
- "@angular/localize": "~17.3.0",
- "@angular/platform-browser": "~17.3.0",
- "@angular/platform-browser-dynamic": "~17.3.0",
- "@angular/router": "~17.3.0",
+ "@angular/animations": "~18.1.0",
+ "@angular/common": "~18.1.0",
+ "@angular/compiler": "~18.1.0",
+ "@angular/core": "~18.1.0",
+ "@angular/forms": "~18.1.0",
+ "@angular/localize": "~18.1.0",
+ "@angular/platform-browser": "~18.1.0",
+ "@angular/platform-browser-dynamic": "~18.1.0",
+ "@angular/router": "~18.1.0",
"rxjs": "~7.8.0",
- "tslib": "^2.1.0",
+ "tslib": "^2.0.0",
"zone.js": "~0.14.0"
},
"devDependencies": {
"@abp/ng.schematics": "~8.3.0-rc.1",
- "@angular-devkit/build-angular": "~17.3.0",
- "@angular-eslint/builder": "~17.3.0",
- "@angular-eslint/eslint-plugin": "~17.3.0",
- "@angular-eslint/eslint-plugin-template": "~17.3.0",
- "@angular-eslint/schematics": "~17.3.0",
- "@angular-eslint/template-parser": "~17.3.0",
- "@angular/cli": "~17.3.0",
- "@angular/compiler-cli": "~17.3.0",
- "@angular/language-service": "~17.3.0",
+ "@angular-devkit/build-angular": "~18.1.0",
+ "@angular-eslint/builder": "~18.1.0",
+ "@angular-eslint/eslint-plugin": "~18.1.0",
+ "@angular-eslint/eslint-plugin-template": "~18.1.0",
+ "@angular-eslint/schematics": "~18.1.0",
+ "@angular-eslint/template-parser": "~18.1.0",
+ "@angular/cli": "~18.1.0",
+ "@angular/compiler-cli": "~18.1.0",
+ "@angular/language-service": "~18.1.0",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
- "@typescript-eslint/eslint-plugin": "6.9.1",
- "@typescript-eslint/parser": "6.9.1",
- "eslint": "^8.23.0",
+ "@typescript-eslint/eslint-plugin": "7.16.0",
+ "@typescript-eslint/parser": "7.16.0",
+ "eslint": "^8.0.0",
"jasmine-core": "~4.0.0",
"karma": "~6.3.0",
"karma-chrome-launcher": "~3.1.0",
@@ -59,6 +59,6 @@
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "~17.3.0",
"symlink": "^2.0.0",
- "typescript": "~5.3.0"
+ "typescript": "~5.5.0"
}
}
diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json
index 7a08aa8062..b9fc79ac9f 100644
--- a/templates/module/angular/projects/my-project-name/package.json
+++ b/templates/module/angular/projects/my-project-name/package.json
@@ -2,10 +2,10 @@
"name": "@my-company-name/my-project-name",
"version": "0.0.1",
"peerDependencies": {
- "@angular/common": ">=14",
- "@angular/core": ">=14",
- "@abp/ng.core": ">=8.3.0-rc.1",
- "@abp/ng.theme.shared": ">=8.3.0-rc.1"
+ "@angular/common": "~18.1.0",
+ "@angular/core": "~18.1.0",
+ "@abp/ng.core": "~8.3.0-rc.1",
+ "@abp/ng.theme.shared": "~8.3.0-rc.1"
},
"dependencies": {
"tslib": "^2.1.0"