@acorex/platform-generator 21.0.0-next.3 → 21.0.0-next.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -6
- package/package.json +9 -3
- package/src/bin/create-acorex-app.js +116 -0
- package/src/bin/standalone-scaffold.js +533 -0
- package/src/generators/app-module/files/project.json.template +194 -48
- package/src/generators/app-module/files/src/app/app.config.api.ts.template +145 -0
- package/src/generators/app-module/files/src/app/app.config.full.ts.template +216 -0
- package/src/generators/app-module/files/src/app/app.config.minimal.ts.template +162 -0
- package/src/generators/app-module/files/src/app/app.routes.ts.template +1 -1
- package/src/generators/app-module/files/src/app/modules/common/default-settings.providers.ts.template +16 -8
- package/src/generators/app-module/files/src/app/modules/layout/layout-root.module.ts.template +3 -6
- package/src/generators/app-module/files/src/app/modules/root/root.module.ts.template +2 -2
- package/src/generators/app-module/files/src/assets/i18n/en-US/activity-log.json +10 -1
- package/src/generators/app-module/files/src/assets/i18n/en-US/auth.json +12 -0
- package/src/generators/app-module/files/src/assets/i18n/en-US/data-management.json +4 -0
- package/src/generators/app-module/files/src/assets/i18n/en-US/general.json +5 -0
- package/src/generators/app-module/files/src/assets/i18n/en-US/organization-management.json +0 -8
- package/src/generators/app-module/files/src/assets/i18n/en-US/questionnaire.json +77 -0
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/activity-log.json +10 -1
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/auth.json +12 -0
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/data-management.json +5 -1
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/general.json +7 -3
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/human-capital-management.json +4 -7
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/organization-management.json +0 -8
- package/src/generators/app-module/files/src/assets/i18n/fa-IR/questionnaire.json +77 -0
- package/src/generators/app-module/files/src/environments/environment.dev.ts.template +45 -16
- package/src/generators/app-module/files/src/environments/environment.prod.ts.template +33 -0
- package/src/generators/app-module/files/src/environments/environment.ts.template +23 -7
- package/src/generators/app-module/files/src/main.ts.template +42 -2
- package/src/generators/app-module/generator.d.ts +10 -1
- package/src/generators/app-module/generator.js +100 -12
- package/src/generators/app-module/generator.js.map +1 -1
- package/src/generators/app-module/schema.d.ts +28 -0
- package/src/generators/app-module/schema.json +74 -5
- package/src/generators/standalone-workspace/versions.json +53 -0
- package/src/generators/app-module/files/src/app/app.config.ts.template +0 -158
|
@@ -1,26 +1,95 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"$id": "AppModule",
|
|
4
|
-
"title": "",
|
|
4
|
+
"title": "Create ACoreX Platform application",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"name": {
|
|
8
8
|
"type": "string",
|
|
9
|
-
"description": "",
|
|
9
|
+
"description": "Application folder name under apps/ (kebab-case or short name, e.g. demo)",
|
|
10
10
|
"$default": {
|
|
11
11
|
"$source": "argv",
|
|
12
12
|
"index": 0
|
|
13
13
|
},
|
|
14
|
-
"x-prompt": "What name would you like to use?"
|
|
14
|
+
"x-prompt": "What name would you like to use for the app folder (apps/<name>)?"
|
|
15
15
|
},
|
|
16
16
|
"title": {
|
|
17
17
|
"type": "string",
|
|
18
|
-
"description": "",
|
|
18
|
+
"description": "Display title in platform shell and config",
|
|
19
19
|
"$default": {
|
|
20
20
|
"$source": "argv",
|
|
21
21
|
"index": 1
|
|
22
22
|
},
|
|
23
|
-
"x-prompt": "What title
|
|
23
|
+
"x-prompt": "What product title should appear in the shell?"
|
|
24
|
+
},
|
|
25
|
+
"copyright": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Copyright line in platform config",
|
|
28
|
+
"default": "© 2025",
|
|
29
|
+
"x-prompt": "Copyright line (e.g. © 2025 Your Company)"
|
|
30
|
+
},
|
|
31
|
+
"baseUrl": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Default API base URL in generated environment.ts",
|
|
34
|
+
"default": "https://localhost:44320/api",
|
|
35
|
+
"x-prompt": "Default API baseUrl for environment.ts?"
|
|
36
|
+
},
|
|
37
|
+
"preset": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "full = module set close to apps/demo; minimal = smaller module and i18n set",
|
|
40
|
+
"enum": ["minimal", "full"],
|
|
41
|
+
"default": "full",
|
|
42
|
+
"x-prompt": "Scaffold preset: full (like demo) or minimal (lighter)?"
|
|
43
|
+
},
|
|
44
|
+
"entityStorage": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "Default entity storage backend in generated environments",
|
|
47
|
+
"enum": ["dexie", "firestore"],
|
|
48
|
+
"default": "dexie",
|
|
49
|
+
"x-prompt": "Default entity storage backend (dexie = IndexedDB, firestore = Firebase)?"
|
|
50
|
+
},
|
|
51
|
+
"includeApiConfig": {
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"description": "Generate app.config.api.ts and Nx targets for API/OIDC auth swap",
|
|
54
|
+
"default": true,
|
|
55
|
+
"x-prompt": "Include app.config.api.ts and serve-dev-api / build-dev-api targets?"
|
|
56
|
+
},
|
|
57
|
+
"includeConsoleLogCapture": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"description": "Patch console in main.ts for log capture in production (demo behavior)",
|
|
60
|
+
"default": false,
|
|
61
|
+
"x-prompt": "Enable production console patching for help-desk log capture (like demo)?"
|
|
62
|
+
},
|
|
63
|
+
"firebaseApiKey": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"description": "Placeholder Firebase apiKey in environment templates",
|
|
66
|
+
"default": "YOUR_FIREBASE_API_KEY",
|
|
67
|
+
"x-prompt": "Placeholder Firebase apiKey (replace later in environment files)?"
|
|
68
|
+
},
|
|
69
|
+
"firebaseAuthDomain": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"default": "your-project.firebaseapp.com",
|
|
72
|
+
"x-prompt": "Placeholder Firebase authDomain?"
|
|
73
|
+
},
|
|
74
|
+
"firebaseProjectId": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"default": "your-project-id",
|
|
77
|
+
"x-prompt": "Placeholder Firebase projectId?"
|
|
78
|
+
},
|
|
79
|
+
"firebaseStorageBucket": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"default": "your-project.appspot.com",
|
|
82
|
+
"x-prompt": "Placeholder Firebase storageBucket?"
|
|
83
|
+
},
|
|
84
|
+
"firebaseMessagingSenderId": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"default": "000000000000",
|
|
87
|
+
"x-prompt": "Placeholder Firebase messagingSenderId?"
|
|
88
|
+
},
|
|
89
|
+
"firebaseAppId": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"default": "1:000000000000:web:000000000000000000000",
|
|
92
|
+
"x-prompt": "Placeholder Firebase appId?"
|
|
24
93
|
}
|
|
25
94
|
},
|
|
26
95
|
"required": ["name", "title"]
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Synced from repo root package.json for keys used by standalone scaffold. @acorex/platform|modules|connectivity use the same line as other @acorex/* in the workspace.",
|
|
3
|
+
"@acorex/platform": "20.7.22",
|
|
4
|
+
"@acorex/modules": "20.7.22",
|
|
5
|
+
"@acorex/connectivity": "20.7.22",
|
|
6
|
+
"@acorex/cdk": "20.4.13",
|
|
7
|
+
"@acorex/charts": "20.4.13",
|
|
8
|
+
"@acorex/components": "20.4.13",
|
|
9
|
+
"@acorex/core": "20.4.13",
|
|
10
|
+
"@acorex/styles": "20.4.13",
|
|
11
|
+
"@angular/animations": "~20.3.0",
|
|
12
|
+
"@angular/cdk": "~20.2.0",
|
|
13
|
+
"@angular/common": "~20.3.0",
|
|
14
|
+
"@angular/compiler": "~20.3.0",
|
|
15
|
+
"@angular/core": "~20.3.0",
|
|
16
|
+
"@angular/forms": "~20.3.0",
|
|
17
|
+
"@angular/platform-browser": "~20.3.0",
|
|
18
|
+
"@angular/platform-browser-dynamic": "~20.3.0",
|
|
19
|
+
"@angular/router": "~20.3.0",
|
|
20
|
+
"@angular/service-worker": "~20.3.0",
|
|
21
|
+
"@ngrx/signals": "^20.0.0",
|
|
22
|
+
"angular-oauth2-oidc": "^15.0.0",
|
|
23
|
+
"dexie": "^3.2.7",
|
|
24
|
+
"dom-to-image": "^2.6.0",
|
|
25
|
+
"firebase": "^11.0.0",
|
|
26
|
+
"lodash-es": "^4.17.21",
|
|
27
|
+
"memoizee": "^0.4.17",
|
|
28
|
+
"rxjs": "^7.8.2",
|
|
29
|
+
"tailwindcss-animate": "^1.0.7",
|
|
30
|
+
"tslib": "^2.8.1",
|
|
31
|
+
"zone.js": "0.15.0",
|
|
32
|
+
"@angular-devkit/build-angular": "~20.3.0",
|
|
33
|
+
"@angular/cli": "~20.3.0",
|
|
34
|
+
"@angular/compiler-cli": "~20.3.0",
|
|
35
|
+
"@angular/language-service": "~20.3.0",
|
|
36
|
+
"@nx/angular": "21.6.3",
|
|
37
|
+
"@nx/eslint-plugin": "21.6.3",
|
|
38
|
+
"@nx/jest": "21.6.3",
|
|
39
|
+
"@nx/js": "21.6.3",
|
|
40
|
+
"@nx/workspace": "21.6.3",
|
|
41
|
+
"@schematics/angular": "20.3.4",
|
|
42
|
+
"angular-eslint": "^20.3.0",
|
|
43
|
+
"eslint": "9.26.0",
|
|
44
|
+
"jest": "^29.7.0",
|
|
45
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
46
|
+
"jest-preset-angular": "^14.6.0",
|
|
47
|
+
"ng-packagr": "20.3.0",
|
|
48
|
+
"nx": "21.6.3",
|
|
49
|
+
"prettier": "^3.5.3",
|
|
50
|
+
"sass": "^1.83.4",
|
|
51
|
+
"tailwindcss": "^3.4.17",
|
|
52
|
+
"typescript": "5.9.2"
|
|
53
|
+
}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { ApplicationConfig, importProvidersFrom } from '@angular/core';
|
|
2
|
-
import { provideRouter, withEnabledBlockingInitialNavigation, withComponentInputBinding } from '@angular/router';
|
|
3
|
-
import { appRoutes } from './app.routes';
|
|
4
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
5
|
-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
6
|
-
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
7
|
-
import { BasicInterceptor } from './basic-interceptor.interceptor';
|
|
8
|
-
import { AXDialogModule } from '@acorex/components/dialog';
|
|
9
|
-
import { AXLoadingDialogModule } from '@acorex/components/loading-dialog';
|
|
10
|
-
import { AXFormatModule } from '@acorex/core/format';
|
|
11
|
-
import { AXValidationModule } from '@acorex/core/validation';
|
|
12
|
-
import { AXPTranslationRootModule } from './modules/common/translation-root.module';
|
|
13
|
-
import { AXPLayoutRootModule } from './modules/layout/layout-root.module';
|
|
14
|
-
import { AXCMockModule, AXCUserPassStrategyMock } from '@acorex/connectivity/mock';
|
|
15
|
-
import { AXPAuthModule } from '@acorex/platform/auth';
|
|
16
|
-
import { AXMNotificationManagementModule } from '@acorex/modules/notification-management';
|
|
17
|
-
import { AXMSettingsManagementModule } from '@acorex/modules/settings-management';
|
|
18
|
-
import { AXMHelpDeskModule } from '@acorex/modules/help-desk';
|
|
19
|
-
import { AXMDashboardManagementModule } from '@acorex/modules/dashboard-management';
|
|
20
|
-
import { AXMHumanCapitalManagementModule } from '@acorex/modules/human-capital-management';
|
|
21
|
-
import { AXMFormTemplateManagementModule } from '@acorex/modules/form-template-management';
|
|
22
|
-
import { AXMSecurityManagementModule } from '@acorex/modules/security-management';
|
|
23
|
-
import { AXMOrganizationManagementModule } from '@acorex/modules/organization-management';
|
|
24
|
-
import { AXMSystemInsightModule } from '@acorex/modules/system-insight';
|
|
25
|
-
import { AXMDocumentManagementModule } from '@acorex/modules/document-management';
|
|
26
|
-
import { AXMProjectManagementModule } from '@acorex/modules/project-management';
|
|
27
|
-
import { AXMLearningManagementModule } from '@acorex/modules/learning-management';
|
|
28
|
-
import { AXMWorkflowManagementModule } from '@acorex/modules/workflow-management';
|
|
29
|
-
import { AXMContentManagementModule } from '@acorex/modules/content-management';
|
|
30
|
-
import { AXMConversationModule } from '@acorex/modules/conversation';
|
|
31
|
-
import { AXMPlatformManagementModule } from '@acorex/modules/platform-management';
|
|
32
|
-
import { AXMDataManagementModule } from '@acorex/modules/data-management';
|
|
33
|
-
import { AXMReportManagementModule } from '@acorex/modules/report-management';
|
|
34
|
-
import { AXMCalendarManagementModule } from '@acorex/modules/calendar-management';
|
|
35
|
-
import { AXMLocationManagementModule } from '@acorex/modules/location-management';
|
|
36
|
-
import { AXMPersonManagementModule } from '@acorex/modules/person-management';
|
|
37
|
-
import { AXMContactManagementModule } from '@acorex/modules/contact-management';
|
|
38
|
-
import { AXMLocaleManagementModule } from '@acorex/modules/locale-management';
|
|
39
|
-
import { AXMMeetingManagementModule } from '@acorex/modules/meeting-management';
|
|
40
|
-
import { AXMTaskManagementModule } from '@acorex/modules/task-management';
|
|
41
|
-
import { AXMIdentifierManagementModule } from '@acorex/modules/identifier-management';
|
|
42
|
-
import { AXMApplicationManagementModule } from '@acorex/modules/application-management';
|
|
43
|
-
|
|
44
|
-
import {
|
|
45
|
-
AXPHomePageModule,
|
|
46
|
-
AXP_APP_VERSION_PROVIDER,
|
|
47
|
-
AXP_PLATFORM_CONFIG_TOKEN,
|
|
48
|
-
AXP_ROOT_CONFIG_TOKEN,
|
|
49
|
-
ENVIRONMENT,
|
|
50
|
-
configPlatform,
|
|
51
|
-
provideDynamicHomePage,
|
|
52
|
-
} from '@acorex/platform/common';
|
|
53
|
-
import { AXPImageUrlLogoConfig } from '@acorex/platform/core';
|
|
54
|
-
|
|
55
|
-
import { environment } from '../environments/environment';
|
|
56
|
-
import { <%= className %>AppVersionProvider } from './modules/common/app-version.provider';
|
|
57
|
-
import { AXMCommonModule } from '@acorex/modules/common';
|
|
58
|
-
import { AXPGlobalSearchModule } from '@acorex/modules/common';
|
|
59
|
-
import { APP_DEFAULT_SETTINGS_PROVIDERS } from './modules/common/default-settings.providers';
|
|
60
|
-
import { <%= className %>AuthRootModule } from './modules/auth/auth-root.module';
|
|
61
|
-
import { <%= upperCase(name) %>RootModule } from './modules/<%= name %>/<%= name %>-root.module';
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export const appConfig: ApplicationConfig = {
|
|
65
|
-
providers: [
|
|
66
|
-
APP_DEFAULT_SETTINGS_PROVIDERS,
|
|
67
|
-
provideHttpClient(withInterceptorsFromDi()),
|
|
68
|
-
provideRouter(appRoutes, withEnabledBlockingInitialNavigation(), withComponentInputBinding()),
|
|
69
|
-
//
|
|
70
|
-
{ provide: ENVIRONMENT, useValue: environment },
|
|
71
|
-
{ provide: HTTP_INTERCEPTORS, useClass: BasicInterceptor, multi: true },
|
|
72
|
-
{
|
|
73
|
-
provide: AXP_ROOT_CONFIG_TOKEN,
|
|
74
|
-
useValue: {
|
|
75
|
-
baseUrl: environment.baseUrl,
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
provide: AXP_PLATFORM_CONFIG_TOKEN,
|
|
80
|
-
useValue: configPlatform({
|
|
81
|
-
logo: {
|
|
82
|
-
icon: {
|
|
83
|
-
dark: new AXPImageUrlLogoConfig('assets/images/logos/icon-dark.svg', 160),
|
|
84
|
-
light: new AXPImageUrlLogoConfig('assets/images/logos/icon-light.svg', 160),
|
|
85
|
-
},
|
|
86
|
-
text: {
|
|
87
|
-
dark: new AXPImageUrlLogoConfig('assets/images/logos/text-dark.svg', 80),
|
|
88
|
-
light: new AXPImageUrlLogoConfig('assets/images/logos/text-light.svg', 80),
|
|
89
|
-
},
|
|
90
|
-
full: {
|
|
91
|
-
dark: new AXPImageUrlLogoConfig('assets/images/logos/full-dark.svg', 160),
|
|
92
|
-
light: new AXPImageUrlLogoConfig('assets/images/logos/full-light.svg', 160),
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
title: '<%= title %>',
|
|
96
|
-
copyright: '© 2024',
|
|
97
|
-
}),
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
provide: AXP_APP_VERSION_PROVIDER,
|
|
101
|
-
useClass: <%= className %>AppVersionProvider,
|
|
102
|
-
},
|
|
103
|
-
provideDynamicHomePage(),
|
|
104
|
-
importProvidersFrom(
|
|
105
|
-
BrowserModule,
|
|
106
|
-
BrowserAnimationsModule,
|
|
107
|
-
//
|
|
108
|
-
AXDialogModule,
|
|
109
|
-
AXLoadingDialogModule,
|
|
110
|
-
AXFormatModule.forRoot(),
|
|
111
|
-
AXValidationModule.forRoot(),
|
|
112
|
-
//
|
|
113
|
-
AXPGlobalSearchModule,
|
|
114
|
-
//
|
|
115
|
-
AXMCommonModule,
|
|
116
|
-
AXPHomePageModule,
|
|
117
|
-
//
|
|
118
|
-
AXPTranslationRootModule,
|
|
119
|
-
AXPLayoutRootModule,
|
|
120
|
-
// Management Modules (Mock)
|
|
121
|
-
AXMSettingsManagementModule,
|
|
122
|
-
AXMHelpDeskModule,
|
|
123
|
-
AXMDashboardManagementModule,
|
|
124
|
-
AXMNotificationManagementModule,
|
|
125
|
-
AXMFormTemplateManagementModule,
|
|
126
|
-
AXMSecurityManagementModule,
|
|
127
|
-
AXMOrganizationManagementModule,
|
|
128
|
-
AXMHumanCapitalManagementModule,
|
|
129
|
-
AXMSystemInsightModule,
|
|
130
|
-
AXMDocumentManagementModule,
|
|
131
|
-
AXMProjectManagementModule,
|
|
132
|
-
AXMLearningManagementModule,
|
|
133
|
-
AXMWorkflowManagementModule,
|
|
134
|
-
AXMContentManagementModule,
|
|
135
|
-
AXMConversationModule,
|
|
136
|
-
AXMPlatformManagementModule,
|
|
137
|
-
AXMDataManagementModule,
|
|
138
|
-
AXMReportManagementModule,
|
|
139
|
-
AXMCalendarManagementModule,
|
|
140
|
-
AXMLocationManagementModule,
|
|
141
|
-
AXMPersonManagementModule,
|
|
142
|
-
AXMContactManagementModule,
|
|
143
|
-
AXMLocaleManagementModule,
|
|
144
|
-
AXMMeetingManagementModule,
|
|
145
|
-
AXMTaskManagementModule,
|
|
146
|
-
AXMIdentifierManagementModule,
|
|
147
|
-
AXMApplicationManagementModule,
|
|
148
|
-
//
|
|
149
|
-
AXCMockModule,
|
|
150
|
-
AXPAuthModule.forRoot({
|
|
151
|
-
strategies: [AXCUserPassStrategyMock],
|
|
152
|
-
}),
|
|
153
|
-
//
|
|
154
|
-
<%= upperCase(name) %>RootModule,
|
|
155
|
-
<%= className %>AuthRootModule,
|
|
156
|
-
)
|
|
157
|
-
],
|
|
158
|
-
};
|