@nx/angular 17.0.3 → 17.0.5

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 (458) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -4
  3. package/esm2022/mf/mf.mjs +1 -1
  4. package/esm2022/src/runtime/nx/data-persistence.mjs +1 -1
  5. package/executors.d.ts +9 -2
  6. package/executors.js +7 -2
  7. package/executors.json +19 -9
  8. package/fesm2022/nx-angular-mf.mjs.map +1 -1
  9. package/fesm2022/nx-angular.mjs.map +1 -1
  10. package/generators.d.ts +1 -1
  11. package/generators.js +3 -1
  12. package/generators.json +7 -2
  13. package/migrations.json +451 -0
  14. package/ng-package.json +2 -2
  15. package/package.json +20 -26
  16. package/plugins/component-testing.d.ts +1 -26
  17. package/plugins/component-testing.js +15 -4
  18. package/src/builders/dev-server/dev-server.impl.d.ts +4 -0
  19. package/src/builders/dev-server/dev-server.impl.js +160 -0
  20. package/src/builders/{webpack-dev-server → dev-server}/lib/index.d.ts +1 -0
  21. package/src/builders/{webpack-dev-server → dev-server}/lib/index.js +1 -0
  22. package/src/builders/dev-server/lib/normalize-options.d.ts +2 -0
  23. package/src/builders/dev-server/lib/normalize-options.js +20 -0
  24. package/src/builders/dev-server/lib/validate-options.d.ts +2 -0
  25. package/src/builders/dev-server/lib/validate-options.js +22 -0
  26. package/src/builders/dev-server/schema.d.ts +39 -0
  27. package/src/builders/{webpack-dev-server → dev-server}/schema.json +42 -5
  28. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.d.ts +1 -1
  29. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +15 -9
  30. package/src/builders/utilities/module-federation.js +1 -1
  31. package/src/builders/webpack-browser/schema.d.ts +6 -2
  32. package/src/builders/webpack-browser/schema.json +15 -15
  33. package/src/builders/webpack-browser/webpack-browser.impl.js +8 -6
  34. package/src/builders/webpack-server/schema.d.ts +0 -1
  35. package/src/builders/webpack-server/schema.json +7 -20
  36. package/src/builders/webpack-server/validate-options.js +0 -7
  37. package/src/builders/webpack-server/webpack-server.impl.js +4 -9
  38. package/src/executors/application/application.impl.d.ts +3 -0
  39. package/src/executors/application/application.impl.js +37 -0
  40. package/src/executors/application/schema.d.ts +8 -0
  41. package/src/executors/application/schema.json +682 -0
  42. package/src/executors/application/utils/validate-options.d.ts +2 -0
  43. package/src/executors/application/utils/validate-options.js +52 -0
  44. package/src/executors/browser-esbuild/browser-esbuild.impl.d.ts +2 -3
  45. package/src/executors/browser-esbuild/browser-esbuild.impl.js +15 -8
  46. package/src/executors/browser-esbuild/schema.d.ts +3 -1
  47. package/src/executors/browser-esbuild/schema.json +38 -8
  48. package/src/executors/extract-i18n/extract-i18n.impl.d.ts +3 -0
  49. package/src/executors/extract-i18n/extract-i18n.impl.js +43 -0
  50. package/src/executors/extract-i18n/schema.d.ts +8 -0
  51. package/src/executors/extract-i18n/schema.json +45 -0
  52. package/src/executors/module-federation-dev-server/lib/build-static-remotes.d.ts +4 -0
  53. package/src/executors/module-federation-dev-server/lib/build-static-remotes.js +56 -0
  54. package/src/executors/module-federation-dev-server/lib/index.d.ts +5 -0
  55. package/src/executors/module-federation-dev-server/lib/index.js +8 -0
  56. package/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +2 -0
  57. package/src/executors/module-federation-dev-server/lib/normalize-options.js +23 -0
  58. package/src/executors/module-federation-dev-server/lib/parse-static-remotes-config.d.ts +11 -0
  59. package/src/executors/module-federation-dev-server/lib/parse-static-remotes-config.js +18 -0
  60. package/src/executors/module-federation-dev-server/lib/start-dev-remotes.d.ts +5 -0
  61. package/src/executors/module-federation-dev-server/lib/start-dev-remotes.js +29 -0
  62. package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.d.ts +9 -0
  63. package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.js +46 -0
  64. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +4 -0
  65. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +116 -0
  66. package/src/{builders → executors}/module-federation-dev-server/schema.d.ts +25 -7
  67. package/src/{builders → executors}/module-federation-dev-server/schema.json +31 -6
  68. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.d.ts +3 -0
  69. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.js +34 -0
  70. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.transform.js +6 -4
  71. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.transform.js +25 -13
  72. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ngc → pre-v17/ngc}/compile-source-files.d.ts +1 -2
  73. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ngc → pre-v17/ngc}/compile-source-files.js +14 -9
  74. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.d.ts +5 -10
  75. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.js +39 -86
  76. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.di.d.ts +2 -0
  77. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.di.js +12 -0
  78. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.transform.d.ts +8 -0
  79. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.transform.js +12 -0
  80. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.di.d.ts +8 -0
  81. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.di.js +18 -0
  82. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.transform.d.ts +8 -0
  83. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.transform.js +285 -0
  84. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +5 -17
  85. package/src/executors/ng-packagr-lite/schema.json +1 -1
  86. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +5 -3
  87. package/src/executors/package/ng-packagr-adjustments/ng-packagr.d.ts +3 -0
  88. package/src/executors/package/ng-packagr-adjustments/ng-packagr.js +28 -0
  89. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.d.ts +1 -1
  90. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +13 -6
  91. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.d.ts +5 -10
  92. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +39 -86
  93. package/src/executors/package/package.impl.d.ts +1 -1
  94. package/src/executors/package/package.impl.js +5 -15
  95. package/src/executors/package/schema.json +3 -3
  96. package/src/executors/utilities/buildable-libs.d.ts +6 -0
  97. package/src/executors/{browser-esbuild/lib → utilities}/buildable-libs.js +3 -4
  98. package/src/executors/utilities/esbuild-extensions.d.ts +10 -0
  99. package/src/executors/utilities/esbuild-extensions.js +50 -0
  100. package/src/executors/utilities/module-loader.d.ts +15 -0
  101. package/src/executors/utilities/module-loader.js +52 -0
  102. package/src/executors/utilities/ng-compiler-cli.d.ts +1 -0
  103. package/src/executors/utilities/ng-compiler-cli.js +8 -0
  104. package/src/executors/utilities/ng-packagr/stylesheet-processor.d.ts +49 -0
  105. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.d.ts +2 -0
  106. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +16 -0
  107. package/src/executors/utilities/ng-packagr/stylesheet-processor.js +209 -0
  108. package/src/executors/utilities/ng-packagr/tailwindcss.d.ts +7 -0
  109. package/src/executors/utilities/{tailwindcss.js → ng-packagr/tailwindcss.js} +5 -22
  110. package/src/executors/utilities/patch-builder-context.d.ts +3 -0
  111. package/src/executors/utilities/patch-builder-context.js +41 -0
  112. package/src/executors/utilities/typescript.js +1 -1
  113. package/src/generators/add-linting/add-linting.d.ts +1 -1
  114. package/src/generators/add-linting/add-linting.js +9 -15
  115. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.d.ts +2 -2
  116. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +9 -5
  117. package/src/generators/add-linting/lib/buildable-project.d.ts +2 -0
  118. package/src/generators/add-linting/lib/buildable-project.js +9 -0
  119. package/src/generators/add-linting/lib/create-eslint-configuration.d.ts +2 -2
  120. package/src/generators/add-linting/schema.json +1 -1
  121. package/src/generators/application/application.js +19 -17
  122. package/src/generators/application/files/base/tsconfig.app.json__tpl__ +1 -1
  123. package/src/generators/application/files/base/tsconfig.json__tpl__ +6 -2
  124. package/src/generators/application/files/ng-module/src/app/app.component.spec.ts__tpl__ +3 -1
  125. package/src/generators/application/files/ng-module/src/app/app.component.ts__tpl__ +4 -2
  126. package/src/generators/application/files/ng-module/src/app/app.module.ts__tpl__ +1 -1
  127. package/src/generators/application/files/ng-module/src/app/nx-welcome.component.ts__tpl__ +53 -14
  128. package/src/generators/application/files/ng-module/src/main.ts__tpl__ +2 -8
  129. package/src/generators/application/files/standalone-components/src/app/app.component.spec.ts__tpl__ +6 -4
  130. package/src/generators/application/files/standalone-components/src/app/app.component.ts__tpl__ +4 -2
  131. package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +3 -3
  132. package/src/generators/application/files/standalone-components/src/app/nx-welcome.component.ts__tpl__ +53 -14
  133. package/src/generators/application/files/standalone-components/src/main.ts__tpl__ +4 -8
  134. package/src/generators/application/lib/add-e2e.js +22 -8
  135. package/src/generators/application/lib/add-unit-test-runner.js +5 -20
  136. package/src/generators/application/lib/create-files.js +14 -10
  137. package/src/generators/application/lib/create-project.d.ts +1 -1
  138. package/src/generators/application/lib/create-project.js +48 -38
  139. package/src/generators/application/lib/index.d.ts +1 -0
  140. package/src/generators/application/lib/index.js +1 -0
  141. package/src/generators/application/lib/normalize-options.d.ts +1 -1
  142. package/src/generators/application/lib/normalize-options.js +28 -6
  143. package/src/generators/application/lib/normalized-schema.d.ts +5 -0
  144. package/src/generators/application/lib/set-generator-defaults.d.ts +3 -0
  145. package/src/generators/application/lib/set-generator-defaults.js +17 -0
  146. package/src/generators/application/lib/update-editor-tsconfig.d.ts +1 -1
  147. package/src/generators/application/lib/update-editor-tsconfig.js +11 -14
  148. package/src/generators/application/schema.d.ts +1 -0
  149. package/src/generators/application/schema.json +18 -10
  150. package/src/generators/component/component.js +4 -1
  151. package/src/generators/component/files/__fileName__.spec.ts__tpl__ +2 -3
  152. package/src/generators/component/files/__fileName__.ts__tpl__ +8 -2
  153. package/src/generators/component/lib/component.js +1 -1
  154. package/src/generators/component/lib/index.d.ts +1 -1
  155. package/src/generators/component/lib/index.js +1 -1
  156. package/src/generators/component/lib/normalize-options.js +3 -2
  157. package/src/generators/component/lib/set-generator-defaults.d.ts +3 -0
  158. package/src/generators/component/lib/set-generator-defaults.js +14 -0
  159. package/src/generators/component/schema.d.ts +3 -3
  160. package/src/generators/component/schema.json +4 -4
  161. package/src/generators/component-cypress-spec/files/__componentFileName__.__fileExt__ +13 -8
  162. package/src/generators/component-cypress-spec/schema.json +1 -1
  163. package/src/generators/component-story/files/__componentFileName__.stories.ts__tmpl__ +2 -2
  164. package/src/generators/component-test/component-test.d.ts +1 -1
  165. package/src/generators/component-test/component-test.js +8 -3
  166. package/src/generators/component-test/files/__componentFileName__.cy.ts__tpl__ +9 -11
  167. package/src/generators/component-test/schema.json +1 -1
  168. package/src/generators/convert-to-application-executor/convert-to-application-executor.d.ts +4 -0
  169. package/src/generators/convert-to-application-executor/convert-to-application-executor.js +242 -0
  170. package/src/generators/convert-to-application-executor/schema.d.ts +4 -0
  171. package/src/generators/convert-to-application-executor/schema.json +26 -0
  172. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +3 -1
  173. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +3 -2
  174. package/src/generators/convert-to-with-mf/schema.d.ts +1 -0
  175. package/src/generators/convert-to-with-mf/schema.json +6 -0
  176. package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts +2 -1
  177. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +43 -24
  178. package/src/generators/directive/directive.js +0 -1
  179. package/src/generators/directive/files/__fileName__.ts__tpl__ +1 -3
  180. package/src/generators/directive/lib/index.d.ts +0 -1
  181. package/src/generators/directive/lib/index.js +0 -1
  182. package/src/generators/directive/lib/normalize-options.js +3 -1
  183. package/src/generators/directive/schema.d.ts +3 -3
  184. package/src/generators/directive/schema.json +4 -4
  185. package/src/generators/federate-module/federate-module.js +1 -0
  186. package/src/generators/federate-module/lib/add-remote.d.ts +1 -1
  187. package/src/generators/federate-module/lib/add-remote.js +2 -11
  188. package/src/generators/federate-module/schema.json +3 -3
  189. package/src/generators/host/files/common/v17+/src/main.server.ts__tmpl__ +67 -0
  190. package/src/generators/host/files/ts/webpack.server.config.ts__tmpl__ +2 -2
  191. package/src/generators/host/host.js +8 -9
  192. package/src/generators/host/lib/index.d.ts +1 -1
  193. package/src/generators/host/lib/index.js +1 -1
  194. package/src/generators/host/lib/update-ssr-setup.d.ts +3 -0
  195. package/src/generators/host/lib/{add-ssr.js → update-ssr-setup.js} +8 -14
  196. package/src/generators/host/schema.json +6 -6
  197. package/src/generators/init/init.d.ts +2 -2
  198. package/src/generators/init/init.js +19 -137
  199. package/src/generators/init/schema.d.ts +1 -9
  200. package/src/generators/init/schema.json +8 -59
  201. package/src/generators/library/files/ng-module/src/lib/lib.routes.ts__tpl__ +1 -1
  202. package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +1 -1
  203. package/src/generators/library/lib/add-load-children.js +2 -2
  204. package/src/generators/library/lib/add-project.js +24 -22
  205. package/src/generators/library/lib/add-standalone-component.d.ts +2 -2
  206. package/src/generators/library/lib/add-standalone-component.js +5 -4
  207. package/src/generators/library/lib/normalize-options.js +2 -5
  208. package/src/generators/library/lib/set-generator-defaults.d.ts +3 -0
  209. package/src/generators/library/lib/set-generator-defaults.js +15 -0
  210. package/src/generators/library/lib/update-tsconfig.js +3 -3
  211. package/src/generators/library/library.js +15 -27
  212. package/src/generators/library/schema.d.ts +1 -0
  213. package/src/generators/library/schema.json +13 -13
  214. package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -5
  215. package/src/generators/library-secondary-entry-point/lib/index.d.ts +0 -1
  216. package/src/generators/library-secondary-entry-point/lib/index.js +0 -1
  217. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +3 -2
  218. package/src/generators/library-secondary-entry-point/schema.d.ts +1 -0
  219. package/src/generators/library-secondary-entry-point/schema.json +9 -3
  220. package/src/generators/move/schema.json +1 -1
  221. package/src/generators/ng-add/migrate-from-angular-cli.js +1 -1
  222. package/src/generators/ng-add/migrators/projects/app.migrator.js +50 -7
  223. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +31 -23
  224. package/src/generators/ng-add/ng-add.js +1 -8
  225. package/src/generators/ng-add/schema.json +1 -1
  226. package/src/generators/ng-add/utilities/workspace.d.ts +1 -1
  227. package/src/generators/ng-add/utilities/workspace.js +9 -16
  228. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  229. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  230. package/src/generators/ngrx/lib/generate-files.js +1 -10
  231. package/src/generators/ngrx/lib/validate-options.js +0 -23
  232. package/src/generators/ngrx/schema.json +3 -3
  233. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  234. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  235. package/src/generators/ngrx-feature-store/lib/generate-files.js +1 -12
  236. package/src/generators/ngrx-feature-store/lib/validate-options.js +0 -22
  237. package/src/generators/ngrx-feature-store/schema.json +3 -3
  238. package/src/generators/ngrx-root-store/lib/normalize-options.js +1 -1
  239. package/src/generators/ngrx-root-store/lib/validate-options.js +0 -15
  240. package/src/generators/ngrx-root-store/schema.json +2 -2
  241. package/src/generators/pipe/files/__fileName__.ts__tpl__ +0 -2
  242. package/src/generators/pipe/lib/index.d.ts +0 -1
  243. package/src/generators/pipe/lib/index.js +0 -1
  244. package/src/generators/pipe/lib/normalize-options.js +1 -0
  245. package/src/generators/pipe/pipe.js +0 -1
  246. package/src/generators/pipe/schema.d.ts +3 -3
  247. package/src/generators/pipe/schema.json +4 -4
  248. package/src/generators/remote/files/base-ts/webpack.server.config.ts__tmpl__ +2 -2
  249. package/src/generators/remote/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +1 -3
  250. package/src/generators/remote/files/common/v17+/src/main.server.ts__tmpl__ +73 -0
  251. package/src/generators/remote/lib/index.d.ts +1 -1
  252. package/src/generators/remote/lib/index.js +1 -1
  253. package/src/generators/remote/lib/{add-ssr.d.ts → update-ssr-setup.d.ts} +1 -1
  254. package/src/generators/remote/lib/{add-ssr.js → update-ssr-setup.js} +9 -13
  255. package/src/generators/remote/remote.js +7 -9
  256. package/src/generators/remote/schema.json +6 -6
  257. package/src/generators/scam/lib/convert-component-to-scam.js +2 -1
  258. package/src/generators/scam/schema.d.ts +3 -3
  259. package/src/generators/scam/schema.json +2 -2
  260. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +2 -1
  261. package/src/generators/scam-directive/scam-directive.js +3 -1
  262. package/src/generators/scam-directive/schema.d.ts +4 -3
  263. package/src/generators/scam-directive/schema.json +8 -2
  264. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +2 -1
  265. package/src/generators/scam-pipe/scam-pipe.js +3 -1
  266. package/src/generators/scam-pipe/schema.d.ts +4 -3
  267. package/src/generators/scam-pipe/schema.json +8 -2
  268. package/src/generators/scam-to-standalone/scam-to-standalone.js +0 -7
  269. package/src/generators/scam-to-standalone/schema.json +2 -2
  270. package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +3 -1
  271. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +12 -0
  272. package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +12 -0
  273. package/src/generators/setup-mf/files/ts-webpack/webpack.config.ts__tmpl__ +1 -1
  274. package/src/generators/setup-mf/files/ts-webpack/webpack.prod.config.ts__tmpl__ +12 -12
  275. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +13 -1
  276. package/src/generators/setup-mf/lib/add-cypress-workaround.js +14 -4
  277. package/src/generators/setup-mf/lib/add-remote-entry.js +2 -11
  278. package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -1
  279. package/src/generators/setup-mf/lib/fix-bootstrap.js +10 -18
  280. package/src/generators/setup-mf/lib/generate-config.js +3 -0
  281. package/src/generators/setup-mf/lib/index.d.ts +1 -1
  282. package/src/generators/setup-mf/lib/index.js +1 -1
  283. package/src/generators/setup-mf/lib/normalize-options.js +2 -1
  284. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +10 -10
  285. package/src/generators/setup-mf/lib/setup-serve-target.js +1 -1
  286. package/src/generators/setup-mf/lib/update-host-app-routes.js +2 -2
  287. package/src/generators/{pipe/lib/validate-options.d.ts → setup-mf/lib/update-tsconfig.d.ts} +1 -1
  288. package/src/generators/setup-mf/lib/update-tsconfig.js +19 -0
  289. package/src/generators/setup-mf/schema.d.ts +1 -0
  290. package/src/generators/setup-mf/schema.json +8 -3
  291. package/src/generators/setup-mf/setup-mf.js +1 -7
  292. package/src/generators/setup-ssr/files/ngmodule/base/src/__main__ +1 -1
  293. package/src/generators/setup-ssr/files/server/application-builder/__serverFileName__ +56 -0
  294. package/src/generators/setup-ssr/files/{ngmodule/base → server/server-builder/pre-v17}/__serverFileName__ +7 -8
  295. package/src/generators/setup-ssr/files/{standalone → server/server-builder/v17+}/__serverFileName__ +25 -16
  296. package/src/generators/setup-ssr/lib/add-dependencies.d.ts +2 -0
  297. package/src/generators/setup-ssr/lib/add-dependencies.js +36 -0
  298. package/src/generators/setup-ssr/lib/add-hydration.js +11 -5
  299. package/src/generators/setup-ssr/lib/add-server-file.d.ts +3 -0
  300. package/src/generators/setup-ssr/lib/add-server-file.js +31 -0
  301. package/src/generators/setup-ssr/lib/constants.d.ts +3 -0
  302. package/src/generators/setup-ssr/lib/constants.js +6 -0
  303. package/src/generators/setup-ssr/lib/generate-files.d.ts +1 -1
  304. package/src/generators/setup-ssr/lib/generate-files.js +11 -16
  305. package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts +4 -0
  306. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +29 -0
  307. package/src/generators/setup-ssr/lib/index.d.ts +4 -0
  308. package/src/generators/setup-ssr/lib/index.js +4 -0
  309. package/src/generators/setup-ssr/lib/normalize-options.js +7 -1
  310. package/src/generators/setup-ssr/lib/set-router-initial-navigation.d.ts +3 -0
  311. package/src/generators/setup-ssr/lib/set-router-initial-navigation.js +93 -0
  312. package/src/generators/setup-ssr/lib/update-project-config.d.ts +2 -1
  313. package/src/generators/setup-ssr/lib/update-project-config.js +46 -13
  314. package/src/generators/setup-ssr/lib/validate-options.js +15 -2
  315. package/src/generators/setup-ssr/schema.json +4 -4
  316. package/src/generators/setup-ssr/setup-ssr.js +18 -12
  317. package/src/generators/setup-tailwind/schema.json +1 -1
  318. package/src/generators/stories/schema.json +1 -1
  319. package/src/generators/stories/stories.js +2 -2
  320. package/src/generators/storybook-configuration/lib/generate-stories.js +6 -4
  321. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +3 -1
  322. package/src/generators/storybook-configuration/schema.d.ts +1 -1
  323. package/src/generators/storybook-configuration/schema.json +7 -7
  324. package/src/generators/storybook-configuration/storybook-configuration.js +8 -5
  325. package/src/generators/utils/add-jest.d.ts +8 -0
  326. package/src/generators/utils/add-jest.js +36 -0
  327. package/src/generators/utils/add-mf-env-to-inputs.d.ts +2 -0
  328. package/src/generators/utils/add-mf-env-to-inputs.js +27 -0
  329. package/src/generators/utils/dependencies.js +1 -2
  330. package/src/generators/utils/ensure-angular-dependencies.d.ts +2 -0
  331. package/src/generators/utils/ensure-angular-dependencies.js +35 -0
  332. package/src/generators/utils/export-scam.js +2 -2
  333. package/src/generators/utils/project.d.ts +0 -1
  334. package/src/generators/utils/project.js +2 -29
  335. package/src/generators/utils/selector.d.ts +2 -2
  336. package/src/generators/utils/selector.js +11 -4
  337. package/src/generators/utils/testing.js +24 -1
  338. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.d.ts +2 -0
  339. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.js +23 -0
  340. package/src/generators/utils/update-project-root-tsconfig.d.ts +3 -0
  341. package/src/generators/utils/update-project-root-tsconfig.js +26 -0
  342. package/src/generators/utils/validations.d.ts +0 -1
  343. package/src/generators/utils/validations.js +1 -14
  344. package/src/generators/utils/version-utils.d.ts +2 -2
  345. package/src/generators/utils/version-utils.js +3 -3
  346. package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts +3 -0
  347. package/src/migrations/update-17-1-0/browser-target-to-build-target.js +50 -0
  348. package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts +2 -0
  349. package/src/migrations/update-17-1-0/replace-nguniversal-builders.js +75 -0
  350. package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts +2 -0
  351. package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +183 -0
  352. package/src/migrations/update-17-1-0/update-angular-cli.d.ts +3 -0
  353. package/src/migrations/update-17-1-0/update-angular-cli.js +23 -0
  354. package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts +2 -0
  355. package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +37 -0
  356. package/src/migrations/update-17-2-0/rename-webpack-dev-server.d.ts +2 -0
  357. package/src/migrations/update-17-2-0/rename-webpack-dev-server.js +40 -0
  358. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts +2 -0
  359. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.js +26 -0
  360. package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts +2 -0
  361. package/src/migrations/update-17-3-0/add-browser-sync-dependency.js +26 -0
  362. package/src/migrations/update-17-3-0/update-angular-cli.d.ts +3 -0
  363. package/src/migrations/update-17-3-0/update-angular-cli.js +23 -0
  364. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts +2 -0
  365. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +26 -0
  366. package/src/migrations/update-18-1-0/update-angular-cli.d.ts +3 -0
  367. package/src/migrations/update-18-1-0/update-angular-cli.js +23 -0
  368. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +2 -0
  369. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +53 -0
  370. package/src/migrations/update-18-2-0/update-angular-cli.d.ts +3 -0
  371. package/src/migrations/update-18-2-0/update-angular-cli.js +23 -0
  372. package/src/utils/backward-compatible-versions.d.ts +6 -4
  373. package/src/utils/backward-compatible-versions.js +20 -22
  374. package/src/utils/{public-api.d.ts → index.d.ts} +5 -0
  375. package/src/utils/{public-api.js → index.js} +5 -0
  376. package/src/utils/mf/utils.js +7 -0
  377. package/src/utils/mf/with-module-federation-ssr.js +3 -0
  378. package/src/utils/mf/with-module-federation.js +3 -0
  379. package/src/utils/nx-devkit/ast-utils.js +4 -2
  380. package/src/utils/nx-devkit/testing.js +27 -31
  381. package/src/utils/targets.d.ts +2 -0
  382. package/src/utils/targets.js +17 -0
  383. package/src/utils/version-utils.d.ts +3 -3
  384. package/src/utils/versions.d.ts +9 -11
  385. package/src/utils/versions.js +10 -12
  386. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -5
  387. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +0 -136
  388. package/src/builders/webpack-browser/validate-options.d.ts +0 -2
  389. package/src/builders/webpack-browser/validate-options.js +0 -40
  390. package/src/builders/webpack-dev-server/lib/normalize-options.d.ts +0 -2
  391. package/src/builders/webpack-dev-server/lib/normalize-options.js +0 -14
  392. package/src/builders/webpack-dev-server/schema.d.ts +0 -21
  393. package/src/builders/webpack-dev-server/webpack-dev-server.impl.d.ts +0 -4
  394. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +0 -105
  395. package/src/executors/browser-esbuild/lib/buildable-libs.d.ts +0 -9
  396. package/src/executors/browser-esbuild/lib/validate-options.d.ts +0 -2
  397. package/src/executors/browser-esbuild/lib/validate-options.js +0 -40
  398. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -16
  399. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -175
  400. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -15
  401. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -197
  402. package/src/executors/utilities/tailwindcss.d.ts +0 -7
  403. package/src/generators/application/files/tsconfig.editor.json__tpl__ +0 -5
  404. package/src/generators/application/files/v14/.browserlistrc__tpl__ +0 -16
  405. package/src/generators/application/files/v14/src/environments/environment.prod.ts__tpl__ +0 -3
  406. package/src/generators/application/files/v14/src/environments/environment.ts__tpl__ +0 -16
  407. package/src/generators/application/files/v14/src/polyfills.ts__tpl__ +0 -53
  408. package/src/generators/component/lib/validate-options.d.ts +0 -3
  409. package/src/generators/component/lib/validate-options.js +0 -8
  410. package/src/generators/directive/lib/validate-options.d.ts +0 -3
  411. package/src/generators/directive/lib/validate-options.js +0 -8
  412. package/src/generators/host/lib/add-ssr.d.ts +0 -3
  413. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.d.ts +0 -3
  414. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +0 -15
  415. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  416. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  417. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  418. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  419. package/src/generators/pipe/lib/validate-options.js +0 -8
  420. package/src/generators/setup-mf/lib/set-tsconfig-target.d.ts +0 -3
  421. package/src/generators/setup-mf/lib/set-tsconfig-target.js +0 -16
  422. package/src/generators/setup-ssr/files/ngmodule/v14/src/__main__ +0 -11
  423. package/src/generators/utils/create-ts-config.d.ts +0 -8
  424. package/src/generators/utils/create-ts-config.js +0 -35
  425. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.d.ts +0 -0
  426. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.js +0 -0
  427. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.transform.d.ts +0 -0
  428. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.d.ts +0 -0
  429. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.js +0 -0
  430. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.d.ts +0 -0
  431. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.js +0 -0
  432. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.d.ts +0 -0
  433. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.js +0 -0
  434. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.transform.d.ts +0 -0
  435. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.d.ts +0 -0
  436. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.js +0 -0
  437. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.d.ts +0 -0
  438. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.js +0 -0
  439. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.d.ts +0 -0
  440. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.js +0 -0
  441. /package/src/generators/host/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +0 -0
  442. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  443. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  444. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  445. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  446. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  447. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  448. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  449. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  450. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  451. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  452. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  453. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  454. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  455. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  456. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  457. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  458. /package/src/generators/setup-ssr/files/{base → root}/tsconfig.server.json__tpl__ +0 -0
@@ -0,0 +1,67 @@
1
+ import 'zone.js/node';
2
+
3
+ import { APP_BASE_HREF } from '@angular/common';
4
+ import { CommonEngine } from '@angular/ssr';
5
+ import * as express from 'express';
6
+ import * as cors from 'cors';
7
+ import { existsSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import<% if(standalone) { %> bootstrap <% } else { %> { AppServerModule } <% } %>from './bootstrap.server';
10
+
11
+ // The Express app is exported so that it can be used by serverless Functions.
12
+ export function app(): express.Express {
13
+ const server = express();
14
+ const distFolder = join(process.cwd(), '<%= browserBundleOutput %>');
15
+ const indexHtml = existsSync(join(distFolder, 'index.original.html'))
16
+ ? join(distFolder, 'index.original.html')
17
+ : join(distFolder, 'index.html');
18
+
19
+ server.use(cors());
20
+
21
+ const commonEngine = new CommonEngine();
22
+
23
+ server.set('view engine', 'html');
24
+ server.set('views', distFolder);
25
+
26
+ // Example Express Rest API endpoints
27
+ // server.get('/api/**', (req, res) => { });
28
+ // Serve static files from /browser
29
+ server.get(
30
+ '*.*',
31
+ express.static(distFolder, {
32
+ maxAge: '1y',
33
+ })
34
+ );
35
+
36
+ // All regular routes use the Angular engine
37
+ server.get('*', (req, res, next) => {
38
+ const { protocol, originalUrl, baseUrl, headers } = req;
39
+
40
+ commonEngine
41
+ .render({
42
+ bootstrap<% if (!standalone) { %>: AppServerModule<% } %>,
43
+ documentFilePath: indexHtml,
44
+ url: `${protocol}://${headers.host}${originalUrl}`,
45
+ publicPath: distFolder,
46
+ providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
47
+ })
48
+ .then((html) => res.send(html))
49
+ .catch((err) => next(err));
50
+ });
51
+
52
+ return server;
53
+ }
54
+
55
+ function run(): void {
56
+ const port = process.env['PORT'] || 4000;
57
+
58
+ // Start up the Node server
59
+ const server = app();
60
+ server.listen(port, () => {
61
+ console.log(`Node Express server listening on http://localhost:${port}`);
62
+ });
63
+ }
64
+
65
+ run();
66
+
67
+ export default <% if (standalone) { %>bootstrap<% } else { %>AppServerModule<% } %>;
@@ -1,4 +1,4 @@
1
- import {withModuleFederationForSSR} from '@nx/angular/module-federation';
1
+ import { withModuleFederationForSSR } from '@nx/angular/module-federation';
2
2
  import config from './module-federation.config';
3
3
 
4
- export default withModuleFederationForSSR(config)
4
+ export default withModuleFederationForSSR(config);
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hostInternal = exports.host = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
6
- const semver_1 = require("semver");
7
6
  const test_runners_1 = require("../../utils/test-runners");
8
7
  const application_1 = require("../application/application");
9
8
  const remote_1 = require("../remote/remote");
10
9
  const setup_mf_1 = require("../setup-mf/setup-mf");
11
- const version_utils_1 = require("../utils/version-utils");
12
10
  const lib_1 = require("./lib");
11
+ const add_mf_env_to_inputs_1 = require("../utils/add-mf-env-to-inputs");
13
12
  async function host(tree, options) {
14
13
  return await hostInternal(tree, {
15
14
  projectNameAndRootFormat: 'derived',
@@ -18,12 +17,8 @@ async function host(tree, options) {
18
17
  }
19
18
  exports.host = host;
20
19
  async function hostInternal(tree, schema) {
21
- const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
22
- if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && schema.standalone) {
23
- throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
24
- You can resolve this error by removing the "standalone" option or by migrating to Angular 14.1.0.`);
25
- }
26
20
  const { typescriptConfiguration = true, ...options } = schema;
21
+ options.standalone = options.standalone ?? true;
27
22
  const projects = (0, devkit_1.getProjects)(tree);
28
23
  const remotesToGenerate = [];
29
24
  const remotesToIntegrate = [];
@@ -47,10 +42,11 @@ async function hostInternal(tree, schema) {
47
42
  options.projectNameAndRootFormat = projectNameAndRootFormat;
48
43
  const appInstallTask = await (0, application_1.default)(tree, {
49
44
  ...options,
50
- standalone: options.standalone ?? false,
45
+ standalone: options.standalone,
51
46
  routing: true,
52
47
  port: 4200,
53
48
  skipFormat: true,
49
+ bundler: 'webpack',
54
50
  });
55
51
  const skipE2E = !options.e2eTestRunner || options.e2eTestRunner === test_runners_1.E2eTestRunner.None;
56
52
  await (0, setup_mf_1.setupMf)(tree, {
@@ -66,10 +62,12 @@ async function hostInternal(tree, schema) {
66
62
  e2eProjectName: skipE2E ? undefined : `${hostProjectName}-e2e`,
67
63
  prefix: options.prefix,
68
64
  typescriptConfiguration,
65
+ standalone: options.standalone,
66
+ setParserOptionsProject: options.setParserOptionsProject,
69
67
  });
70
68
  let installTasks = [appInstallTask];
71
69
  if (options.ssr) {
72
- let ssrInstallTask = await (0, lib_1.addSsr)(tree, options, hostProjectName, typescriptConfiguration);
70
+ let ssrInstallTask = await (0, lib_1.updateSsrSetup)(tree, options, hostProjectName, typescriptConfiguration);
73
71
  installTasks.push(ssrInstallTask);
74
72
  }
75
73
  for (const remote of remotesToGenerate) {
@@ -93,6 +91,7 @@ async function hostInternal(tree, schema) {
93
91
  typescriptConfiguration,
94
92
  });
95
93
  }
94
+ (0, add_mf_env_to_inputs_1.addMfEnvToTargetDefaultInputs)(tree);
96
95
  if (!options.skipFormat) {
97
96
  await (0, devkit_1.formatFiles)(tree);
98
97
  }
@@ -1 +1 @@
1
- export * from './add-ssr';
1
+ export * from './update-ssr-setup';
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./add-ssr"), exports);
4
+ tslib_1.__exportStar(require("./update-ssr-setup"), exports);
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nx/devkit';
2
+ import type { Schema } from '../schema';
3
+ export declare function updateSsrSetup(tree: Tree, options: Schema, appName: string, typescriptConfiguration: boolean): Promise<import("@nx/devkit").GeneratorCallback>;
@@ -1,22 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addSsr = void 0;
3
+ exports.updateSsrSetup = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const setup_ssr_1 = require("../../setup-ssr/setup-ssr");
6
- const versions_1 = require("../../../utils/versions");
7
5
  const path_1 = require("path");
8
- async function addSsr(tree, options, appName, typescriptConfiguration) {
6
+ const versions_1 = require("../../../utils/versions");
7
+ const version_utils_1 = require("../../utils/version-utils");
8
+ async function updateSsrSetup(tree, options, appName, typescriptConfiguration) {
9
9
  let project = (0, devkit_1.readProjectConfiguration)(tree, appName);
10
- await (0, setup_ssr_1.default)(tree, {
11
- project: appName,
12
- standalone: options.standalone,
13
- });
14
10
  tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
15
11
  tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
16
- const browserBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'browser');
17
- (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'), project.root, {
12
+ const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
13
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common', angularMajorVersion >= 17 ? 'v17+' : 'pre-v17'), project.root, {
18
14
  appName,
19
- browserBundleOutput,
15
+ browserBundleOutput: project.targets.build.options.outputPath,
20
16
  standalone: options.standalone,
21
17
  tmpl: '',
22
18
  });
@@ -35,12 +31,10 @@ async function addSsr(tree, options, appName, typescriptConfiguration) {
35
31
  (0, devkit_1.updateProjectConfiguration)(tree, appName, project);
36
32
  const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
37
33
  cors: versions_1.corsVersion,
38
- express: versions_1.expressVersion,
39
34
  '@module-federation/node': versions_1.moduleFederationNodeVersion,
40
35
  }, {
41
36
  '@types/cors': versions_1.typesCorsVersion,
42
- '@types/express': versions_1.typesExpressVersion,
43
37
  });
44
38
  return installTask;
45
39
  }
46
- exports.addSsr = addSsr;
40
+ exports.updateSsrSetup = updateSsrSetup;
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxMFHost",
4
4
  "cli": "nx",
5
5
  "title": "Nx Module Federation Host Application",
@@ -55,15 +55,15 @@
55
55
  },
56
56
  {
57
57
  "value": "scss",
58
- "label": "SASS(.scss) [ http://sass-lang.com ]"
58
+ "label": "SASS(.scss) [ https://sass-lang.com ]"
59
59
  },
60
60
  {
61
61
  "value": "sass",
62
- "label": "SASS(.sass) [ http://sass-lang.com ]"
62
+ "label": "SASS(.sass) [ https://sass-lang.com ]"
63
63
  },
64
64
  {
65
65
  "value": "less",
66
- "label": "LESS [ http://lesscss.org ]"
66
+ "label": "LESS [ https://lesscss.org ]"
67
67
  }
68
68
  ]
69
69
  }
@@ -165,8 +165,8 @@
165
165
  },
166
166
  "standalone": {
167
167
  "type": "boolean",
168
- "description": "Whether to generate a host application that uses standalone components. _Note: This is only supported in Angular versions >= 14.1.0_",
169
- "default": false
168
+ "description": "Whether to generate a host application that uses standalone components.",
169
+ "default": true
170
170
  },
171
171
  "ssr": {
172
172
  "description": "Whether to configure SSR for the host application",
@@ -1,4 +1,4 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
1
+ import { type GeneratorCallback, type Tree } from '@nx/devkit';
2
2
  import { Schema } from './schema';
3
- export declare function angularInitGenerator(tree: Tree, rawOptions: Schema): Promise<GeneratorCallback>;
3
+ export declare function angularInitGenerator(tree: Tree, options: Schema): Promise<GeneratorCallback>;
4
4
  export default angularInitGenerator;
@@ -2,151 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.angularInitGenerator = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const jest_1 = require("@nx/jest");
6
- const eslint_1 = require("@nx/eslint");
7
- const js_1 = require("@nx/js");
8
- const test_runners_1 = require("../../utils/test-runners");
9
5
  const version_utils_1 = require("../utils/version-utils");
10
- const versions_1 = require("../../utils/versions");
11
- async function angularInitGenerator(tree, rawOptions) {
12
- const tasks = [];
13
- const options = normalizeOptions(rawOptions);
14
- const pkgVersions = (0, version_utils_1.versions)(tree);
15
- const peerDepsToInstall = ['@angular-devkit/core'];
16
- let devkitVersion;
17
- peerDepsToInstall.forEach((pkg) => {
18
- const packageVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, pkg);
19
- if (!packageVersion) {
20
- devkitVersion ??=
21
- (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular-devkit/build-angular') ??
22
- pkgVersions.angularDevkitVersion;
23
- try {
24
- (0, devkit_1.ensurePackage)(pkg, devkitVersion);
25
- }
26
- catch {
27
- // @schematics/angular cannot be required so this fails but this will still allow wrapping the schematic later on
28
- }
29
- if (!options.skipPackageJson) {
30
- tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, { [pkg]: devkitVersion }));
31
- }
32
- }
33
- });
34
- setDefaults(tree, options);
35
- const jsTask = await (0, js_1.initGenerator)(tree, {
36
- ...options,
37
- tsConfigName: options.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
38
- js: false,
39
- skipFormat: true,
40
- });
41
- tasks.push(jsTask);
42
- if (!options.skipPackageJson) {
43
- tasks.push(updateDependencies(tree, pkgVersions));
44
- }
45
- const unitTestTask = await addUnitTestRunner(tree, options, pkgVersions.jestPresetAngularVersion);
46
- tasks.push(unitTestTask);
47
- const e2eTask = await addE2ETestRunner(tree, options);
48
- tasks.push(e2eTask);
6
+ async function angularInitGenerator(tree, options) {
49
7
  ignoreAngularCacheDirectory(tree);
8
+ const installTask = installAngularDevkitCoreIfMissing(tree, options);
50
9
  if (!options.skipFormat) {
51
10
  await (0, devkit_1.formatFiles)(tree);
52
11
  }
53
- return (0, devkit_1.runTasksInSerial)(...tasks);
12
+ return installTask;
54
13
  }
55
14
  exports.angularInitGenerator = angularInitGenerator;
56
- function normalizeOptions(options) {
57
- return {
58
- e2eTestRunner: options.e2eTestRunner ?? test_runners_1.E2eTestRunner.Cypress,
59
- linter: options.linter ?? eslint_1.Linter.EsLint,
60
- skipFormat: options.skipFormat ?? false,
61
- skipInstall: options.skipInstall ?? false,
62
- skipPackageJson: options.skipPackageJson ?? false,
63
- style: options.style ?? 'css',
64
- unitTestRunner: options.unitTestRunner ?? test_runners_1.UnitTestRunner.Jest,
65
- rootProject: options.rootProject,
66
- };
67
- }
68
- function setDefaults(host, options) {
69
- const nxJson = (0, devkit_1.readNxJson)(host);
70
- nxJson.generators = nxJson.generators || {};
71
- nxJson.generators['@nx/angular:application'] = {
72
- style: options.style,
73
- linter: options.linter,
74
- unitTestRunner: options.unitTestRunner,
75
- e2eTestRunner: options.e2eTestRunner,
76
- ...(nxJson.generators['@nx/angular:application'] || {}),
77
- };
78
- nxJson.generators['@nx/angular:library'] = {
79
- linter: options.linter,
80
- unitTestRunner: options.unitTestRunner,
81
- ...(nxJson.generators['@nx/angular:library'] || {}),
82
- };
83
- nxJson.generators['@nx/angular:component'] = {
84
- style: options.style,
85
- ...(nxJson.generators['@nx/angular:component'] || {}),
86
- };
87
- (0, devkit_1.updateNxJson)(host, nxJson);
88
- }
89
- function updateDependencies(tree, versions) {
90
- const angularVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular/core') ??
91
- versions.angularVersion;
92
- const angularDevkitVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular-devkit/build-angular') ??
93
- versions.angularDevkitVersion;
94
- const rxjsVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'rxjs') ?? versions.rxjsVersion;
95
- const tsLibVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'tslib') ?? versions.tsLibVersion;
96
- const zoneJsVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, 'zone.js') ?? versions.zoneJsVersion;
97
- return (0, version_utils_1.addDependenciesToPackageJsonIfDontExist)(tree, {
98
- '@angular/animations': angularVersion,
99
- '@angular/common': angularVersion,
100
- '@angular/compiler': angularVersion,
101
- '@angular/core': angularVersion,
102
- '@angular/forms': angularVersion,
103
- '@angular/platform-browser': angularVersion,
104
- '@angular/platform-browser-dynamic': angularVersion,
105
- '@angular/router': angularVersion,
106
- rxjs: rxjsVersion,
107
- tslib: tsLibVersion,
108
- 'zone.js': zoneJsVersion,
109
- }, {
110
- '@angular/cli': angularDevkitVersion,
111
- '@angular/compiler-cli': angularVersion,
112
- '@angular/language-service': angularVersion,
113
- '@angular-devkit/build-angular': angularDevkitVersion,
114
- '@angular-devkit/schematics': angularDevkitVersion,
115
- '@schematics/angular': angularDevkitVersion,
116
- });
117
- }
118
- async function addUnitTestRunner(tree, options, jestPresetAngularVersion) {
119
- switch (options.unitTestRunner) {
120
- case test_runners_1.UnitTestRunner.Jest:
121
- if (!options.skipPackageJson) {
122
- process.env.npm_config_legacy_peer_deps ??= 'true';
123
- (0, version_utils_1.addDependenciesToPackageJsonIfDontExist)(tree, {}, {
124
- 'jest-preset-angular': jestPresetAngularVersion,
125
- });
126
- }
127
- return (0, jest_1.jestInitGenerator)(tree, {
128
- skipPackageJson: options.skipPackageJson,
129
- });
130
- default:
131
- return () => { };
132
- }
133
- }
134
- async function addE2ETestRunner(tree, options) {
135
- switch (options.e2eTestRunner) {
136
- case test_runners_1.E2eTestRunner.Cypress:
137
- const { cypressInitGenerator } = (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
138
- return cypressInitGenerator(tree, {
139
- skipPackageJson: options.skipPackageJson,
140
- });
141
- case test_runners_1.E2eTestRunner.Playwright:
142
- const { initGenerator: playwrightInitGenerator } = (0, devkit_1.ensurePackage)('@nx/playwright', versions_1.nxVersion);
143
- return playwrightInitGenerator(tree, {
144
- skipFormat: true,
145
- skipPackageJson: options.skipPackageJson,
146
- });
147
- default:
148
- return () => { };
15
+ function installAngularDevkitCoreIfMissing(tree, options) {
16
+ const packageVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular-devkit/core');
17
+ if (!packageVersion) {
18
+ const pkgVersions = (0, version_utils_1.versions)(tree);
19
+ const devkitVersion = (0, version_utils_1.getInstalledPackageVersion)(tree, '@angular-devkit/build-angular') ??
20
+ pkgVersions.angularDevkitVersion;
21
+ try {
22
+ (0, devkit_1.ensurePackage)('@angular-devkit/core', devkitVersion);
23
+ }
24
+ catch {
25
+ // @schematics/angular cannot be required so this fails but this will still allow wrapping the schematic later on
26
+ }
27
+ if (!options.skipPackageJson) {
28
+ return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { ['@angular-devkit/core']: devkitVersion }, undefined, options.keepExistingVersions);
29
+ }
149
30
  }
31
+ return () => { };
150
32
  }
151
33
  function ignoreAngularCacheDirectory(tree) {
152
34
  const { cli } = (0, devkit_1.readNxJson)(tree);
@@ -1,14 +1,6 @@
1
- import { Linter } from '@nx/eslint';
2
- import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
3
- import type { Styles } from '../utils/types';
4
-
5
1
  export interface Schema {
6
- unitTestRunner?: UnitTestRunner;
7
- e2eTestRunner?: E2eTestRunner;
8
2
  skipFormat?: boolean;
9
3
  skipInstall?: boolean;
10
- style?: Styles;
11
- linter?: Linter;
12
4
  skipPackageJson?: boolean;
13
- rootProject?: boolean;
5
+ keepExistingVersions?: boolean;
14
6
  }
@@ -1,32 +1,11 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "SchematicsAngularModuleInit",
4
4
  "cli": "nx",
5
5
  "title": "Init Angular Plugin",
6
6
  "description": "Initializes the `@nx/angular` plugin. NOTE: Does not work in the `--dry-run` mode.",
7
7
  "type": "object",
8
- "examples": [
9
- {
10
- "command": "nx g @nx/angular:init --style=scss",
11
- "description": "Installs angular dependencies and initializes the `@nx/angular` plugin with the `scss` stylesheet format."
12
- }
13
- ],
14
8
  "properties": {
15
- "unitTestRunner": {
16
- "type": "string",
17
- "enum": ["jest", "none"],
18
- "description": "Test runner to use for unit tests.",
19
- "default": "jest",
20
- "x-priority": "important"
21
- },
22
- "e2eTestRunner": {
23
- "type": "string",
24
- "enum": ["cypress", "playwright", "none"],
25
- "x-prompt": "Which E2E test runner would you like to use?",
26
- "description": "Test runner to use for end to end (e2e) tests.",
27
- "default": "cypress",
28
- "x-priority": "important"
29
- },
30
9
  "skipInstall": {
31
10
  "type": "boolean",
32
11
  "description": "Skip installing after adding `@nx/workspace`.",
@@ -39,47 +18,17 @@
39
18
  "default": false,
40
19
  "x-priority": "internal"
41
20
  },
42
- "linter": {
43
- "description": "The tool to use for running lint checks.",
44
- "type": "string",
45
- "enum": ["eslint", "none"],
46
- "default": "eslint",
47
- "x-priority": "important"
48
- },
49
- "style": {
50
- "description": "The file extension to be used for style files.",
51
- "type": "string",
52
- "default": "css",
53
- "enum": ["css", "scss", "sass", "less"],
54
- "x-prompt": {
55
- "message": "Which stylesheet format would you like to use?",
56
- "type": "list",
57
- "items": [
58
- {
59
- "value": "css",
60
- "label": "CSS"
61
- },
62
- {
63
- "value": "scss",
64
- "label": "SASS(.scss) [ http://sass-lang.com ]"
65
- },
66
- {
67
- "value": "sass",
68
- "label": "SASS(.sass) [ http://sass-lang.com ]"
69
- },
70
- {
71
- "value": "less",
72
- "label": "LESS [ http://lesscss.org ]"
73
- }
74
- ]
75
- }
76
- },
77
21
  "skipPackageJson": {
78
22
  "type": "boolean",
79
23
  "default": false,
80
24
  "description": "Do not add dependencies to `package.json`.",
81
25
  "x-priority": "internal"
26
+ },
27
+ "keepExistingVersions": {
28
+ "type": "boolean",
29
+ "x-priority": "internal",
30
+ "description": "Keep existing dependencies versions",
31
+ "default": false
82
32
  }
83
- },
84
- "additionalProperties": false
33
+ }
85
34
  }
@@ -1,5 +1,5 @@
1
1
  import { Route } from '@angular/router';
2
2
 
3
3
  export const <%= libPropertyName %>Routes: Route[] = [
4
- /* {path: '', pathMatch: 'full', component: InsertYourComponentHere} */
4
+ /* { path: '', pathMatch: 'full', component: InsertYourComponentHere } */
5
5
  ];
@@ -2,5 +2,5 @@ import { Route } from '@angular/router';
2
2
  import { <%= libClassName %>Component } from './<%= pathToComponent %>.component';
3
3
 
4
4
  export const <%= libPropertyName %>Routes: Route[] = [
5
- {path: '', component: <%= libClassName %>Component}
5
+ { path: '', component: <%= libClassName %>Component }
6
6
  ];
@@ -14,9 +14,9 @@ function addLoadChildren(tree, options) {
14
14
  }
15
15
  const moduleSource = tree.read(options.parent, 'utf-8');
16
16
  const sourceFile = tsModule.createSourceFile(options.parent, moduleSource, tsModule.ScriptTarget.Latest, true);
17
- const route = `{path: '${(0, devkit_1.names)(options.fileName).fileName}', loadChildren: () => import('${options.importPath}').then(m => m.${options.standalone
17
+ const route = `{ path: '${(0, devkit_1.names)(options.fileName).fileName}', loadChildren: () => import('${options.importPath}').then(m => m.${options.standalone
18
18
  ? `${(0, devkit_1.names)(options.name).propertyName}Routes`
19
- : options.moduleName})}`;
19
+ : options.moduleName}) }`;
20
20
  (0, route_utils_1.addRoute)(tree, options.parent, route);
21
21
  }
22
22
  exports.addLoadChildren = addLoadChildren;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addProject = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const add_build_target_defaults_1 = require("@nx/devkit/src/generators/add-build-target-defaults");
5
6
  function addProject(tree, libraryOptions) {
6
7
  const project = {
7
8
  name: libraryOptions.name,
@@ -10,29 +11,30 @@ function addProject(tree, libraryOptions) {
10
11
  prefix: libraryOptions.prefix,
11
12
  tags: libraryOptions.parsedTags,
12
13
  projectType: 'library',
13
- targets: {
14
- build: libraryOptions.buildable || libraryOptions.publishable
15
- ? {
16
- executor: libraryOptions.publishable
17
- ? '@nx/angular:package'
18
- : '@nx/angular:ng-packagr-lite',
19
- outputs: ['{workspaceRoot}/dist/{projectRoot}'],
20
- options: {
21
- project: `${libraryOptions.projectRoot}/ng-package.json`,
22
- },
23
- configurations: {
24
- production: {
25
- tsConfig: `${libraryOptions.projectRoot}/tsconfig.lib.prod.json`,
26
- },
27
- development: {
28
- tsConfig: `${libraryOptions.projectRoot}/tsconfig.lib.json`,
29
- },
30
- },
31
- defaultConfiguration: 'production',
32
- }
33
- : undefined,
34
- },
14
+ targets: {},
35
15
  };
16
+ if (libraryOptions.buildable || libraryOptions.publishable) {
17
+ const executor = libraryOptions.publishable
18
+ ? '@nx/angular:package'
19
+ : '@nx/angular:ng-packagr-lite';
20
+ (0, add_build_target_defaults_1.addBuildTargetDefaults)(tree, executor);
21
+ project.targets.build = {
22
+ executor,
23
+ outputs: ['{workspaceRoot}/dist/{projectRoot}'],
24
+ options: {
25
+ project: `${libraryOptions.projectRoot}/ng-package.json`,
26
+ },
27
+ configurations: {
28
+ production: {
29
+ tsConfig: `${libraryOptions.projectRoot}/tsconfig.lib.prod.json`,
30
+ },
31
+ development: {
32
+ tsConfig: `${libraryOptions.projectRoot}/tsconfig.lib.json`,
33
+ },
34
+ },
35
+ defaultConfiguration: 'production',
36
+ };
37
+ }
36
38
  (0, devkit_1.addProjectConfiguration)(tree, libraryOptions.name, project);
37
39
  return project;
38
40
  }
@@ -1,3 +1,3 @@
1
- import { Tree } from 'nx/src/generators/tree';
2
- import { NormalizedSchema } from './normalized-schema';
1
+ import { type Tree } from '@nx/devkit';
2
+ import type { NormalizedSchema } from './normalized-schema';
3
3
  export declare function addStandaloneComponent(tree: Tree, { libraryOptions, componentOptions }: NormalizedSchema): Promise<void>;
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addStandaloneComponent = void 0;
4
+ const devkit_1 = require("@nx/devkit");
4
5
  const component_1 = require("../../component/component");
5
- const add_load_children_1 = require("./add-load-children");
6
6
  const add_children_1 = require("./add-children");
7
+ const add_load_children_1 = require("./add-load-children");
7
8
  async function addStandaloneComponent(tree, { libraryOptions, componentOptions }) {
8
- await (0, component_1.default)(tree, {
9
+ await (0, component_1.componentGenerator)(tree, {
9
10
  ...componentOptions,
10
11
  name: componentOptions.name,
12
+ directory: (0, devkit_1.joinPathFragments)(libraryOptions.projectRoot, 'src', 'lib', componentOptions.flat ? '' : componentOptions.name),
13
+ nameAndDirectoryFormat: 'as-provided',
11
14
  standalone: true,
12
15
  export: true,
13
- project: libraryOptions.name,
14
- flat: componentOptions.flat,
15
16
  skipFormat: true,
16
17
  });
17
18
  if (libraryOptions.routing) {