@rxap/plugin-angular 20.0.1-dev.11 → 20.0.1-dev.12

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 (274) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +15 -3
  3. package/src/application.d.ts +6 -0
  4. package/src/application.js +77 -0
  5. package/src/application.js.map +1 -0
  6. package/src/executors/check-ng-package/executor.d.ts +5 -0
  7. package/src/executors/check-ng-package/executor.js +30 -0
  8. package/src/executors/check-ng-package/executor.js.map +1 -0
  9. package/src/executors/config/executor.d.ts +10 -0
  10. package/src/executors/config/executor.js +65 -0
  11. package/src/executors/config/executor.js.map +1 -0
  12. package/src/executors/i18n/executor.d.ts +9 -0
  13. package/src/executors/i18n/executor.js +158 -0
  14. package/src/executors/i18n/executor.js.map +1 -0
  15. package/src/executors/tailwind/executor.d.ts +5 -0
  16. package/src/executors/tailwind/executor.js +31 -0
  17. package/src/executors/tailwind/executor.js.map +1 -0
  18. package/src/generators/convert-to-buildable-library/generator.d.ts +4 -0
  19. package/src/generators/convert-to-buildable-library/generator.js +88 -0
  20. package/src/generators/convert-to-buildable-library/generator.js.map +1 -0
  21. package/src/generators/fix-schematic/generator.d.ts +4 -0
  22. package/src/generators/fix-schematic/generator.js +72 -0
  23. package/src/generators/fix-schematic/generator.js.map +1 -0
  24. package/src/generators/fix-schematic/index.d.ts +2 -0
  25. package/src/generators/fix-schematic/index.js +7 -0
  26. package/src/generators/fix-schematic/index.js.map +1 -0
  27. package/src/generators/init/coerce-nx-json.d.ts +3 -0
  28. package/src/generators/init/coerce-nx-json.js +69 -0
  29. package/src/generators/init/coerce-nx-json.js.map +1 -0
  30. package/src/generators/init/generator.d.ts +4 -0
  31. package/src/generators/init/generator.js +19 -0
  32. package/src/generators/init/generator.js.map +1 -0
  33. package/src/generators/init/index.d.ts +2 -0
  34. package/src/generators/init/index.js +7 -0
  35. package/src/generators/init/index.js.map +1 -0
  36. package/src/generators/init/init-workspace.d.ts +3 -0
  37. package/src/generators/init/init-workspace.js +73 -0
  38. package/src/generators/init/init-workspace.js.map +1 -0
  39. package/src/generators/init-application/assert-main-statements.d.ts +4 -0
  40. package/src/generators/init-application/assert-main-statements.js +76 -0
  41. package/src/generators/init-application/assert-main-statements.js.map +1 -0
  42. package/src/generators/init-application/cleanup.d.ts +3 -0
  43. package/src/generators/init-application/cleanup.js +108 -0
  44. package/src/generators/init-application/cleanup.js.map +1 -0
  45. package/src/generators/init-application/coerce-app-config.d.ts +3 -0
  46. package/src/generators/init-application/coerce-app-config.js +143 -0
  47. package/src/generators/init-application/coerce-app-config.js.map +1 -0
  48. package/src/generators/init-application/coerce-environment-files.d.ts +5 -0
  49. package/src/generators/init-application/coerce-environment-files.js +75 -0
  50. package/src/generators/init-application/coerce-environment-files.js.map +1 -0
  51. package/src/generators/init-application/coerce-localazy-config-file.d.ts +2 -0
  52. package/src/generators/init-application/coerce-localazy-config-file.js +25 -0
  53. package/src/generators/init-application/coerce-localazy-config-file.js.map +1 -0
  54. package/src/generators/init-application/coerce-project.d.ts +4 -0
  55. package/src/generators/init-application/coerce-project.js +56 -0
  56. package/src/generators/init-application/coerce-project.js.map +1 -0
  57. package/src/generators/init-application/generate-authentication.d.ts +3 -0
  58. package/src/generators/init-application/generate-authentication.js +97 -0
  59. package/src/generators/init-application/generate-authentication.js.map +1 -0
  60. package/src/generators/init-application/generate-monolithic.d.ts +3 -0
  61. package/src/generators/init-application/generate-monolithic.js +45 -0
  62. package/src/generators/init-application/generate-monolithic.js.map +1 -0
  63. package/src/generators/init-application/generator.d.ts +4 -0
  64. package/src/generators/init-application/generator.js +257 -0
  65. package/src/generators/init-application/generator.js.map +1 -0
  66. package/src/generators/init-application/index.d.ts +2 -0
  67. package/src/generators/init-application/index.js +7 -0
  68. package/src/generators/init-application/index.js.map +1 -0
  69. package/src/generators/init-application/link-mfe-remote-with-host.d.ts +3 -0
  70. package/src/generators/init-application/link-mfe-remote-with-host.js +54 -0
  71. package/src/generators/init-application/link-mfe-remote-with-host.js.map +1 -0
  72. package/src/generators/init-application/project-i18n-configuration.d.ts +7 -0
  73. package/src/generators/init-application/project-i18n-configuration.js +3 -0
  74. package/src/generators/init-application/project-i18n-configuration.js.map +1 -0
  75. package/src/generators/init-application/update-git-ignore.d.ts +3 -0
  76. package/src/generators/init-application/update-git-ignore.js +16 -0
  77. package/src/generators/init-application/update-git-ignore.js.map +1 -0
  78. package/src/generators/init-application/update-main-file.d.ts +3 -0
  79. package/src/generators/init-application/update-main-file.js +106 -0
  80. package/src/generators/init-application/update-main-file.js.map +1 -0
  81. package/src/generators/init-application/update-project-targets.d.ts +6 -0
  82. package/src/generators/init-application/update-project-targets.js +210 -0
  83. package/src/generators/init-application/update-project-targets.js.map +1 -0
  84. package/src/generators/init-application/update-tags.d.ts +3 -0
  85. package/src/generators/init-application/update-tags.js +25 -0
  86. package/src/generators/init-application/update-tags.js.map +1 -0
  87. package/src/generators/init-application/update-target-defaults.d.ts +3 -0
  88. package/src/generators/init-application/update-target-defaults.js +30 -0
  89. package/src/generators/init-application/update-target-defaults.js.map +1 -0
  90. package/src/generators/init-application/update-ts-config.d.ts +2 -0
  91. package/src/generators/init-application/update-ts-config.js +30 -0
  92. package/src/generators/init-application/update-ts-config.js.map +1 -0
  93. package/src/generators/init-component/generator.d.ts +5 -0
  94. package/src/generators/init-component/generator.js +106 -0
  95. package/src/generators/init-component/generator.js.map +1 -0
  96. package/src/generators/init-component/index.d.ts +2 -0
  97. package/src/generators/init-component/index.js +7 -0
  98. package/src/generators/init-component/index.js.map +1 -0
  99. package/src/generators/init-feature/generator.d.ts +4 -0
  100. package/src/generators/init-feature/generator.js +53 -0
  101. package/src/generators/init-feature/generator.js.map +1 -0
  102. package/src/generators/init-feature/index.d.ts +2 -0
  103. package/src/generators/init-feature/index.js +7 -0
  104. package/src/generators/init-feature/index.js.map +1 -0
  105. package/src/generators/init-feature-library/generator.d.ts +4 -0
  106. package/src/generators/init-feature-library/generator.js +51 -0
  107. package/src/generators/init-feature-library/generator.js.map +1 -0
  108. package/src/generators/init-feature-library/index.d.ts +2 -0
  109. package/src/generators/init-feature-library/index.js +7 -0
  110. package/src/generators/init-feature-library/index.js.map +1 -0
  111. package/src/generators/init-feature-library/init-project.d.ts +3 -0
  112. package/src/generators/init-feature-library/init-project.js +41 -0
  113. package/src/generators/init-feature-library/init-project.js.map +1 -0
  114. package/src/generators/init-feature-library/init-workspace.d.ts +3 -0
  115. package/src/generators/init-feature-library/init-workspace.js +12 -0
  116. package/src/generators/init-feature-library/init-workspace.js.map +1 -0
  117. package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.d.ts +2 -0
  118. package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.js +39 -0
  119. package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.js.map +1 -0
  120. package/src/generators/init-library/cleanup.d.ts +2 -0
  121. package/src/generators/init-library/cleanup.js +16 -0
  122. package/src/generators/init-library/cleanup.js.map +1 -0
  123. package/src/generators/init-library/coerce-projects.d.ts +3 -0
  124. package/src/generators/init-library/coerce-projects.js +92 -0
  125. package/src/generators/init-library/coerce-projects.js.map +1 -0
  126. package/src/generators/init-library/coerce-tailwind-theme-scss.d.ts +2 -0
  127. package/src/generators/init-library/coerce-tailwind-theme-scss.js +22 -0
  128. package/src/generators/init-library/coerce-tailwind-theme-scss.js.map +1 -0
  129. package/src/generators/init-library/extend-angular-specific-eslint.d.ts +2 -0
  130. package/src/generators/init-library/extend-angular-specific-eslint.js +25 -0
  131. package/src/generators/init-library/extend-angular-specific-eslint.js.map +1 -0
  132. package/src/generators/init-library/generator.d.ts +4 -0
  133. package/src/generators/init-library/generator.js +56 -0
  134. package/src/generators/init-library/generator.js.map +1 -0
  135. package/src/generators/init-library/has-index-scss.d.ts +2 -0
  136. package/src/generators/init-library/has-index-scss.js +11 -0
  137. package/src/generators/init-library/has-index-scss.js.map +1 -0
  138. package/src/generators/init-library/has-tailwind-config.d.ts +2 -0
  139. package/src/generators/init-library/has-tailwind-config.js +8 -0
  140. package/src/generators/init-library/has-tailwind-config.js.map +1 -0
  141. package/src/generators/init-library/index.d.ts +2 -0
  142. package/src/generators/init-library/index.js +7 -0
  143. package/src/generators/init-library/index.js.map +1 -0
  144. package/src/generators/init-library/init-project.d.ts +3 -0
  145. package/src/generators/init-library/init-project.js +37 -0
  146. package/src/generators/init-library/init-project.js.map +1 -0
  147. package/src/generators/init-library/init-workspace.d.ts +3 -0
  148. package/src/generators/init-library/init-workspace.js +21 -0
  149. package/src/generators/init-library/init-workspace.js.map +1 -0
  150. package/src/generators/init-library/is-ng-packagr-project.d.ts +2 -0
  151. package/src/generators/init-library/is-ng-packagr-project.js +8 -0
  152. package/src/generators/init-library/is-ng-packagr-project.js.map +1 -0
  153. package/src/generators/init-library/ng-package-json.d.ts +8 -0
  154. package/src/generators/init-library/ng-package-json.js +16 -0
  155. package/src/generators/init-library/ng-package-json.js.map +1 -0
  156. package/src/generators/init-library/set-general-target-defaults.d.ts +2 -0
  157. package/src/generators/init-library/set-general-target-defaults.js +27 -0
  158. package/src/generators/init-library/set-general-target-defaults.js.map +1 -0
  159. package/src/generators/init-library/update-package-json.d.ts +2 -0
  160. package/src/generators/init-library/update-package-json.js +17 -0
  161. package/src/generators/init-library/update-package-json.js.map +1 -0
  162. package/src/generators/init-library/update-project-ng-package-configuration.d.ts +2 -0
  163. package/src/generators/init-library/update-project-ng-package-configuration.js +37 -0
  164. package/src/generators/init-library/update-project-ng-package-configuration.js.map +1 -0
  165. package/src/generators/init-library/update-ts-config.d.ts +2 -0
  166. package/src/generators/init-library/update-ts-config.js +22 -0
  167. package/src/generators/init-library/update-ts-config.js.map +1 -0
  168. package/src/generators/schematic/generator.d.ts +6 -0
  169. package/src/generators/schematic/generator.js +127 -0
  170. package/src/generators/schematic/generator.js.map +1 -0
  171. package/src/generators/schematic/index.d.ts +2 -0
  172. package/src/generators/schematic/index.js +7 -0
  173. package/src/generators/schematic/index.js.map +1 -0
  174. package/src/i18n.d.ts +6 -0
  175. package/src/i18n.js +83 -0
  176. package/src/i18n.js.map +1 -0
  177. package/src/index.js +10 -0
  178. package/src/index.js.map +1 -0
  179. package/src/lib/angular-version.d.ts +1 -0
  180. package/src/lib/angular-version.js +5 -0
  181. package/src/lib/angular-version.js.map +1 -0
  182. package/src/lib/coerce-cypress-component-testing.d.ts +2 -0
  183. package/src/lib/coerce-cypress-component-testing.js +78 -0
  184. package/src/lib/coerce-cypress-component-testing.js.map +1 -0
  185. package/src/lib/coerce-test-setup.d.ts +2 -0
  186. package/src/lib/coerce-test-setup.js +47 -0
  187. package/src/lib/coerce-test-setup.js.map +1 -0
  188. package/src/library.d.ts +6 -0
  189. package/src/library.js +100 -0
  190. package/src/library.js.map +1 -0
  191. package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.d.ts +2 -0
  192. package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.js +29 -0
  193. package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.js.map +1 -0
  194. package/src/migrations/update-19-0-0/migration.d.ts +9 -0
  195. package/src/migrations/update-19-0-0/migration.js +220 -0
  196. package/src/migrations/update-19-0-0/migration.js.map +1 -0
  197. package/.eslintignore +0 -6
  198. package/.eslintrc.json +0 -44
  199. package/LICENSE +0 -621
  200. package/README.md.handlebars +0 -115
  201. package/jest.config.ts +0 -11
  202. package/project.json +0 -68
  203. package/schematics.yaml +0 -6
  204. package/src/application.ts +0 -124
  205. package/src/executors/check-ng-package/executor.ts +0 -33
  206. package/src/executors/config/executor.ts +0 -74
  207. package/src/executors/i18n/executor.ts +0 -198
  208. package/src/executors/tailwind/executor.ts +0 -34
  209. package/src/generators/convert-to-buildable-library/generator.ts +0 -110
  210. package/src/generators/fix-schematic/generator.ts +0 -103
  211. package/src/generators/fix-schematic/index.ts +0 -5
  212. package/src/generators/init/coerce-nx-json.ts +0 -72
  213. package/src/generators/init/generator.ts +0 -28
  214. package/src/generators/init/index.ts +0 -5
  215. package/src/generators/init/init-workspace.ts +0 -84
  216. package/src/generators/init-application/assert-main-statements.ts +0 -74
  217. package/src/generators/init-application/cleanup.ts +0 -127
  218. package/src/generators/init-application/coerce-app-config.ts +0 -147
  219. package/src/generators/init-application/coerce-environment-files.ts +0 -105
  220. package/src/generators/init-application/coerce-localazy-config-file.ts +0 -26
  221. package/src/generators/init-application/coerce-project.ts +0 -128
  222. package/src/generators/init-application/generate-authentication.ts +0 -122
  223. package/src/generators/init-application/generate-monolithic.spec.ts +0 -45
  224. package/src/generators/init-application/generate-monolithic.ts +0 -57
  225. package/src/generators/init-application/generator.ts +0 -356
  226. package/src/generators/init-application/index.ts +0 -5
  227. package/src/generators/init-application/link-mfe-remote-with-host.ts +0 -60
  228. package/src/generators/init-application/project-i18n-configuration.ts +0 -4
  229. package/src/generators/init-application/update-git-ignore.ts +0 -22
  230. package/src/generators/init-application/update-main-file.ts +0 -118
  231. package/src/generators/init-application/update-project-targets.ts +0 -229
  232. package/src/generators/init-application/update-tags.ts +0 -30
  233. package/src/generators/init-application/update-target-defaults.ts +0 -43
  234. package/src/generators/init-application/update-ts-config.ts +0 -31
  235. package/src/generators/init-component/generator.ts +0 -147
  236. package/src/generators/init-component/index.ts +0 -5
  237. package/src/generators/init-feature/generator.ts +0 -77
  238. package/src/generators/init-feature/index.ts +0 -5
  239. package/src/generators/init-feature-library/generator.ts +0 -82
  240. package/src/generators/init-feature-library/index.ts +0 -5
  241. package/src/generators/init-feature-library/init-project.ts +0 -53
  242. package/src/generators/init-feature-library/init-workspace.ts +0 -10
  243. package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.ts +0 -46
  244. package/src/generators/init-library/cleanup.ts +0 -22
  245. package/src/generators/init-library/coerce-projects.ts +0 -118
  246. package/src/generators/init-library/coerce-tailwind-theme-scss.ts +0 -27
  247. package/src/generators/init-library/extend-angular-specific-eslint.ts +0 -37
  248. package/src/generators/init-library/generator.ts +0 -87
  249. package/src/generators/init-library/has-index-scss.ts +0 -14
  250. package/src/generators/init-library/has-tailwind-config.ts +0 -9
  251. package/src/generators/init-library/index.ts +0 -5
  252. package/src/generators/init-library/init-project.ts +0 -46
  253. package/src/generators/init-library/init-workspace.ts +0 -26
  254. package/src/generators/init-library/is-ng-packagr-project.ts +0 -9
  255. package/src/generators/init-library/ng-package-json.ts +0 -23
  256. package/src/generators/init-library/set-general-target-defaults.ts +0 -36
  257. package/src/generators/init-library/update-package-json.ts +0 -26
  258. package/src/generators/init-library/update-project-ng-package-configuration.ts +0 -51
  259. package/src/generators/init-library/update-ts-config.ts +0 -24
  260. package/src/generators/schematic/generator.ts +0 -179
  261. package/src/generators/schematic/index.ts +0 -5
  262. package/src/i18n.ts +0 -130
  263. package/src/lib/angular-version.ts +0 -1
  264. package/src/lib/coerce-cypress-component-testing.ts +0 -113
  265. package/src/lib/coerce-test-setup.ts +0 -60
  266. package/src/library.ts +0 -153
  267. package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.ts +0 -32
  268. package/src/migrations/update-19-0-0/migration.ts +0 -283
  269. package/src/test-setup.ts +0 -24
  270. package/tsconfig.json +0 -20
  271. package/tsconfig.lib.json +0 -10
  272. package/tsconfig.spec.json +0 -15
  273. package/tsconfig.typedoc.json +0 -5
  274. /package/src/{index.ts → index.d.ts} +0 -0
@@ -1,356 +0,0 @@
1
- import {
2
- formatFiles,
3
- generateFiles,
4
- getProjects,
5
- ProjectConfiguration,
6
- Tree,
7
- updateProjectConfiguration,
8
- } from '@nx/devkit';
9
- import {
10
- ApplicationInitProject,
11
- ApplicationInitWorkspace,
12
- } from '@rxap/plugin-application';
13
- import {
14
- classify,
15
- CoerceArrayItems,
16
- dasherize,
17
- DeleteProperties,
18
- } from '@rxap/utilities';
19
- import {
20
- AddPackageJsonDependency,
21
- AddPackageJsonDevDependency,
22
- CoerceFile,
23
- CoerceFilesStructure,
24
- GenerateSerializedSchematicFile,
25
- GetProjectPrefix,
26
- GetProjectRoot,
27
- GetProjectSourceRoot,
28
- SkipNonAngularProject,
29
- SkipNonApplicationProject,
30
- } from '@rxap/workspace-utilities';
31
- import {
32
- join,
33
- relative,
34
- } from 'path';
35
- import { ANGULAR_VERSION } from '../../lib/angular-version';
36
- import { coerceTestSetup } from '../../lib/coerce-test-setup';
37
- import { cleanup } from './cleanup';
38
- import { coerceAppConfig } from './coerce-app-config';
39
- import { coerceEnvironmentFiles } from './coerce-environment-files';
40
- import { coerceLocalazyConfigFile } from './coerce-localazy-config-file';
41
- import { CoerceProjects } from './coerce-project';
42
- import { generateAuthentication } from './generate-authentication';
43
- import { generateMonolithic } from './generate-monolithic';
44
- import { linkMfeRemoteWithHost } from './link-mfe-remote-with-host';
45
- import { InitApplicationGeneratorSchema } from './schema';
46
- import { updateGitIgnore } from './update-git-ignore';
47
- import { updateMainFile } from './update-main-file';
48
- import { updateProjectTargets } from './update-project-targets';
49
- import { updateTags } from './update-tags';
50
- import { updateTargetDefaults } from './update-target-defaults';
51
- import { updateTsConfig } from './update-ts-config';
52
-
53
- function skipProject(tree: Tree, options: InitApplicationGeneratorSchema, project: ProjectConfiguration, projectName: string) {
54
-
55
- if (options.project === projectName) {
56
- return false;
57
- }
58
-
59
- if (SkipNonAngularProject(tree, options, project, projectName)) {
60
- return true;
61
- }
62
-
63
- if (SkipNonApplicationProject(tree, options, project, projectName)) {
64
- return true;
65
- }
66
-
67
- return false;
68
-
69
- }
70
-
71
- export async function initApplicationGenerator(
72
- tree: Tree,
73
- options: InitApplicationGeneratorSchema,
74
- ) {
75
- if (options.authentik) {
76
- options.oauth = true;
77
- }
78
- if (options.monolithic) {
79
- options.openApi = true;
80
- }
81
- if (options.i18n) {
82
- options.languages ??= ['en'];
83
- }
84
- if (options.project) {
85
- options.projects ??= [];
86
- CoerceArrayItems(options.projects, [options.project]);
87
- }
88
- if (options.host) {
89
- options.moduleFederation = 'remote';
90
- }
91
- if (options.moduleFederation === 'remote') {
92
- options.authentication = false;
93
- options.oauth = false;
94
- options.authentik = false;
95
- options.serviceWorker = false;
96
- options.sentry = false;
97
- options.monolithic = false;
98
- }
99
- console.log('angular application init generator:', options);
100
-
101
- await ApplicationInitWorkspace(tree, options);
102
-
103
- await AddPackageJsonDependency(tree, '@mdi/angular-material', 'latest', { soft: true });
104
- await AddPackageJsonDependency(tree, '@rxap/ngx-bootstrap', 'latest', { soft: true });
105
- await AddPackageJsonDependency(tree, 'ngx-logger', 'latest', { soft: true });
106
- await AddPackageJsonDependency(tree, '@rxap/environment', 'latest', { soft: true });
107
- await AddPackageJsonDependency(tree, '@rxap/ngx-status-check', 'latest', { soft: true });
108
- await AddPackageJsonDependency(tree, '@rxap/ngx-error', 'latest', { soft: true });
109
- await AddPackageJsonDependency(tree, '@rxap/ngx-localize', 'latest', { soft: true });
110
- await AddPackageJsonDependency(tree, '@rxap/ngx-changelog', 'latest', { soft: true });
111
- await AddPackageJsonDependency(tree, 'ngx-markdown', 'latest', { soft: true });
112
- await AddPackageJsonDependency(tree, 'marked', '4.3.0', { soft: true });
113
- await AddPackageJsonDependency(tree, '@rxap/config', 'latest', { soft: true });
114
- await AddPackageJsonDependency(tree, '@rxap/directives', 'latest', { soft: true });
115
- await AddPackageJsonDependency(tree, '@rxap/components', 'latest', { soft: true });
116
- await AddPackageJsonDependency(tree, '@rxap/rxjs', 'latest', { soft: true });
117
- await AddPackageJsonDependency(tree, '@rxap/data-grid', 'latest', { soft: true });
118
- await AddPackageJsonDependency(tree, '@rxap/forms', 'latest', { soft: true });
119
- await AddPackageJsonDependency(tree, '@rxap/validator', 'latest', { soft: true });
120
- await AddPackageJsonDependency(tree, '@rxap/pipes', 'latest', { soft: true });
121
- await AddPackageJsonDependency(tree, '@rxap/mixin', 'latest', { soft: true });
122
- await AddPackageJsonDependency(tree, '@rxap/reflect-metadata', 'latest', { soft: true });
123
- await AddPackageJsonDevDependency(tree, '@rxap/browser-tailwind', 'latest', { soft: true, withoutNonRxapPeerDependencies: false });
124
- // must always be added as some rxap components use the i18n tag
125
- await AddPackageJsonDependency(tree, '@angular/localize', ANGULAR_VERSION, { soft: true });
126
- // must always be added as some rxap components use interfaces from the package
127
- // TODO : refactor the @rxap/ngx-error and @rxap/ngx-status-check to be independent from the @sentry/angular package
128
- await AddPackageJsonDependency(tree, '@sentry/angular', 'latest', { soft: true });
129
-
130
- if (options.oauth) {
131
- await AddPackageJsonDependency(tree, 'angular-oauth2-oidc', 'latest', { soft: true });
132
- await AddPackageJsonDependency(tree, 'angular-oauth2-oidc-jwks', 'latest', { soft: true });
133
- await AddPackageJsonDependency(tree, '@rxap/oauth', 'latest', { soft: true });
134
- }
135
-
136
- if (options.material) {
137
- await AddPackageJsonDependency(tree, '@angular/material', ANGULAR_VERSION, { soft: true });
138
- await AddPackageJsonDependency(tree, '@angular/cdk', ANGULAR_VERSION, { soft: true });
139
- }
140
-
141
- if (options.serviceWorker) {
142
- await AddPackageJsonDependency(tree, '@rxap/service-worker', 'latest', { soft: true });
143
- await AddPackageJsonDependency(tree, '@rxap/life-cycle', 'latest', { soft: true });
144
- await AddPackageJsonDependency(tree, '@angular/service-worker', ANGULAR_VERSION, { soft: true });
145
- }
146
-
147
- if (options.monolithic) {
148
- await AddPackageJsonDependency(tree, '@rxap/layout', 'latest', { soft: true });
149
- await AddPackageJsonDependency(tree, '@rxap/ngx-theme', 'latest', { soft: true });
150
- await AddPackageJsonDependency(tree, '@ctrl/tinycolor', 'latest', { soft: true });
151
- await AddPackageJsonDependency(tree, '@rxap/ngx-pub-sub', 'latest', { soft: true });
152
- await AddPackageJsonDependency(tree, '@rxap/services', 'latest', { soft: true });
153
- await AddPackageJsonDependency(tree, '@rxap/data-source', 'latest', { soft: true });
154
- await AddPackageJsonDependency(tree, '@rxap/pattern', 'latest', { soft: true });
155
- await AddPackageJsonDependency(tree, '@rxap/definition', 'latest', { soft: true });
156
- await AddPackageJsonDependency(tree, '@rxap/authentication', 'latest', { soft: true });
157
- await AddPackageJsonDependency(tree, '@rxap/icon', 'latest', { soft: true });
158
- await AddPackageJsonDependency(tree, '@rxap/material-directives', 'latest', { soft: true });
159
- await AddPackageJsonDependency(tree, '@rxap/browser-utilities', 'latest', { soft: true });
160
- await AddPackageJsonDependency(tree, '@rxap/authorization', 'latest', { soft: true });
161
- await AddPackageJsonDependency(tree, '@rxap/ngx-user', 'latest', { soft: true });
162
- }
163
-
164
- if (options.openApi) {
165
- await AddPackageJsonDependency(tree, '@rxap/open-api', 'latest', { soft: true });
166
- await AddPackageJsonDependency(tree, '@rxap/remote-method', 'latest', { soft: true });
167
- await AddPackageJsonDependency(tree, '@rxap/definition', 'latest', { soft: true });
168
- }
169
-
170
- if (options.sentry) {
171
- await AddPackageJsonDependency(tree, '@rxap/ngx-sentry', 'latest', { soft: true });
172
- }
173
-
174
- if (options.i18n) {
175
- await AddPackageJsonDependency(tree, '@rxap/ngx-localize', 'latest', { soft: true });
176
- await AddPackageJsonDependency(tree, '@rxap/ngx-user', 'latest', { soft: true });
177
- }
178
-
179
- if (options.localazy) {
180
- await AddPackageJsonDevDependency(tree, '@localazy/cli', 'latest', { soft: true });
181
- await AddPackageJsonDevDependency(tree, '@rxap/plugin-localazy', 'latest', { soft: true });
182
- }
183
-
184
- if (options.deploy === 'web3-storage') {
185
- await AddPackageJsonDevDependency(tree, '@rxap/plugin-web3-storage', 'latest', { soft: true });
186
- }
187
-
188
- if (options.i18n && options.deploy === 'web3-storage') {
189
- CoerceFilesStructure(tree, {
190
- srcFolder: join(__dirname, 'files', 'i18n'),
191
- target: 'shared/angular',
192
- overwrite: options.overwrite,
193
- });
194
- }
195
-
196
- CoerceFilesStructure(tree, {
197
- srcFolder: join(__dirname, 'files', 'shared'),
198
- target: 'shared/angular',
199
- overwrite: options.overwrite,
200
- });
201
-
202
- CoerceFile(tree, 'shared/angular/assets/custom.svg', '<svg></svg>');
203
-
204
- if (options.i18n && !options.skipDocker) {
205
- let dockerfileContent = tree.read('shared/angular/Dockerfile', 'utf-8')!;
206
- dockerfileContent = dockerfileContent.replace('registry.gitlab.com/rxap/docker/nginx:', 'registry.gitlab.com/rxap/docker/i18n-nginx:');
207
- CoerceFile(tree, 'shared/angular/Dockerfile', dockerfileContent, true);
208
- }
209
-
210
- CoerceFilesStructure(tree, {
211
- srcFolder: join(__dirname, 'files', 'styles'),
212
- target: 'shared/angular/styles',
213
- overwrite: options.overwrite,
214
- });
215
-
216
- if (options.oauth) {
217
- CoerceFilesStructure(tree, {
218
- srcFolder: join(__dirname, 'files', 'oauth'),
219
- target: 'shared/angular/assets',
220
- overwrite: options.overwrite,
221
- });
222
- }
223
-
224
- updateTargetDefaults(tree, options);
225
-
226
- await CoerceProjects(tree, options);
227
-
228
- if (!options.skipProjects) {
229
- for (const [ projectName, project ] of getProjects(tree).entries()) {
230
-
231
- if (skipProject(tree, options, project, projectName)) {
232
- continue;
233
- }
234
-
235
- GenerateSerializedSchematicFile(
236
- tree,
237
- GetProjectRoot(tree, projectName),
238
- '@rxap/plugin-angular',
239
- 'init-application',
240
- DeleteProperties(options, [ 'generateMain' ]),
241
- );
242
-
243
- console.log(`init angular application project: ${ projectName }`);
244
-
245
- const sourceRoot = GetProjectSourceRoot(tree, projectName);
246
-
247
- ApplicationInitProject(tree, projectName, project, options);
248
-
249
- if (options.overwrite || !tree.read(join(sourceRoot, 'styles.scss'), 'utf-8')?.match(/@use ".+\/shared\/angular\/styles";/)) {
250
- generateFiles(tree, join(__dirname, 'files', 'root'), sourceRoot, {
251
- serviceWorker: false,
252
- ...options,
253
- relativePathToWorkspaceRoot: relative(sourceRoot, ''),
254
- name: projectName.replace(/^user-interface-/, ''),
255
- classify,
256
- prefix: GetProjectPrefix(tree, projectName, 'rxap'),
257
- });
258
- }
259
-
260
- if (options.overwrite) {
261
- const publicDirectory = join(sourceRoot, 'public');
262
- const usePublicDirectory = tree.exists(publicDirectory);
263
- const baseDirectory = usePublicDirectory ? publicDirectory : sourceRoot;
264
- generateFiles(tree, join(__dirname, 'files', 'public'), baseDirectory, {});
265
- }
266
-
267
- updateProjectTargets(tree, projectName, project, options);
268
- updateTags(project, options);
269
- updateGitIgnore(project, tree, options);
270
- updateTsConfig(tree, projectName);
271
-
272
- if (options.cleanup || options.coerce) {
273
- cleanup(tree, projectName, options);
274
- }
275
-
276
- coerceEnvironmentFiles(
277
- tree,
278
- {
279
- ...options,
280
- project: projectName,
281
- },
282
- );
283
-
284
- coerceAppConfig(tree, projectName, options);
285
-
286
- if (options.generateMain) {
287
- updateMainFile(tree, projectName, project, options);
288
- }
289
- if (options.localazy) {
290
- coerceLocalazyConfigFile(tree, project);
291
- }
292
- if (options.authentication) {
293
- await generateAuthentication(tree, projectName, project, options);
294
- }
295
- if (options.monolithic) {
296
- generateMonolithic(tree, projectName, project, options);
297
- }
298
- if (options.moduleFederation === 'remote') {
299
- if (options.overwrite) {
300
- generateFiles(tree, join(__dirname, 'files', 'mfe-remote'), sourceRoot, {
301
- ...options,
302
- relativePathToWorkspaceRoot: relative(sourceRoot, ''),
303
- name: projectName
304
- .replace(/^user-interface-/, '')
305
- .replace(/^remote-/, '')
306
- .replace(/^feature-/, ''),
307
- classify,
308
- dasherize,
309
- prefix: GetProjectPrefix(tree, projectName, 'rxap'),
310
- });
311
- }
312
- if (options.host) {
313
- linkMfeRemoteWithHost(tree, projectName, options);
314
- }
315
- }
316
- if (options.moduleFederation) {
317
- CoerceFilesStructure(tree, {
318
- srcFolder: join(__dirname, 'files', 'mfe'),
319
- target: '',
320
- overwrite: options.overwrite,
321
- });
322
- }
323
- if (options.serviceWorker) {
324
- const publicDirectory = join(sourceRoot, 'public');
325
- const usePublicDirectory = tree.exists(publicDirectory);
326
- const baseDirectory = usePublicDirectory ? publicDirectory : sourceRoot;
327
- if (options.overwrite || !tree.exists(join(baseDirectory, 'manifest.webmanifest'))) {
328
- generateFiles(tree, join(__dirname, 'files', 'service-worker'), baseDirectory, {
329
- ...options,
330
- name: projectName.replace(/^user-interface-/, ''),
331
- classify,
332
- dasherize,
333
- });
334
- }
335
- }
336
-
337
- CoerceFilesStructure(tree, {
338
- srcFolder: join(__dirname, 'files', 'assets'),
339
- target: join(sourceRoot, 'assets'),
340
- overwrite: options.overwrite,
341
- });
342
- coerceTestSetup(tree, projectName);
343
-
344
- // apply changes to the project configuration
345
- updateProjectConfiguration(tree, projectName, project);
346
-
347
- }
348
- }
349
-
350
- if (!options.skipFormat) {
351
- await formatFiles(tree);
352
- }
353
-
354
- }
355
-
356
- export default initApplicationGenerator;
@@ -1,5 +0,0 @@
1
- import { convertNxGenerator } from '@nx/devkit';
2
- import generator from './generator';
3
-
4
- const schematic = convertNxGenerator(generator);
5
- export default schematic;
@@ -1,60 +0,0 @@
1
- import { Tree } from '@nx/devkit';
2
- import {
3
- CoerceAppRoutes,
4
- CoerceLayoutRoutes,
5
- } from '@rxap/ts-morph';
6
- import { TsMorphAngularProjectTransform } from '@rxap/workspace-ts-morph';
7
- import { GetProjectSourceRoot } from '@rxap/workspace-utilities';
8
- import { join } from 'path';
9
- import { InitApplicationGeneratorSchema } from './schema';
10
-
11
- export function linkMfeRemoteWithHost(tree: Tree, projectName: string, options: InitApplicationGeneratorSchema) {
12
-
13
- if (!options.host) {
14
- throw new Error('The host project must be defined');
15
- }
16
-
17
- const hostSourceRoot = GetProjectSourceRoot(tree, options.host);
18
- const isHostMonolithic = tree.exists(join(hostSourceRoot, 'app/layout.routes.ts'));
19
-
20
- const path = projectName
21
- .replace(/^user-interface-/, '')
22
- .replace(/^remote-/, '')
23
- .replace(/^feature-/, '');
24
-
25
- if (isHostMonolithic && !options.standaloneImport) {
26
- TsMorphAngularProjectTransform(tree, {
27
- project: options.host,
28
- }, (project, [ layoutSourceFile ]) => {
29
- CoerceLayoutRoutes(layoutSourceFile, {
30
- itemList: [
31
- {
32
- route: {
33
- path,
34
- loadRemoteModule: projectName,
35
- },
36
- component: 'MinimalLayoutComponent',
37
- },
38
- ],
39
- withStatusCheckGuard: options.apiStatusCheck,
40
- withNavigation: true,
41
- });
42
- }, [ 'app/layout.routes.ts' ]);
43
- } else {
44
- TsMorphAngularProjectTransform(tree, {
45
- project: options.host,
46
- }, (project, [ appRoutes ]) => {
47
- CoerceAppRoutes(appRoutes, {
48
- itemList: [
49
- {
50
- route: {
51
- path,
52
- loadRemoteModule: projectName,
53
- },
54
- },
55
- ],
56
- });
57
- }, [ 'app/app.routes.ts' ]);
58
- }
59
-
60
- }
@@ -1,4 +0,0 @@
1
- export interface ProjectI18nConfiguration {
2
- sourceLocale?: string;
3
- locales?: Record<string, { translation: string, baseHref: string }>;
4
- }
@@ -1,22 +0,0 @@
1
- import {
2
- ProjectConfiguration,
3
- Tree,
4
- } from '@nx/devkit';
5
- import { CoerceIgnorePattern } from '@rxap/workspace-utilities';
6
- import { join } from 'path';
7
- import { InitApplicationGeneratorSchema } from './schema';
8
-
9
- export function updateGitIgnore(project: ProjectConfiguration, tree: Tree, options: InitApplicationGeneratorSchema) {
10
-
11
- if (options.i18n) {
12
-
13
- if (!project.sourceRoot) {
14
- throw new Error(`The project ${ project.name } has no source root`);
15
- }
16
-
17
- CoerceIgnorePattern(tree, join(project.sourceRoot, '.gitignore'), [
18
- '/i18n',
19
- ]);
20
- }
21
-
22
- }
@@ -1,118 +0,0 @@
1
- import {
2
- ProjectConfiguration,
3
- Tree,
4
- } from '@nx/devkit';
5
- import { CoerceImports } from '@rxap/ts-morph';
6
- import { TsMorphAngularProjectTransform } from '@rxap/workspace-ts-morph';
7
- import { Statement } from 'ts-morph';
8
- import {
9
- assertMainStatements,
10
- MAIN_BOOTSTRAP_STATEMENT,
11
- } from './assert-main-statements';
12
- import { InitApplicationGeneratorSchema } from './schema';
13
-
14
- export function updateMainFile(
15
- tree: Tree, projectName: string, project: ProjectConfiguration, options: InitApplicationGeneratorSchema) {
16
- TsMorphAngularProjectTransform(tree, {
17
- project: projectName,
18
- // directory: '..' // to move from the apps/demo/src/app folder into the apps/demo/src folder
19
- }, (project, [ sourceFile, mainSourceFile ]) => {
20
-
21
- assertMainStatements(sourceFile, options);
22
-
23
- const importDeclarations = [];
24
- const statements: string[] = [];
25
-
26
- if (options.serviceWorker) {
27
- importDeclarations.push({
28
- moduleSpecifier: '@rxap/service-worker',
29
- namedImports: [ 'UnregisterServiceWorker' ],
30
- });
31
- statements.push('application.before(() => UnregisterServiceWorker(environment));');
32
- }
33
-
34
- if (options.openApi) {
35
- importDeclarations.push({
36
- moduleSpecifier: '@rxap/open-api',
37
- namedImports: [ 'OpenApiInit' ],
38
- });
39
- if (options.openApiLegacy) {
40
- statements.push('application.before(() => OpenApiInit(environment, { load: true }));');
41
- } else {
42
- statements.push('application.before(() => OpenApiInit(environment));');
43
- }
44
- }
45
-
46
- if (options.sentry) {
47
- importDeclarations.push({
48
- moduleSpecifier: '@rxap/ngx-sentry',
49
- namedImports: [ 'SentryInit' ],
50
- });
51
- statements.push('application.before(() => SentryInit(environment));');
52
- }
53
-
54
- CoerceImports(sourceFile, importDeclarations);
55
-
56
- for (let i = 0; i < statements.length; i++) {
57
- const statement = statements[i];
58
- const lastStatement = i > 0 ? statements[i - 1] : null;
59
- const nestStatement = i < statements.length - 1 ? statements[i + 1] : null;
60
- const existingStatements: string[] = sourceFile.getStatements().map((s: Statement) => s.getText()) ?? [];
61
- if (!existingStatements.includes(statement)) {
62
- let index: number;
63
- if (lastStatement) {
64
- index = existingStatements.findIndex(s => s.includes(lastStatement)) + 1;
65
- } else if (nestStatement) {
66
- index = existingStatements.findIndex(s => s.includes(nestStatement));
67
- } else {
68
- index = existingStatements.findIndex(s => s.includes(MAIN_BOOTSTRAP_STATEMENT));
69
- }
70
- console.log(`insert statement: ${ statement } at index ${ index }`);
71
- sourceFile.insertStatements(index, statement);
72
- }
73
- }
74
-
75
- if (options.moduleFederation === 'host') {
76
- mainSourceFile.set({
77
- statements: [
78
- `import {
79
- setRemoteDefinitions,
80
- setRemoteUrlResolver
81
- } from '@nx/angular/mf';
82
- import type { Environment } from '@rxap/environment';
83
- import { environment } from './environments/environment';
84
-
85
- export async function SetupDynamicMfe(environment: Environment) {
86
-
87
- const manifest = environment.moduleFederation?.manifest;
88
-
89
- if (!manifest) {
90
- const release = environment.tag || environment.branch || 'latest';
91
- setRemoteUrlResolver((remoteName: string) => \`\${ location.origin }/__mfe/\${ release }/\${ remoteName }\`);
92
- } else {
93
-
94
- let definitions: Record<string, string>;
95
-
96
- if (typeof manifest === 'object') {
97
- definitions = manifest;
98
- } else {
99
- definitions = await fetch(manifest).then((res) => res.json());
100
- }
101
-
102
- setRemoteDefinitions(definitions);
103
-
104
- }
105
-
106
- }
107
-
108
- SetupDynamicMfe(environment).then(() => import('./bootstrap').catch((err) => console.error(err)));
109
- `,
110
- ],
111
- });
112
- }
113
-
114
- }, [
115
- options.moduleFederation ? 'bootstrap.ts' : 'main.ts',
116
- 'main.ts',
117
- ]);
118
- }