Browse Source

Merge pull request #15047 from abpframework/auto-merge/rel-7-0/1569

Merge branch dev with rel-7.0
pull/15053/head
Engincan VESKE 4 years ago
committed by GitHub
parent
commit
c71d514c7d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      docs/en/Audit-Logging.md
  2. 80
      docs/en/Integration-Services.md
  3. 36
      docs/en/docs-nav.json
  4. BIN
      docs/en/images/integration-services.png
  5. 4
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
  6. 4
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css
  7. 4
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss
  8. 244
      npm/ng-packs/angular.json
  9. 17
      npm/ng-packs/apps/dev-app/.browserslistrc
  10. 2
      npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts
  11. 4
      npm/ng-packs/apps/dev-app/tsconfig.app.json
  12. 160
      npm/ng-packs/migrations.json
  13. 30
      npm/ng-packs/nx.json
  14. 74
      npm/ng-packs/package.json
  15. 5
      npm/ng-packs/packages/account-core/tsconfig.lib.json
  16. 4
      npm/ng-packs/packages/account-core/tsconfig.lib.prod.json
  17. 5
      npm/ng-packs/packages/account/tsconfig.lib.json
  18. 4
      npm/ng-packs/packages/account/tsconfig.lib.prod.json
  19. 5
      npm/ng-packs/packages/components/tsconfig.lib.json
  20. 4
      npm/ng-packs/packages/components/tsconfig.lib.prod.json
  21. 2
      npm/ng-packs/packages/core/package.json
  22. 2
      npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts
  23. 5
      npm/ng-packs/packages/core/tsconfig.lib.json
  24. 4
      npm/ng-packs/packages/core/tsconfig.lib.prod.json
  25. 5
      npm/ng-packs/packages/feature-management/tsconfig.lib.json
  26. 4
      npm/ng-packs/packages/feature-management/tsconfig.lib.prod.json
  27. 5
      npm/ng-packs/packages/identity/tsconfig.lib.json
  28. 4
      npm/ng-packs/packages/identity/tsconfig.lib.prod.json
  29. 5
      npm/ng-packs/packages/permission-management/tsconfig.lib.json
  30. 4
      npm/ng-packs/packages/permission-management/tsconfig.lib.prod.json
  31. 8
      npm/ng-packs/packages/schematics/package.json
  32. 2
      npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts
  33. 2
      npm/ng-packs/packages/schematics/src/utils/angular/README.md
  34. 61
      npm/ng-packs/packages/schematics/src/utils/angular/add-declaration-to-ng-module.ts
  35. 47
      npm/ng-packs/packages/schematics/src/utils/angular/ast-utils.ts
  36. 4
      npm/ng-packs/packages/schematics/src/utils/angular/generate-from-files.ts
  37. 10
      npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json
  38. 1
      npm/ng-packs/packages/schematics/src/utils/angular/parse-name.ts
  39. 34
      npm/ng-packs/packages/schematics/src/utils/angular/test/create-app-module.ts
  40. 19
      npm/ng-packs/packages/schematics/src/utils/angular/test/get-file-content.ts
  41. 10
      npm/ng-packs/packages/schematics/src/utils/angular/test/index.ts
  42. 5
      npm/ng-packs/packages/setting-management/tsconfig.lib.json
  43. 4
      npm/ng-packs/packages/setting-management/tsconfig.lib.prod.json
  44. 5
      npm/ng-packs/packages/tenant-management/tsconfig.lib.json
  45. 4
      npm/ng-packs/packages/tenant-management/tsconfig.lib.prod.json
  46. 5
      npm/ng-packs/packages/theme-basic/tsconfig.lib.json
  47. 4
      npm/ng-packs/packages/theme-basic/tsconfig.lib.prod.json
  48. 4
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts
  49. 18
      npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts
  50. 4
      npm/ng-packs/packages/theme-shared/package.json
  51. 6
      npm/ng-packs/packages/theme-shared/src/lib/utils/validation-utils.ts
  52. 5
      npm/ng-packs/packages/theme-shared/tsconfig.lib.json
  53. 4
      npm/ng-packs/packages/theme-shared/tsconfig.lib.prod.json
  54. 10
      npm/ng-packs/scripts/mock-schematic/mock-schematic-json.ts
  55. 17
      templates/app-nolayers/angular/.browserslistrc
  56. 38
      templates/app-nolayers/angular/package.json
  57. 2
      templates/app-nolayers/angular/src/app/app-routing.module.ts
  58. 15
      templates/app-nolayers/angular/src/test.ts
  59. 13
      templates/app-nolayers/angular/tsconfig.json
  60. 17
      templates/app/angular/.browserslistrc
  61. 38
      templates/app/angular/package.json
  62. 2
      templates/app/angular/src/app/app-routing.module.ts
  63. 16
      templates/app/angular/src/test.ts
  64. 18
      templates/app/angular/tsconfig.json
  65. 10
      templates/app/react-native/Environment.js
  66. 41
      templates/app/react-native/package.json
  67. 38
      templates/module/angular/package.json
  68. 17
      templates/module/angular/projects/dev-app/.browserslistrc
  69. 2
      templates/module/angular/projects/dev-app/src/app/app-routing.module.ts
  70. 11
      templates/module/angular/projects/dev-app/src/test.ts
  71. 11
      templates/module/angular/projects/my-project-name/src/test.ts
  72. 1
      templates/module/angular/projects/my-project-name/tsconfig.lib.json

4
docs/en/Audit-Logging.md

@ -40,12 +40,14 @@ Here, a list of the options you can configure:
* `HideErrors` (default: `true`): Audit log system hides and write regular [logs](Logging.md) if any error occurs while saving the audit log objects. If saving the audit logs is critical for your system, set this to `false` to throw exception in case of hiding the errors.
* `IsEnabledForAnonymousUsers` (default: `true`): If you want to write audit logs only for the authenticated users, set this to `false`. If you save audit logs for anonymous users, you will see `null` for `UserId` values for these users.
* `AlwaysLogOnException` (default: `true`): If you set to true, it always saves the audit log on an exception/error case without checking other options (except `IsEnabled`, which completely disables the audit logging).
* `IsEnabledForIntegrationService` (default: `false`): Audit Logging is disabled for [integration services](Integration-Services.md) by default. Set this property as `true` to enable it.
* `IsEnabledForGetRequests` (default: `false`): HTTP GET requests should not make any change in the database normally and audit log system doesn't save audit log objects for GET request. Set this to `true` to enable it also for the GET requests.
* `DisableLogActionInfo` (default: `false`):If you set to true, Will no longer log `AuditLogActionInfo`.
* `ApplicationName`: If multiple applications saving audit logs into a single database, set this property to your application name, so you can distinguish the logs of different applications. If you don't set, it is set from the `IApplicationInfoAccessor.ApplicationName` value, which is the entry assembly name by default.
* `ApplicationName`: If multiple applications are saving audit logs into a single database, set this property to your application name, so you can distinguish the logs of different applications. If you don't set, it will set from the `IApplicationInfoAccessor.ApplicationName` value, which is the entry assembly name by default.
* `IgnoredTypes`: A list of `Type`s to be ignored for audit logging. If this is an entity type, changes for this type of entities will not be saved. This list is also used while serializing the action parameters.
* `EntityHistorySelectors`: A list of selectors those are used to determine if an entity type is selected for saving the entity change. See the section below for details.
* `Contributors`: A list of `AuditLogContributor` implementations. A contributor is a way of extending the audit log system. See the "Audit Log Contributors" section below.
* `AlwaysLogSelectors`: A list of selectors to save the audit logs for the matched criteria.
### Entity History Selectors

80
docs/en/Integration-Services.md

@ -0,0 +1,80 @@
# Integration Services
The *Integration Service* concept was created to distinguish the [application services](Application-Services.md) that are built for inter-module (or inter-microservice) communication from the application services that are intended to be consumed from a UI or a client application.
The following figure shows a few microservices behind an API Gateway that is consumed by a UI application and 3rd-party client applications:
![integration-services](images/integration-services.png)
HTTP requests coming from out of the API Gateway can be called as *external request*, while the HTTP requests performed between microservices can be considered as *internal requests*. The application services that are designed to respond to these external requests are called as *integration services*, because their purpose is to integrate microservices in the system, rather than respond to user requests.
## Marking an Application Service as Integration Service
Assume that you have an application service named `ProductAppService`, and you want to use that application service as an integration service. In that case, you can use the `[IntegrationService]` attribute on top of the application service class as shown below:
```csharp
[IntegrationService]
public class ProductAppService : ApplicationService, IProductAppService
{
// ...
}
```
If your application service has an interface, like `IProductService` in this example, you can use it on the service interface:
```csharp
[IntegrationService]
public interface IProductAppService : IApplicationService
{
// ...
}
```
> If you've used the `[IntegrationService]` on top of your service interface, it is *not needed* to use on the service class too.
That's all. From now, ABP will handle your application service as integration service and implement the followings by convention:
* If you are using the [Auto API Controllers](API/Auto-API-Controllers.md) feature in your application, the URL prefix will be `/integration-api` instead of `/api` for your integration services. Thus, you can distinguish internal and external service communications and take additional actions, such as preventing REST API calls for integration services out of API Gateway.
* Audit logging is disabled by default for the integration services. See the next section if you want to enable it.
## Configuration
### Enabling/Disabling the Audit Logging
Audit Logging is disabled by default for integration services but it can be enabled by configuring the `AbpAuditingOptions` [options class](Options.md) in the `ConfigureServices` method of your [module class](Module-Development-Basics.md):
```csharp
Configure<AbpAuditingOptions>(options =>
{
options.IsEnabledForIntegrationService = true;
});
```
> Please refer to the [audit logging document](Audit-Logging.md) for other options and details.
### Filtering Auto API Controllers
You can filter integration services (or non-integration services) while creating [Auto API Controllers](API/Auto-API-Controllers.md), using the `ApplicationServiceTypes` option of the `ConventionalControllerSetting` by configuring the `AbpAspNetCoreMvcOptions` as shown below:
```csharp
Configure<AbpAspNetCoreMvcOptions>(options =>
{
options.ConventionalControllers.Create(
typeof(MyApplicationModule).Assembly,
conventionalControllerSetting =>
{
conventionalControllerSetting.ApplicationServiceTypes =
ApplicationServiceTypes.IntegrationServices;
});
});
```
Tip: You can call the `options.ConventionalControllers.Create` multiple times to configure regular application services and integration services with different options.
> Please refer to the [Auto API Controllers document](API/Auto-API-Controllers.md) for more information about the Auto API Controller system.
## See Also
* [Application Services](Application-Services.md)
* [Auto API Controllers](API/Auto-API-Controllers.md)
* [Audit Logging](Audit-Logging.md)

36
docs/en/docs-nav.json

@ -604,18 +604,6 @@
{
"text": "API",
"items": [
{
"text": "Auto API Controllers",
"path": "API/Auto-API-Controllers.md"
},
{
"text": "Dynamic C# API Clients",
"path": "API/Dynamic-CSharp-API-Clients.md"
},
{
"text": "Static C# API Clients",
"path": "API/Static-CSharp-API-Clients.md"
},
{
"text": "ABP Endpoints",
"items": [
@ -629,13 +617,29 @@
}
]
},
{
"text": "Swagger Integration",
"path": "API/Swagger-Integration.md"
},
{
"text": "API Versioning",
"path": "API/API-Versioning.md"
},
{
"text": "Auto API Controllers",
"path": "API/Auto-API-Controllers.md"
},
{
"text": "Dynamic C# API Clients",
"path": "API/Dynamic-CSharp-API-Clients.md"
},
{
"text": "Integration Services",
"path": "Integration-Services.md"
},
{
"text": "Static C# API Clients",
"path": "API/Static-CSharp-API-Clients.md"
},
{
"text": "Swagger Integration",
"path": "API/Swagger-Integration.md"
}
]
},

BIN
docs/en/images/integration-services.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

4
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -136,7 +136,7 @@
{
<div class="col">
<div>
<div class="docs-version docs-language @(Model.VersionSelectItems.Any() ? "ps-1" : "")">
<div class="docs-version docs-language">
<span>@L["Language"]</span>
<div class="version-select">
<div class="input-group">
@ -158,7 +158,7 @@
<div class="docs-version">
<div class="version-select">
<div class="input-group">
<div class="input-group align-items-center">
<span class="input-group-text">
<i class="fa fa-filter"></i>
</span>

4
modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.css

@ -149,7 +149,7 @@ body.scrolledMore .alert-criteria p.alert-p {
padding: 0 0;
font-size: 0.75rem;
width: 15px;
height: 34px;
height: 24px;
line-height: 1;
border-radius: 0px;
border: 0;
@ -313,7 +313,7 @@ body.scrolledMore .alert-criteria p.alert-p {
.docs-page .docs-content .top-container nav .breadcrumb {
margin-bottom: 0;
flex-wrap: nowrap;
overflow-x: scroll;
overflow-x: auto;
white-space: nowrap;
padding-bottom: 10px;
}

4
modules/docs/src/Volo.Docs.Web/Pages/Documents/Shared/Styles/vs.scss

@ -179,7 +179,7 @@ body {
padding: 0 0;
font-size: 0.75rem;
width: 15px;
height: 34px;
height: 24px;
line-height: 1;
border-radius: 0px;
border: 0;
@ -393,7 +393,7 @@ body {
.breadcrumb {
margin-bottom: 0;
flex-wrap: nowrap;
overflow-x: scroll;
overflow-x: auto;
white-space: nowrap;
padding-bottom: 10px;

244
npm/ng-packs/angular.json

@ -10,7 +10,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/account"],
"outputs": [
"{workspaceRoot}/dist/packages/account"
],
"options": {
"project": "packages/account/ng-package.json"
},
@ -26,7 +28,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/account"],
"outputs": [
"{workspaceRoot}/coverage/packages/account"
],
"options": {
"jestConfig": "packages/account/jest.config.ts",
"passWithNoTests": true
@ -35,13 +39,22 @@
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["packages/account/src/**/*.ts", "packages/account/src/**/*.html"]
"lintFilePatterns": [
"packages/account/src/**/*.ts",
"packages/account/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared", "account-core"]
"implicitDependencies": [
"core",
"theme-shared",
"account-core"
]
},
"account-core": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -52,7 +65,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/account-core"],
"outputs": [
"{workspaceRoot}/dist/packages/account-core"
],
"options": {
"project": "packages/account-core/ng-package.json"
},
@ -68,7 +83,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/account-core"],
"outputs": [
"{workspaceRoot}/coverage/packages/account-core"
],
"options": {
"jestConfig": "packages/account-core/jest.config.ts",
"passWithNoTests": true
@ -82,11 +99,16 @@
"packages/account-core/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
"implicitDependencies": [
"core",
"theme-shared"
]
},
"components": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -97,7 +119,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/components"],
"outputs": [
"{workspaceRoot}/dist/packages/components"
],
"options": {
"project": "packages/components/ng-package.json"
},
@ -113,7 +137,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/components"],
"outputs": [
"{workspaceRoot}/coverage/packages/components"
],
"options": {
"jestConfig": "packages/components/jest.config.ts",
"passWithNoTests": true
@ -127,11 +153,16 @@
"packages/components/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
"implicitDependencies": [
"core",
"theme-shared"
]
},
"core": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -142,7 +173,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/core"],
"outputs": [
"{workspaceRoot}/dist/packages/core"
],
"options": {
"project": "packages/core/ng-package.json"
},
@ -158,7 +191,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/core"],
"outputs": [
"{workspaceRoot}/coverage/packages/core"
],
"options": {
"jestConfig": "packages/core/jest.config.ts",
"passWithNoTests": true
@ -167,9 +202,14 @@
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["packages/core/src/**/*.ts", "packages/core/src/**/*.html"]
"lintFilePatterns": [
"packages/core/src/**/*.ts",
"packages/core/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": []
@ -183,7 +223,9 @@
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"outputs": ["{options.outputPath}"],
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/apps/dev-app",
"index": "apps/dev-app/src/index.html",
@ -191,8 +233,14 @@
"polyfills": "apps/dev-app/src/polyfills.ts",
"tsConfig": "apps/dev-app/tsconfig.app.json",
"inlineStyleLanguage": "scss",
"allowedCommonJsDependencies": ["chart.js", "js-sha256"],
"assets": ["apps/dev-app/src/favicon.ico", "apps/dev-app/src/assets"],
"allowedCommonJsDependencies": [
"chart.js",
"js-sha256"
],
"assets": [
"apps/dev-app/src/favicon.ico",
"apps/dev-app/src/assets"
],
"styles": [
{
"input": "node_modules/bootstrap/dist/css/bootstrap.rtl.min.css",
@ -288,12 +336,17 @@
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["apps/dev-app/src/**/*.ts", "apps/dev-app/src/**/*.html"]
"lintFilePatterns": [
"apps/dev-app/src/**/*.ts",
"apps/dev-app/src/**/*.html"
]
}
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/apps/dev-app"],
"outputs": [
"{workspaceRoot}/coverage/apps/dev-app"
],
"options": {
"jestConfig": "apps/dev-app/jest.config.ts",
"passWithNoTests": true
@ -323,13 +376,19 @@
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["apps/dev-app-e2e/**/*.{js,ts}"]
"lintFilePatterns": [
"apps/dev-app-e2e/**/*.{js,ts}"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["dev-app"]
"implicitDependencies": [
"dev-app"
]
},
"feature-management": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -340,7 +399,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/feature-management"],
"outputs": [
"{workspaceRoot}/dist/packages/feature-management"
],
"options": {
"project": "packages/feature-management/ng-package.json"
},
@ -356,7 +417,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/feature-management"],
"outputs": [
"{workspaceRoot}/coverage/packages/feature-management"
],
"options": {
"jestConfig": "packages/feature-management/jest.config.ts",
"passWithNoTests": true
@ -370,11 +433,16 @@
"packages/feature-management/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
"implicitDependencies": [
"core",
"theme-shared"
]
},
"identity": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -385,7 +453,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/identity"],
"outputs": [
"{workspaceRoot}/dist/packages/identity"
],
"options": {
"project": "packages/identity/ng-package.json"
},
@ -401,7 +471,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/identity"],
"outputs": [
"{workspaceRoot}/coverage/packages/identity"
],
"options": {
"jestConfig": "packages/identity/jest.config.ts",
"passWithNoTests": true
@ -410,13 +482,22 @@
"lint": {
"builder": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": ["packages/identity/src/**/*.ts", "packages/identity/src/**/*.html"]
"lintFilePatterns": [
"packages/identity/src/**/*.ts",
"packages/identity/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared", "permission-management"]
"implicitDependencies": [
"core",
"theme-shared",
"permission-management"
]
},
"permission-management": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -427,7 +508,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/permission-management"],
"outputs": [
"{workspaceRoot}/dist/packages/permission-management"
],
"options": {
"project": "packages/permission-management/ng-package.json"
},
@ -443,7 +526,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/permission-management"],
"outputs": [
"{workspaceRoot}/coverage/packages/permission-management"
],
"options": {
"jestConfig": "packages/permission-management/jest.config.ts",
"passWithNoTests": true
@ -457,11 +542,16 @@
"packages/permission-management/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared"]
"implicitDependencies": [
"core",
"theme-shared"
]
},
"schematics": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -472,7 +562,9 @@
"architect": {
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/schematics"],
"outputs": [
"{workspaceRoot}/coverage/packages/schematics"
],
"options": {
"jestConfig": "packages/schematics/jest.config.ts",
"passWithNoTests": true
@ -486,7 +578,9 @@
"packages/schematics/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": []
@ -500,7 +594,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/setting-management"],
"outputs": [
"{workspaceRoot}/dist/packages/setting-management"
],
"options": {
"project": "packages/setting-management/ng-package.json"
},
@ -516,7 +612,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/setting-management"],
"outputs": [
"{workspaceRoot}/coverage/packages/setting-management"
],
"options": {
"jestConfig": "packages/setting-management/jest.config.ts",
"passWithNoTests": true
@ -530,11 +628,17 @@
"packages/setting-management/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared", "components"]
"implicitDependencies": [
"core",
"theme-shared",
"components"
]
},
"tenant-management": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -545,7 +649,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/tenant-management"],
"outputs": [
"{workspaceRoot}/dist/packages/tenant-management"
],
"options": {
"project": "packages/tenant-management/ng-package.json"
},
@ -561,7 +667,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/tenant-management"],
"outputs": [
"{workspaceRoot}/coverage/packages/tenant-management"
],
"options": {
"jestConfig": "packages/tenant-management/jest.config.ts",
"passWithNoTests": true
@ -575,11 +683,17 @@
"packages/tenant-management/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared", "feature-management"]
"implicitDependencies": [
"core",
"theme-shared",
"feature-management"
]
},
"theme-basic": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -590,7 +704,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/theme-basic"],
"outputs": [
"{workspaceRoot}/dist/packages/theme-basic"
],
"options": {
"project": "packages/theme-basic/ng-package.json"
},
@ -606,7 +722,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/theme-basic"],
"outputs": [
"{workspaceRoot}/coverage/packages/theme-basic"
],
"options": {
"jestConfig": "packages/theme-basic/jest.config.ts",
"passWithNoTests": true
@ -620,11 +738,17 @@
"packages/theme-basic/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core", "theme-shared", "account-core"]
"implicitDependencies": [
"core",
"theme-shared",
"account-core"
]
},
"theme-shared": {
"$schema": "../../node_modules/nx/schemas/project-schema.json",
@ -635,7 +759,9 @@
"architect": {
"build": {
"builder": "@nrwl/angular:package",
"outputs": ["dist/packages/theme-shared"],
"outputs": [
"{workspaceRoot}/dist/packages/theme-shared"
],
"options": {
"project": "packages/theme-shared/ng-package.json"
},
@ -651,7 +777,9 @@
},
"test": {
"builder": "@nrwl/jest:jest",
"outputs": ["coverage/packages/theme-shared"],
"outputs": [
"{workspaceRoot}/coverage/packages/theme-shared"
],
"options": {
"jestConfig": "packages/theme-shared/jest.config.ts",
"passWithNoTests": true
@ -665,11 +793,15 @@
"packages/theme-shared/src/**/*.html"
]
},
"outputs": ["{options.outputFile}"]
"outputs": [
"{options.outputFile}"
]
}
},
"tags": [],
"implicitDependencies": ["core"]
"implicitDependencies": [
"core"
]
}
}
}

17
npm/ng-packs/apps/dev-app/.browserslistrc

@ -1,17 +0,0 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

2
npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts

@ -28,7 +28,7 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
imports: [RouterModule.forRoot(routes, {})],
exports: [RouterModule],
})
export class AppRoutingModule {}

4
npm/ng-packs/apps/dev-app/tsconfig.app.json

@ -2,7 +2,9 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": []
"types": [],
"target": "ES2022",
"useDefineForClassFields": false
},
"files": ["src/main.ts", "src/polyfills.ts"],
"include": ["src/**/*.d.ts"],

160
npm/ng-packs/migrations.json

@ -2,43 +2,161 @@
"migrations": [
{
"cli": "nx",
"version": "14.6.0-beta.0",
"description": "Update the @angular/cli package version to ~14.2.0.",
"factory": "./src/migrations/update-14-6-0/update-angular-cli",
"version": "15.0.0-beta.1",
"description": "Replace implicitDependencies with namedInputs + target inputs",
"implementation": "./src/migrations/update-15-0-0/migrate-to-inputs",
"package": "nx",
"name": "15.0.0-migrate-to-inputs"
},
{
"cli": "nx",
"version": "15.0.0-beta.1",
"description": "Prefix outputs with {workspaceRoot}/{projectRoot} if needed",
"implementation": "./src/migrations/update-15-0-0/prefix-outputs",
"package": "nx",
"name": "15.0.0-prefix-outputs"
},
{
"cli": "nx",
"version": "15.0.12-beta.1",
"description": "Set project names in project.json files",
"implementation": "./src/migrations/update-15-1-0/set-project-names",
"package": "nx",
"name": "15.1.0-set-project-names"
},
{
"cli": "nx",
"version": "15.0.0-beta.0",
"description": "Rename @nrwl/angular:webpack-server executor to @nrwl/angular:webpack-dev-server",
"factory": "./src/migrations/update-14-8-0/rename-webpack-server",
"package": "@nrwl/angular",
"name": "rename-webpack-server-executor"
},
{
"cli": "nx",
"version": "15.0.0-beta.0",
"description": "Update the usages of @nrwl/angular/testing to import jasmine-marbles symbols from jasmine-marbles itself.",
"factory": "./src/migrations/update-15-0-0/switch-to-jasmine-marbles",
"package": "@nrwl/angular",
"name": "update-angular-cli-version-14-2-0"
"name": "switch-to-jasmine-marbles"
},
{
"cli": "nx",
"version": "14.6.1-beta.0",
"description": "Change Cypress e2e and component testing presets to use __filename instead of __dirname and include a devServerTarget for component testing.",
"factory": "./src/migrations/update-14-6-1/update-cypress-configs-presets",
"version": "15.0.0-beta.1",
"description": "Stop hashing karma spec files and config files for build targets and dependent tasks",
"factory": "./src/migrations/update-15-0-0/add-karma-inputs",
"package": "@nrwl/angular",
"name": "add-karma-inputs"
},
{
"cli": "nx",
"version": "15.2.0-beta.0",
"description": "Update the @angular/cli package version to ~15.0.0.",
"factory": "./src/migrations/update-15-2-0/update-angular-cli",
"package": "@nrwl/angular",
"name": "update-angular-cli-version-15-0-0"
},
{
"cli": "nx",
"version": "15.2.0-beta.0",
"description": "Remove browserlist config as it's handled by build-angular",
"factory": "./src/migrations/update-15-2-0/remove-browserlist-config",
"package": "@nrwl/angular",
"name": "remove-browserlist-config"
},
{
"cli": "nx",
"version": "15.2.0-beta.0",
"description": "Update typescript target to ES2022",
"factory": "./src/migrations/update-15-2-0/update-typescript-target",
"package": "@nrwl/angular",
"name": "update-typescript-target"
},
{
"cli": "nx",
"version": "15.2.0-beta.0",
"description": "Remove bundleDependencies from server targets",
"factory": "./src/migrations/update-15-2-0/update-workspace-config",
"package": "@nrwl/angular",
"name": "update-workspace-config"
},
{
"cli": "ng",
"version": "15.2.0-beta.0",
"description": "Remove exported `@angular/platform-server` `renderModule` method. The `renderModule` method is now exported by the Angular CLI.",
"factory": "./src/migrations/update-15-2-0/remove-platform-server-exports",
"package": "@nrwl/angular",
"name": "update-platform-server-exports"
},
{
"cli": "ng",
"version": "15.2.0-beta.0",
"description": "Remove no longer needed require calls in Karma builder main file.",
"factory": "./src/migrations/update-15-2-0/update-karma-main-file",
"package": "@nrwl/angular",
"name": "update-karma-main-file"
},
{
"version": "15.0.0-beta",
"description": "Since Angular v15, the `RouterLink` contains the logic of the `RouterLinkWithHref` directive. This migration replaces all `RouterLinkWithHref` references with `RouterLink`.",
"factory": "./migrations/router-link-with-href/index",
"package": "@angular/core",
"name": "migration-v15-router-link-with-href"
},
{
"version": "15.0.0-beta",
"description": "In Angular version 15, the deprecated `relativeLinkResolution` config parameter of the Router is removed. This migration removes all `relativeLinkResolution` fields from the Router config objects.",
"factory": "./migrations/relative-link-resolution/index",
"package": "@angular/core",
"name": "migration-v15-relative-link-resolution"
},
{
"cli": "nx",
"version": "15.0.0-beta.0",
"description": "Stop hashing cypress spec files and config files for build targets and dependent tasks",
"factory": "./src/migrations/update-15-0-0/add-cypress-inputs",
"package": "@nrwl/cypress",
"name": "update-cypress-configs-preset"
"name": "add-cypress-inputs"
},
{
"cli": "nx",
"version": "14.7.0-beta.0",
"description": "Update Cypress if using v10 to support latest component testing features",
"factory": "./src/migrations/update-14-7-0/update-cypress-version-if-10",
"version": "15.0.0-beta.4",
"description": "Update to using cy.mount in the commands.ts file instead of importing mount for each component test file",
"factory": "./src/migrations/update-15-0-0/update-cy-mount-usage",
"package": "@nrwl/cypress",
"name": "update-cypress-if-v10"
"name": "update-cy-mount-usage"
},
{
"version": "14.6.0-beta.0",
"cli": "nx",
"description": "Update jest configs to support jest 28 changes (https://jestjs.io/docs/upgrading-to-jest28#configuration-options)",
"factory": "./src/migrations/update-14-6-0/update-configs-jest-28",
"package": "@nrwl/jest",
"name": "update-configs-jest-28"
"version": "15.1.0-beta.0",
"description": "Update to Cypress v11. This migration will only update if the workspace is already on v10. https://www.cypress.io/blog/2022/11/04/upcoming-changes-to-component-testing/",
"factory": "./src/migrations/update-15-1-0/cypress-11",
"package": "@nrwl/cypress",
"name": "update-to-cypress-11"
},
{
"version": "14.6.0-beta.0",
"version": "15.0.0-beta.0",
"cli": "nx",
"description": "Update jest test files to support jest 28 changes (https://jestjs.io/docs/upgrading-to-jest28)",
"factory": "./src/migrations/update-14-6-0/update-tests-jest-28",
"description": "Stop hashing jest spec files and config files for build targets and dependent tasks",
"factory": "./src/migrations/update-15-0-0/add-jest-inputs",
"package": "@nrwl/jest",
"name": "update-tests-jest-28"
"name": "add-jest-inputs"
},
{
"cli": "nx",
"version": "15.0.0-beta.0",
"description": "Stop hashing eslint config files for build targets and dependent tasks",
"factory": "./src/migrations/update-15-0-0/add-eslint-inputs",
"package": "@nrwl/linter",
"name": "add-eslint-inputs"
},
{
"version": "14.8.0-beta.0",
"description": "Migrates from @nrwl/workspace:run-commands to nx:run-commands",
"cli": "nx",
"implementation": "./src/migrations/update-14-8-0/change-run-commands-executor",
"package": "@nrwl/workspace",
"name": "14-8-0-change-run-commands-executor"
}
]
}

30
npm/ng-packs/nx.json

@ -3,13 +3,6 @@
"affected": {
"defaultBase": "dev"
},
"implicitDependencies": {
"package.json": {
"dependencies": "*",
"devDependencies": "*"
},
".eslintrc.json": "*"
},
"tasksRunnerOptions": {
"default": {
"runner": "nx/tasks-runners/default",
@ -57,7 +50,28 @@
"$schema": "./node_modules/nx/schemas/nx-schema.json",
"targetDefaults": {
"build": {
"dependsOn": ["^build"]
"dependsOn": ["^build"],
"inputs": ["production", "^production"]
},
"e2e": {
"inputs": ["default", "^production"]
},
"test": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"]
},
"lint": {
"inputs": ["default", "{workspaceRoot}/.eslintrc.json"]
}
},
"namedInputs": {
"default": ["{projectRoot}/**/*", "sharedGlobals"],
"sharedGlobals": [],
"production": [
"default",
"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
"!{projectRoot}/tsconfig.spec.json",
"!{projectRoot}/jest.config.[jt]s",
"!{projectRoot}/.eslintrc.json"
]
}
}

74
npm/ng-packs/package.json

@ -33,32 +33,34 @@
"postinstall": "node ./decorate-angular-cli.js && yarn compile:ivy",
"build:schematics": "cd scripts && yarn && yarn build:schematics && cd ..",
"dev:schematics": "tsc -p packages/schematics/tsconfig.json -w",
"mock:schematics": "cd scripts/mock-schematic && yarn && yarn start",
"debug:schematics": "./node_modules/.bin/ng g ./packages/schematics/src/collection.json:proxy-add --module __default --apiName __default --source __default --target __default --url https://localhost:44305 --serviceType application",
"debug:schematics-dist": "./node_modules/.bin/ng g ./dist/packages/schematics/collection.json:proxy-add --module __default --apiName __default --source __default --target __default --url http://localhost:4300 --service-type application",
"ci": "yarn affected:lint && yarn affected:build && yarn affected:test",
"lerna": "lerna",
"migrate-nx": "yarn nx migrate --run-migrations",
"mock:schematics": "cd scripts/mock-schematic && yarn && yarn start",
"debug:schematics": "./node_modules/.bin/ng g ./packages/schematics/src/collection.json:proxy-add --module __default --apiName __default --source __default --target __default --url https://localhost:44305 --serviceType application"
"migrate-nx": "yarn nx migrate --run-migrations"
},
"private": true,
"devDependencies": {
"@angular-devkit/build-angular": "14.2.1",
"@abp/utils": "~7.0.0-rc.3",
"@angular-devkit/build-angular": "~15.0.1",
"@angular-devkit/build-ng-packagr": "^0.1002.0",
"@angular-devkit/schematics-cli": "~14.2.1",
"@angular-eslint/eslint-plugin": "14.0.3",
"@angular-eslint/eslint-plugin-template": "14.0.3",
"@angular-eslint/template-parser": "14.0.3",
"@angular/animations": "14.2.1",
"@angular/cli": "~14.2.1",
"@angular/common": "14.2.1",
"@angular/compiler": "14.2.1",
"@angular/compiler-cli": "14.2.1",
"@angular/core": "14.2.1",
"@angular/forms": "14.2.1",
"@angular/language-service": "14.2.1",
"@angular/localize": "14.2.1",
"@angular/platform-browser": "14.2.1",
"@angular/platform-browser-dynamic": "14.2.1",
"@angular/router": "14.2.1",
"@angular-devkit/schematics-cli": "~15.0.1",
"@angular-eslint/eslint-plugin": "15.1.0",
"@angular-eslint/eslint-plugin-template": "15.1.0",
"@angular-eslint/template-parser": "15.1.0",
"@angular/animations": "~15.0.1",
"@angular/cli": "~15.0.1",
"@angular/common": "~15.0.1",
"@angular/compiler": "~15.0.1",
"@angular/compiler-cli": "~15.0.1",
"@angular/core": "~15.0.1",
"@angular/forms": "~15.0.1",
"@angular/language-service": "~15.0.1",
"@angular/localize": "~15.0.1",
"@angular/platform-browser": "~15.0.1",
"@angular/platform-browser-dynamic": "~15.0.1",
"@angular/router": "~15.0.1",
"@abp/ng.account": "~7.0.0-rc.3",
"@abp/ng.account.core": "~7.0.0-rc.3",
"@abp/ng.core": "~7.0.0-rc.3",
@ -71,24 +73,24 @@
"@abp/ng.theme.basic": "~7.0.0-rc.3",
"@abp/ng.theme.shared": "~7.0.0-rc.3",
"@fortawesome/fontawesome-free": "^5.15.4",
"@ng-bootstrap/ng-bootstrap": "~13.0.0",
"@ng-bootstrap/ng-bootstrap": "^14.0.0-rc.1",
"@ngneat/spectator": "^10.0.0",
"@ngx-validate/core": "^0.1.2",
"@nrwl/angular": "14.7.5",
"@nrwl/cli": "14.7.5",
"@nrwl/cypress": "14.7.5",
"@nrwl/eslint-plugin-nx": "14.7.5",
"@nrwl/jest": "14.7.5",
"@nrwl/linter": "14.7.5",
"@nrwl/workspace": "14.7.5",
"@ngx-validate/core": "^0.2.0",
"@nrwl/angular": "15.2.1",
"@nrwl/cli": "15.2.1",
"@nrwl/cypress": "15.2.1",
"@nrwl/eslint-plugin-nx": "15.2.1",
"@nrwl/jest": "15.2.1",
"@nrwl/linter": "15.2.1",
"@nrwl/workspace": "15.2.1",
"@popperjs/core": "~2.11.2",
"@schematics/angular": "14.2.2",
"@schematics/angular": "~15.0.1",
"@swimlane/ngx-datatable": "^20.0.0",
"@types/jest": "28.1.8",
"@types/node": "14.14.33",
"@typescript-eslint/eslint-plugin": "5.33.1",
"@typescript-eslint/parser": "5.33.1",
"angular-oauth2-oidc": "^13.0.1",
"@typescript-eslint/eslint-plugin": "5.44.0",
"@typescript-eslint/parser": "5.44.0",
"angular-oauth2-oidc": "^15.0.1",
"bootstrap": "^5.1.1",
"chart.js": "^3.5.1",
"cypress": "^7.3.0",
@ -106,9 +108,9 @@
"just-compare": "^1.4.0",
"lerna": "^4.0.0",
"lint-staged": "^13.0.3",
"ng-packagr": "14.2.1",
"ng-packagr": "15.0.1",
"ng-zorro-antd": "^14.0.0",
"nx": "14.7.5",
"nx": "15.2.1",
"postcss": "^8.3.9",
"postcss-import": "14.1.0",
"postcss-preset-env": "7.5.0",
@ -123,7 +125,7 @@
"tsickle": "^0.39.1",
"tslib": "^2.0.0",
"tslint": "~6.1.0",
"typescript": "4.7.4",
"typescript": "4.8.4",
"zone.js": "0.11.4"
},
"dependencies": {},

5
npm/ng-packs/packages/account-core/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/account-core/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/account/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/account/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/components/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/components/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

2
npm/ng-packs/packages/core/package.json

@ -8,7 +8,7 @@
},
"dependencies": {
"@abp/utils": "~7.0.0-rc.3",
"angular-oauth2-oidc": "^13.0.1",
"angular-oauth2-oidc": "^15.0.1",
"just-clone": "^3.2.1",
"just-compare": "^1.4.0",
"ts-toolbelt": "6.15.4",

2
npm/ng-packs/packages/core/src/lib/services/timeout-limited-oauth.service.ts

@ -1,4 +1,4 @@
import { Injectable } from '@angular/core';
import { Injectable, NgZone, Optional } from '@angular/core';
import { OAuthService } from 'angular-oauth2-oidc';
@Injectable()

5
npm/ng-packs/packages/core/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/core/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/feature-management/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/feature-management/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/identity/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/identity/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/permission-management/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/permission-management/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

8
npm/ng-packs/packages/schematics/package.json

@ -9,13 +9,13 @@
"license": "MIT",
"schematics": "./collection.json",
"dependencies": {
"@angular-devkit/core": "~14.2.1",
"@angular-devkit/schematics": "~14.2.1",
"@angular/cli": "~14.2.1",
"@angular-devkit/core": "~15.0.1",
"@angular-devkit/schematics": "~15.0.1",
"@angular/cli": "~15.0.1",
"got": "^11.5.2",
"jsonc-parser": "^2.3.0",
"should-quote": "^1.0.0",
"typescript": "~4.7.4"
"typescript": "4.8.4"
},
"devDependencies": {
"@schematics/angular": "~14.2.1",

2
npm/ng-packs/packages/schematics/src/commands/change-theme/style-map.ts

@ -213,7 +213,7 @@ styleMap.set(ThemeOptionsEnum.LeptonXLite, [
inject: false,
bundleName: 'bootstrap-dim.rtl',
},
{
{
input: 'node_modules/@volo/ngx-lepton-x.lite/assets/css/font-bundle.rtl.css',
inject: false,
bundleName: 'font-bundle.rtl',

2
npm/ng-packs/packages/schematics/src/utils/angular/README.md

@ -1,5 +1,5 @@
**DISCLAIMER**
This directory is a direct copy of https://github.com/angular/angular-cli/tree/c5ef701639755d5b390e64287963ee35faab2cd4/packages/schematics/angular/utility and is used under terms and permissions by the MIT license granted by Google, LLC.
This directory is a direct copy of https://github.com/angular/angular-cli/tree/324f8da02b0e26faa26090ce306c43b31dde2165/packages/schematics/angular/utility and is used under terms and permissions by the MIT license granted by Google, LLC.
All credits go to Angular team for building these utilities.

61
npm/ng-packs/packages/schematics/src/utils/angular/add-declaration-to-ng-module.ts

@ -0,0 +1,61 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Rule, Tree, strings } from '@angular-devkit/schematics';
import * as ts from 'typescript';
import { addDeclarationToModule, addSymbolToNgModuleMetadata } from './ast-utils';
import { InsertChange } from './change';
import { buildRelativePath } from './find-module';
export interface DeclarationToNgModuleOptions {
module?: string;
path?: string;
name: string;
flat?: boolean;
export?: boolean;
type: string;
skipImport?: boolean;
standalone?: boolean;
}
export function addDeclarationToNgModule(options: DeclarationToNgModuleOptions): Rule {
return (host: Tree) => {
const modulePath = options.module;
if (options.skipImport || options.standalone || !modulePath) {
return host;
}
const sourceText = host.readText(modulePath);
const source = ts.createSourceFile(modulePath, sourceText, ts.ScriptTarget.Latest, true);
const filePath =
`/${options.path}/` +
(options.flat ? '' : strings.dasherize(options.name) + '/') +
strings.dasherize(options.name) +
(options.type ? '.' : '') +
strings.dasherize(options.type);
const importPath = buildRelativePath(modulePath, filePath);
const classifiedName = strings.classify(options.name) + strings.classify(options.type);
const changes = addDeclarationToModule(source, modulePath, classifiedName, importPath);
if (options.export) {
changes.push(...addSymbolToNgModuleMetadata(source, modulePath, 'exports', classifiedName));
}
const recorder = host.beginUpdate(modulePath);
for (const change of changes) {
if (change instanceof InsertChange) {
recorder.insertLeft(change.pos, change.toAdd);
}
}
host.commitUpdate(recorder);
return host;
};
}

47
npm/ng-packs/packages/schematics/src/utils/angular/ast-utils.ts

@ -171,7 +171,7 @@ export function findNodes<T extends ts.Node>(
*/
export function getSourceNodes(sourceFile: ts.SourceFile): ts.Node[] {
const nodes: ts.Node[] = [sourceFile];
const result = [];
const result: ts.Node[] = [];
while (nodes.length > 0) {
const node = nodes.shift();
@ -552,51 +552,6 @@ export function isImported(
return matchingNodes.length > 0;
}
/**
* This function returns the name of the environment export
* whether this export is aliased or not. If the environment file
* is not imported, then it will return `null`.
*/
export function getEnvironmentExportName(source: ts.SourceFile): string | null {
// Initial value is `null` as we don't know yet if the user
// has imported `environment` into the root module or not.
let environmentExportName: string | null = null;
const allNodes = getSourceNodes(source);
allNodes
.filter(ts.isImportDeclaration)
.filter(
declaration =>
declaration.moduleSpecifier.kind === ts.SyntaxKind.StringLiteral &&
declaration.importClause !== undefined,
)
.map(declaration =>
// If `importClause` property is defined then the first
// child will be `NamedImports` object (or `namedBindings`).
(declaration.importClause as ts.ImportClause).getChildAt(0),
)
// Find those `NamedImports` object that contains `environment` keyword
// in its text. E.g. `{ environment as env }`.
.filter(ts.isNamedImports)
.filter(namedImports => namedImports.getText().includes('environment'))
.forEach(namedImports => {
for (const specifier of namedImports.elements) {
// `propertyName` is defined if the specifier
// has an aliased import.
const name = specifier.propertyName || specifier.name;
// Find specifier that contains `environment` keyword in its text.
// Whether it's `environment` or `environment as env`.
if (name.text.includes('environment')) {
environmentExportName = specifier.name.text;
}
}
});
return environmentExportName;
}
/**
* Returns the RouterModule declaration from NgModule metadata, if any.
*/

4
npm/ng-packs/packages/schematics/src/utils/angular/generate-from-files.ts

@ -28,7 +28,7 @@ export interface GenerateFromFilesOptions {
name: string;
path?: string;
prefix?: string;
project?: string;
project: string;
skipTests?: boolean;
}
@ -37,7 +37,7 @@ export function generateFromFiles(
extraTemplateValues: Record<string, string | ((v: string) => string)> = {},
): Rule {
return async (host: Tree) => {
options.path ??= await createDefaultPath(host, options.project as string);
options.path ??= await createDefaultPath(host, options.project);
options.prefix ??= '';
options.flat ??= true;

10
npm/ng-packs/packages/schematics/src/utils/angular/latest-versions/package.json

@ -3,21 +3,21 @@
"comment": "This file is needed so that dependencies are synced by Renovate.",
"private": true,
"dependencies": {
"@types/jasmine": "~4.0.0",
"@types/jasmine": "~4.3.0",
"@types/node": "^14.15.0",
"jasmine-core": "~4.3.0",
"jasmine-core": "~4.5.0",
"jasmine-spec-reporter": "~7.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.2.0",
"karma-jasmine-html-reporter": "~2.0.0",
"karma-jasmine": "~5.1.0",
"karma": "~6.4.0",
"ng-packagr": "^14.2.0",
"ng-packagr": "^15.0.0",
"protractor": "~7.0.0",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"ts-node": "~10.9.0",
"typescript": "~4.7.2",
"zone.js": "~0.11.4"
"typescript": "~4.8.2",
"zone.js": "~0.12.0"
}
}

1
npm/ng-packs/packages/schematics/src/utils/angular/parse-name.ts

@ -6,7 +6,6 @@
* found in the LICENSE file at https://angular.io/license
*/
// import { relative, Path } from "../../../angular_devkit/core/src/virtual-fs";
import { Path, basename, dirname, join, normalize } from '@angular-devkit/core';
export interface Location {

34
npm/ng-packs/packages/schematics/src/utils/angular/test/create-app-module.ts

@ -0,0 +1,34 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { UnitTestTree } from '@angular-devkit/schematics/testing';
export function createAppModule(tree: UnitTestTree, path?: string): UnitTestTree {
tree.create(
path || '/src/app/app.module.ts',
`
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
`,
);
return tree;
}

19
npm/ng-packs/packages/schematics/src/utils/angular/test/get-file-content.ts

@ -0,0 +1,19 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Tree } from '@angular-devkit/schematics';
export function getFileContent(tree: Tree, path: string): string {
const fileEntry = tree.get(path);
if (!fileEntry) {
throw new Error(`The file (${path}) does not exist.`);
}
return fileEntry.content.toString();
}

10
npm/ng-packs/packages/schematics/src/utils/angular/test/index.ts

@ -0,0 +1,10 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export * from './create-app-module';
export * from './get-file-content';

5
npm/ng-packs/packages/setting-management/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/setting-management/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/tenant-management/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/tenant-management/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

5
npm/ng-packs/packages/theme-basic/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/theme-basic/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

4
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts

@ -1,5 +1,5 @@
import { LinkedList } from '@abp/utils';
import { InjectFlags, InjectionToken, Type } from '@angular/core';
import { InjectFlags, InjectionToken, InjectOptions, Type } from '@angular/core';
import { O } from 'ts-toolbelt';
import { ePropType } from '../enums/props.enum';
@ -9,7 +9,7 @@ export abstract class PropData<R = any> {
abstract getInjected: <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
flags?: InjectFlags,
options?: InjectOptions | InjectFlags,
) => T;
index?: number;
abstract record: R;

18
npm/ng-packs/packages/theme-shared/extensions/src/lib/pipes/create-injector.pipe.ts

@ -1,4 +1,12 @@
import { InjectFlags, InjectionToken, Injector, Pipe, PipeTransform, Type } from '@angular/core';
import {
InjectFlags,
InjectionToken,
InjectOptions,
Injector,
Pipe,
PipeTransform,
Type,
} from '@angular/core';
import { HasCreateInjectorPipe, ToolbarComponent } from '../models/toolbar-actions';
import { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/extensions.token';
@ -11,7 +19,11 @@ export class CreateInjectorPipe<R> implements PipeTransform {
action: ToolbarComponent<R>,
context: HasCreateInjectorPipe<R>,
): Injector {
const get = <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => {
const get = <T>(
token: Type<T> | InjectionToken<T>,
notFoundValue?: T,
options?: InjectOptions | InjectFlags,
) => {
const componentData = context.getData();
const componentDataCallback = data => {
data = data ?? context.getData();
@ -26,7 +38,7 @@ export class CreateInjectorPipe<R> implements PipeTransform {
extensionData = componentDataCallback;
break;
default:
extensionData = context.getInjected.call(context.injector, token, notFoundValue, flags);
extensionData = context.getInjected.call(context.injector, token, notFoundValue, options);
}
return extensionData;
};

4
npm/ng-packs/packages/theme-shared/package.json

@ -9,8 +9,8 @@
"dependencies": {
"@abp/ng.core": "~7.0.0-rc.3",
"@fortawesome/fontawesome-free": "^5.15.4",
"@ng-bootstrap/ng-bootstrap": "13.0.0",
"@ngx-validate/core": "^0.1.2",
"@ng-bootstrap/ng-bootstrap": "^14.0.0-rc.1",
"@ngx-validate/core": "^0.2.0",
"@popperjs/core": "~2.11.2",
"@swimlane/ngx-datatable": "^20.0.0",
"bootstrap": "^5.2.0",

6
npm/ng-packs/packages/theme-shared/src/lib/utils/validation-utils.ts

@ -2,7 +2,7 @@ import { ABP, ConfigStateService } from '@abp/ng.core';
import { Injector } from '@angular/core';
import { AbstractControl, ValidatorFn, Validators } from '@angular/forms';
import { normalizeDiacritics, PasswordRules } from '@ngx-validate/core';
import { PasswordRule } from "../models/validation";
import { PasswordRule } from '../models/validation';
const { minLength, maxLength } = Validators;
@ -52,9 +52,7 @@ const errorMessageMap = {
special: 'passwordRequiresNonAlphanumeric',
};
export function validatePassword(
shouldContain: PasswordRule
): ValidatorFn {
export function validatePassword(shouldContain: PasswordRule): ValidatorFn {
return (control: AbstractControl) => {
if (!control.value) return null;

5
npm/ng-packs/packages/theme-shared/tsconfig.lib.json

@ -2,12 +2,13 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"target": "es2020",
"target": "ES2022",
"declaration": true,
"declarationMap": true,
"inlineSources": true,
"types": [],
"lib": ["dom", "es2018"]
"lib": ["dom", "es2018"],
"useDefineForClassFields": false
},
"exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"],
"include": ["**/*.ts"]

4
npm/ng-packs/packages/theme-shared/tsconfig.lib.prod.json

@ -1,7 +1,9 @@
{
"extends": "./tsconfig.lib.json",
"compilerOptions": {
"declarationMap": false
"declarationMap": false,
"target": "ES2022",
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"compilationMode": "partial"

10
npm/ng-packs/scripts/mock-schematic/mock-schematic-json.ts

@ -1,11 +1,15 @@
import express, { Request, Response } from 'express';
import express, { Request } from 'express';
import fs from 'fs';
const port = 4300;
const app = express();
app.get('/api/abp/api-definition', async (req: Request, res: Response) => {
const file = fs.readFileSync('./api-definition.json');
app.get('/', function(req:any, res:any){
res.redirect('/api/abp/api-definition');
});
app.get('/api/abp/api-definition', async (req: Request, res: any) => {
const file = fs.readFileSync('./api-definition.json');
res.contentType('application/json');
res.send(file);
});

17
templates/app-nolayers/angular/.browserslistrc

@ -1,17 +0,0 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

38
templates/app-nolayers/angular/package.json

@ -20,15 +20,15 @@
"@abp/ng.tenant-management": "~7.0.0-rc.3",
"@abp/ng.theme.shared": "~7.0.0-rc.3",
"@abp/ng.theme.lepton-x": "~2.0.0-rc.1",
"@angular/animations": "^14.2.1",
"@angular/common": "^14.2.1",
"@angular/compiler": "^14.2.1",
"@angular/core": "^14.2.1",
"@angular/forms": "^14.2.1",
"@angular/localize": "^14.2.1",
"@angular/platform-browser": "^14.2.1",
"@angular/platform-browser-dynamic": "^14.2.1",
"@angular/router": "^14.2.1",
"@angular/animations": "^15.0.1",
"@angular/common": "^15.0.1",
"@angular/compiler": "^15.0.1",
"@angular/core": "^15.0.1",
"@angular/forms": "^15.0.1",
"@angular/localize": "^15.0.1",
"@angular/platform-browser": "^15.0.1",
"@angular/platform-browser-dynamic": "^15.0.1",
"@angular/router": "^15.0.1",
"rxjs": "7.5.6",
"tslib": "^2.1.0",
"bootstrap-icons": "~1.8.3",
@ -36,15 +36,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~7.0.0-rc.3",
"@angular-devkit/build-angular": "^14.2.3",
"@angular-eslint/builder": "~14.1.1",
"@angular-eslint/eslint-plugin": "~14.1.1",
"@angular-eslint/eslint-plugin-template": "~14.1.1",
"@angular-eslint/schematics": "~14.1.1",
"@angular-eslint/template-parser": "~14.1.1",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.1",
"@angular/language-service": "^14.2.1",
"@angular-devkit/build-angular": "^15.0.1",
"@angular-eslint/builder": "~15.1.0",
"@angular-eslint/eslint-plugin": "~15.1.0",
"@angular-eslint/eslint-plugin-template": "~15.1.0",
"@angular-eslint/schematics": "~15.1.0",
"@angular-eslint/template-parser": "~15.1.0",
"@angular/cli": "^15.0.1",
"@angular/compiler-cli": "^15.0.1",
"@angular/language-service": "^15.0.1",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "^5.36.2",
@ -56,7 +56,7 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^14.2.1",
"ng-packagr": "^15.0.1",
"typescript": "~4.8.3"
}
}

2
templates/app-nolayers/angular/src/app/app-routing.module.ts

@ -28,7 +28,7 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
imports: [RouterModule.forRoot(routes, {})],
exports: [RouterModule],
})
export class AppRoutingModule {}

15
templates/app-nolayers/angular/src/test.ts

@ -6,23 +6,8 @@ import {
platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(
path: string,
deep?: boolean,
filter?: RegExp
): {
keys(): string[];
<T>(id: string): T;
};
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

13
templates/app-nolayers/angular/tsconfig.json

@ -10,16 +10,21 @@
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2020",
"target": "ES2022",
"module": "es2020",
"lib": [
"es2018",
"dom"
],
"paths": {
"@proxy": ["src/app/proxy/index.ts"],
"@proxy/*": ["src/app/proxy/*"]
}
"@proxy": [
"src/app/proxy/index.ts"
],
"@proxy/*": [
"src/app/proxy/*"
]
},
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false

17
templates/app/angular/.browserslistrc

@ -1,17 +0,0 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

38
templates/app/angular/package.json

@ -20,15 +20,15 @@
"@abp/ng.tenant-management": "~7.0.0-rc.3",
"@abp/ng.theme.shared": "~7.0.0-rc.3",
"@abp/ng.theme.lepton-x": "~2.0.0-rc.1",
"@angular/animations": "^14.2.1",
"@angular/common": "^14.2.1",
"@angular/compiler": "^14.2.1",
"@angular/core": "^14.2.1",
"@angular/forms": "^14.2.1",
"@angular/localize": "^14.2.1",
"@angular/platform-browser": "^14.2.1",
"@angular/platform-browser-dynamic": "^14.2.1",
"@angular/router": "^14.2.1",
"@angular/animations": "^15.0.1",
"@angular/common": "^15.0.1",
"@angular/compiler": "^15.0.1",
"@angular/core": "^15.0.1",
"@angular/forms": "^15.0.1",
"@angular/localize": "^15.0.1",
"@angular/platform-browser": "^15.0.1",
"@angular/platform-browser-dynamic": "^15.0.1",
"@angular/router": "^15.0.1",
"bootstrap-icons": "~1.8.3",
"rxjs": "7.5.6",
"tslib": "^2.1.0",
@ -36,15 +36,15 @@
},
"devDependencies": {
"@abp/ng.schematics": "~7.0.0-rc.3",
"@angular-devkit/build-angular": "^14.2.3",
"@angular-eslint/builder": "~14.1.1",
"@angular-eslint/eslint-plugin": "~14.1.1",
"@angular-eslint/eslint-plugin-template": "~14.1.1",
"@angular-eslint/schematics": "~14.1.1",
"@angular-eslint/template-parser": "~14.1.1",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.1",
"@angular/language-service": "^14.2.1",
"@angular-devkit/build-angular": "^15.0.1",
"@angular-eslint/builder": "~15.1.0",
"@angular-eslint/eslint-plugin": "~15.1.0",
"@angular-eslint/eslint-plugin-template": "~15.1.0",
"@angular-eslint/schematics": "~15.1.0",
"@angular-eslint/template-parser": "~15.1.0",
"@angular/cli": "^15.0.1",
"@angular/compiler-cli": "^15.0.1",
"@angular/language-service": "^15.0.1",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "^5.36.2",
@ -56,7 +56,7 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^14.2.1",
"ng-packagr": "^15.0.1",
"typescript": "~4.8.3"
}
}

2
templates/app/angular/src/app/app-routing.module.ts

@ -28,7 +28,7 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
imports: [RouterModule.forRoot(routes, {})],
exports: [RouterModule],
})
export class AppRoutingModule {}

16
templates/app/angular/src/test.ts

@ -6,24 +6,8 @@ import {
platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(
path: string,
deep?: boolean,
filter?: RegExp
): {
keys(): string[];
<T>(id: string): T;
};
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

18
templates/app/angular/tsconfig.json

@ -10,13 +10,21 @@
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2020",
"target": "ES2022",
"module": "es2020",
"lib": ["es2018", "dom"],
"lib": [
"es2018",
"dom"
],
"paths": {
"@proxy": ["src/app/proxy/index.ts"],
"@proxy/*": ["src/app/proxy/*"]
}
"@proxy": [
"src/app/proxy/index.ts"
],
"@proxy/*": [
"src/app/proxy/*"
]
},
"useDefineForClassFields": false
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false

10
templates/app/react-native/Environment.js

@ -1,10 +1,13 @@
const yourIP = 'Your Local IP Address etc 192.168.1.64'; // See the docs https://docs.abp.io/en/abp/latest/Getting-Started-React-Native?Tiered=No
const port = 44305;
const apiUrl = `http://${yourIP}:${port}`;
const ENV = {
dev: {
apiUrl: 'http://localhost:44305',
apiUrl: apiUrl,
oAuthConfig: {
issuer: 'http://localhost:44305',
issuer: apiUrl,
clientId: 'MyProjectName_App',
clientSecret: '1q2w3e*',
scope: 'offline_access MyProjectName',
},
localization: {
@ -16,7 +19,6 @@ const ENV = {
oAuthConfig: {
issuer: 'http://localhost:44305',
clientId: 'MyProjectName_App',
clientSecret: '1q2w3e*',
scope: 'offline_access MyProjectName',
},
localization: {

41
templates/app/react-native/package.json

@ -10,34 +10,35 @@
"eject": "expo eject"
},
"dependencies": {
"@react-native-async-storage/async-storage": "~1.15.0",
"@react-navigation/drawer": "^6.1.8",
"@react-navigation/native": "^6.0.6",
"@react-navigation/native-stack": "^6.2.5",
"@react-native-async-storage/async-storage": "~1.17.11",
"@react-navigation/drawer": "^6.5.4",
"@react-navigation/native": "^6.1.0",
"@react-navigation/native-stack": "^6.9.5",
"@reduxjs/toolkit": "^1.7.1",
"axios": "^0.24.0",
"expo": "~44.0.0",
"expo-status-bar": "~1.2.0",
"axios": "~1.2.1",
"expo": "^47.0.0",
"expo-status-bar": "~1.4.2",
"formik": "^2.2.9",
"i18n-js": "^3.8.0",
"native-base": "^3.3.1",
"native-base": "^3.4.25",
"prop-types": "^15.8.1",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.3",
"react-native-gesture-handler": "~2.1.0",
"react-native-reanimated": "~2.3.1",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "~3.10.1",
"react-native-svg": "12.1.1",
"react-native-web": "0.17.1",
"react-redux": "^7.2.6",
"react": "18.1.0",
"react-dom": "18.1.0",
"react-native": "0.70.5",
"react-native-chart-kit": "^6.11.0",
"react-native-gesture-handler": "~2.8.0",
"react-native-reanimated": "~2.12.0",
"react-native-safe-area-context": "4.4.1",
"react-native-screens": "~3.18.0",
"react-native-svg": "13.4.0",
"react-native-web": "~0.18.7",
"react-redux": "^8.0.5",
"redux-persist": "^6.0.0",
"redux-saga": "^1.1.3",
"redux-saga": "^1.2.1",
"yup": "^0.32.11"
},
"devDependencies": {
"@babel/core": "^7.12.9"
"@babel/core": "^7.19.3"
},
"private": true
}

38
templates/module/angular/package.json

@ -23,30 +23,30 @@
"@abp/ng.tenant-management": "~7.0.0-rc.3",
"@abp/ng.theme.basic": "~7.0.0-rc.3",
"@abp/ng.theme.shared": "~7.0.0-rc.3",
"@angular/animations": "^14.2.1",
"@angular/common": "^14.2.1",
"@angular/compiler": "^14.2.1",
"@angular/core": "^14.2.1",
"@angular/forms": "^14.2.1",
"@angular/localize": "^14.2.1",
"@angular/platform-browser": "^14.2.1",
"@angular/platform-browser-dynamic": "^14.2.1",
"@angular/router": "^14.2.1",
"@angular/animations": "^15.0.1",
"@angular/common": "^15.0.1",
"@angular/compiler": "^15.0.1",
"@angular/core": "^15.0.1",
"@angular/forms": "^15.0.1",
"@angular/localize": "^15.0.1",
"@angular/platform-browser": "^15.0.1",
"@angular/platform-browser-dynamic": "^15.0.1",
"@angular/router": "^15.0.1",
"rxjs": "7.5.6",
"tslib": "^2.1.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@abp/ng.schematics": "~7.0.0-rc.3",
"@angular-devkit/build-angular": "^14.2.3",
"@angular-eslint/builder": "~14.1.1",
"@angular-eslint/eslint-plugin": "~14.1.1",
"@angular-eslint/eslint-plugin-template": "~14.1.1",
"@angular-eslint/schematics": "~14.1.1",
"@angular-eslint/template-parser": "~14.1.1",
"@angular/cli": "^14.2.3",
"@angular/compiler-cli": "^14.2.1",
"@angular/language-service": "^14.2.1",
"@angular-devkit/build-angular": "^15.0.1",
"@angular-eslint/builder": "~15.1.0",
"@angular-eslint/eslint-plugin": "~15.1.0",
"@angular-eslint/eslint-plugin-template": "~15.1.0",
"@angular-eslint/schematics": "~15.1.0",
"@angular-eslint/template-parser": "~15.1.0",
"@angular/cli": "^15.0.1",
"@angular/compiler-cli": "^15.0.1",
"@angular/language-service": "^15.0.1",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "^5.36.2",
@ -58,7 +58,7 @@
"karma-coverage": "~2.1.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.7.0",
"ng-packagr": "^14.2.1",
"ng-packagr": "^15.0.1",
"symlink-manager": "^1.5.0",
"typescript": "~4.8.3"
}

17
templates/module/angular/projects/dev-app/.browserslistrc

@ -1,17 +0,0 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.

2
templates/module/angular/projects/dev-app/src/app/app-routing.module.ts

@ -33,7 +33,7 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
imports: [RouterModule.forRoot(routes, {})],
exports: [RouterModule],
})
export class AppRoutingModule {}

11
templates/module/angular/projects/dev-app/src/test.ts

@ -7,19 +7,8 @@ import {
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(path: string, deep?: boolean, filter?: RegExp): {
keys(): string[];
<T>(id: string): T;
};
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

11
templates/module/angular/projects/my-project-name/src/test.ts

@ -8,19 +8,8 @@ import {
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(path: string, deep?: boolean, filter?: RegExp): {
keys(): string[];
<T>(id: string): T;
};
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

1
templates/module/angular/projects/my-project-name/tsconfig.lib.json

@ -3,7 +3,6 @@
"extends": "../../tsconfig.prod.json",
"compilerOptions": {
"outDir": "../../out-tsc/lib",
"target": "es2020",
"declaration": true,
"declarationMap": true,
"inlineSources": true,

Loading…
Cancel
Save