@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
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.remoteInternal = exports.remote = 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 setup_mf_1 = require("../setup-mf/setup-mf");
10
- const version_utils_1 = require("../utils/version-utils");
11
9
  const lib_1 = require("./lib");
12
10
  const versions_1 = require("@nx/js/src/utils/versions");
11
+ const add_mf_env_to_inputs_1 = require("../utils/add-mf-env-to-inputs");
13
12
  async function remote(tree, options) {
14
13
  return await remoteInternal(tree, {
15
14
  projectNameAndRootFormat: 'derived',
@@ -18,12 +17,8 @@ async function remote(tree, options) {
18
17
  }
19
18
  exports.remote = remote;
20
19
  async function remoteInternal(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
  if (options.host && !projects.has(options.host)) {
29
24
  throw new Error(`The name of the application to be used as the host app does not exist. (${options.host})`);
@@ -39,10 +34,11 @@ async function remoteInternal(tree, schema) {
39
34
  const port = options.port ?? (0, lib_1.findNextAvailablePort)(tree);
40
35
  const appInstallTask = await (0, application_1.applicationGenerator)(tree, {
41
36
  ...options,
42
- standalone: options.standalone ?? false,
37
+ standalone: options.standalone,
43
38
  routing: true,
44
39
  port,
45
40
  skipFormat: true,
41
+ bundler: 'webpack',
46
42
  });
47
43
  const skipE2E = !options.e2eTestRunner || options.e2eTestRunner === test_runners_1.E2eTestRunner.None;
48
44
  await (0, setup_mf_1.setupMf)(tree, {
@@ -58,13 +54,14 @@ async function remoteInternal(tree, schema) {
58
54
  standalone: options.standalone,
59
55
  prefix: options.prefix,
60
56
  typescriptConfiguration,
57
+ setParserOptionsProject: options.setParserOptionsProject,
61
58
  });
62
59
  const installSwcHelpersTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
63
60
  '@swc/helpers': versions_1.swcHelpersVersion,
64
61
  });
65
62
  let installTasks = [appInstallTask, installSwcHelpersTask];
66
63
  if (options.ssr) {
67
- let ssrInstallTask = await (0, lib_1.addSsr)(tree, {
64
+ let ssrInstallTask = await (0, lib_1.updateSsrSetup)(tree, {
68
65
  appName: remoteProjectName,
69
66
  port,
70
67
  typescriptConfiguration,
@@ -72,6 +69,7 @@ async function remoteInternal(tree, schema) {
72
69
  });
73
70
  installTasks.push(ssrInstallTask);
74
71
  }
72
+ (0, add_mf_env_to_inputs_1.addMfEnvToTargetDefaultInputs)(tree);
75
73
  if (!options.skipFormat) {
76
74
  await (0, devkit_1.formatFiles)(tree);
77
75
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxMFRemote",
4
4
  "cli": "nx",
5
5
  "title": "Nx Module Federation Remote App",
@@ -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
  }
@@ -158,9 +158,9 @@
158
158
  "x-priority": "internal"
159
159
  },
160
160
  "standalone": {
161
- "description": "Whether to generate a remote application with standalone components. _Note: This is only supported in Angular versions >= 14.1.0_",
161
+ "description": "Whether to generate a remote application with standalone components.",
162
162
  "type": "boolean",
163
- "default": false
163
+ "default": true
164
164
  },
165
165
  "ssr": {
166
166
  "description": "Whether to configure SSR for the remote application to be consumed by a host application using SSR.",
@@ -39,5 +39,6 @@ function getNgModuleDeclaration(componentClassName) {
39
39
  declarations: [${componentClassName}],
40
40
  exports: [${componentClassName}],
41
41
  })
42
- export class ${componentClassName}Module {}`;
42
+ export class ${componentClassName}Module {}
43
+ `;
43
44
  }
@@ -19,15 +19,15 @@ export interface Schema {
19
19
  export?: boolean;
20
20
  skipFormat?: boolean;
21
21
  /**
22
- * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18.
22
+ * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.
23
23
  */
24
24
  flat?: boolean;
25
25
  /**
26
- * @deprecated Provide the `directory` option instead. It will be removed in Nx v18.
26
+ * @deprecated Provide the `directory` option instead. It will be removed in Nx v19.
27
27
  */
28
28
  path?: string;
29
29
  /**
30
- * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v18.
30
+ * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v19.
31
31
  */
32
32
  project?: string;
33
33
  }
@@ -40,7 +40,7 @@
40
40
  "$source": "projectName"
41
41
  },
42
42
  "x-dropdown": "projects",
43
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v18."
43
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19."
44
44
  },
45
45
  "displayBlock": {
46
46
  "description": "Specifies if the style will contain `:host { display: block; }`.",
@@ -94,7 +94,7 @@
94
94
  "type": "boolean",
95
95
  "description": "Create the new files at the top level of the current project.",
96
96
  "default": false,
97
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18."
97
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19."
98
98
  },
99
99
  "selector": {
100
100
  "type": "string",
@@ -39,5 +39,6 @@ function getNgModuleDeclaration(directiveClassName) {
39
39
  declarations: [${directiveClassName}],
40
40
  exports: [${directiveClassName}],
41
41
  })
42
- export class ${directiveClassName}Module {}`;
42
+ export class ${directiveClassName}Module {}
43
+ `;
43
44
  }
@@ -18,7 +18,9 @@ async function scamDirectiveGenerator(tree, rawOptions) {
18
18
  });
19
19
  (0, lib_1.convertDirectiveToScam)(tree, options);
20
20
  (0, export_scam_1.exportScam)(tree, options);
21
- await (0, devkit_1.formatFiles)(tree);
21
+ if (!options.skipFormat) {
22
+ await (0, devkit_1.formatFiles)(tree);
23
+ }
22
24
  }
23
25
  exports.scamDirectiveGenerator = scamDirectiveGenerator;
24
26
  exports.default = scamDirectiveGenerator;
@@ -9,16 +9,17 @@ export interface Schema {
9
9
  prefix?: string;
10
10
  selector?: string;
11
11
  export?: boolean;
12
+ skipFormat?: boolean;
12
13
  /**
13
- * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18.
14
+ * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.
14
15
  */
15
16
  flat?: boolean;
16
17
  /**
17
- * @deprecated Provide the `directory` option instead. It will be removed in Nx v18.
18
+ * @deprecated Provide the `directory` option instead. It will be removed in Nx v19.
18
19
  */
19
20
  path?: string;
20
21
  /**
21
- * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v18.
22
+ * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v19.
22
23
  */
23
24
  project?: string;
24
25
  }
@@ -41,7 +41,7 @@
41
41
  "$source": "projectName"
42
42
  },
43
43
  "x-dropdown": "projects",
44
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v18."
44
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19."
45
45
  },
46
46
  "skipTests": {
47
47
  "type": "boolean",
@@ -58,7 +58,7 @@
58
58
  "type": "boolean",
59
59
  "description": "Create the new files at the top level of the current project.",
60
60
  "default": true,
61
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18."
61
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19."
62
62
  },
63
63
  "selector": {
64
64
  "type": "string",
@@ -84,6 +84,12 @@
84
84
  "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.",
85
85
  "default": true,
86
86
  "x-priority": "important"
87
+ },
88
+ "skipFormat": {
89
+ "description": "Skip formatting files.",
90
+ "type": "boolean",
91
+ "default": false,
92
+ "x-priority": "internal"
87
93
  }
88
94
  },
89
95
  "required": ["name"]
@@ -39,5 +39,6 @@ function getNgModuleDeclaration(pipeClassName) {
39
39
  declarations: [${pipeClassName}],
40
40
  exports: [${pipeClassName}],
41
41
  })
42
- export class ${pipeClassName}Module {}`;
42
+ export class ${pipeClassName}Module {}
43
+ `;
43
44
  }
@@ -18,7 +18,9 @@ async function scamPipeGenerator(tree, rawOptions) {
18
18
  });
19
19
  (0, lib_1.convertPipeToScam)(tree, options);
20
20
  (0, export_scam_1.exportScam)(tree, options);
21
- await (0, devkit_1.formatFiles)(tree);
21
+ if (!options.skipFormat) {
22
+ await (0, devkit_1.formatFiles)(tree);
23
+ }
22
24
  }
23
25
  exports.scamPipeGenerator = scamPipeGenerator;
24
26
  exports.default = scamPipeGenerator;
@@ -7,16 +7,17 @@ export interface Schema {
7
7
  skipTests?: boolean;
8
8
  inlineScam?: boolean;
9
9
  export?: boolean;
10
+ skipFormat?: boolean;
10
11
  /**
11
- * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18.
12
+ * @deprecated Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19.
12
13
  */
13
14
  flat?: boolean;
14
15
  /**
15
- * @deprecated Provide the `directory` option instead. It will be removed in Nx v18.
16
+ * @deprecated Provide the `directory` option instead. It will be removed in Nx v19.
16
17
  */
17
18
  path?: string;
18
19
  /**
19
- * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v18.
20
+ * @deprecated Provide the `directory` option instead. The project will be determined from the directory provided. It will be removed in Nx v19.
20
21
  */
21
22
  project?: string;
22
23
  }
@@ -41,7 +41,7 @@
41
41
  "$source": "projectName"
42
42
  },
43
43
  "x-dropdown": "projects",
44
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v18."
44
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. The project will be determined from the directory provided. It will be removed in Nx v19."
45
45
  },
46
46
  "skipTests": {
47
47
  "type": "boolean",
@@ -58,13 +58,19 @@
58
58
  "type": "boolean",
59
59
  "description": "Create the new files at the top level of the current project.",
60
60
  "default": true,
61
- "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v18."
61
+ "x-deprecated": "Provide the `directory` option instead and use the `as-provided` format. It will be removed in Nx v19."
62
62
  },
63
63
  "export": {
64
64
  "type": "boolean",
65
65
  "description": "Specifies if the SCAM should be exported from the project's entry point (normally `index.ts`). It only applies to libraries.",
66
66
  "default": true,
67
67
  "x-priority": "important"
68
+ },
69
+ "skipFormat": {
70
+ "description": "Skip formatting files.",
71
+ "type": "boolean",
72
+ "default": false,
73
+ "x-priority": "internal"
68
74
  }
69
75
  },
70
76
  "required": ["name"]
@@ -3,14 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.scamToStandalone = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const lib_1 = require("./lib");
6
- const version_utils_1 = require("../utils/version-utils");
7
- const semver_1 = require("semver");
8
6
  async function scamToStandalone(tree, { component, project: projectName, skipFormat }) {
9
- const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
10
- if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0')) {
11
- throw new Error((0, devkit_1.stripIndents) `This generator is only supported with Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
12
- You can resolve this error by migrating to Angular 14.1.0.`);
13
- }
14
7
  const projects = (0, devkit_1.getProjects)(tree);
15
8
  let project = (0, lib_1.getTargetProject)(projectName, projects);
16
9
  const normalizedComponentPath = (0, devkit_1.joinPathFragments)(project.root, component);
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "GeneratorAngularScamToStandalone",
4
4
  "cli": "nx",
5
5
  "title": "Convert an Inline SCAM to Standalone Component",
6
- "description": "Convert an Inline SCAM to a Standalone Component. _Note: This generator is only supported with Angular versions >= 14.1.0_.",
6
+ "description": "Convert an Inline SCAM to a Standalone Component.",
7
7
  "type": "object",
8
8
  "properties": {
9
9
  "component": {
@@ -37,6 +37,8 @@ describe('AppComponent', () => {
37
37
  tick();
38
38
  fixture.detectChanges();
39
39
  const compiled = fixture.nativeElement as HTMLElement;
40
- expect(compiled.querySelector('h1')?.textContent).toContain('Welcome <%= appName %>');
40
+ expect(compiled.querySelector('h1')?.textContent).toContain(
41
+ 'Welcome <%= appName %>'
42
+ );
41
43
  }));
42
44
  });
@@ -2,6 +2,18 @@ import { ModuleFederationConfig } from '@nx/webpack';
2
2
 
3
3
  const config: ModuleFederationConfig = {
4
4
  name: '<%= name %>',<% if(type === 'host') { %>
5
+ /**
6
+ * To use a remote that does not exist in your current Nx Workspace
7
+ * You can use the tuple-syntax to define your remote
8
+ *
9
+ * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
10
+ *
11
+ * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
12
+ * following content:
13
+ *
14
+ * declare module 'my-external-remote';
15
+ *
16
+ */
5
17
  remotes: [<% remotes.forEach(function(remote) { %>'<%= remote.remoteName %>',<% }); %>]<% } %><% if(type === 'remote') { %>
6
18
  exposes: {<% if(standalone) { %>
7
19
  './Routes': '<%= projectRoot %>/src/app/remote-entry/entry.routes.ts',<% } else { %>
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "target": "ES2020"
5
+ },
6
+ "include": [
7
+ "src/main.ts",
8
+ <% if(type === "remote") { %> "src/remote-entry/<% if(standalone) { %>entry.routes.ts", <% } else { %> entry.module.ts", <% } } %>
9
+ "webpack.config.ts",
10
+ "webpack.prod.config.ts"
11
+ ]
12
+ }
@@ -1,4 +1,4 @@
1
- import {withModuleFederation} from '@nx/angular/module-federation';
1
+ import { withModuleFederation } from '@nx/angular/module-federation';
2
2
  import config from './module-federation.config';
3
3
 
4
4
  export default withModuleFederation(config);
@@ -1,16 +1,16 @@
1
- import {withModuleFederation} from '@nx/angular/module-federation';
1
+ import { withModuleFederation } from '@nx/angular/module-federation';
2
2
  import config from './module-federation.config';
3
3
 
4
4
  export default withModuleFederation({
5
- ...config,
6
- /*
7
- * Remote overrides for production.
8
- * Each entry is a pair of a unique name and the URL where it is deployed.
9
- *
10
- * e.g.
11
- * remotes: [
12
- * ['app1', 'https://app1.example.com'],
13
- * ['app2', 'https://app2.example.com'],
14
- * ]
15
- */
5
+ ...config,
6
+ /*
7
+ * Remote overrides for production.
8
+ * Each entry is a pair of a unique name and the URL where it is deployed.
9
+ *
10
+ * e.g.
11
+ * remotes: [
12
+ * ['app1', 'https://app1.example.com'],
13
+ * ['app2', 'https://app2.example.com'],
14
+ * ]
15
+ */
16
16
  });
@@ -1,8 +1,20 @@
1
1
  module.exports = {
2
2
  name: '<%= name %>',<% if(type === 'host') { %>
3
+ /**
4
+ * To use a remote that does not exist in your current Nx Workspace
5
+ * You can use the tuple-syntax to define your remote
6
+ *
7
+ * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
8
+ *
9
+ * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
10
+ * following content:
11
+ *
12
+ * declare module 'my-external-remote';
13
+ *
14
+ */
3
15
  remotes: [<% remotes.forEach(function(remote) { %>'<%= remote.remoteName %>',<% }); %>]<% } %><% if(type === 'remote') { %>
4
16
  exposes: {<% if(standalone) { %>
5
17
  './Routes': '<%= projectRoot %>/src/app/remote-entry/entry.routes.ts',<% } else { %>
6
18
  './Module': '<%= projectRoot %>/src/app/remote-entry/entry.module.ts',<% } %>
7
19
  },<% } %>
8
- }
20
+ };
@@ -22,10 +22,20 @@ function addCypressOnErrorWorkaround(tree, schema) {
22
22
  `);
23
23
  return;
24
24
  }
25
- if (e2eProject.targets.e2e.executor !== '@nx/cypress:cypress' &&
26
- e2eProject.targets.e2e.executor !== '@nx/cypress:cypress') {
27
- // Not a cypress e2e project, skip
28
- return;
25
+ if (e2eProject.targets?.e2e?.executor !== '@nx/cypress:cypress') {
26
+ try {
27
+ // don't ensure package is installed, if it's not installed, we don't need to add the workaround
28
+ const { CYPRESS_CONFIG_FILE_NAME_PATTERN, } = require('@nx/cypress/src/utils/config');
29
+ if (!(0, devkit_1.glob)(tree, [`${e2eProject.root}/${CYPRESS_CONFIG_FILE_NAME_PATTERN}`])
30
+ .length) {
31
+ // Not a cypress e2e project, skip
32
+ return;
33
+ }
34
+ }
35
+ catch {
36
+ // assume cypress is not installed
37
+ return;
38
+ }
29
39
  }
30
40
  const commandToAdd = `Cypress.on('uncaught:exception', err => {
31
41
  if (err.message.includes(\`Cannot use 'import.meta' outside a module\`)) {
@@ -15,17 +15,8 @@ function addRemoteEntry(tree, { appName, routing, prefix, standalone }, appRoot)
15
15
  if (standalone && routing) {
16
16
  (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.routes').then(m => m.remoteRoutes)}`);
17
17
  }
18
- else {
19
- if (routing) {
20
- (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)}`);
21
- }
22
- tree.write(`${appRoot}/src/app/app.module.ts`, `/*
23
- * This RemoteEntryModule is imported here to allow TS to find the Module during
24
- * compilation, allowing it to be included in the built bundle. This is required
25
- * for the Module Federation Plugin to expose the Module correctly.
26
- * */
27
- import { RemoteEntryModule } from './remote-entry/entry.module';
28
- ${tree.read(`${appRoot}/src/app/app.module.ts`, 'utf-8')}`);
18
+ else if (routing) {
19
+ (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{ path: '', loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule) }`);
29
20
  }
30
21
  }
31
22
  exports.addRemoteEntry = addRemoteEntry;
@@ -102,7 +102,7 @@ function addLazyLoadedRouteToHostAppModule(tree, options, hostFederationType) {
102
102
  if (appComponent.includes(`<ul class="remote-menu">`) &&
103
103
  appComponent.includes('</ul>')) {
104
104
  const indexOfClosingMenuTag = appComponent.indexOf('</ul>');
105
- const newAppComponent = `${appComponent.slice(0, indexOfClosingMenuTag)}<li><a routerLink='${options.appName}'>${(0, devkit_1.names)(options.appName).className}</a></li>\n${appComponent.slice(indexOfClosingMenuTag)}`;
105
+ const newAppComponent = `${appComponent.slice(0, indexOfClosingMenuTag)}<li><a routerLink="${options.appName}">${(0, devkit_1.names)(options.appName).className}</a></li>\n${appComponent.slice(indexOfClosingMenuTag)}`;
106
106
  tree.write(pathToAppComponentTemplate, newAppComponent);
107
107
  }
108
108
  }
@@ -2,13 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fixBootstrap = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const version_utils_1 = require("../../utils/version-utils");
6
5
  function fixBootstrap(tree, appRoot, options) {
7
6
  const mainFilePath = (0, devkit_1.joinPathFragments)(appRoot, 'src/main.ts');
8
7
  const bootstrapCode = tree.read(mainFilePath, 'utf-8');
9
- const installedAngularMajor = (0, version_utils_1.getInstalledAngularMajorVersion)(tree);
10
8
  if (options.standalone && options.mfType === 'remote') {
11
- tree.write(`${appRoot}/src/bootstrap.ts`, standaloneBootstrapCode(installedAngularMajor === 14));
9
+ tree.write(`${appRoot}/src/bootstrap.ts`, standaloneBootstrapCode());
12
10
  }
13
11
  else {
14
12
  tree.write((0, devkit_1.joinPathFragments)(appRoot, 'src/bootstrap.ts'), bootstrapCode);
@@ -16,26 +14,20 @@ function fixBootstrap(tree, appRoot, options) {
16
14
  const bootstrapImportCode = `import('./bootstrap').catch(err => console.error(err))`;
17
15
  const fetchMFManifestCode = `import { setRemoteDefinitions } from '@nx/angular/mf';
18
16
 
19
- fetch('/assets/module-federation.manifest.json')
17
+ fetch('/assets/module-federation.manifest.json')
20
18
  .then((res) => res.json())
21
19
  .then(definitions => setRemoteDefinitions(definitions))
22
- .then(() => ${bootstrapImportCode})`;
20
+ .then(() => ${bootstrapImportCode});`;
23
21
  tree.write(mainFilePath, options.mfType === 'host' && options.federationType === 'dynamic'
24
22
  ? fetchMFManifestCode
25
- : bootstrapImportCode);
23
+ : `${bootstrapImportCode};`);
26
24
  }
27
25
  exports.fixBootstrap = fixBootstrap;
28
- const standaloneBootstrapCode = (includeEnvironments = false) => `import {bootstrapApplication} from "@angular/platform-browser";
29
- import {appConfig} from './app/app.config';
30
- import {RemoteEntryComponent} from './app/remote-entry/entry.component';
31
- ${includeEnvironments
32
- ? `import {enableProdMode} from '@angular/core';
33
- import {environment} from './environments/environment';
34
- if(environment.production) {
35
- enableProdMode();
36
- }
37
- `
38
- : ``}
26
+ const standaloneBootstrapCode = () => `import { bootstrapApplication } from '@angular/platform-browser';
27
+ import { appConfig } from './app/app.config';
28
+ import { RemoteEntryComponent } from './app/remote-entry/entry.component';
29
+
39
30
  bootstrapApplication(RemoteEntryComponent, appConfig).catch((err) =>
40
31
  console.error(err)
41
- );`;
32
+ );
33
+ `;
@@ -23,5 +23,8 @@ function generateWebpackConfig(tree, options, appRoot, remotesWithPorts) {
23
23
  projectRoot: appRoot,
24
24
  standalone: options.standalone,
25
25
  });
26
+ if (!options.setParserOptionsProject) {
27
+ tree.delete((0, devkit_1.joinPathFragments)(appRoot, 'tsconfig.lint.json'));
28
+ }
26
29
  }
27
30
  exports.generateWebpackConfig = generateWebpackConfig;
@@ -6,7 +6,7 @@ export * from './fix-bootstrap';
6
6
  export * from './generate-config';
7
7
  export * from './get-remotes-with-ports';
8
8
  export * from './normalize-options';
9
- export * from './set-tsconfig-target';
9
+ export * from './update-tsconfig';
10
10
  export * from './setup-host-if-dynamic';
11
11
  export * from './setup-serve-target';
12
12
  export * from './update-host-app-routes';
@@ -9,7 +9,7 @@ tslib_1.__exportStar(require("./fix-bootstrap"), exports);
9
9
  tslib_1.__exportStar(require("./generate-config"), exports);
10
10
  tslib_1.__exportStar(require("./get-remotes-with-ports"), exports);
11
11
  tslib_1.__exportStar(require("./normalize-options"), exports);
12
- tslib_1.__exportStar(require("./set-tsconfig-target"), exports);
12
+ tslib_1.__exportStar(require("./update-tsconfig"), exports);
13
13
  tslib_1.__exportStar(require("./setup-host-if-dynamic"), exports);
14
14
  tslib_1.__exportStar(require("./setup-serve-target"), exports);
15
15
  tslib_1.__exportStar(require("./update-host-app-routes"), exports);
@@ -7,7 +7,8 @@ function normalizeOptions(tree, options) {
7
7
  ...options,
8
8
  typescriptConfiguration: options.typescriptConfiguration ?? true,
9
9
  federationType: options.federationType ?? 'static',
10
- prefix: options.prefix ?? (0, project_1.getProjectPrefix)(tree, options.appName),
10
+ prefix: options.prefix ?? (0, project_1.getProjectPrefix)(tree, options.appName) ?? 'app',
11
+ standalone: options.standalone ?? true,
11
12
  };
12
13
  }
13
14
  exports.normalizeOptions = normalizeOptions;
@@ -30,16 +30,16 @@ import { RouterModule } from '@angular/router';
30
30
  import { AppComponent } from './app.component';
31
31
 
32
32
  @NgModule({
33
- declarations: [AppComponent],
34
- imports: [
35
- BrowserModule,
36
- RouterModule.forRoot([{
37
- path: '',
38
- loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)
39
- }], { initialNavigation: 'enabledBlocking' }),
40
- ],
41
- providers: [],
42
- bootstrap: [AppComponent],
33
+ declarations: [AppComponent],
34
+ imports: [
35
+ BrowserModule,
36
+ RouterModule.forRoot([{
37
+ path: '',
38
+ loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)
39
+ }], { initialNavigation: 'enabledBlocking' }),
40
+ ],
41
+ providers: [],
42
+ bootstrap: [AppComponent],
43
43
  })
44
44
  export class AppModule {}`);
45
45
  }
@@ -8,7 +8,7 @@ function setupServeTarget(host, options) {
8
8
  ...appConfig.targets['serve'],
9
9
  executor: options.mfType === 'host'
10
10
  ? '@nx/angular:module-federation-dev-server'
11
- : '@nx/angular:webpack-dev-server',
11
+ : '@nx/angular:dev-server',
12
12
  options: {
13
13
  ...appConfig.targets['serve'].options,
14
14
  port: options.port ?? undefined,