@nx/angular 0.0.0-pr-30715-a5f5e3b → 0.0.0-pr-31313-387cdca

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 (240) hide show
  1. package/fesm2022/nx-angular-mf.mjs.map +1 -1
  2. package/fesm2022/nx-angular.mjs.map +1 -1
  3. package/index.d.ts +1 -2
  4. package/mf/index.d.ts +1 -71
  5. package/mf/mf.d.ts +69 -0
  6. package/migrations.json +0 -98
  7. package/package.json +16 -25
  8. package/plugins/component-testing.js +3 -8
  9. package/src/builders/dev-server/dev-server.impl.js +7 -4
  10. package/src/builders/dev-server/lib/normalize-options.js +6 -0
  11. package/src/builders/dev-server/lib/validate-options.js +4 -0
  12. package/src/builders/dev-server/schema.d.ts +15 -3
  13. package/src/builders/dev-server/schema.json +9 -3
  14. package/src/builders/webpack-browser/webpack-browser.impl.js +0 -2
  15. package/src/builders/webpack-server/webpack-server.impl.d.ts +1 -3
  16. package/src/builders/webpack-server/webpack-server.impl.js +0 -2
  17. package/src/executors/application/application.impl.d.ts +2 -2
  18. package/src/executors/application/application.impl.js +6 -11
  19. package/src/executors/application/schema.d.ts +1 -1
  20. package/src/executors/application/schema.json +10 -21
  21. package/src/executors/application/utils/normalize-options.js +1 -8
  22. package/src/executors/application/utils/validate-options.js +40 -10
  23. package/src/executors/extract-i18n/extract-i18n.impl.js +14 -6
  24. package/src/executors/extract-i18n/schema.d.ts +6 -1
  25. package/src/executors/module-federation-dev-server/lib/normalize-options.js +7 -1
  26. package/src/executors/module-federation-dev-server/schema.d.ts +15 -3
  27. package/src/executors/module-federation-dev-server/schema.json +15 -2
  28. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +8 -10
  29. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.d.ts +3 -6
  30. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.js +8 -46
  31. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.d.ts +1 -1
  32. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.js +3 -3
  33. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.d.ts +2 -2
  34. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.js +6 -22
  35. package/src/executors/ng-packagr-lite/schema.json +3 -2
  36. package/src/executors/package/package.impl.js +5 -1
  37. package/src/executors/package/schema.d.ts +1 -3
  38. package/src/executors/package/schema.json +3 -2
  39. package/src/executors/utilities/esbuild-extensions.d.ts +1 -2
  40. package/src/executors/utilities/ng-packagr/package-imports.d.ts +1 -3
  41. package/src/executors/utilities/ng-packagr/package-imports.js +2 -2
  42. package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.d.ts +24 -1
  43. package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.js +105 -12
  44. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +8 -4
  45. package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts +1 -1
  46. package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.js +11 -18
  47. package/src/generators/add-linting/add-linting.js +0 -8
  48. package/src/generators/application/application.js +1 -21
  49. package/src/generators/application/files/base-pre18/src/favicon.ico +0 -0
  50. package/src/generators/application/files/ng-module/src/app/app.component.spec.ts__tpl__ +29 -0
  51. package/src/generators/application/files/ng-module/src/app/{app__componentFileSuffix__.ts__tpl__ → app.component.ts__tpl__} +3 -3
  52. package/src/generators/application/files/ng-module/src/app/app.module.ts__tpl__ +17 -0
  53. package/src/generators/application/files/ng-module/src/main.ts__tpl__ +3 -11
  54. package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  55. package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  56. package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  57. package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  58. package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  59. package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/{nx-welcome__componentFileSuffix__.ts__tpl__ → nx-welcome.component.ts__tpl__} +1 -1
  60. package/src/generators/application/files/standalone-components/src/app/app.component.__style__ +0 -0
  61. package/src/generators/application/files/standalone-components/src/app/app.component.spec.ts__tpl__ +28 -0
  62. package/src/generators/application/files/standalone-components/src/app/{app__componentFileSuffix__.ts__tpl__ → app.component.ts__tpl__} +5 -5
  63. package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +2 -6
  64. package/src/generators/application/files/standalone-components/src/main.ts__tpl__ +2 -2
  65. package/src/generators/application/lib/create-files.d.ts +1 -1
  66. package/src/generators/application/lib/create-files.js +14 -15
  67. package/src/generators/application/lib/create-project.d.ts +1 -1
  68. package/src/generators/application/lib/create-project.js +26 -119
  69. package/src/generators/application/lib/enable-strict-type-checking.js +0 -3
  70. package/src/generators/application/schema.json +1 -1
  71. package/src/generators/component/component.js +2 -13
  72. package/src/generators/component/files/__fileName__.ts__tpl__ +1 -1
  73. package/src/generators/component/lib/component.js +1 -11
  74. package/src/generators/component/lib/module.d.ts +2 -7
  75. package/src/generators/component/lib/module.js +5 -7
  76. package/src/generators/component/lib/normalize-options.js +3 -7
  77. package/src/generators/component/schema.d.ts +0 -1
  78. package/src/generators/component/schema.json +2 -6
  79. package/src/generators/convert-to-application-executor/convert-to-application-executor.js +22 -19
  80. package/src/generators/convert-to-rspack/convert-to-rspack.js +2 -6
  81. package/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +1 -1
  82. package/src/generators/directive/directive.js +1 -1
  83. package/src/generators/directive/lib/normalize-options.js +2 -7
  84. package/src/generators/directive/schema.d.ts +0 -1
  85. package/src/generators/directive/schema.json +2 -10
  86. package/src/generators/host/host.js +21 -1
  87. package/src/generators/host/schema.d.ts +1 -0
  88. package/src/generators/host/schema.json +7 -1
  89. package/src/generators/init/init.js +1 -1
  90. package/src/generators/library/files/ng-module/src/index.ts__tpl__ +1 -1
  91. package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +2 -2
  92. package/src/generators/library/lib/add-standalone-component.js +0 -1
  93. package/src/generators/library/lib/create-files.js +1 -10
  94. package/src/generators/library/lib/enable-strict-type-checking.d.ts +1 -1
  95. package/src/generators/library/lib/enable-strict-type-checking.js +0 -3
  96. package/src/generators/library/lib/normalize-options.d.ts +3 -3
  97. package/src/generators/library/lib/normalize-options.js +1 -6
  98. package/src/generators/library/lib/normalized-schema.d.ts +0 -2
  99. package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -1
  100. package/src/generators/library-secondary-entry-point/lib/add-files.js +1 -2
  101. package/src/generators/library-secondary-entry-point/lib/normalize-options.d.ts +2 -2
  102. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +0 -3
  103. package/src/generators/library-secondary-entry-point/schema.d.ts +0 -1
  104. package/src/generators/move/lib/update-module-name.js +10 -17
  105. package/src/generators/move/lib/update-secondary-entry-points.js +3 -0
  106. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +1 -1
  107. package/src/generators/ng-add/migrators/projects/app.migrator.js +8 -43
  108. package/src/generators/ngrx/schema.json +3 -3
  109. package/src/generators/ngrx-root-store/lib/normalize-options.js +2 -9
  110. package/src/generators/pipe/lib/normalize-options.js +0 -4
  111. package/src/generators/pipe/pipe.js +1 -1
  112. package/src/generators/pipe/schema.d.ts +0 -1
  113. package/src/generators/pipe/schema.json +2 -11
  114. package/src/generators/remote/files/standalone/src/bootstrap.server.ts__tmpl__ +4 -4
  115. package/src/generators/remote/lib/update-ssr-setup.js +0 -5
  116. package/src/generators/remote/remote.js +23 -0
  117. package/src/generators/remote/schema.d.ts +1 -0
  118. package/src/generators/remote/schema.json +7 -1
  119. package/src/generators/scam/lib/convert-component-to-scam.js +3 -1
  120. package/src/generators/scam/lib/normalize-options.js +3 -11
  121. package/src/generators/scam/schema.d.ts +0 -1
  122. package/src/generators/scam/schema.json +2 -1
  123. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +3 -1
  124. package/src/generators/scam-directive/lib/normalize-options.js +2 -11
  125. package/src/generators/scam-directive/schema.d.ts +0 -2
  126. package/src/generators/scam-directive/schema.json +2 -10
  127. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +3 -1
  128. package/src/generators/scam-pipe/lib/normalize-options.js +0 -8
  129. package/src/generators/scam-pipe/schema.d.ts +0 -2
  130. package/src/generators/scam-pipe/schema.json +0 -5
  131. package/src/generators/setup-mf/files/entry-module-files/{entry__componentFileSuffix__.ts__tmpl__ → entry.component.ts__tmpl__} +1 -1
  132. package/src/generators/setup-mf/files/entry-module-files/{__entryModuleFileName__.ts__tmpl__ → entry.module.ts__tmpl__} +4 -4
  133. package/src/generators/setup-mf/files/entry-module-files/entry.routes.ts__tmpl__ +2 -2
  134. package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +47 -0
  135. package/src/generators/setup-mf/files/standalone-entry-component-files/{entry__componentFileSuffix__.ts__tmpl__ → entry.component.ts__tmpl__} +3 -3
  136. package/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +2 -2
  137. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +1 -1
  138. package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +1 -1
  139. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +1 -1
  140. package/src/generators/setup-mf/lib/add-remote-entry.d.ts +2 -2
  141. package/src/generators/setup-mf/lib/add-remote-entry.js +3 -9
  142. package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -11
  143. package/src/generators/setup-mf/lib/fix-bootstrap.d.ts +2 -2
  144. package/src/generators/setup-mf/lib/fix-bootstrap.js +4 -4
  145. package/src/generators/setup-mf/lib/generate-config.d.ts +2 -2
  146. package/src/generators/setup-mf/lib/generate-config.js +0 -1
  147. package/src/generators/setup-mf/lib/normalize-options.d.ts +1 -1
  148. package/src/generators/setup-mf/lib/normalize-options.js +0 -13
  149. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +2 -2
  150. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +14 -18
  151. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +5 -1
  152. package/src/generators/setup-mf/lib/setup-tspath-for-remote.d.ts +2 -2
  153. package/src/generators/setup-mf/lib/setup-tspath-for-remote.js +1 -1
  154. package/src/generators/setup-mf/lib/update-host-app-routes.d.ts +2 -2
  155. package/src/generators/setup-mf/lib/update-host-app-routes.js +9 -12
  156. package/src/generators/setup-mf/lib/update-tsconfig.d.ts +2 -2
  157. package/src/generators/setup-mf/lib/update-tsconfig.js +5 -5
  158. package/src/generators/setup-mf/schema.d.ts +0 -7
  159. package/src/generators/setup-ssr/lib/add-dependencies.js +7 -4
  160. package/src/generators/setup-ssr/lib/add-hydration.js +3 -10
  161. package/src/generators/setup-ssr/lib/add-server-file.js +2 -7
  162. package/src/generators/setup-ssr/lib/generate-files.js +4 -17
  163. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +2 -5
  164. package/src/generators/setup-ssr/lib/normalize-options.js +2 -2
  165. package/src/generators/setup-ssr/lib/update-project-config.js +0 -5
  166. package/src/generators/setup-ssr/lib/validate-options.js +2 -2
  167. package/src/generators/setup-ssr/schema.json +1 -1
  168. package/src/generators/utils/add-jest.js +1 -6
  169. package/src/generators/utils/assert-mf-utils.d.ts +1 -0
  170. package/src/generators/utils/assert-mf-utils.js +11 -0
  171. package/src/generators/utils/ensure-angular-dependencies.js +3 -6
  172. package/src/generators/utils/export-scam.d.ts +0 -1
  173. package/src/generators/utils/export-scam.js +2 -1
  174. package/src/generators/utils/find-module.js +13 -18
  175. package/src/generators/utils/storybook-ast/component-info.js +24 -40
  176. package/src/generators/utils/storybook-ast/module-info.d.ts +1 -1
  177. package/src/generators/utils/storybook-ast/module-info.js +8 -3
  178. package/src/generators/utils/testing.js +28 -28
  179. package/src/generators/utils/version-utils.js +2 -2
  180. package/src/generators/web-worker/lib/add-snippet.js +3 -3
  181. package/src/plugins/plugin.js +13 -22
  182. package/src/utils/backward-compatible-versions.d.ts +2 -2
  183. package/src/utils/backward-compatible-versions.js +21 -20
  184. package/src/utils/nx-devkit/ast-utils.js +3 -17
  185. package/src/utils/nx-devkit/testing.js +9 -9
  186. package/src/utils/versions.d.ts +4 -3
  187. package/src/utils/versions.js +5 -4
  188. package/src/executors/utilities/builder-package.d.ts +0 -1
  189. package/src/executors/utilities/builder-package.js +0 -11
  190. package/src/generators/application/files/ng-module/src/app/app__componentFileSuffix__.spec.ts__tpl__ +0 -28
  191. package/src/generators/application/files/ng-module/src/app/app__moduleTypeSeparator__module.ts__tpl__ +0 -17
  192. package/src/generators/application/files/standalone-components/src/app/app__componentFileSuffix__.spec.ts__tpl__ +0 -27
  193. package/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +0 -43
  194. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/__main__ +0 -1
  195. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/__rootModuleFileName__ +0 -12
  196. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +0 -8
  197. package/src/generators/setup-ssr/files/v20+/application-builder/server/__serverFileName__ +0 -66
  198. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/__main__ +0 -7
  199. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.config.server.ts__tpl__ +0 -12
  200. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +0 -8
  201. package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/__main__ +0 -1
  202. package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/app/__rootModuleFileName__ +0 -14
  203. package/src/generators/setup-ssr/files/v20+/server-builder/root/tsconfig.server.json.template +0 -16
  204. package/src/generators/setup-ssr/files/v20+/server-builder/server/__serverFileName__ +0 -69
  205. package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/__main__ +0 -7
  206. package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/app/app.config.server.ts.template +0 -11
  207. package/src/generators/utils/app-components-info.d.ts +0 -9
  208. package/src/generators/utils/app-components-info.js +0 -39
  209. package/src/generators/utils/artifact-types.d.ts +0 -3
  210. package/src/generators/utils/artifact-types.js +0 -33
  211. package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.d.ts +0 -2
  212. package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.js +0 -110
  213. package/src/migrations/update-21-2-0/replace-provide-server-routing.d.ts +0 -2
  214. package/src/migrations/update-21-2-0/replace-provide-server-routing.js +0 -103
  215. package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.d.ts +0 -2
  216. package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.js +0 -47
  217. package/src/migrations/update-21-2-0/update-angular-cli.d.ts +0 -3
  218. package/src/migrations/update-21-2-0/update-angular-cli.js +0 -23
  219. /package/src/generators/application/files/{base → base-18+}/public/favicon.ico +0 -0
  220. /package/src/generators/application/files/{ng-module/src/app/app__componentFileSuffix__.__style__ → base-pre18/src/assets/.gitkeep__tpl__} +0 -0
  221. /package/src/generators/application/files/{standalone-components/src/app/app__componentFileSuffix__.__style__ → ng-module/src/app/app.component.__style__} +0 -0
  222. /package/src/generators/application/files/ng-module/src/app/{app__componentFileSuffix__.html__tpl__ → app.component.html__tpl__} +0 -0
  223. /package/src/generators/application/files/standalone-components/src/app/{app__componentFileSuffix__.html__tpl__ → app.component.html__tpl__} +0 -0
  224. /package/src/generators/component/files/{__fileName____ngext__.html__tpl__ → __fileName__.html__tpl__} +0 -0
  225. /package/src/generators/library/files/ng-module/src/lib/{__libFileName____moduleTypeSeparator__module.ts__tpl__ → __libFileName__.module.ts__tpl__} +0 -0
  226. /package/src/generators/library-secondary-entry-point/files/src/lib/{__fileName____moduleTypeSeparator__module.ts__tmpl__ → __fileName__.module.ts__tmpl__} +0 -0
  227. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/__main__ +0 -0
  228. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
  229. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +0 -0
  230. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/server/__serverFileName__ +0 -0
  231. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/__main__ +0 -0
  232. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/app/app.config.server.ts__tpl__ +0 -0
  233. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +0 -0
  234. /package/src/generators/setup-ssr/files/{v19 → v19+}/application-builder-common-engine/server/__serverFileName__ +0 -0
  235. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/ngmodule-src/__main__ +0 -0
  236. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
  237. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/root/tsconfig.server.json.template +0 -0
  238. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/server/__serverFileName__ +0 -0
  239. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/standalone-src/__main__ +0 -0
  240. /package/src/generators/setup-ssr/files/{v19 → v19+}/server-builder/standalone-src/app/app.config.server.ts.template +0 -0
@@ -1,3 +1,3 @@
1
1
  import type { Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function removeDeadCodeFromRemote(tree: Tree, options: NormalizedOptions): void;
2
+ import { Schema } from '../schema';
3
+ export declare function removeDeadCodeFromRemote(tree: Tree, options: Schema): void;
@@ -5,50 +5,46 @@ const devkit_1 = require("@nx/devkit");
5
5
  function removeDeadCodeFromRemote(tree, options) {
6
6
  const projectName = options.appName;
7
7
  const project = (0, devkit_1.readProjectConfiguration)(tree, projectName);
8
- const { appComponentInfo, nxWelcomeComponentInfo, entryModuleFileName } = options;
9
8
  ['css', 'less', 'scss', 'sass'].forEach((style) => {
10
- const pathToComponentStyle = (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/${appComponentInfo.extensionlessFileName}.${style}`);
9
+ const pathToComponentStyle = (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/app.component.${style}`);
11
10
  if (tree.exists(pathToComponentStyle)) {
12
11
  tree.delete(pathToComponentStyle);
13
12
  }
14
13
  });
15
- tree.rename(nxWelcomeComponentInfo.path, (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/remote-entry/${nxWelcomeComponentInfo.fileName}`));
16
- tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, `app/${appComponentInfo.extensionlessFileName}.spec.ts`));
17
- tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, `app/${appComponentInfo.extensionlessFileName}.html`));
14
+ tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/nx-welcome.component.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/remote-entry/nx-welcome.component.ts'));
15
+ tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.spec.ts'));
16
+ tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.html'));
17
+ const pathToAppComponent = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.ts');
18
18
  if (!options.standalone) {
19
- const componentContents = tree.read(appComponentInfo.path, 'utf-8');
19
+ const componentContents = tree.read(pathToAppComponent, 'utf-8');
20
20
  const isInlineTemplate = !componentContents.includes('templateUrl');
21
21
  const component = componentContents.split(isInlineTemplate ? 'template' : 'templateUrl')[0] +
22
22
  `template: '<router-outlet></router-outlet>'
23
23
 
24
24
  })
25
- export class ${appComponentInfo.symbolName} {}`;
26
- tree.write(appComponentInfo.path, component);
27
- let modulePath = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts');
28
- if (!tree.exists(modulePath)) {
29
- modulePath = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app-module.ts');
30
- }
31
- tree.write(modulePath, `import { NgModule } from '@angular/core';
25
+ export class AppComponent {}`;
26
+ tree.write(pathToAppComponent, component);
27
+ tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts'), `import { NgModule } from '@angular/core';
32
28
  import { BrowserModule } from '@angular/platform-browser';
33
29
  import { RouterModule } from '@angular/router';
34
- import { ${appComponentInfo.symbolName} } from './${appComponentInfo.extensionlessFileName}';
30
+ import { AppComponent } from './app.component';
35
31
 
36
32
  @NgModule({
37
- declarations: [${appComponentInfo.symbolName}],
33
+ declarations: [AppComponent],
38
34
  imports: [
39
35
  BrowserModule,
40
36
  RouterModule.forRoot([{
41
37
  path: '',
42
- loadChildren: () => import('./remote-entry/${entryModuleFileName}').then(m => m.RemoteEntryModule)
38
+ loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)
43
39
  }], { initialNavigation: 'enabledBlocking' }),
44
40
  ],
45
41
  providers: [],
46
- bootstrap: [${appComponentInfo.symbolName}],
42
+ bootstrap: [AppComponent],
47
43
  })
48
44
  export class AppModule {}`);
49
45
  }
50
46
  else {
51
- tree.delete(appComponentInfo.path);
47
+ tree.delete(pathToAppComponent);
52
48
  const pathToIndexHtml = project.targets.build.options.index;
53
49
  const indexContents = tree.read(pathToIndexHtml, 'utf-8');
54
50
  const rootSelectorRegex = new RegExp(`${options.prefix || 'app'}-root`, 'ig');
@@ -2,12 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setupHostIfDynamic = setupHostIfDynamic;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const version_utils_1 = require("../../utils/version-utils");
5
6
  function setupHostIfDynamic(tree, options) {
6
7
  if (options.federationType === 'static') {
7
8
  return;
8
9
  }
10
+ const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
9
11
  const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
10
- const pathToMFManifest = (0, devkit_1.joinPathFragments)(project.root, 'public/module-federation.manifest.json');
12
+ const pathToMFManifest = angularMajorVersion >= 18
13
+ ? (0, devkit_1.joinPathFragments)(project.root, 'public/module-federation.manifest.json')
14
+ : (0, devkit_1.joinPathFragments)(project.sourceRoot, 'assets/module-federation.manifest.json');
11
15
  if (!tree.exists(pathToMFManifest)) {
12
16
  tree.write(pathToMFManifest, '{}');
13
17
  }
@@ -1,3 +1,3 @@
1
1
  import type { Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function setupTspathForRemote(tree: Tree, options: NormalizedOptions): void;
2
+ import type { Schema } from '../schema';
3
+ export declare function setupTspathForRemote(tree: Tree, options: Schema): void;
@@ -7,7 +7,7 @@ function setupTspathForRemote(tree, options) {
7
7
  const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
8
8
  const exportPath = options.standalone
9
9
  ? `./src/app/remote-entry/entry.routes.ts`
10
- : `./src/app/remote-entry/${options.entryModuleFileName}.ts`;
10
+ : `./src/app/remote-entry/entry.module.ts`;
11
11
  const exportName = options.standalone ? 'Routes' : 'Module';
12
12
  (0, js_1.addTsConfigPath)(tree, `${options.appName.replace(/-/g, '_')}/${exportName}`, [
13
13
  (0, devkit_1.joinPathFragments)(project.root, exportPath),
@@ -1,3 +1,3 @@
1
1
  import { type Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function updateHostAppRoutes(tree: Tree, options: NormalizedOptions): void;
2
+ import type { Schema } from '../schema';
3
+ export declare function updateHostAppRoutes(tree: Tree, options: Schema): void;
@@ -3,34 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateHostAppRoutes = updateHostAppRoutes;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
6
+ const version_utils_1 = require("../../utils/version-utils");
6
7
  function updateHostAppRoutes(tree, options) {
7
8
  const { sourceRoot } = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
8
- const { appComponentInfo, nxWelcomeComponentInfo } = options;
9
- tree.write((0, devkit_1.joinPathFragments)(sourceRoot, 'app', `${appComponentInfo.extensionlessFileName}.html`), `<ul class="remote-menu">
9
+ tree.write((0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.component.html'), `<ul class="remote-menu">
10
10
  <li><a routerLink="/">Home</a></li>
11
11
  </ul>
12
12
  <router-outlet></router-outlet>
13
13
  `);
14
14
  let pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.routes.ts');
15
- if (!tree.exists(pathToHostRootRoutingFile)) {
15
+ let hostRootRoutingFile = tree.read(pathToHostRootRoutingFile, 'utf-8');
16
+ if (!hostRootRoutingFile) {
16
17
  pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app-routing.module.ts');
17
- }
18
- if (!tree.exists(pathToHostRootRoutingFile)) {
19
- pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(sourceRoot, 'app/app-routing-module.ts');
18
+ hostRootRoutingFile = tree.read(pathToHostRootRoutingFile, 'utf-8');
20
19
  }
21
20
  (0, route_utils_1.addRoute)(tree, pathToHostRootRoutingFile, `{
22
21
  path: '',
23
- component: ${nxWelcomeComponentInfo.symbolName}
22
+ component: NxWelcomeComponent
24
23
  }`);
25
- tree.write(pathToHostRootRoutingFile, `import { ${nxWelcomeComponentInfo.symbolName} } from './${nxWelcomeComponentInfo.extensionlessFileName}';
24
+ tree.write(pathToHostRootRoutingFile, `import { NxWelcomeComponent } from './nx-welcome.component';
26
25
  ${tree.read(pathToHostRootRoutingFile, 'utf-8')}`);
26
+ const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
27
27
  (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/host-files'), (0, devkit_1.joinPathFragments)(sourceRoot, 'app'), {
28
28
  appName: options.appName,
29
29
  standalone: options.standalone,
30
- appFileName: appComponentInfo.extensionlessFileName,
31
- appSymbolName: appComponentInfo.symbolName,
32
- nxWelcomeFileName: nxWelcomeComponentInfo.extensionlessFileName,
33
- nxWelcomeSymbolName: nxWelcomeComponentInfo.symbolName,
30
+ useRouterTestingModule: angularMajorVersion < 18,
34
31
  tmpl: '',
35
32
  });
36
33
  }
@@ -1,3 +1,3 @@
1
1
  import type { Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function updateTsConfig(tree: Tree, options: NormalizedOptions): void;
2
+ import type { Schema } from '../schema';
3
+ export declare function updateTsConfig(tree: Tree, schema: Schema): void;
@@ -2,16 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateTsConfig = updateTsConfig;
4
4
  const devkit_1 = require("@nx/devkit");
5
- function updateTsConfig(tree, options) {
6
- const { root } = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
5
+ function updateTsConfig(tree, schema) {
6
+ const { root } = (0, devkit_1.readProjectConfiguration)(tree, schema.appName);
7
7
  (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(root, `tsconfig.app.json`), (json) => {
8
8
  json.compilerOptions ??= {};
9
9
  json.compilerOptions.target = 'ES2020';
10
- if (options.mfType === 'remote') {
10
+ if (schema.mfType === 'remote') {
11
11
  json.files ??= [];
12
- json.files.push(options.standalone
12
+ json.files.push(schema.standalone
13
13
  ? 'src/app/remote-entry/entry.routes.ts'
14
- : `src/app/remote-entry/${options.entryModuleFileName}.ts`);
14
+ : 'src/app/remote-entry/entry.module.ts');
15
15
  }
16
16
  return json;
17
17
  });
@@ -1,5 +1,3 @@
1
- import type { ComponentMetadata } from '../utils/app-components-info';
2
-
3
1
  type FederationType = 'static' | 'dynamic';
4
2
 
5
3
  export interface Schema {
@@ -23,9 +21,4 @@ export interface Schema {
23
21
  export interface NormalizedOptions extends Schema {
24
22
  federationType: FederationType;
25
23
  prefix: string | undefined;
26
- componentType: string;
27
- componentFileSuffix: string;
28
- entryModuleFileName: string;
29
- appComponentInfo: ComponentMetadata;
30
- nxWelcomeComponentInfo: ComponentMetadata;
31
24
  }
@@ -2,20 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addDependencies = addDependencies;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const semver_1 = require("semver");
5
6
  const version_utils_1 = require("../../utils/version-utils");
6
7
  function addDependencies(tree, isUsingApplicationBuilder) {
7
8
  const pkgVersions = (0, version_utils_1.versions)(tree);
9
+ const { version: angularVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
8
10
  const dependencies = {
9
- '@angular/platform-server': (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular/platform-server') ??
10
- pkgVersions.angularVersion,
11
+ '@angular/platform-server': (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@angular/platform-server')
12
+ ?.version ?? pkgVersions.angularVersion,
11
13
  express: pkgVersions.expressVersion,
12
14
  };
13
15
  const devDependencies = {
14
16
  '@types/express': pkgVersions.typesExpressVersion,
15
17
  };
16
18
  dependencies['@angular/ssr'] =
17
- (0, version_utils_1.getInstalledAngularDevkitVersion)(tree) ?? pkgVersions.angularDevkitVersion;
18
- if (!isUsingApplicationBuilder) {
19
+ (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@angular-devkit/build-angular')
20
+ ?.version ?? pkgVersions.angularDevkitVersion;
21
+ if (!isUsingApplicationBuilder && (0, semver_1.gte)(angularVersion, '17.1.0')) {
19
22
  devDependencies['browser-sync'] = pkgVersions.browserSyncVersion;
20
23
  }
21
24
  (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies);
@@ -14,16 +14,9 @@ function addHydration(tree, options) {
14
14
  tsModule = (0, ensure_typescript_1.ensureTypescript)();
15
15
  tsquery = require('@phenomnomnominal/tsquery').tsquery;
16
16
  }
17
- let pathToClientConfigFile;
18
- if (options.standalone) {
19
- pathToClientConfigFile = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'app/app.config.ts');
20
- }
21
- else {
22
- pathToClientConfigFile = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'app/app.module.ts');
23
- if (!tree.exists(pathToClientConfigFile)) {
24
- pathToClientConfigFile = (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'app/app-module.ts');
25
- }
26
- }
17
+ const pathToClientConfigFile = options.standalone
18
+ ? (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'app/app.config.ts')
19
+ : (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'app/app.module.ts');
27
20
  const sourceText = tree.read(pathToClientConfigFile, 'utf-8');
28
21
  let sourceFile = tsModule.createSourceFile(pathToClientConfigFile, sourceText, tsModule.ScriptTarget.Latest, true);
29
22
  const provideClientHydrationCallExpression = tsquery(sourceFile, 'ObjectLiteralExpression PropertyAssignment:has(Identifier[name=providers]) ArrayLiteralExpression CallExpression:has(Identifier[name=provideClientHydration])')[0];
@@ -14,13 +14,8 @@ function addServerFile(tree, options) {
14
14
  const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
15
15
  const baseFilesPath = (0, path_1.join)(__dirname, '..', 'files');
16
16
  let pathToFiles;
17
- if (angularMajorVersion >= 20) {
18
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v20+', options.isUsingApplicationBuilder
19
- ? 'application-builder'
20
- : 'server-builder', 'server');
21
- }
22
- else if (angularMajorVersion === 19) {
23
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v19', options.isUsingApplicationBuilder
17
+ if (angularMajorVersion >= 19) {
18
+ pathToFiles = (0, path_1.join)(baseFilesPath, 'v19+', options.isUsingApplicationBuilder
24
19
  ? 'application-builder' +
25
20
  (options.serverRouting ? '' : '-common-engine')
26
21
  : 'server-builder', 'server');
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateSSRFiles = generateSSRFiles;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const path_1 = require("path");
6
- const semver_1 = require("semver");
7
- const app_components_info_1 = require("../../utils/app-components-info");
8
- const artifact_types_1 = require("../../utils/artifact-types");
9
6
  const version_utils_1 = require("../../utils/version-utils");
7
+ const semver_1 = require("semver");
10
8
  function generateSSRFiles(tree, options) {
11
9
  const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
12
10
  if (project.targets.server ||
@@ -18,13 +16,8 @@ function generateSSRFiles(tree, options) {
18
16
  const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
19
17
  const baseFilesPath = (0, path_1.join)(__dirname, '..', 'files');
20
18
  let pathToFiles;
21
- if (angularMajorVersion >= 20) {
22
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v20+', options.isUsingApplicationBuilder
23
- ? 'application-builder'
24
- : 'server-builder', options.standalone ? 'standalone-src' : 'ngmodule-src');
25
- }
26
- else if (angularMajorVersion === 19) {
27
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v19', options.isUsingApplicationBuilder
19
+ if (angularMajorVersion >= 19) {
20
+ pathToFiles = (0, path_1.join)(baseFilesPath, 'v19+', options.isUsingApplicationBuilder
28
21
  ? 'application-builder'
29
22
  : 'server-builder', options.standalone ? 'standalone-src' : 'ngmodule-src');
30
23
  }
@@ -36,20 +29,14 @@ function generateSSRFiles(tree, options) {
36
29
  const cleanedSsrVersion = ssrVersion
37
30
  ? (0, semver_1.clean)(ssrVersion) ?? (0, semver_1.coerce)(ssrVersion).version
38
31
  : null;
39
- const componentType = (0, artifact_types_1.getComponentType)(tree);
40
- const appComponentInfo = (0, app_components_info_1.getAppComponentInfo)(tree, componentType ? `.${componentType}` : '', project);
41
- const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
42
32
  (0, devkit_1.generateFiles)(tree, pathToFiles, sourceRoot, {
43
33
  ...options,
44
34
  provideServerRoutingFn: !cleanedSsrVersion || (0, semver_1.gte)(cleanedSsrVersion, '19.2.0')
45
35
  ? 'provideServerRouting'
46
36
  : 'provideServerRoutesConfig',
47
- appFileName: appComponentInfo.extensionlessFileName,
48
- appSymbolName: appComponentInfo.symbolName,
49
- moduleTypeSeparator,
50
37
  tpl: '',
51
38
  });
52
- if (angularMajorVersion === 19 && !options.serverRouting) {
39
+ if (angularMajorVersion >= 19 && !options.serverRouting) {
53
40
  tree.delete((0, devkit_1.joinPathFragments)(sourceRoot, 'app/app.routes.server.ts'));
54
41
  }
55
42
  }
@@ -34,11 +34,8 @@ function generateTsConfigServerJsonForBrowserBuilder(tree, options) {
34
34
  !!packageJson.devDependencies?.['@angular/localize'];
35
35
  const baseFilesPath = (0, path_1.join)(__dirname, '..', 'files');
36
36
  let pathToFiles;
37
- if (angularMajorVersion >= 20) {
38
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v20+', 'server-builder', 'root');
39
- }
40
- else if (angularMajorVersion === 19) {
41
- pathToFiles = (0, path_1.join)(baseFilesPath, 'v19', 'server-builder', 'root');
37
+ if (angularMajorVersion >= 19) {
38
+ pathToFiles = (0, path_1.join)(baseFilesPath, 'v19+', 'server-builder', 'root');
42
39
  }
43
40
  else {
44
41
  pathToFiles = (0, path_1.join)(baseFilesPath, 'pre-v19', 'root');
@@ -12,7 +12,7 @@ async function normalizeOptions(tree, options) {
12
12
  targets.build.executor === '@nx/angular:application';
13
13
  if (options.serverRouting === undefined && isUsingApplicationBuilder) {
14
14
  const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
15
- if (angularMajorVersion === 19) {
15
+ if (angularMajorVersion >= 19) {
16
16
  options.serverRouting = await (0, prompt_1.promptWhenInteractive)({
17
17
  type: 'confirm',
18
18
  name: 'serverRouting',
@@ -21,7 +21,7 @@ async function normalizeOptions(tree, options) {
21
21
  }, { serverRouting: false }).then(({ serverRouting }) => serverRouting);
22
22
  }
23
23
  else {
24
- options.serverRouting = angularMajorVersion >= 20;
24
+ options.serverRouting = false;
25
25
  }
26
26
  }
27
27
  else if (options.serverRouting !== undefined &&
@@ -21,11 +21,6 @@ function updateProjectConfigForApplicationBuilder(tree, options) {
21
21
  }
22
22
  else {
23
23
  outputPath = outputPath.base;
24
- if (buildTarget.outputs && buildTarget.outputs.length > 0) {
25
- buildTarget.outputs = buildTarget.outputs.map((output) => output === '{options.outputPath.base}'
26
- ? '{options.outputPath}'
27
- : output);
28
- }
29
24
  }
30
25
  }
31
26
  const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
@@ -8,8 +8,8 @@ function validateOptions(tree, options) {
8
8
  validateProject(tree, options.project);
9
9
  validateBuildTarget(tree, options.project);
10
10
  const { major: angularMajorVersion, version: angularVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
11
- if (angularMajorVersion !== 19 && options.serverRouting !== undefined) {
12
- throw new Error(`The "serverRouting" option is only supported in Angular versions 19.x.x. You are using Angular ${angularVersion}.`);
11
+ if (angularMajorVersion < 19 && options.serverRouting) {
12
+ throw new Error(`The "serverRouting" option is only supported in Angular versions >= 19.0.0. You are using Angular ${angularVersion}.`);
13
13
  }
14
14
  }
15
15
  function validateProject(tree, project) {
@@ -53,7 +53,7 @@
53
53
  "default": true
54
54
  },
55
55
  "serverRouting": {
56
- "description": "Creates a server application using the Server Routing and App Engine APIs for application using the `application` builder (Developer Preview). _Note: this is only supported in Angular versions 19.x.x_. From Angular 20 onwards, SSR will always enable server routing when using the `application` builder.",
56
+ "description": "Creates a server application using the Server Routing and App Engine APIs (Developer Preview). _Note: this is only supported in Angular versions >= 19.0.0_.",
57
57
  "type": "boolean"
58
58
  },
59
59
  "skipFormat": {
@@ -3,15 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addJest = addJest;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const versions_1 = require("../../utils/versions");
6
- const version_utils_1 = require("./version-utils");
7
6
  async function addJest(tree, options) {
8
7
  if (!options.skipPackageJson) {
9
8
  process.env.npm_config_legacy_peer_deps ??= 'true';
10
- const pkgVersions = (0, version_utils_1.versions)(tree);
11
- (0, devkit_1.addDependenciesToPackageJson)(tree, {
12
- // TODO(leo): jest-preset-angular still needs this until https://github.com/thymikee/jest-preset-angular/pull/3079 is merged
13
- '@angular/platform-browser-dynamic': pkgVersions.angularVersion,
14
- }, { 'jest-preset-angular': pkgVersions.jestPresetAngularVersion }, undefined, true);
9
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { 'jest-preset-angular': versions_1.jestPresetAngularVersion }, undefined, true);
15
10
  }
16
11
  const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', versions_1.nxVersion);
17
12
  await configurationGenerator(tree, {
@@ -0,0 +1 @@
1
+ export declare function assertRspackIsCSR(bundler: 'webpack' | 'rspack', ssr: boolean, serverRouting: boolean): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertRspackIsCSR = assertRspackIsCSR;
4
+ function assertRspackIsCSR(bundler, ssr, serverRouting) {
5
+ if (bundler === 'rspack' && serverRouting) {
6
+ throw new Error('Server Routing is not currently supported for Angular Rspack Module Federation. Please use webpack instead.');
7
+ }
8
+ if (bundler === 'rspack' && ssr) {
9
+ throw new Error('SSR is not currently supported for Angular Rspack Module Federation. Please use webpack instead.');
10
+ }
11
+ }
@@ -24,12 +24,13 @@ function ensureAngularDependencies(tree) {
24
24
  dependencies['@angular/core'] = angularVersion;
25
25
  dependencies['@angular/forms'] = angularVersion;
26
26
  dependencies['@angular/platform-browser'] = angularVersion;
27
+ dependencies['@angular/platform-browser-dynamic'] = angularVersion;
27
28
  dependencies['@angular/router'] = angularVersion;
28
29
  dependencies.rxjs = rxjsVersion;
29
30
  dependencies.tslib = tsLibVersion;
30
31
  dependencies['zone.js'] = zoneJsVersion;
31
32
  }
32
- const installedAngularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree);
33
+ const installedAngularDevkitVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular-devkit/build-angular');
33
34
  if (!installedAngularDevkitVersion) {
34
35
  /**
35
36
  * If `@angular-devkit/build-angular` is already installed, we assume the workspace
@@ -42,12 +43,8 @@ function ensureAngularDependencies(tree) {
42
43
  }
43
44
  // Ensure the `@nx/angular` peer dependencies are always installed.
44
45
  const angularDevkitVersion = installedAngularDevkitVersion ?? pkgVersions.angularDevkitVersion;
46
+ devDependencies['@angular-devkit/build-angular'] = angularDevkitVersion;
45
47
  devDependencies['@angular-devkit/schematics'] = angularDevkitVersion;
46
48
  devDependencies['@schematics/angular'] = angularDevkitVersion;
47
- const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
48
- if (angularMajorVersion < 20) {
49
- devDependencies['@angular/build'] = angularDevkitVersion;
50
- devDependencies['@angular-devkit/build-angular'] = angularDevkitVersion;
51
- }
52
49
  return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies, undefined, true);
53
50
  }
@@ -4,7 +4,6 @@ export type GenerationOptions = {
4
4
  filePath: string;
5
5
  name: string;
6
6
  projectName: string;
7
- modulePath: string;
8
7
  export?: boolean;
9
8
  inlineScam?: boolean;
10
9
  };
@@ -27,7 +27,8 @@ function exportScam(tree, options) {
27
27
  let updatedEntryPointContent = (0, devkit_1.stripIndents) `${entryPointContent}
28
28
  export * from '${relativePathFromEntryPoint}';`;
29
29
  if (!options.inlineScam) {
30
- const relativePathFromModule = (0, path_1.getRelativeImportToFile)(entryPointPath, options.modulePath);
30
+ const moduleFilePath = (0, devkit_1.joinPathFragments)(options.directory, `${(0, devkit_1.names)(options.name).fileName}.module.ts`);
31
+ const relativePathFromModule = (0, path_1.getRelativeImportToFile)(entryPointPath, moduleFilePath);
31
32
  updatedEntryPointContent = (0, devkit_1.stripIndents) `${updatedEntryPointContent}
32
33
  export * from '${relativePathFromModule}';`;
33
34
  }
@@ -9,43 +9,38 @@ const js_1 = require("@nx/js");
9
9
  const insert_ngmodule_import_1 = require("./insert-ngmodule-import");
10
10
  let tsModule;
11
11
  function findModule(tree, path, module) {
12
- const candidatePaths = [];
12
+ let modulePath = '';
13
13
  let pathToSearch = path;
14
14
  while (pathToSearch !== '.' && pathToSearch !== '/') {
15
15
  if (module) {
16
16
  const pathToModule = (0, devkit_1.joinPathFragments)(pathToSearch, module);
17
17
  if (tree.exists(pathToModule)) {
18
- candidatePaths.push(pathToModule);
18
+ modulePath = pathToModule;
19
19
  break;
20
20
  }
21
21
  }
22
22
  else {
23
23
  const potentialOptions = tree
24
24
  .children(pathToSearch)
25
- .filter((f) => f.endsWith('.module.ts') || f.endsWith('-module.ts'));
26
- if (potentialOptions.length > 0) {
27
- candidatePaths.push(...potentialOptions.map((p) => (0, devkit_1.joinPathFragments)(pathToSearch, p)));
25
+ .filter((f) => f.endsWith('.module.ts'));
26
+ if (potentialOptions.length > 1) {
27
+ throw new Error(`More than one NgModule was found. Please provide the NgModule you wish to use.`);
28
+ }
29
+ else if (potentialOptions.length === 1) {
30
+ modulePath = (0, devkit_1.joinPathFragments)(pathToSearch, potentialOptions[0]);
28
31
  break;
29
32
  }
30
33
  }
31
34
  pathToSearch = (0, path_1.dirname)(pathToSearch);
32
35
  }
33
- if (candidatePaths.length === 0) {
36
+ if (modulePath === '') {
34
37
  throw new Error('Could not find a declaring module file.');
35
38
  }
36
- const modules = candidatePaths.filter((p) => {
37
- const moduleContents = tree.read(p, 'utf-8');
38
- return moduleContents.includes('@NgModule');
39
- });
40
- if (modules.length === 0) {
41
- throw new Error(candidatePaths.length === 1
42
- ? `Declaring module file (${candidatePaths[0]}) does not contain an @NgModule Declaration.`
43
- : `Declaring module files (${candidatePaths.join(', ')}) do not contain an @NgModule Declaration.`);
44
- }
45
- if (modules.length > 1) {
46
- throw new Error(`More than one NgModule was found. Please provide the NgModule you wish to use.`);
39
+ const moduleContents = tree.read(modulePath, 'utf-8');
40
+ if (!moduleContents.includes('@NgModule')) {
41
+ throw new Error(`Declaring module file (${modulePath}) does not contain an @NgModule Declaration.`);
47
42
  }
48
- return modules[0];
43
+ return modulePath;
49
44
  }
50
45
  function addToNgModule(tree, path, modulePath, name, className, fileName, ngModuleProperty,
51
46
  // TODO(leo): remove once all consumers are updated