@nx/angular 17.0.2 → 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 +24 -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 +10 -10
  189. package/src/generators/host/files/common/v17+/src/main.server.ts__tmpl__ +67 -0
  190. package/src/generators/host/files/ts/webpack.server.config.ts__tmpl__ +2 -2
  191. package/src/generators/host/host.js +8 -9
  192. package/src/generators/host/lib/index.d.ts +1 -1
  193. package/src/generators/host/lib/index.js +1 -1
  194. package/src/generators/host/lib/update-ssr-setup.d.ts +3 -0
  195. package/src/generators/host/lib/{add-ssr.js → update-ssr-setup.js} +8 -14
  196. package/src/generators/host/schema.json +6 -6
  197. package/src/generators/init/init.d.ts +2 -2
  198. package/src/generators/init/init.js +19 -137
  199. package/src/generators/init/schema.d.ts +1 -9
  200. package/src/generators/init/schema.json +8 -59
  201. package/src/generators/library/files/ng-module/src/lib/lib.routes.ts__tpl__ +1 -1
  202. package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +1 -1
  203. package/src/generators/library/lib/add-load-children.js +2 -2
  204. package/src/generators/library/lib/add-project.js +24 -22
  205. package/src/generators/library/lib/add-standalone-component.d.ts +2 -2
  206. package/src/generators/library/lib/add-standalone-component.js +5 -4
  207. package/src/generators/library/lib/normalize-options.js +2 -5
  208. package/src/generators/library/lib/set-generator-defaults.d.ts +3 -0
  209. package/src/generators/library/lib/set-generator-defaults.js +15 -0
  210. package/src/generators/library/lib/update-tsconfig.js +3 -3
  211. package/src/generators/library/library.js +15 -27
  212. package/src/generators/library/schema.d.ts +1 -0
  213. package/src/generators/library/schema.json +13 -13
  214. package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -5
  215. package/src/generators/library-secondary-entry-point/lib/index.d.ts +0 -1
  216. package/src/generators/library-secondary-entry-point/lib/index.js +0 -1
  217. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +3 -2
  218. package/src/generators/library-secondary-entry-point/schema.d.ts +1 -0
  219. package/src/generators/library-secondary-entry-point/schema.json +9 -3
  220. package/src/generators/move/schema.json +1 -1
  221. package/src/generators/ng-add/migrate-from-angular-cli.js +1 -1
  222. package/src/generators/ng-add/migrators/projects/app.migrator.js +50 -7
  223. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +31 -23
  224. package/src/generators/ng-add/ng-add.js +1 -8
  225. package/src/generators/ng-add/schema.json +1 -1
  226. package/src/generators/ng-add/utilities/workspace.d.ts +1 -1
  227. package/src/generators/ng-add/utilities/workspace.js +9 -16
  228. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  229. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  230. package/src/generators/ngrx/lib/generate-files.js +1 -10
  231. package/src/generators/ngrx/lib/validate-options.js +0 -23
  232. package/src/generators/ngrx/schema.json +3 -3
  233. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  234. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  235. package/src/generators/ngrx-feature-store/lib/generate-files.js +1 -12
  236. package/src/generators/ngrx-feature-store/lib/validate-options.js +0 -22
  237. package/src/generators/ngrx-feature-store/schema.json +3 -3
  238. package/src/generators/ngrx-root-store/lib/normalize-options.js +1 -1
  239. package/src/generators/ngrx-root-store/lib/validate-options.js +0 -15
  240. package/src/generators/ngrx-root-store/schema.json +2 -2
  241. package/src/generators/pipe/files/__fileName__.ts__tpl__ +0 -2
  242. package/src/generators/pipe/lib/index.d.ts +0 -1
  243. package/src/generators/pipe/lib/index.js +0 -1
  244. package/src/generators/pipe/lib/normalize-options.js +1 -0
  245. package/src/generators/pipe/pipe.js +0 -1
  246. package/src/generators/pipe/schema.d.ts +3 -3
  247. package/src/generators/pipe/schema.json +4 -4
  248. package/src/generators/remote/files/base-ts/webpack.server.config.ts__tmpl__ +2 -2
  249. package/src/generators/remote/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +1 -3
  250. package/src/generators/remote/files/common/v17+/src/main.server.ts__tmpl__ +73 -0
  251. package/src/generators/remote/lib/index.d.ts +1 -1
  252. package/src/generators/remote/lib/index.js +1 -1
  253. package/src/generators/remote/lib/{add-ssr.d.ts → update-ssr-setup.d.ts} +1 -1
  254. package/src/generators/remote/lib/{add-ssr.js → update-ssr-setup.js} +9 -13
  255. package/src/generators/remote/remote.js +7 -9
  256. package/src/generators/remote/schema.json +6 -6
  257. package/src/generators/scam/lib/convert-component-to-scam.js +2 -1
  258. package/src/generators/scam/schema.d.ts +3 -3
  259. package/src/generators/scam/schema.json +2 -2
  260. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +2 -1
  261. package/src/generators/scam-directive/scam-directive.js +3 -1
  262. package/src/generators/scam-directive/schema.d.ts +4 -3
  263. package/src/generators/scam-directive/schema.json +8 -2
  264. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +2 -1
  265. package/src/generators/scam-pipe/scam-pipe.js +3 -1
  266. package/src/generators/scam-pipe/schema.d.ts +4 -3
  267. package/src/generators/scam-pipe/schema.json +8 -2
  268. package/src/generators/scam-to-standalone/scam-to-standalone.js +0 -7
  269. package/src/generators/scam-to-standalone/schema.json +2 -2
  270. package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +3 -1
  271. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +12 -0
  272. package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +12 -0
  273. package/src/generators/setup-mf/files/ts-webpack/webpack.config.ts__tmpl__ +1 -1
  274. package/src/generators/setup-mf/files/ts-webpack/webpack.prod.config.ts__tmpl__ +12 -12
  275. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +13 -1
  276. package/src/generators/setup-mf/lib/add-cypress-workaround.js +14 -4
  277. package/src/generators/setup-mf/lib/add-remote-entry.js +2 -11
  278. package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -1
  279. package/src/generators/setup-mf/lib/fix-bootstrap.js +10 -18
  280. package/src/generators/setup-mf/lib/generate-config.js +3 -0
  281. package/src/generators/setup-mf/lib/index.d.ts +1 -1
  282. package/src/generators/setup-mf/lib/index.js +1 -1
  283. package/src/generators/setup-mf/lib/normalize-options.js +2 -1
  284. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +10 -10
  285. package/src/generators/setup-mf/lib/setup-serve-target.js +1 -1
  286. package/src/generators/setup-mf/lib/update-host-app-routes.js +2 -2
  287. package/src/generators/{pipe/lib/validate-options.d.ts → setup-mf/lib/update-tsconfig.d.ts} +1 -1
  288. package/src/generators/setup-mf/lib/update-tsconfig.js +19 -0
  289. package/src/generators/setup-mf/schema.d.ts +1 -0
  290. package/src/generators/setup-mf/schema.json +8 -3
  291. package/src/generators/setup-mf/setup-mf.js +1 -7
  292. package/src/generators/setup-ssr/files/ngmodule/base/src/__main__ +1 -1
  293. package/src/generators/setup-ssr/files/server/application-builder/__serverFileName__ +56 -0
  294. package/src/generators/setup-ssr/files/{ngmodule/base → server/server-builder/pre-v17}/__serverFileName__ +7 -8
  295. package/src/generators/setup-ssr/files/{standalone → server/server-builder/v17+}/__serverFileName__ +25 -16
  296. package/src/generators/setup-ssr/lib/add-dependencies.d.ts +2 -0
  297. package/src/generators/setup-ssr/lib/add-dependencies.js +36 -0
  298. package/src/generators/setup-ssr/lib/add-hydration.js +11 -5
  299. package/src/generators/setup-ssr/lib/add-server-file.d.ts +3 -0
  300. package/src/generators/setup-ssr/lib/add-server-file.js +31 -0
  301. package/src/generators/setup-ssr/lib/constants.d.ts +3 -0
  302. package/src/generators/setup-ssr/lib/constants.js +6 -0
  303. package/src/generators/setup-ssr/lib/generate-files.d.ts +1 -1
  304. package/src/generators/setup-ssr/lib/generate-files.js +11 -16
  305. package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts +4 -0
  306. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +29 -0
  307. package/src/generators/setup-ssr/lib/index.d.ts +4 -0
  308. package/src/generators/setup-ssr/lib/index.js +4 -0
  309. package/src/generators/setup-ssr/lib/normalize-options.js +7 -1
  310. package/src/generators/setup-ssr/lib/set-router-initial-navigation.d.ts +3 -0
  311. package/src/generators/setup-ssr/lib/set-router-initial-navigation.js +93 -0
  312. package/src/generators/setup-ssr/lib/update-project-config.d.ts +2 -1
  313. package/src/generators/setup-ssr/lib/update-project-config.js +46 -13
  314. package/src/generators/setup-ssr/lib/validate-options.js +15 -2
  315. package/src/generators/setup-ssr/schema.json +4 -4
  316. package/src/generators/setup-ssr/setup-ssr.js +18 -12
  317. package/src/generators/setup-tailwind/schema.json +1 -1
  318. package/src/generators/stories/schema.json +1 -1
  319. package/src/generators/stories/stories.js +2 -2
  320. package/src/generators/storybook-configuration/lib/generate-stories.js +6 -4
  321. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +3 -1
  322. package/src/generators/storybook-configuration/schema.d.ts +1 -1
  323. package/src/generators/storybook-configuration/schema.json +7 -7
  324. package/src/generators/storybook-configuration/storybook-configuration.js +8 -5
  325. package/src/generators/utils/add-jest.d.ts +8 -0
  326. package/src/generators/utils/add-jest.js +36 -0
  327. package/src/generators/utils/add-mf-env-to-inputs.d.ts +2 -0
  328. package/src/generators/utils/add-mf-env-to-inputs.js +27 -0
  329. package/src/generators/utils/dependencies.js +1 -2
  330. package/src/generators/utils/ensure-angular-dependencies.d.ts +2 -0
  331. package/src/generators/utils/ensure-angular-dependencies.js +35 -0
  332. package/src/generators/utils/export-scam.js +2 -2
  333. package/src/generators/utils/project.d.ts +0 -1
  334. package/src/generators/utils/project.js +2 -29
  335. package/src/generators/utils/selector.d.ts +2 -2
  336. package/src/generators/utils/selector.js +11 -4
  337. package/src/generators/utils/testing.js +24 -1
  338. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.d.ts +2 -0
  339. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.js +23 -0
  340. package/src/generators/utils/update-project-root-tsconfig.d.ts +3 -0
  341. package/src/generators/utils/update-project-root-tsconfig.js +26 -0
  342. package/src/generators/utils/validations.d.ts +0 -1
  343. package/src/generators/utils/validations.js +1 -14
  344. package/src/generators/utils/version-utils.d.ts +2 -2
  345. package/src/generators/utils/version-utils.js +3 -3
  346. package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts +3 -0
  347. package/src/migrations/update-17-1-0/browser-target-to-build-target.js +50 -0
  348. package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts +2 -0
  349. package/src/migrations/update-17-1-0/replace-nguniversal-builders.js +75 -0
  350. package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts +2 -0
  351. package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +183 -0
  352. package/src/migrations/update-17-1-0/update-angular-cli.d.ts +3 -0
  353. package/src/migrations/update-17-1-0/update-angular-cli.js +23 -0
  354. package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts +2 -0
  355. package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +37 -0
  356. package/src/migrations/update-17-2-0/rename-webpack-dev-server.d.ts +2 -0
  357. package/src/migrations/update-17-2-0/rename-webpack-dev-server.js +40 -0
  358. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts +2 -0
  359. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.js +26 -0
  360. package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts +2 -0
  361. package/src/migrations/update-17-3-0/add-browser-sync-dependency.js +26 -0
  362. package/src/migrations/update-17-3-0/update-angular-cli.d.ts +3 -0
  363. package/src/migrations/update-17-3-0/update-angular-cli.js +23 -0
  364. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts +2 -0
  365. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +26 -0
  366. package/src/migrations/update-18-1-0/update-angular-cli.d.ts +3 -0
  367. package/src/migrations/update-18-1-0/update-angular-cli.js +23 -0
  368. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +2 -0
  369. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +53 -0
  370. package/src/migrations/update-18-2-0/update-angular-cli.d.ts +3 -0
  371. package/src/migrations/update-18-2-0/update-angular-cli.js +23 -0
  372. package/src/utils/backward-compatible-versions.d.ts +6 -4
  373. package/src/utils/backward-compatible-versions.js +20 -22
  374. package/src/utils/{public-api.d.ts → index.d.ts} +5 -0
  375. package/src/utils/{public-api.js → index.js} +5 -0
  376. package/src/utils/mf/utils.js +7 -0
  377. package/src/utils/mf/with-module-federation-ssr.js +3 -0
  378. package/src/utils/mf/with-module-federation.js +3 -0
  379. package/src/utils/nx-devkit/ast-utils.js +4 -2
  380. package/src/utils/nx-devkit/testing.js +27 -31
  381. package/src/utils/targets.d.ts +2 -0
  382. package/src/utils/targets.js +17 -0
  383. package/src/utils/version-utils.d.ts +3 -3
  384. package/src/utils/versions.d.ts +9 -11
  385. package/src/utils/versions.js +10 -12
  386. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -5
  387. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +0 -136
  388. package/src/builders/webpack-browser/validate-options.d.ts +0 -2
  389. package/src/builders/webpack-browser/validate-options.js +0 -40
  390. package/src/builders/webpack-dev-server/lib/normalize-options.d.ts +0 -2
  391. package/src/builders/webpack-dev-server/lib/normalize-options.js +0 -14
  392. package/src/builders/webpack-dev-server/schema.d.ts +0 -21
  393. package/src/builders/webpack-dev-server/webpack-dev-server.impl.d.ts +0 -4
  394. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +0 -105
  395. package/src/executors/browser-esbuild/lib/buildable-libs.d.ts +0 -9
  396. package/src/executors/browser-esbuild/lib/validate-options.d.ts +0 -2
  397. package/src/executors/browser-esbuild/lib/validate-options.js +0 -40
  398. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -16
  399. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -175
  400. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -15
  401. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -197
  402. package/src/executors/utilities/tailwindcss.d.ts +0 -7
  403. package/src/generators/application/files/tsconfig.editor.json__tpl__ +0 -5
  404. package/src/generators/application/files/v14/.browserlistrc__tpl__ +0 -16
  405. package/src/generators/application/files/v14/src/environments/environment.prod.ts__tpl__ +0 -3
  406. package/src/generators/application/files/v14/src/environments/environment.ts__tpl__ +0 -16
  407. package/src/generators/application/files/v14/src/polyfills.ts__tpl__ +0 -53
  408. package/src/generators/component/lib/validate-options.d.ts +0 -3
  409. package/src/generators/component/lib/validate-options.js +0 -8
  410. package/src/generators/directive/lib/validate-options.d.ts +0 -3
  411. package/src/generators/directive/lib/validate-options.js +0 -8
  412. package/src/generators/host/lib/add-ssr.d.ts +0 -3
  413. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.d.ts +0 -3
  414. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +0 -15
  415. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  416. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  417. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  418. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  419. package/src/generators/pipe/lib/validate-options.js +0 -8
  420. package/src/generators/setup-mf/lib/set-tsconfig-target.d.ts +0 -3
  421. package/src/generators/setup-mf/lib/set-tsconfig-target.js +0 -16
  422. package/src/generators/setup-ssr/files/ngmodule/v14/src/__main__ +0 -11
  423. package/src/generators/utils/create-ts-config.d.ts +0 -8
  424. package/src/generators/utils/create-ts-config.js +0 -35
  425. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.d.ts +0 -0
  426. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.js +0 -0
  427. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.transform.d.ts +0 -0
  428. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.d.ts +0 -0
  429. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.js +0 -0
  430. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.d.ts +0 -0
  431. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.js +0 -0
  432. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.d.ts +0 -0
  433. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.js +0 -0
  434. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.transform.d.ts +0 -0
  435. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.d.ts +0 -0
  436. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.js +0 -0
  437. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.d.ts +0 -0
  438. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.js +0 -0
  439. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.d.ts +0 -0
  440. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.js +0 -0
  441. /package/src/generators/host/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +0 -0
  442. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  443. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  444. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  445. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  446. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  447. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  448. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  449. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  450. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  451. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  452. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  453. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  454. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  455. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  456. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  457. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  458. /package/src/generators/setup-ssr/files/{base → root}/tsconfig.server.json__tpl__ +0 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.moduleFederationDevServerExecutor = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const lib_1 = require("./lib");
6
+ const rxjs_for_await_1 = require("@nx/devkit/src/utils/rxjs-for-await");
7
+ const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
8
+ const module_federation_1 = require("@nx/webpack/src/utils/module-federation");
9
+ const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
10
+ const file_server_impl_1 = require("@nx/web/src/executors/file-server/file-server.impl");
11
+ const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
12
+ const dev_server_impl_1 = require("../../builders/dev-server/dev-server.impl");
13
+ const module_federation_2 = require("../../builders/utilities/module-federation");
14
+ const path_1 = require("path");
15
+ const fs_1 = require("fs");
16
+ async function* moduleFederationDevServerExecutor(schema, context) {
17
+ // Force Node to resolve to look for the nx binary that is inside node_modules
18
+ const nxBin = require.resolve('nx/bin/nx');
19
+ const options = (0, lib_1.normalizeOptions)(schema);
20
+ options.staticRemotesPort ??= options.port + 1;
21
+ const { projects: workspaceProjects } = (0, devkit_1.readProjectsConfigurationFromProjectGraph)(context.projectGraph);
22
+ const project = workspaceProjects[context.projectName];
23
+ const currIter = options.static
24
+ ? (0, file_server_impl_1.default)({
25
+ port: options.port,
26
+ host: options.host,
27
+ ssl: options.ssl,
28
+ buildTarget: options.buildTarget,
29
+ parallel: false,
30
+ spa: false,
31
+ withDeps: false,
32
+ cors: true,
33
+ }, context)
34
+ : (0, rxjs_for_await_1.eachValueFrom)((0, dev_server_impl_1.executeDevServerBuilder)(options, await (0, ngcli_adapter_1.createBuilderContext)({
35
+ builderName: '@nx/angular:webpack-browser',
36
+ description: 'Build a browser application',
37
+ optionSchema: await Promise.resolve().then(() => require('../../builders/webpack-browser/schema.json')),
38
+ }, context)));
39
+ if (options.isInitialHost === false) {
40
+ return yield* currIter;
41
+ }
42
+ let pathToManifestFile = (0, path_1.join)(context.root, project.sourceRoot, 'assets/module-federation.manifest.json');
43
+ if (options.pathToManifestFile) {
44
+ const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
45
+ if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
46
+ throw new Error(`The provided Module Federation manifest file path does not exist. Please check the file exists at "${userPathToManifestFile}".`);
47
+ }
48
+ else if ((0, path_1.extname)(options.pathToManifestFile) !== '.json') {
49
+ throw new Error(`The Module Federation manifest file must be a JSON. Please ensure the file at ${userPathToManifestFile} is a JSON.`);
50
+ }
51
+ pathToManifestFile = userPathToManifestFile;
52
+ }
53
+ (0, module_federation_2.validateDevRemotes)(options, workspaceProjects);
54
+ const moduleFederationConfig = (0, module_federation_1.getModuleFederationConfig)(project.targets.build.options.tsConfig, context.root, project.root, 'angular');
55
+ const remotes = (0, module_federation_1.getRemotes)(options.devRemotes, options.skipRemotes, moduleFederationConfig, {
56
+ projectName: project.name,
57
+ projectGraph: context.projectGraph,
58
+ root: context.root,
59
+ }, pathToManifestFile);
60
+ if (remotes.devRemotes.length > 0 && !schema.staticRemotesPort) {
61
+ options.staticRemotesPort = options.devRemotes.reduce((portToUse, r) => {
62
+ const remotePort = context.projectGraph.nodes[r].data.targets['serve'].options.port;
63
+ if (remotePort >= portToUse) {
64
+ return remotePort + 1;
65
+ }
66
+ else {
67
+ return portToUse;
68
+ }
69
+ }, options.staticRemotesPort);
70
+ }
71
+ const staticRemotesConfig = (0, lib_1.parseStaticRemotesConfig)(remotes.staticRemotes, context);
72
+ await (0, lib_1.buildStaticRemotes)(staticRemotesConfig, nxBin, context, options);
73
+ const devRemoteIters = await (0, lib_1.startDevRemotes)(remotes, workspaceProjects, options, context);
74
+ const staticRemotesIter = remotes.staticRemotes.length > 0
75
+ ? (0, lib_1.startStaticRemotesFileServer)(staticRemotesConfig, context, options)
76
+ : undefined;
77
+ const removeBaseUrlEmission = (iter) => (0, async_iterable_1.mapAsyncIterable)(iter, (v) => ({
78
+ ...v,
79
+ baseUrl: undefined,
80
+ }));
81
+ return yield* (0, async_iterable_1.combineAsyncIterables)(removeBaseUrlEmission(currIter), ...devRemoteIters.map(removeBaseUrlEmission), ...(staticRemotesIter ? [removeBaseUrlEmission(staticRemotesIter)] : []), (0, async_iterable_1.createAsyncIterable)(async ({ next, done }) => {
82
+ if (!options.isInitialHost) {
83
+ done();
84
+ return;
85
+ }
86
+ if (remotes.remotePorts.length === 0) {
87
+ devkit_1.logger.info(`NX All remotes started, server ready at http://localhost:${options.port}`);
88
+ next({ success: true, baseUrl: `http://localhost:${options.port}` });
89
+ done();
90
+ return;
91
+ }
92
+ try {
93
+ const portsToWaitFor = staticRemotesIter
94
+ ? [options.staticRemotesPort, ...remotes.remotePorts]
95
+ : [...remotes.remotePorts];
96
+ await Promise.all(portsToWaitFor.map((port) => (0, wait_for_port_open_1.waitForPortOpen)(port, {
97
+ retries: 480,
98
+ retryDelay: 2500,
99
+ host: 'localhost',
100
+ })));
101
+ devkit_1.logger.info(`NX All remotes started, server ready at http://localhost:${options.port}`);
102
+ next({ success: true, baseUrl: `http://localhost:${options.port}` });
103
+ }
104
+ catch (err) {
105
+ throw new Error(`Failed to start remotes. Check above for any errors.`, {
106
+ cause: err,
107
+ });
108
+ }
109
+ finally {
110
+ done();
111
+ }
112
+ }));
113
+ }
114
+ exports.moduleFederationDevServerExecutor = moduleFederationDevServerExecutor;
115
+ exports.default = moduleFederationDevServerExecutor;
@@ -1,15 +1,14 @@
1
- export interface Schema {
2
- browserTarget: string;
3
- port: number;
4
- host: string;
1
+ interface BaseSchema {
2
+ port?: number;
3
+ host?: string;
5
4
  proxyConfig?: string;
6
- ssl: boolean;
5
+ ssl?: boolean;
7
6
  sslKey?: string;
8
7
  sslCert?: string;
9
8
  headers?: Record<string, string>;
10
- open: boolean;
9
+ open?: boolean;
11
10
  verbose?: boolean;
12
- liveReload: boolean;
11
+ liveReload?: boolean;
13
12
  publicHost?: string;
14
13
  allowedHosts?: string[];
15
14
  servePath?: string;
@@ -22,4 +21,23 @@ export interface Schema {
22
21
  pathToManifestFile?: string;
23
22
  static?: boolean;
24
23
  isInitialHost?: boolean;
24
+ parallel?: number;
25
+ staticRemotesPort?: number;
26
+ buildLibsFromSource?: boolean;
25
27
  }
28
+
29
+ export type SchemaWithBrowserTarget = BaseSchema & {
30
+ browserTarget: string;
31
+ };
32
+
33
+ export type SchemaWithBuildTarget = BaseSchema & {
34
+ buildTarget: string;
35
+ };
36
+
37
+ export type Schema = SchemaWithBrowserTarget | SchemaWithBuildTarget;
38
+
39
+ export type NormalizedSchema = SchemaWithBuildTarget & {
40
+ liveReload: boolean;
41
+ open: boolean;
42
+ ssl: boolean;
43
+ };
@@ -1,20 +1,25 @@
1
1
  {
2
- "version": 2,
3
- "outputCapture": "direct-nodejs",
4
2
  "$schema": "http://json-schema.org/draft-07/schema",
5
3
  "title": "Schema for Module Federation Dev Server",
4
+ "outputCapture": "direct-nodejs",
6
5
  "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.",
7
6
  "type": "object",
8
7
  "presets": [
9
8
  {
10
9
  "name": "Using a Different Port",
11
- "keys": ["browserTarget", "port"]
10
+ "keys": ["buildTarget", "port"]
12
11
  }
13
12
  ],
14
13
  "properties": {
15
14
  "browserTarget": {
16
15
  "type": "string",
17
- "description": "A browser builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
16
+ "description": "A browser builder target to serve in the format of `project:target[:configuration]`.",
17
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$",
18
+ "x-deprecated": "Use 'buildTarget' instead. It will be removed in Nx v19."
19
+ },
20
+ "buildTarget": {
21
+ "type": "string",
22
+ "description": "A build builder target to serve in the format of `project:target[:configuration]`.",
18
23
  "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
19
24
  },
20
25
  "port": {
@@ -117,7 +122,7 @@
117
122
  "items": {
118
123
  "type": "string"
119
124
  },
120
- "description": "List of remote applications to not automatically serve, either statically or in development mode."
125
+ "description": "List of remote applications to not automatically serve, either statically or in development mode. This will not remove the remotes from the `module-federation.config` file, and therefore the application may still try to fetch these remotes.\nThis option is useful for when the `host` application is using a `remote` that does not live in the same workspace as the `host`."
121
126
  },
122
127
  "pathToManifestFile": {
123
128
  "type": "string",
@@ -132,9 +137,29 @@
132
137
  "description": "Whether the host that is running this executor is the first in the project tree to do so.",
133
138
  "default": true,
134
139
  "x-priority": "internal"
140
+ },
141
+ "parallel": {
142
+ "type": "number",
143
+ "description": "Max number of parallel processes for building static remotes"
144
+ },
145
+ "staticRemotesPort": {
146
+ "type": "number",
147
+ "description": "The port at which to serve the file-server for the static remotes."
148
+ },
149
+ "buildLibsFromSource": {
150
+ "type": "boolean",
151
+ "description": "Read buildable libraries from source instead of building them separately. If not set, it will take the value specified in the `browserTarget` options, or it will default to `true` if it's also not set in the `browserTarget` options.",
152
+ "x-priority": "important"
135
153
  }
136
154
  },
137
155
  "additionalProperties": false,
138
- "required": ["browserTarget"],
156
+ "anyOf": [
157
+ {
158
+ "required": ["buildTarget"]
159
+ },
160
+ {
161
+ "required": ["browserTarget"]
162
+ }
163
+ ],
139
164
  "examplesFile": "../../../docs/module-federation-dev-server-examples.md"
140
165
  }
@@ -0,0 +1,3 @@
1
+ import { NgPackagr } from 'ng-packagr';
2
+ import type { BuildAngularLibraryExecutorOptions } from '../../package/schema';
3
+ export declare function getNgPackagrInstance(options: BuildAngularLibraryExecutorOptions): Promise<NgPackagr>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNgPackagrInstance = void 0;
4
+ const ng_packagr_1 = require("ng-packagr");
5
+ const angular_version_utils_1 = require("../../utilities/angular-version-utils");
6
+ async function getNgPackagrInstance(options) {
7
+ const { major: angularMajorVersion } = (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
8
+ if (angularMajorVersion >= 17) {
9
+ const { WRITE_BUNDLES_TRANSFORM } = await Promise.resolve().then(() => require('./v17+/ng-package/entry-point/write-bundles.di'));
10
+ const { WRITE_PACKAGE_TRANSFORM } = await Promise.resolve().then(() => require('./v17+/ng-package/entry-point/write-package.di'));
11
+ const { STYLESHEET_PROCESSOR } = await Promise.resolve().then(() => require('../../utilities/ng-packagr/stylesheet-processor.di'));
12
+ const packagr = (0, ng_packagr_1.ngPackagr)();
13
+ packagr.withProviders([
14
+ WRITE_BUNDLES_TRANSFORM,
15
+ WRITE_PACKAGE_TRANSFORM,
16
+ STYLESHEET_PROCESSOR,
17
+ ]);
18
+ return packagr;
19
+ }
20
+ const { NX_ENTRY_POINT_PROVIDERS } = await Promise.resolve().then(() => require('./pre-v17/ng-package/entry-point/entry-point.di'));
21
+ const { nxProvideOptions } = await Promise.resolve().then(() => require('./pre-v17/ng-package/options.di'));
22
+ const { NX_PACKAGE_PROVIDERS, NX_PACKAGE_TRANSFORM } = await Promise.resolve().then(() => require('./pre-v17/ng-package/package.di'));
23
+ const packagr = new ng_packagr_1.NgPackagr([
24
+ ...NX_PACKAGE_PROVIDERS,
25
+ ...NX_ENTRY_POINT_PROVIDERS,
26
+ nxProvideOptions({
27
+ tailwindConfig: options.tailwindConfig,
28
+ watch: options.watch,
29
+ }),
30
+ ]);
31
+ packagr.withBuildTransform(NX_PACKAGE_TRANSFORM.provide);
32
+ return packagr;
33
+ }
34
+ exports.getNgPackagrInstance = getNgPackagrInstance;
@@ -14,13 +14,15 @@ const nodes_1 = require("ng-packagr/lib/ng-package/nodes");
14
14
  const tsconfig_1 = require("ng-packagr/lib/ts/tsconfig");
15
15
  const path = require("path");
16
16
  const ts = require("typescript");
17
- const angular_version_utils_1 = require("../../../../utilities/angular-version-utils");
17
+ const angular_version_utils_1 = require("../../../../../utilities/angular-version-utils");
18
18
  const compile_source_files_1 = require("../../ngc/compile-source-files");
19
19
  const nxCompileNgcTransformFactory = (StylesheetProcessor, options) => {
20
20
  return (0, transform_1.transformFromPromise)(async (graph) => {
21
+ const entryPoints = graph.filter(nodes_1.isEntryPoint);
22
+ const entryPoint = graph.find((0, nodes_1.isEntryPointInProgress)());
23
+ const ngPackageNode = graph.find(nodes_1.isPackage);
24
+ const projectBasePath = ngPackageNode.data.primary.basePath;
21
25
  try {
22
- const entryPoint = graph.find((0, nodes_1.isEntryPointInProgress)());
23
- const entryPoints = graph.filter(nodes_1.isEntryPoint);
24
26
  // Add paths mappings for dependencies
25
27
  const tsConfig = (0, tsconfig_1.setDependenciesTsConfigPaths)(entryPoint.data.tsConfig, entryPoints);
26
28
  const angularVersion = (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
@@ -31,7 +33,7 @@ const nxCompileNgcTransformFactory = (StylesheetProcessor, options) => {
31
33
  : entryPoint.data.destinationFiles.esm2022;
32
34
  const { basePath, cssUrl, styleIncludePaths } = entryPoint.data.entryPoint;
33
35
  const { moduleResolutionCache } = entryPoint.cache;
34
- entryPoint.cache.stylesheetProcessor ??= new StylesheetProcessor(basePath, cssUrl, styleIncludePaths, options.cacheEnabled && options.cacheDirectory, options.watch, options.tailwindConfig);
36
+ entryPoint.cache.stylesheetProcessor ??= new StylesheetProcessor(projectBasePath, basePath, cssUrl, styleIncludePaths, options.cacheEnabled && options.cacheDirectory, options.tailwindConfig);
35
37
  await (0, compile_source_files_1.compileSourceFiles)(graph, tsConfig, moduleResolutionCache, options, {
36
38
  outDir: path.dirname(esmModulePath),
37
39
  declarationDir: path.dirname(declarations),
@@ -16,7 +16,7 @@ const fs_1 = require("ng-packagr/lib/utils/fs");
16
16
  const glob_1 = require("ng-packagr/lib/utils/glob");
17
17
  const path_1 = require("ng-packagr/lib/utils/path");
18
18
  const path = require("path");
19
- const angular_version_utils_1 = require("../../../../utilities/angular-version-utils");
19
+ const angular_version_utils_1 = require("../../../../../utilities/angular-version-utils");
20
20
  const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromise)(async (graph) => {
21
21
  const entryPoint = graph.find((0, nodes_1.isEntryPointInProgress)());
22
22
  const ngEntryPoint = entryPoint.data.entryPoint;
@@ -34,11 +34,14 @@ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromis
34
34
  }
35
35
  }
36
36
  // 6. WRITE PACKAGE.JSON
37
- // As of APF 14 only the primary entrypoint has a package.json
37
+ const relativeUnixFromDestPath = (filePath) => (0, path_1.ensureUnixPath)(path.relative(ngEntryPoint.destinationPath, filePath));
38
38
  if (!ngEntryPoint.isSecondaryEntryPoint) {
39
39
  try {
40
40
  devkit_1.logger.info('Writing package manifest');
41
- const relativeUnixFromDestPath = (filePath) => (0, path_1.ensureUnixPath)(path.relative(ngEntryPoint.destinationPath, filePath));
41
+ if (!options.watch) {
42
+ const primary = ngPackageNode.data.primary;
43
+ await (0, fs_1.writeFile)(path.join(primary.destinationPath, '.npmignore'), `# Nested package.json's are only needed for development.\n**/package.json`);
44
+ }
42
45
  await writePackageJson(ngEntryPoint, ngPackage, {
43
46
  // backward compat for Angular < 16
44
47
  ...(angularVersion.major < 16
@@ -60,17 +63,26 @@ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromis
60
63
  throw error;
61
64
  }
62
65
  }
63
- else if (options.watch) {
64
- // update the watch version of the primary entry point `package.json` file.
65
- // this is needed because of Webpack's 5 `cachemanagedpaths`
66
- // https://github.com/ng-packagr/ng-packagr/issues/2069
67
- const primary = ngPackageNode.data.primary;
68
- const packageJsonPath = path.join(primary.destinationPath, 'package.json');
69
- if (await (0, fs_1.exists)(packageJsonPath)) {
70
- const packageJson = JSON.parse(await (0, fs_1.readFile)(packageJsonPath, { encoding: 'utf8' }));
71
- packageJson.version = generateWatchVersion();
72
- await (0, fs_1.writeFile)(path.join(primary.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
66
+ else if (ngEntryPoint.isSecondaryEntryPoint) {
67
+ if (options.watch) {
68
+ // Update the watch version of the primary entry point `package.json` file.
69
+ // this is needed because of Webpack's 5 `cachemanagedpaths`
70
+ // https://github.com/ng-packagr/ng-packagr/issues/2069
71
+ const primary = ngPackageNode.data.primary;
72
+ const packageJsonPath = path.join(primary.destinationPath, 'package.json');
73
+ if (await (0, fs_1.exists)(packageJsonPath)) {
74
+ const packageJson = JSON.parse(await (0, fs_1.readFile)(packageJsonPath, { encoding: 'utf8' }));
75
+ packageJson.version = generateWatchVersion();
76
+ await (0, fs_1.writeFile)(path.join(primary.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
77
+ }
73
78
  }
79
+ // Write a package.json in each secondary entry-point
80
+ // This is need for esbuild to secondary entry-points in dist correctly.
81
+ await (0, fs_1.writeFile)(path.join(ngEntryPoint.destinationPath, 'package.json'), JSON.stringify({
82
+ module: relativeUnixFromDestPath(angularVersion.major < 16
83
+ ? destinationFiles.esm2020
84
+ : destinationFiles.esm2022),
85
+ }, undefined, 2));
74
86
  }
75
87
  devkit_1.logger.info(`Built ${ngEntryPoint.moduleId}`);
76
88
  return graph;
@@ -2,8 +2,7 @@
2
2
  * Adapted from the original ng-packagr source.
3
3
  *
4
4
  * Changes made:
5
- * - Remove ngccProcessor (Angular < 16)
6
- * - Use custom cacheCompilerHost instead of the one provided by ng-packagr.
5
+ * - Use custom StylesheetProcessor instead of the one provided by ng-packagr.
7
6
  * - Support Angular Compiler `incrementalDriver` for Angular < 16.
8
7
  */
9
8
  import type { CompilerOptions, ParsedConfiguration } from '@angular/compiler-cli';
@@ -3,8 +3,7 @@
3
3
  * Adapted from the original ng-packagr source.
4
4
  *
5
5
  * Changes made:
6
- * - Remove ngccProcessor (Angular < 16)
7
- * - Use custom cacheCompilerHost instead of the one provided by ng-packagr.
6
+ * - Use custom StylesheetProcessor instead of the one provided by ng-packagr.
8
7
  * - Support Angular Compiler `incrementalDriver` for Angular < 16.
9
8
  */
10
9
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -12,11 +11,10 @@ exports.compileSourceFiles = void 0;
12
11
  const nodes_1 = require("ng-packagr/lib/ng-package/nodes");
13
12
  const cache_compiler_host_1 = require("ng-packagr/lib/ts/cache-compiler-host");
14
13
  const log = require("ng-packagr/lib/utils/log");
15
- const ng_compiler_cli_1 = require("ng-packagr/lib/utils/ng-compiler-cli");
16
14
  const node_path_1 = require("node:path");
17
15
  const ts = require("typescript");
18
- const angular_version_utils_1 = require("../../../utilities/angular-version-utils");
19
- const cache_compiler_host_2 = require("../ts/cache-compiler-host");
16
+ const angular_version_utils_1 = require("../../../../utilities/angular-version-utils");
17
+ const ng_compiler_cli_1 = require("../../../../utilities/ng-compiler-cli");
20
18
  async function compileSourceFiles(graph, tsConfig, moduleResolutionCache, options, extraOptions, stylesheetProcessor) {
21
19
  const { NgtscProgram, formatDiagnostics } = await (0, ng_compiler_cli_1.ngCompilerCli)();
22
20
  const { cacheDirectory, watch, cacheEnabled } = options;
@@ -32,7 +30,7 @@ async function compileSourceFiles(graph, tsConfig, moduleResolutionCache, option
32
30
  tsConfigOptions.incremental ??= true;
33
31
  tsConfigOptions.tsBuildInfoFile ??= (0, node_path_1.join)(cacheDir, `tsbuildinfo/${entryPoint.data.entryPoint.flatModuleFile}.tsbuildinfo`);
34
32
  }
35
- const tsCompilerHost = (0, cache_compiler_host_2.cacheCompilerHost)(graph, entryPoint, tsConfigOptions, moduleResolutionCache, stylesheetProcessor, inlineStyleLanguage);
33
+ const tsCompilerHost = (0, cache_compiler_host_1.cacheCompilerHost)(graph, entryPoint, tsConfigOptions, moduleResolutionCache, stylesheetProcessor, inlineStyleLanguage);
36
34
  const cache = entryPoint.cache;
37
35
  const sourceFileCache = cache.sourcesFileCache;
38
36
  let usingBuildInfo = false;
@@ -56,9 +54,7 @@ async function compileSourceFiles(graph, tsConfig, moduleResolutionCache, option
56
54
  cache.oldNgtscProgram = angularProgram;
57
55
  }
58
56
  else {
59
- // When not in watch mode, the startup cost of the incremental analysis can be avoided by
60
- // using an abstract builder that only wraps a TypeScript program.
61
- builder = ts.createAbstractBuilder(typeScriptProgram, tsCompilerHost);
57
+ builder = ts.createEmitAndSemanticDiagnosticsBuilderProgram(typeScriptProgram, tsCompilerHost);
62
58
  }
63
59
  // Update semantic diagnostics cache
64
60
  const affectedFiles = new Set();
@@ -155,6 +151,15 @@ async function compileSourceFiles(graph, tsConfig, moduleResolutionCache, option
155
151
  throw new Error(formatDiagnostics(errorDiagnostics));
156
152
  }
157
153
  const transformers = angularCompiler.prepareEmit().transformers;
154
+ if ('getSemanticDiagnosticsOfNextAffectedFile' in builder) {
155
+ while (builder.emitNextAffectedFile((fileName, data, writeByteOrderMark, onError, sourceFiles) => {
156
+ if (fileName.endsWith('.tsbuildinfo')) {
157
+ tsCompilerHost.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);
158
+ }
159
+ })) {
160
+ // empty
161
+ }
162
+ }
158
163
  const angularVersion = (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
159
164
  const incrementalCompilation = angularVersion.major < 16
160
165
  ? angularCompiler.incrementalDriver
@@ -2,10 +2,8 @@
2
2
  * Adapted from the original ng-packagr source.
3
3
  *
4
4
  * Changes made:
5
- * - Added the filePath parameter to the cache key.
6
5
  * - Refactored caching to take into account TailwindCSS processing.
7
- * - Added PostCSS plugins needed to support TailwindCSS.
8
- * - Added watch mode parameter.
6
+ * - Added PostCSS plugin needed to support TailwindCSS.
9
7
  */
10
8
  export declare enum CssUrl {
11
9
  inline = "inline",
@@ -23,25 +21,22 @@ export interface Result {
23
21
  error?: string;
24
22
  }
25
23
  export declare class StylesheetProcessor {
24
+ private readonly projectBasePath;
26
25
  private readonly basePath;
27
26
  private readonly cssUrl?;
28
27
  private readonly includePaths?;
29
- private readonly cacheDirectory?;
30
- private readonly watch?;
28
+ private cacheDirectory?;
31
29
  private readonly tailwindConfig?;
32
30
  private browserslistData;
33
31
  private targets;
34
32
  private postCssProcessor;
35
33
  private esbuild;
36
34
  private styleIncludePaths;
37
- private tailwindSetup;
38
- constructor(basePath: string, cssUrl?: CssUrl, includePaths?: string[], cacheDirectory?: string | false, watch?: boolean, tailwindConfig?: string);
35
+ constructor(projectBasePath: string, basePath: string, cssUrl?: CssUrl, includePaths?: string[], cacheDirectory?: string | false, tailwindConfig?: string);
39
36
  process({ filePath, content, }: {
40
37
  filePath: string;
41
38
  content: string;
42
39
  }): Promise<string>;
43
- private getCachedResult;
44
- private containsTailwindDirectives;
45
- private createPostCssPlugins;
40
+ private createPostCssProcessor;
46
41
  private renderCss;
47
42
  }