@acorex/platform-generator 21.0.0-next.3 → 21.0.0-next.31

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.
Files changed (34) hide show
  1. package/README.md +67 -6
  2. package/package.json +9 -3
  3. package/src/bin/create-acorex-app.js +116 -0
  4. package/src/bin/standalone-scaffold.js +533 -0
  5. package/src/generators/app-module/files/project.json.template +194 -48
  6. package/src/generators/app-module/files/src/app/app.config.api.ts.template +145 -0
  7. package/src/generators/app-module/files/src/app/app.config.full.ts.template +216 -0
  8. package/src/generators/app-module/files/src/app/app.config.minimal.ts.template +162 -0
  9. package/src/generators/app-module/files/src/app/app.routes.ts.template +1 -1
  10. package/src/generators/app-module/files/src/app/modules/common/default-settings.providers.ts.template +16 -8
  11. package/src/generators/app-module/files/src/app/modules/layout/layout-root.module.ts.template +3 -6
  12. package/src/generators/app-module/files/src/app/modules/root/root.module.ts.template +1 -1
  13. package/src/generators/app-module/files/src/assets/i18n/en-US/activity-log.json +10 -1
  14. package/src/generators/app-module/files/src/assets/i18n/en-US/auth.json +12 -0
  15. package/src/generators/app-module/files/src/assets/i18n/en-US/data-management.json +4 -0
  16. package/src/generators/app-module/files/src/assets/i18n/en-US/general.json +5 -0
  17. package/src/generators/app-module/files/src/assets/i18n/en-US/questionnaire.json +77 -0
  18. package/src/generators/app-module/files/src/assets/i18n/fa-IR/activity-log.json +10 -1
  19. package/src/generators/app-module/files/src/assets/i18n/fa-IR/auth.json +12 -0
  20. package/src/generators/app-module/files/src/assets/i18n/fa-IR/data-management.json +5 -1
  21. package/src/generators/app-module/files/src/assets/i18n/fa-IR/general.json +7 -3
  22. package/src/generators/app-module/files/src/assets/i18n/fa-IR/human-capital-management.json +4 -7
  23. package/src/generators/app-module/files/src/assets/i18n/fa-IR/questionnaire.json +77 -0
  24. package/src/generators/app-module/files/src/environments/environment.dev.ts.template +45 -16
  25. package/src/generators/app-module/files/src/environments/environment.prod.ts.template +33 -0
  26. package/src/generators/app-module/files/src/environments/environment.ts.template +23 -7
  27. package/src/generators/app-module/files/src/main.ts.template +42 -2
  28. package/src/generators/app-module/generator.d.ts +10 -1
  29. package/src/generators/app-module/generator.js +100 -12
  30. package/src/generators/app-module/generator.js.map +1 -1
  31. package/src/generators/app-module/schema.d.ts +28 -0
  32. package/src/generators/app-module/schema.json +74 -5
  33. package/src/generators/standalone-workspace/versions.json +53 -0
  34. 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 would you like to use?"
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
- };