@nx/angular 17.0.3 → 17.0.4

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 +9 -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 +115 -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
@@ -51,13 +51,16 @@ async function createStorybookTestWorkspaceForLib(libName) {
51
51
  linter: eslint_1.Linter.EsLint,
52
52
  publishable: false,
53
53
  simpleName: false,
54
- skipFormat: false,
54
+ skipFormat: true,
55
55
  unitTestRunner: test_runners_1.UnitTestRunner.Jest,
56
56
  projectNameAndRootFormat: 'as-provided',
57
+ standalone: false,
57
58
  });
58
59
  await (0, component_1.componentGenerator)(tree, {
59
60
  name: 'test-button',
60
61
  project: libName,
62
+ standalone: false,
63
+ skipFormat: true,
61
64
  });
62
65
  tree.write(`${libName}/src/lib/test-button/test-button.component.ts`, `import { Component, Input } from '@angular/core';
63
66
 
@@ -88,6 +91,8 @@ export class TestButtonComponent {
88
91
  project: libName,
89
92
  path: `${libName}/src/lib/barrel`,
90
93
  module: 'barrel',
94
+ standalone: false,
95
+ skipFormat: true,
91
96
  });
92
97
  tree.write(`${libName}/src/lib/barrel/barrel-button/index.ts`, `export * from './barrel-button.component';`);
93
98
  tree.write(`${libName}/src/lib/barrel/barrel.module.ts`, `import { NgModule } from '@angular/core';
@@ -109,12 +114,16 @@ export class BarrelModule {}`);
109
114
  project: libName,
110
115
  path: `${libName}/src/lib/variable-declare`,
111
116
  module: 'variable-declare',
117
+ standalone: false,
118
+ skipFormat: true,
112
119
  });
113
120
  await (0, component_1.componentGenerator)(tree, {
114
121
  name: 'variable-declare-view',
115
122
  project: libName,
116
123
  path: `${libName}/src/lib/variable-declare`,
117
124
  module: 'variable-declare',
125
+ standalone: false,
126
+ skipFormat: true,
118
127
  });
119
128
  tree.write(`${libName}/src/lib/variable-declare/variable-declare.module.ts`, `import { NgModule } from '@angular/core';
120
129
  import { CommonModule } from '@angular/common';
@@ -142,18 +151,24 @@ export class VariableDeclareModule {}`);
142
151
  project: libName,
143
152
  path: `${libName}/src/lib/variable-spread-declare`,
144
153
  module: 'variable-spread-declare',
154
+ standalone: false,
155
+ skipFormat: true,
145
156
  });
146
157
  await (0, component_1.componentGenerator)(tree, {
147
158
  name: 'variable-spread-declare-view',
148
159
  project: libName,
149
160
  path: `${libName}/src/lib/variable-spread-declare`,
150
161
  module: 'variable-spread-declare',
162
+ standalone: false,
163
+ skipFormat: true,
151
164
  });
152
165
  await (0, component_1.componentGenerator)(tree, {
153
166
  name: 'variable-spread-declare-anotherview',
154
167
  project: libName,
155
168
  path: `${libName}/src/lib/variable-spread-declare`,
156
169
  module: 'variable-spread-declare',
170
+ standalone: false,
171
+ skipFormat: true,
157
172
  });
158
173
  tree.write(`${libName}/src/lib/variable-spread-declare/variable-spread-declare.module.ts`, `import { NgModule } from '@angular/core';
159
174
  import { CommonModule } from '@angular/common';
@@ -181,12 +196,16 @@ export class VariableSpreadDeclareModule {}`);
181
196
  project: libName,
182
197
  path: `${libName}/src/lib/static-member-declarations`,
183
198
  module: 'static-member-declarations',
199
+ standalone: false,
200
+ skipFormat: true,
184
201
  });
185
202
  await (0, component_1.componentGenerator)(tree, {
186
203
  name: 'cmp2',
187
204
  project: libName,
188
205
  path: `${libName}/src/lib/static-member-declarations`,
189
206
  module: 'static-member-declarations',
207
+ standalone: false,
208
+ skipFormat: true,
190
209
  });
191
210
  tree.write(`${libName}/src/lib/static-member-declarations/static-member-declarations.module.ts`, `import { NgModule } from '@angular/core';
192
211
  import { CommonModule } from '@angular/common';
@@ -212,10 +231,14 @@ export class StaticMemberDeclarationsModule {
212
231
  project: libName,
213
232
  module: 'nested',
214
233
  path: `${libName}/src/lib/nested`,
234
+ standalone: false,
235
+ skipFormat: true,
215
236
  });
216
237
  await (0, component_1.componentGenerator)(tree, {
217
238
  name: 'test-other',
218
239
  project: libName,
240
+ standalone: false,
241
+ skipFormat: true,
219
242
  });
220
243
  return tree;
221
244
  }
@@ -0,0 +1,2 @@
1
+ import { type ProjectConfiguration, type Tree } from '@nx/devkit';
2
+ export declare function updateAppEditorTsConfigExcludedFiles(tree: Tree, projectConfig: ProjectConfiguration): void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateAppEditorTsConfigExcludedFiles = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ function updateAppEditorTsConfigExcludedFiles(tree, projectConfig) {
6
+ if (projectConfig.projectType !== 'application') {
7
+ return;
8
+ }
9
+ const editorTsConfigPath = (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.editor.json');
10
+ const appTsConfigPath = (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.app.json');
11
+ if (!tree.exists(editorTsConfigPath) || !tree.exists(appTsConfigPath)) {
12
+ return;
13
+ }
14
+ const appTsConfig = (0, devkit_1.readJson)(tree, appTsConfigPath);
15
+ (0, devkit_1.updateJson)(tree, editorTsConfigPath, (json) => {
16
+ const exclude = [...(json.exclude ?? []), ...(appTsConfig.exclude ?? [])];
17
+ if (exclude.length) {
18
+ json.exclude = Array.from(new Set(exclude));
19
+ }
20
+ return json;
21
+ });
22
+ }
23
+ exports.updateAppEditorTsConfigExcludedFiles = updateAppEditorTsConfigExcludedFiles;
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export { extractTsConfigBase } from '@nx/js';
3
+ export declare function updateProjectRootTsConfig(host: Tree, projectRoot: string, relativePathToRootTsConfig: string, isRootProject?: boolean): void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProjectRootTsConfig = exports.extractTsConfigBase = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const js_1 = require("@nx/js");
6
+ var js_2 = require("@nx/js");
7
+ Object.defineProperty(exports, "extractTsConfigBase", { enumerable: true, get: function () { return js_2.extractTsConfigBase; } });
8
+ function updateProjectRootTsConfig(host, projectRoot, relativePathToRootTsConfig, isRootProject) {
9
+ (0, devkit_1.updateJson)(host, `${projectRoot}/tsconfig.json`, (json) => {
10
+ if (isRootProject) {
11
+ // inline tsconfig.base.json into the project
12
+ json.compileOnSave = false;
13
+ json.compilerOptions = {
14
+ ...js_1.tsConfigBaseOptions,
15
+ ...json.compilerOptions,
16
+ };
17
+ json.exclude = ['node_modules', 'tmp'];
18
+ delete json.extends;
19
+ }
20
+ else {
21
+ json.extends = relativePathToRootTsConfig;
22
+ }
23
+ return json;
24
+ });
25
+ }
26
+ exports.updateProjectRootTsConfig = updateProjectRootTsConfig;
@@ -1,3 +1,2 @@
1
1
  import type { Tree } from '@nx/devkit';
2
2
  export declare function validateProject(tree: Tree, projectName: string): void;
3
- export declare function validateStandaloneOption(tree: Tree, standalone: boolean | undefined, angularVersion?: string): void;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateStandaloneOption = exports.validateProject = void 0;
3
+ exports.validateProject = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const semver_1 = require("semver");
6
- const version_utils_1 = require("./version-utils");
7
5
  function validateProject(tree, projectName) {
8
6
  const projects = (0, devkit_1.getProjects)(tree);
9
7
  if (!projects.has(projectName)) {
@@ -11,14 +9,3 @@ function validateProject(tree, projectName) {
11
9
  }
12
10
  }
13
11
  exports.validateProject = validateProject;
14
- function validateStandaloneOption(tree, standalone, angularVersion) {
15
- if (!standalone) {
16
- return;
17
- }
18
- const installedAngularVersion = angularVersion ?? (0, version_utils_1.getInstalledAngularVersionInfo)(tree).version;
19
- if ((0, semver_1.lt)(installedAngularVersion, '14.1.0')) {
20
- throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using "${installedAngularVersion}".
21
- You can resolve this error by removing the "standalone" option or by migrating to Angular 14.1.0.`);
22
- }
23
- }
24
- exports.validateStandaloneOption = validateStandaloneOption;
@@ -1,5 +1,5 @@
1
1
  import type { GeneratorCallback, Tree } from '@nx/devkit';
2
- import * as latestVersions from '../../utils/versions';
2
+ import { type PackageCompatVersions, type PackageLatestVersions } from '../../utils/backward-compatible-versions';
3
3
  export declare function getInstalledAngularVersion(tree: Tree): string;
4
4
  export declare function getInstalledAngularMajorVersion(tree: Tree): number;
5
5
  export declare function getInstalledAngularVersionInfo(tree: Tree): {
@@ -12,4 +12,4 @@ export declare function getInstalledPackageVersionInfo(tree: Tree, pkgName: stri
12
12
  version: string;
13
13
  };
14
14
  export declare function addDependenciesToPackageJsonIfDontExist(tree: Tree, dependencies: Record<string, string>, devDependencies: Record<string, string>, packageJsonPath?: string): GeneratorCallback;
15
- export declare function versions(tree: Tree): typeof latestVersions | import("../../utils/backward-compatible-versions").PackageVersions;
15
+ export declare function versions(tree: Tree): PackageLatestVersions | PackageCompatVersions;
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.versions = exports.addDependenciesToPackageJsonIfDontExist = exports.getInstalledPackageVersionInfo = exports.getInstalledPackageVersion = exports.getInstalledAngularVersionInfo = exports.getInstalledAngularMajorVersion = exports.getInstalledAngularVersion = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const semver_1 = require("semver");
6
+ const backward_compatible_versions_1 = require("../../utils/backward-compatible-versions");
6
7
  const latestVersions = require("../../utils/versions");
7
8
  const versions_1 = require("../../utils/versions");
8
- const backward_compatible_versions_1 = require("../../utils/backward-compatible-versions");
9
9
  function getInstalledAngularVersion(tree) {
10
10
  const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
11
11
  const installedAngularVersion = pkgJson.dependencies && pkgJson.dependencies['@angular/core'];
@@ -55,10 +55,10 @@ exports.addDependenciesToPackageJsonIfDontExist = addDependenciesToPackageJsonIf
55
55
  function versions(tree) {
56
56
  const majorAngularVersion = getInstalledAngularMajorVersion(tree);
57
57
  switch (majorAngularVersion) {
58
- case 14:
59
- return backward_compatible_versions_1.backwardCompatibleVersions.angularV14;
60
58
  case 15:
61
59
  return backward_compatible_versions_1.backwardCompatibleVersions.angularV15;
60
+ case 16:
61
+ return backward_compatible_versions_1.backwardCompatibleVersions.angularV16;
62
62
  default:
63
63
  return latestVersions;
64
64
  }
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export declare const executors: string[];
3
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executors = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
6
+ exports.executors = [
7
+ '@angular-devkit/build-angular:dev-server',
8
+ '@angular-devkit/build-angular:extract-i18n',
9
+ '@nx/angular:module-federation-dev-server',
10
+ '@nx/angular:webpack-dev-server',
11
+ ];
12
+ async function default_1(tree) {
13
+ // update options from project configs
14
+ exports.executors.forEach((executor) => {
15
+ (0, executor_options_utils_1.forEachExecutorOptions)(tree, executor, (_, project, target, configuration) => {
16
+ const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, project);
17
+ const config = configuration
18
+ ? projectConfiguration.targets[target].configurations[configuration]
19
+ : projectConfiguration.targets[target].options;
20
+ updateConfig(config);
21
+ (0, devkit_1.updateProjectConfiguration)(tree, project, projectConfiguration);
22
+ });
23
+ });
24
+ // update options from nx.json target defaults
25
+ const nxJson = (0, devkit_1.readNxJson)(tree);
26
+ if (!nxJson.targetDefaults) {
27
+ return;
28
+ }
29
+ for (const [targetOrExecutor, targetConfig] of Object.entries(nxJson.targetDefaults)) {
30
+ if (!exports.executors.includes(targetOrExecutor) &&
31
+ !exports.executors.includes(targetConfig.executor)) {
32
+ continue;
33
+ }
34
+ if (targetConfig.options) {
35
+ updateConfig(targetConfig.options);
36
+ }
37
+ Object.values(targetConfig.configurations ?? {}).forEach((config) => {
38
+ updateConfig(config);
39
+ });
40
+ }
41
+ (0, devkit_1.updateNxJson)(tree, nxJson);
42
+ await (0, devkit_1.formatFiles)(tree);
43
+ }
44
+ exports.default = default_1;
45
+ function updateConfig(config) {
46
+ if (config.browserTarget) {
47
+ config.buildTarget ??= config.browserTarget;
48
+ delete config.browserTarget;
49
+ }
50
+ }
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ async function default_1(tree) {
5
+ const projects = (0, devkit_1.getProjects)(tree);
6
+ for (const [, project] of projects) {
7
+ if (project.projectType !== 'application') {
8
+ continue;
9
+ }
10
+ for (const target of Object.values(project.targets ?? {})) {
11
+ if (target.executor === '@nguniversal/builders:ssr-dev-server') {
12
+ target.executor = '@angular-devkit/build-angular:ssr-dev-server';
13
+ }
14
+ else if (target.executor === '@nguniversal/builders:prerender') {
15
+ target.executor = '@angular-devkit/build-angular:prerender';
16
+ updatePrerenderOptions(target);
17
+ }
18
+ }
19
+ (0, devkit_1.updateProjectConfiguration)(tree, project.name, project);
20
+ }
21
+ // update options from nx.json target defaults
22
+ const nxJson = (0, devkit_1.readNxJson)(tree);
23
+ if (!nxJson.targetDefaults) {
24
+ return;
25
+ }
26
+ for (const [targetOrExecutor, targetConfig] of Object.entries(nxJson.targetDefaults)) {
27
+ if (targetOrExecutor === '@nguniversal/builders:ssr-dev-server') {
28
+ nxJson.targetDefaults['@angular-devkit/build-angular:ssr-dev-server'] =
29
+ targetConfig;
30
+ delete nxJson.targetDefaults['@nguniversal/builders:ssr-dev-server'];
31
+ }
32
+ else if (targetOrExecutor === '@nguniversal/builders:prerender') {
33
+ nxJson.targetDefaults['@angular-devkit/build-angular:prerender'] =
34
+ targetConfig;
35
+ delete nxJson.targetDefaults['@nguniversal/builders:prerender'];
36
+ updatePrerenderOptions(targetConfig);
37
+ }
38
+ else if (targetConfig.executor === '@nguniversal/builders:ssr-dev-server') {
39
+ targetConfig.executor = '@angular-devkit/build-angular:ssr-dev-server';
40
+ }
41
+ else if (targetConfig.executor === '@nguniversal/builders:prerender') {
42
+ targetConfig.executor = '@angular-devkit/build-angular:prerender';
43
+ updatePrerenderOptions(targetConfig);
44
+ }
45
+ }
46
+ (0, devkit_1.updateNxJson)(tree, nxJson);
47
+ // remove @nguniversal/builders from package.json
48
+ (0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@nguniversal/builders'], ['@nguniversal/builders']);
49
+ await (0, devkit_1.formatFiles)(tree);
50
+ }
51
+ exports.default = default_1;
52
+ function* allTargetOptions(target) {
53
+ if (target.options) {
54
+ yield [undefined, target.options];
55
+ }
56
+ if (!target.configurations) {
57
+ return;
58
+ }
59
+ for (const [name, options] of Object.entries(target.configurations)) {
60
+ if (options !== undefined) {
61
+ yield [name, options];
62
+ }
63
+ }
64
+ }
65
+ function updatePrerenderOptions(config) {
66
+ for (const [, options] of allTargetOptions(config)) {
67
+ if (options.guessRoutes !== undefined) {
68
+ options.discoverRoutes = options.guessRoutes;
69
+ delete options.guessRoutes;
70
+ }
71
+ if (options.numProcesses !== undefined) {
72
+ delete options.numProcesses;
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const path_1 = require("path");
5
+ const version_utils_1 = require("../../generators/utils/version-utils");
6
+ const targets_1 = require("../../utils/targets");
7
+ const projects_1 = require("../utils/projects");
8
+ const UNIVERSAL_PACKAGES = [
9
+ '@nguniversal/common',
10
+ '@nguniversal/express-engine',
11
+ ];
12
+ /**
13
+ * Regexp to match Universal packages.
14
+ * @nguniversal/common/engine
15
+ * @nguniversal/common
16
+ * @nguniversal/express-engine
17
+ **/
18
+ const NGUNIVERSAL_PACKAGE_REGEXP = /@nguniversal\/(common(\/engine)?|express-engine)/g;
19
+ const serverExecutors = [
20
+ '@angular-devkit/build-angular:server',
21
+ '@nx/angular:webpack-server',
22
+ ];
23
+ async function default_1(tree) {
24
+ const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
25
+ if (!UNIVERSAL_PACKAGES.some((pkg) => packageJson.dependencies?.[pkg] || packageJson.devDependencies?.[pkg])) {
26
+ return;
27
+ }
28
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
29
+ 'npm:@nguniversal/common',
30
+ 'npm:@nguniversal/express-engine',
31
+ ]);
32
+ for (const { project } of projects) {
33
+ if (project.projectType !== 'application') {
34
+ continue;
35
+ }
36
+ const serverMainFiles = new Map();
37
+ for (const target of Object.values(project.targets ?? {})) {
38
+ if (!serverExecutors.includes(target.executor)) {
39
+ continue;
40
+ }
41
+ const outputPath = project.targets.build?.options?.outputPath;
42
+ for (const [, { main }] of (0, targets_1.allTargetOptions)(target)) {
43
+ if (typeof main === 'string' &&
44
+ typeof outputPath === 'string' &&
45
+ tree.read(main, 'utf-8').includes('ngExpressEngine')) {
46
+ serverMainFiles.set(main, outputPath);
47
+ }
48
+ }
49
+ }
50
+ // Replace all import specifiers in all files.
51
+ let hasExpressTokens = false;
52
+ const root = project.sourceRoot ?? `${project.root}/src`;
53
+ const tokensFilePath = `${root}/express.tokens.ts`;
54
+ (0, devkit_1.visitNotIgnoredFiles)(tree, root, (path) => {
55
+ if (!path.endsWith('.ts') || path.endsWith('.d.ts')) {
56
+ return;
57
+ }
58
+ let content = tree.read(path, 'utf8');
59
+ if (!content.includes('@nguniversal/')) {
60
+ return;
61
+ }
62
+ // Check if file is importing tokens
63
+ if (content.includes('@nguniversal/express-engine/tokens')) {
64
+ hasExpressTokens ||= true;
65
+ let tokensFileRelativePath = (0, devkit_1.normalizePath)((0, path_1.relative)((0, path_1.dirname)(path), tokensFilePath));
66
+ if (tokensFileRelativePath.charAt(0) !== '.') {
67
+ tokensFileRelativePath = './' + tokensFileRelativePath;
68
+ }
69
+ content = content.replaceAll('@nguniversal/express-engine/tokens', tokensFileRelativePath.slice(0, -3));
70
+ }
71
+ content = content.replaceAll(NGUNIVERSAL_PACKAGE_REGEXP, '@angular/ssr');
72
+ tree.write(path, content);
73
+ });
74
+ // Replace server file and add tokens file if needed
75
+ for (const [path, outputPath] of serverMainFiles.entries()) {
76
+ tree.rename(path, path + '.bak');
77
+ tree.write(path, getServerFileContents(outputPath, hasExpressTokens));
78
+ if (hasExpressTokens) {
79
+ tree.write(tokensFilePath, TOKENS_FILE_CONTENT);
80
+ }
81
+ }
82
+ }
83
+ // Remove universal packages from deps
84
+ for (const name of UNIVERSAL_PACKAGES) {
85
+ (0, devkit_1.removeDependenciesFromPackageJson)(tree, [name], [name]);
86
+ }
87
+ const pkgVersions = (0, version_utils_1.versions)(tree);
88
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {
89
+ '@angular/ssr': (0, version_utils_1.getInstalledPackageVersionInfo)(tree, '@angular-devkit/build-angular')
90
+ ?.version ?? pkgVersions.angularDevkitVersion,
91
+ }, {});
92
+ await (0, devkit_1.formatFiles)(tree);
93
+ }
94
+ exports.default = default_1;
95
+ const TOKENS_FILE_CONTENT = `
96
+ import { InjectionToken } from '@angular/core';
97
+ import { Request, Response } from 'express';
98
+
99
+ export const REQUEST = new InjectionToken<Request>('REQUEST');
100
+ export const RESPONSE = new InjectionToken<Response>('RESPONSE');
101
+ `;
102
+ function getServerFileContents(outputPath, hasExpressTokens) {
103
+ return (`
104
+ import 'zone.js/node';
105
+
106
+ import { APP_BASE_HREF } from '@angular/common';
107
+ import { CommonEngine } from '@angular/ssr';
108
+ import * as express from 'express';
109
+ import { existsSync } from 'node:fs';
110
+ import { join } from 'node:path';
111
+ import bootstrap from './src/main.server';` +
112
+ (hasExpressTokens
113
+ ? `\nimport { REQUEST, RESPONSE } from './src/express.tokens';`
114
+ : '') +
115
+ `
116
+
117
+ // The Express app is exported so that it can be used by serverless Functions.
118
+ export function app(): express.Express {
119
+ const server = express();
120
+ const distFolder = join(process.cwd(), '${outputPath}');
121
+ const indexHtml = existsSync(join(distFolder, 'index.original.html'))
122
+ ? join(distFolder, 'index.original.html')
123
+ : join(distFolder, 'index.html');
124
+
125
+ const commonEngine = new CommonEngine();
126
+
127
+ server.set('view engine', 'html');
128
+ server.set('views', distFolder);
129
+
130
+ // Example Express Rest API endpoints
131
+ // server.get('/api/**', (req, res) => { });
132
+ // Serve static files from /browser
133
+ server.get('*.*', express.static(distFolder, {
134
+ maxAge: '1y'
135
+ }));
136
+
137
+ // All regular routes use the Angular engine
138
+ server.get('*', (req, res, next) => {
139
+ const { protocol, originalUrl, baseUrl, headers } = req;
140
+
141
+ commonEngine
142
+ .render({
143
+ bootstrap,
144
+ documentFilePath: indexHtml,
145
+ url: \`\${protocol}://\${headers.host}\${originalUrl}\`,
146
+ publicPath: distFolder,
147
+ providers: [
148
+ { provide: APP_BASE_HREF, useValue: baseUrl },` +
149
+ (hasExpressTokens
150
+ ? '\n { provide: RESPONSE, useValue: res },\n { provide: REQUEST, useValue: req }\n'
151
+ : '') +
152
+ `],
153
+ })
154
+ .then((html) => res.send(html))
155
+ .catch((err) => next(err));
156
+ });
157
+
158
+ return server;
159
+ }
160
+
161
+ function run(): void {
162
+ const port = process.env['PORT'] || 4000;
163
+
164
+ // Start up the Node server
165
+ const server = app();
166
+ server.listen(port, () => {
167
+ console.log(\`Node Express server listening on http://localhost:\${port}\`);
168
+ });
169
+ }
170
+
171
+ // Webpack will replace 'require' with '__webpack_require__'
172
+ // '__non_webpack_require__' is a proxy to Node 'require'
173
+ // The below code is to ensure that the server is run only when not requiring the bundle.
174
+ declare const __non_webpack_require__: NodeRequire;
175
+ const mainModule = __non_webpack_require__.main;
176
+ const moduleFilename = mainModule && mainModule.filename || '';
177
+ if (moduleFilename === __filename || moduleFilename.includes('iisnode')) {
178
+ run();
179
+ }
180
+
181
+ export default bootstrap;
182
+ `);
183
+ }
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare const angularCliVersion = "~17.0.0";
3
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.angularCliVersion = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ exports.angularCliVersion = '~17.0.0';
6
+ async function default_1(tree) {
7
+ let shouldFormat = false;
8
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
9
+ if (json.devDependencies?.['@angular/cli']) {
10
+ json.devDependencies['@angular/cli'] = exports.angularCliVersion;
11
+ shouldFormat = true;
12
+ }
13
+ else if (json.dependencies?.['@angular/cli']) {
14
+ json.dependencies['@angular/cli'] = exports.angularCliVersion;
15
+ shouldFormat = true;
16
+ }
17
+ return json;
18
+ });
19
+ if (shouldFormat) {
20
+ await (0, devkit_1.formatFiles)(tree);
21
+ }
22
+ }
23
+ exports.default = default_1;
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const projects_1 = require("../utils/projects");
5
+ async function default_1(tree) {
6
+ const angularProjects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
7
+ 'npm:@angular/core',
8
+ ]);
9
+ if (!angularProjects.length) {
10
+ return;
11
+ }
12
+ const zoneJsImportRegex = /(['"`])zone\.js\/dist\/zone(['"`])/g;
13
+ const zoneJsTestingImportRegex = /(['"`])zone\.js\/dist\/zone-testing(['"`])/g;
14
+ for (const { project } of angularProjects) {
15
+ (0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (file) => {
16
+ // we are only interested in .ts files
17
+ if (!file.endsWith('.ts')) {
18
+ return;
19
+ }
20
+ let content = tree.read(file, 'utf-8');
21
+ let wasUpdated = false;
22
+ if (zoneJsImportRegex.test(content)) {
23
+ content = content.replace(zoneJsImportRegex, '$1zone.js$2');
24
+ wasUpdated = true;
25
+ }
26
+ if (zoneJsTestingImportRegex.test(content)) {
27
+ content = content.replace(zoneJsTestingImportRegex, '$1zone.js/testing$2');
28
+ wasUpdated = true;
29
+ }
30
+ if (wasUpdated) {
31
+ tree.write(file, content);
32
+ }
33
+ });
34
+ }
35
+ await (0, devkit_1.formatFiles)(tree);
36
+ }
37
+ exports.default = default_1;
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;