@nx/angular 21.1.2 → 21.2.0-beta.2

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 (271) hide show
  1. package/README.md +4 -4
  2. package/fesm2022/nx-angular-mf.mjs +10 -3
  3. package/fesm2022/nx-angular-mf.mjs.map +1 -1
  4. package/fesm2022/nx-angular.mjs.map +1 -1
  5. package/index.d.ts +2 -1
  6. package/mf/index.d.ts +71 -1
  7. package/migrations.json +106 -0
  8. package/ng-package.json +0 -1
  9. package/package.json +28 -16
  10. package/plugins/component-testing.js +8 -3
  11. package/src/builders/dev-server/dev-server.impl.js +4 -7
  12. package/src/builders/dev-server/lib/normalize-options.js +0 -6
  13. package/src/builders/dev-server/lib/validate-options.js +0 -4
  14. package/src/builders/dev-server/schema.d.ts +3 -15
  15. package/src/builders/dev-server/schema.json +3 -9
  16. package/src/builders/webpack-browser/webpack-browser.impl.js +2 -0
  17. package/src/builders/webpack-server/webpack-server.impl.d.ts +3 -1
  18. package/src/builders/webpack-server/webpack-server.impl.js +2 -0
  19. package/src/executors/application/application.impl.d.ts +2 -2
  20. package/src/executors/application/application.impl.js +11 -6
  21. package/src/executors/application/schema.d.ts +1 -1
  22. package/src/executors/application/schema.json +21 -10
  23. package/src/executors/application/utils/normalize-options.js +8 -1
  24. package/src/executors/application/utils/validate-options.js +10 -40
  25. package/src/executors/extract-i18n/extract-i18n.impl.js +6 -14
  26. package/src/executors/extract-i18n/schema.d.ts +1 -6
  27. package/src/executors/extract-i18n/schema.json +5 -0
  28. package/src/executors/extract-i18n/utils/validate-options.d.ts +2 -0
  29. package/src/executors/extract-i18n/utils/validate-options.js +13 -0
  30. package/src/executors/module-federation-dev-server/lib/normalize-options.js +1 -7
  31. package/src/executors/module-federation-dev-server/schema.d.ts +3 -15
  32. package/src/executors/module-federation-dev-server/schema.json +2 -15
  33. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +10 -8
  34. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.d.ts +6 -3
  35. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.js +46 -8
  36. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.d.ts +1 -1
  37. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.di.js +3 -3
  38. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.d.ts +2 -2
  39. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-bundles.transform.js +36 -7
  40. package/src/executors/ng-packagr-lite/schema.json +2 -3
  41. package/src/executors/package/package.impl.js +1 -5
  42. package/src/executors/package/schema.d.ts +3 -1
  43. package/src/executors/package/schema.json +2 -3
  44. package/src/executors/utilities/builder-package.d.ts +1 -0
  45. package/src/executors/utilities/builder-package.js +11 -0
  46. package/src/executors/utilities/esbuild-extensions.d.ts +2 -1
  47. package/src/executors/utilities/ng-packagr/package-imports.d.ts +3 -1
  48. package/src/executors/utilities/ng-packagr/package-imports.js +2 -2
  49. package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.d.ts +2 -24
  50. package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.js +40 -107
  51. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +4 -8
  52. package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts +1 -1
  53. package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.js +18 -11
  54. package/src/generators/add-linting/add-linting.js +8 -0
  55. package/src/generators/application/application.js +22 -8
  56. package/src/generators/application/files/base/tsconfig.app.json__tpl__ +10 -1
  57. package/src/generators/application/files/base/tsconfig.json__tpl__ +7 -8
  58. package/src/generators/application/files/ng-module/src/app/app__componentFileSuffix__.spec.ts__tpl__ +28 -0
  59. package/src/generators/application/files/ng-module/src/app/{app.component.ts__tpl__ → app__componentFileSuffix__.ts__tpl__} +4 -4
  60. package/src/generators/application/files/ng-module/src/app/app__moduleTypeSeparator__module.ts__tpl__ +17 -0
  61. package/src/generators/application/files/ng-module/src/main.ts__tpl__ +11 -3
  62. package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  63. package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  64. package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  65. package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  66. package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  67. package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/{nx-welcome.component.ts__tpl__ → nx-welcome__componentFileSuffix__.ts__tpl__} +1 -1
  68. package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +6 -2
  69. package/src/generators/application/files/standalone-components/src/app/app__componentFileSuffix__.spec.ts__tpl__ +27 -0
  70. package/src/generators/application/files/standalone-components/src/app/{app.component.ts__tpl__ → app__componentFileSuffix__.ts__tpl__} +6 -6
  71. package/src/generators/application/files/standalone-components/src/main.ts__tpl__ +2 -2
  72. package/src/generators/application/lib/create-files.d.ts +1 -1
  73. package/src/generators/application/lib/create-files.js +18 -19
  74. package/src/generators/application/lib/create-project.d.ts +1 -1
  75. package/src/generators/application/lib/create-project.js +119 -26
  76. package/src/generators/application/lib/enable-strict-type-checking.js +4 -2
  77. package/src/generators/application/lib/index.d.ts +1 -2
  78. package/src/generators/application/lib/index.js +1 -2
  79. package/src/generators/application/lib/set-generator-defaults.js +1 -0
  80. package/src/generators/application/lib/{update-editor-tsconfig.d.ts → update-tsconfig-files.d.ts} +1 -1
  81. package/src/generators/application/lib/update-tsconfig-files.js +93 -0
  82. package/src/generators/application/schema.json +1 -1
  83. package/src/generators/component/component.js +13 -2
  84. package/src/generators/component/files/__fileName__.ts__tpl__ +1 -1
  85. package/src/generators/component/lib/component.js +11 -1
  86. package/src/generators/component/lib/module.d.ts +7 -2
  87. package/src/generators/component/lib/module.js +7 -5
  88. package/src/generators/component/lib/normalize-options.js +7 -3
  89. package/src/generators/component/schema.d.ts +1 -0
  90. package/src/generators/component/schema.json +6 -2
  91. package/src/generators/convert-to-application-executor/convert-to-application-executor.js +37 -24
  92. package/src/generators/convert-to-rspack/convert-to-rspack.d.ts +1 -1
  93. package/src/generators/convert-to-rspack/convert-to-rspack.js +173 -28
  94. package/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +1 -1
  95. package/src/generators/directive/directive.js +1 -1
  96. package/src/generators/directive/lib/normalize-options.js +7 -2
  97. package/src/generators/directive/schema.d.ts +1 -0
  98. package/src/generators/directive/schema.json +10 -2
  99. package/src/generators/host/host.js +21 -1
  100. package/src/generators/host/schema.d.ts +1 -0
  101. package/src/generators/host/schema.json +7 -1
  102. package/src/generators/init/init.js +1 -1
  103. package/src/generators/library/files/base/tsconfig.json__tpl__ +5 -5
  104. package/src/generators/library/files/ng-module/src/index.ts__tpl__ +1 -1
  105. package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +2 -2
  106. package/src/generators/library/lib/add-standalone-component.js +1 -0
  107. package/src/generators/library/lib/create-files.js +10 -3
  108. package/src/generators/library/lib/normalize-options.d.ts +3 -3
  109. package/src/generators/library/lib/normalize-options.js +6 -1
  110. package/src/generators/library/lib/normalized-schema.d.ts +2 -0
  111. package/src/generators/library/lib/set-generator-defaults.js +1 -0
  112. package/src/generators/library/lib/update-tsconfig-files.d.ts +3 -0
  113. package/src/generators/library/lib/update-tsconfig-files.js +98 -0
  114. package/src/generators/library/library.js +19 -33
  115. package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -1
  116. package/src/generators/library-secondary-entry-point/lib/add-files.js +2 -1
  117. package/src/generators/library-secondary-entry-point/lib/normalize-options.d.ts +2 -2
  118. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +3 -0
  119. package/src/generators/library-secondary-entry-point/schema.d.ts +1 -0
  120. package/src/generators/move/lib/update-module-name.js +17 -10
  121. package/src/generators/move/lib/update-secondary-entry-points.js +0 -3
  122. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +1 -1
  123. package/src/generators/ng-add/migrators/projects/app.migrator.js +43 -8
  124. package/src/generators/ngrx/schema.json +3 -3
  125. package/src/generators/ngrx-root-store/lib/normalize-options.js +9 -2
  126. package/src/generators/pipe/lib/normalize-options.js +4 -0
  127. package/src/generators/pipe/pipe.js +1 -1
  128. package/src/generators/pipe/schema.d.ts +1 -0
  129. package/src/generators/pipe/schema.json +11 -2
  130. package/src/generators/remote/files/standalone/src/bootstrap.server.ts__tmpl__ +4 -4
  131. package/src/generators/remote/lib/update-ssr-setup.js +5 -0
  132. package/src/generators/remote/remote.js +23 -0
  133. package/src/generators/remote/schema.d.ts +1 -0
  134. package/src/generators/remote/schema.json +7 -1
  135. package/src/generators/scam/lib/convert-component-to-scam.js +1 -3
  136. package/src/generators/scam/lib/normalize-options.js +11 -3
  137. package/src/generators/scam/schema.d.ts +1 -0
  138. package/src/generators/scam/schema.json +1 -2
  139. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +1 -3
  140. package/src/generators/scam-directive/lib/normalize-options.js +11 -2
  141. package/src/generators/scam-directive/schema.d.ts +2 -0
  142. package/src/generators/scam-directive/schema.json +10 -2
  143. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +1 -3
  144. package/src/generators/scam-pipe/lib/normalize-options.js +8 -0
  145. package/src/generators/scam-pipe/schema.d.ts +2 -0
  146. package/src/generators/scam-pipe/schema.json +5 -0
  147. package/src/generators/setup-mf/files/entry-module-files/{entry.module.ts__tmpl__ → __entryModuleFileName__.ts__tmpl__} +4 -4
  148. package/src/generators/setup-mf/files/entry-module-files/entry.routes.ts__tmpl__ +2 -2
  149. package/src/generators/setup-mf/files/entry-module-files/{entry.component.ts__tmpl__ → entry__componentFileSuffix__.ts__tmpl__} +1 -1
  150. package/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +43 -0
  151. package/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +2 -2
  152. package/src/generators/setup-mf/files/standalone-entry-component-files/{entry.component.ts__tmpl__ → entry__componentFileSuffix__.ts__tmpl__} +3 -3
  153. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +1 -1
  154. package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +1 -1
  155. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +1 -1
  156. package/src/generators/setup-mf/lib/add-remote-entry.d.ts +2 -2
  157. package/src/generators/setup-mf/lib/add-remote-entry.js +9 -3
  158. package/src/generators/setup-mf/lib/add-remote-to-host.js +11 -1
  159. package/src/generators/setup-mf/lib/fix-bootstrap.d.ts +2 -2
  160. package/src/generators/setup-mf/lib/fix-bootstrap.js +4 -4
  161. package/src/generators/setup-mf/lib/generate-config.d.ts +2 -2
  162. package/src/generators/setup-mf/lib/generate-config.js +1 -0
  163. package/src/generators/setup-mf/lib/normalize-options.d.ts +1 -1
  164. package/src/generators/setup-mf/lib/normalize-options.js +13 -0
  165. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +2 -2
  166. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +18 -14
  167. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -5
  168. package/src/generators/setup-mf/lib/setup-tspath-for-remote.d.ts +2 -2
  169. package/src/generators/setup-mf/lib/setup-tspath-for-remote.js +1 -1
  170. package/src/generators/setup-mf/lib/update-host-app-routes.d.ts +2 -2
  171. package/src/generators/setup-mf/lib/update-host-app-routes.js +12 -9
  172. package/src/generators/setup-mf/lib/update-tsconfig.d.ts +2 -2
  173. package/src/generators/setup-mf/lib/update-tsconfig.js +5 -5
  174. package/src/generators/setup-mf/schema.d.ts +7 -0
  175. package/src/generators/setup-mf/setup-mf.d.ts +2 -2
  176. package/src/generators/setup-mf/setup-mf.js +16 -6
  177. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/__main__ +1 -0
  178. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/__rootModuleFileName__ +12 -0
  179. package/src/generators/setup-ssr/files/v20+/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +8 -0
  180. package/src/generators/setup-ssr/files/v20+/application-builder/server/__serverFileName__ +66 -0
  181. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/__main__ +7 -0
  182. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.config.server.ts__tpl__ +12 -0
  183. package/src/generators/setup-ssr/files/v20+/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +8 -0
  184. package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/__main__ +1 -0
  185. package/src/generators/setup-ssr/files/v20+/server-builder/ngmodule-src/app/__rootModuleFileName__ +14 -0
  186. package/src/generators/setup-ssr/files/v20+/server-builder/root/tsconfig.server.json.template +18 -0
  187. package/src/generators/setup-ssr/files/v20+/server-builder/server/__serverFileName__ +69 -0
  188. package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/__main__ +7 -0
  189. package/src/generators/setup-ssr/files/v20+/server-builder/standalone-src/app/app.config.server.ts.template +11 -0
  190. package/src/generators/setup-ssr/lib/add-dependencies.js +11 -8
  191. package/src/generators/setup-ssr/lib/add-hydration.js +10 -3
  192. package/src/generators/setup-ssr/lib/add-server-file.js +7 -2
  193. package/src/generators/setup-ssr/lib/generate-files.js +17 -4
  194. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +32 -6
  195. package/src/generators/setup-ssr/lib/normalize-options.js +5 -3
  196. package/src/generators/setup-ssr/lib/update-project-config.js +5 -0
  197. package/src/generators/setup-ssr/lib/validate-options.js +2 -2
  198. package/src/generators/setup-ssr/schema.d.ts +1 -0
  199. package/src/generators/setup-ssr/schema.json +1 -1
  200. package/src/generators/utils/add-jest.js +6 -1
  201. package/src/generators/utils/app-components-info.d.ts +9 -0
  202. package/src/generators/utils/app-components-info.js +39 -0
  203. package/src/generators/utils/artifact-types.d.ts +3 -0
  204. package/src/generators/utils/artifact-types.js +33 -0
  205. package/src/generators/utils/assert-mf-utils.d.ts +1 -0
  206. package/src/generators/utils/assert-mf-utils.js +11 -0
  207. package/src/generators/utils/ensure-angular-dependencies.js +6 -3
  208. package/src/generators/utils/export-scam.d.ts +1 -0
  209. package/src/generators/utils/export-scam.js +1 -2
  210. package/src/generators/utils/find-module.js +18 -13
  211. package/src/generators/utils/storybook-ast/component-info.js +40 -24
  212. package/src/generators/utils/storybook-ast/module-info.d.ts +1 -1
  213. package/src/generators/utils/storybook-ast/module-info.js +3 -8
  214. package/src/generators/utils/testing.js +28 -28
  215. package/src/generators/utils/version-utils.js +2 -2
  216. package/src/generators/web-worker/lib/add-snippet.js +3 -3
  217. package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.d.ts +2 -0
  218. package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.js +110 -0
  219. package/src/migrations/update-21-2-0/replace-provide-server-routing.d.ts +2 -0
  220. package/src/migrations/update-21-2-0/replace-provide-server-routing.js +103 -0
  221. package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.d.ts +2 -0
  222. package/src/migrations/update-21-2-0/set-generator-defaults-for-previous-style-guide.js +47 -0
  223. package/src/migrations/update-21-2-0/update-angular-cli.d.ts +3 -0
  224. package/src/migrations/update-21-2-0/update-angular-cli.js +23 -0
  225. package/src/migrations/update-21-2-0/update-module-resolution.d.ts +2 -0
  226. package/src/migrations/update-21-2-0/update-module-resolution.js +45 -0
  227. package/src/plugins/plugin.js +22 -13
  228. package/src/utils/backward-compatible-versions.d.ts +2 -2
  229. package/src/utils/backward-compatible-versions.js +22 -19
  230. package/src/utils/nx-devkit/ast-utils.js +17 -3
  231. package/src/utils/nx-devkit/testing.js +9 -9
  232. package/src/utils/targets.d.ts +2 -1
  233. package/src/utils/targets.js +6 -0
  234. package/src/utils/versions.d.ts +4 -3
  235. package/src/utils/versions.js +5 -4
  236. package/mf/mf.d.ts +0 -69
  237. package/src/generators/application/files/base-pre18/src/favicon.ico +0 -0
  238. package/src/generators/application/files/ng-module/src/app/app.component.spec.ts__tpl__ +0 -29
  239. package/src/generators/application/files/ng-module/src/app/app.module.ts__tpl__ +0 -17
  240. package/src/generators/application/files/standalone-components/src/app/app.component.__style__ +0 -0
  241. package/src/generators/application/files/standalone-components/src/app/app.component.spec.ts__tpl__ +0 -28
  242. package/src/generators/application/lib/set-app-strict-default.d.ts +0 -2
  243. package/src/generators/application/lib/set-app-strict-default.js +0 -13
  244. package/src/generators/application/lib/update-editor-tsconfig.js +0 -21
  245. package/src/generators/library/lib/enable-strict-type-checking.d.ts +0 -7
  246. package/src/generators/library/lib/enable-strict-type-checking.js +0 -47
  247. package/src/generators/library/lib/update-tsconfig.d.ts +0 -3
  248. package/src/generators/library/lib/update-tsconfig.js +0 -36
  249. package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +0 -47
  250. /package/src/generators/application/files/{base-18+ → base}/public/favicon.ico +0 -0
  251. /package/src/generators/application/files/{base-pre18/src/assets/.gitkeep__tpl__ → ng-module/src/app/app__componentFileSuffix__.__style__} +0 -0
  252. /package/src/generators/application/files/ng-module/src/app/{app.component.html__tpl__ → app__componentFileSuffix__.html__tpl__} +0 -0
  253. /package/src/generators/application/files/{ng-module/src/app/app.component.__style__ → standalone-components/src/app/app__componentFileSuffix__.__style__} +0 -0
  254. /package/src/generators/application/files/standalone-components/src/app/{app.component.html__tpl__ → app__componentFileSuffix__.html__tpl__} +0 -0
  255. /package/src/generators/component/files/{__fileName__.html__tpl__ → __fileName____ngext__.html__tpl__} +0 -0
  256. /package/src/generators/library/files/ng-module/src/lib/{__libFileName__.module.ts__tpl__ → __libFileName____moduleTypeSeparator__module.ts__tpl__} +0 -0
  257. /package/src/generators/library-secondary-entry-point/files/src/lib/{__fileName__.module.ts__tmpl__ → __fileName____moduleTypeSeparator__module.ts__tmpl__} +0 -0
  258. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/ngmodule-src/__main__ +0 -0
  259. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
  260. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +0 -0
  261. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/server/__serverFileName__ +0 -0
  262. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/standalone-src/__main__ +0 -0
  263. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/standalone-src/app/app.config.server.ts__tpl__ +0 -0
  264. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +0 -0
  265. /package/src/generators/setup-ssr/files/{v19+ → v19}/application-builder-common-engine/server/__serverFileName__ +0 -0
  266. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/ngmodule-src/__main__ +0 -0
  267. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/ngmodule-src/app/__rootModuleFileName__ +0 -0
  268. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/root/tsconfig.server.json.template +0 -0
  269. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/server/__serverFileName__ +0 -0
  270. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/standalone-src/__main__ +0 -0
  271. /package/src/generators/setup-ssr/files/{v19+ → v19}/server-builder/standalone-src/app/app.config.server.ts.template +0 -0
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const TYPE_GENERATORS = ['component', 'directive', 'service'];
6
+ const TYPE_SEPARATOR_GENERATORS = [
7
+ 'guard',
8
+ 'interceptor',
9
+ 'module',
10
+ 'pipe',
11
+ 'resolver',
12
+ ];
13
+ async function default_1(tree) {
14
+ const nxJson = (0, devkit_1.readNxJson)(tree);
15
+ nxJson.generators ??= {};
16
+ for (const generator of TYPE_GENERATORS) {
17
+ setDefault(nxJson.generators, '@nx/angular', generator, 'type', generator);
18
+ setDefault(nxJson.generators, '@schematics/angular', generator, 'type', generator);
19
+ }
20
+ setDefault(nxJson.generators, '@nx/angular', 'scam', 'type', 'component');
21
+ setDefault(nxJson.generators, '@nx/angular', 'scam-directive', 'type', 'directive');
22
+ for (const generator of TYPE_SEPARATOR_GENERATORS) {
23
+ setDefault(nxJson.generators, '@nx/angular', generator, 'typeSeparator', '.');
24
+ setDefault(nxJson.generators, '@schematics/angular', generator, 'typeSeparator', '.');
25
+ }
26
+ (0, devkit_1.updateNxJson)(tree, nxJson);
27
+ await (0, devkit_1.formatFiles)(tree);
28
+ }
29
+ function setDefault(generators, collection, generator, option, value) {
30
+ const generatorKey = `${collection}:${generator}`;
31
+ if (generators[generatorKey]?.[option] ||
32
+ generators[collection]?.[generator]?.[option]) {
33
+ return;
34
+ }
35
+ if (generators[generatorKey]) {
36
+ generators[generatorKey][option] = value;
37
+ }
38
+ else if (generators[collection]?.[generator]) {
39
+ generators[collection][generator][option] = value;
40
+ }
41
+ else if (generators[collection]) {
42
+ generators[collection][generator] = { [option]: value };
43
+ }
44
+ else {
45
+ generators[generatorKey] = { [option]: value };
46
+ }
47
+ }
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare const angularCliVersion = "20.0.0-rc.3";
3
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.angularCliVersion = void 0;
4
+ exports.default = default_1;
5
+ const devkit_1 = require("@nx/devkit");
6
+ exports.angularCliVersion = '20.0.0-rc.3';
7
+ async function default_1(tree) {
8
+ let shouldFormat = false;
9
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
10
+ if (json.devDependencies?.['@angular/cli']) {
11
+ json.devDependencies['@angular/cli'] = exports.angularCliVersion;
12
+ shouldFormat = true;
13
+ }
14
+ else if (json.dependencies?.['@angular/cli']) {
15
+ json.dependencies['@angular/cli'] = exports.angularCliVersion;
16
+ shouldFormat = true;
17
+ }
18
+ return json;
19
+ });
20
+ if (shouldFormat) {
21
+ await (0, devkit_1.formatFiles)(tree);
22
+ }
23
+ }
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export default function (tree: Tree): Promise<void>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const targets_1 = require("../../utils/targets");
6
+ const projects_1 = require("../utils/projects");
7
+ async function default_1(tree) {
8
+ const uniqueTsConfigs = new Set();
9
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
10
+ 'npm:@angular/core',
11
+ ]);
12
+ for (const { project } of projects) {
13
+ for (const [, target] of (0, targets_1.allProjectTargets)(project)) {
14
+ for (const [, options] of (0, targets_1.allTargetOptions)(target)) {
15
+ if (typeof options?.tsConfig === 'string') {
16
+ uniqueTsConfigs.add(options.tsConfig);
17
+ }
18
+ }
19
+ }
20
+ }
21
+ for (const tsConfig of uniqueTsConfigs) {
22
+ if (tree.exists(tsConfig)) {
23
+ updateModuleResolution(tree, tsConfig);
24
+ }
25
+ }
26
+ await (0, devkit_1.formatFiles)(tree);
27
+ }
28
+ function updateModuleResolution(tree, tsConfigPath) {
29
+ const tsConfig = (0, devkit_1.readJson)(tree, tsConfigPath);
30
+ if (!tsConfig.compilerOptions) {
31
+ return;
32
+ }
33
+ const { compilerOptions } = tsConfig;
34
+ // Only update if module is not 'preserve' and moduleResolution is not already 'bundler'
35
+ if (compilerOptions.module === 'preserve' ||
36
+ compilerOptions.moduleResolution === 'bundler') {
37
+ return;
38
+ }
39
+ // Update moduleResolution to 'bundler'
40
+ (0, devkit_1.updateJson)(tree, tsConfigPath, (json) => {
41
+ json.compilerOptions ??= {};
42
+ json.compilerOptions.moduleResolution = 'bundler';
43
+ return json;
44
+ });
45
+ }
@@ -21,8 +21,14 @@ const knownExecutors = {
21
21
  '@angular-devkit/build-angular:ng-packagr',
22
22
  '@angular/build:ng-packagr',
23
23
  ]),
24
- devServer: new Set(['@angular-devkit/build-angular:dev-server']),
25
- extractI18n: new Set(['@angular-devkit/build-angular:extract-i18n']),
24
+ devServer: new Set([
25
+ '@angular-devkit/build-angular:dev-server',
26
+ '@angular/build:dev-server',
27
+ ]),
28
+ extractI18n: new Set([
29
+ '@angular-devkit/build-angular:extract-i18n',
30
+ '@angular/build:extract-i18n',
31
+ ]),
26
32
  prerender: new Set([
27
33
  '@angular-devkit/build-angular:prerender',
28
34
  '@nguniversal/builders:prerender',
@@ -32,7 +38,10 @@ const knownExecutors = {
32
38
  '@angular-devkit/build-angular:ssr-dev-server',
33
39
  '@nguniversal/builders:ssr-dev-server',
34
40
  ]),
35
- test: new Set(['@angular-devkit/build-angular:karma']),
41
+ test: new Set([
42
+ '@angular-devkit/build-angular:karma',
43
+ '@angular/build:karma',
44
+ ]),
36
45
  };
37
46
  const pmc = (0, devkit_1.getPackageManagerCommand)();
38
47
  function readProjectsCache(cachePath) {
@@ -111,7 +120,7 @@ async function buildAngularProjects(configFilePath, options, angularWorkspaceRoo
111
120
  appShellTargets.push({ target: nxTargetName, project: projectName });
112
121
  }
113
122
  else if (knownExecutors.build.has(angularTarget.builder)) {
114
- await updateBuildTarget(nxTargetName, targets[nxTargetName], angularTarget, context, angularWorkspaceRoot, project.root, namedInputs);
123
+ await updateBuildTarget(projectName, nxTargetName, targets[nxTargetName], angularTarget, context, angularWorkspaceRoot, project.root, namedInputs);
115
124
  }
116
125
  else if (knownExecutors.devServer.has(angularTarget.builder)) {
117
126
  targets[nxTargetName].continuous = true;
@@ -196,21 +205,21 @@ function updateAppShellTarget(projectName, targetName, projects, angularJson, an
196
205
  target.inputs = inputs;
197
206
  target.outputs = outputs;
198
207
  }
199
- async function updateBuildTarget(targetName, target, angularTarget, context, angularWorkspaceRoot, projectRoot, namedInputs) {
208
+ async function updateBuildTarget(projectName, targetName, target, angularTarget, context, angularWorkspaceRoot, projectRoot, namedInputs) {
200
209
  target.dependsOn = [`^${targetName}`];
201
- if (angularTarget.options?.outputPath) {
202
- const fullOutputPath = (0, node_path_1.join)(context.workspaceRoot, angularWorkspaceRoot, angularTarget.options.outputPath);
203
- target.outputs = [
204
- getOutput(fullOutputPath, context.workspaceRoot, angularWorkspaceRoot, projectRoot),
205
- ];
206
- }
207
- else if (angularTarget.builder === '@angular-devkit/build-angular:ng-packagr' ||
210
+ if (angularTarget.builder === '@angular-devkit/build-angular:ng-packagr' ||
208
211
  angularTarget.builder === '@angular/build:ng-packagr') {
209
212
  const outputs = await getNgPackagrOutputs(angularTarget, angularWorkspaceRoot, projectRoot, context);
210
213
  if (outputs.length) {
211
214
  target.outputs = outputs;
212
215
  }
213
216
  }
217
+ else {
218
+ const fullOutputPath = (0, node_path_1.join)(context.workspaceRoot, angularWorkspaceRoot, angularTarget.options?.outputPath ?? posix.join('dist', projectName));
219
+ target.outputs = [
220
+ getOutput(fullOutputPath, context.workspaceRoot, angularWorkspaceRoot, projectRoot),
221
+ ];
222
+ }
214
223
  if (target.outputs?.length) {
215
224
  // make it cacheable if we were able to identify outputs
216
225
  target.cache = true;
@@ -272,7 +281,7 @@ function updatePrerenderTarget(projectName, targetName, projects, angularJson) {
272
281
  target.outputs = outputs;
273
282
  }
274
283
  async function getNgPackagrOutputs(target, angularWorkspaceRoot, projectRoot, context) {
275
- let ngPackageJsonPath = (0, node_path_1.join)(context.workspaceRoot, angularWorkspaceRoot, target.options.project);
284
+ let ngPackageJsonPath = (0, node_path_1.join)(context.workspaceRoot, angularWorkspaceRoot, target.options?.project ?? (0, node_path_1.join)(projectRoot, 'ng-package.json'));
276
285
  const readConfig = async (configPath) => {
277
286
  if (!(0, node_fs_1.existsSync)(configPath)) {
278
287
  return undefined;
@@ -1,11 +1,11 @@
1
1
  import * as latestVersions from './versions';
2
- type SupportedVersions = 'angularV17' | 'angularV18';
2
+ type SupportedVersions = 'angularV18' | 'angularV19';
3
3
  type LatestPackageVersionNames = Exclude<keyof typeof latestVersions, 'nxVersion'>;
4
4
  type CompatPackageVersionNames = LatestPackageVersionNames;
5
5
  export type PackageVersionNames = LatestPackageVersionNames | CompatPackageVersionNames;
6
6
  export type VersionMap = {
7
- angularV17: Record<Exclude<CompatPackageVersionNames, 'typescriptEslintVersion'>, string>;
8
7
  angularV18: Record<CompatPackageVersionNames, string>;
8
+ angularV19: Record<CompatPackageVersionNames, string>;
9
9
  };
10
10
  export type PackageLatestVersions = Record<LatestPackageVersionNames, string>;
11
11
  export type PackageCompatVersions = VersionMap[SupportedVersions];
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.backwardCompatibleVersions = void 0;
4
4
  exports.backwardCompatibleVersions = {
5
- angularV17: {
6
- angularVersion: '~17.3.0',
7
- angularDevkitVersion: '~17.3.0',
8
- ngPackagrVersion: '~17.3.0',
5
+ angularV18: {
6
+ angularVersion: '~18.2.0',
7
+ angularDevkitVersion: '~18.2.0',
8
+ ngPackagrVersion: '~18.2.0',
9
9
  angularRspackVersion: '~20.6.1',
10
- ngrxVersion: '~17.0.0',
10
+ ngrxVersion: '~18.0.2',
11
11
  rxjsVersion: '~7.8.0',
12
12
  zoneJsVersion: '~0.14.3',
13
13
  angularJsVersion: '1.7.9',
@@ -17,27 +17,29 @@ exports.backwardCompatibleVersions = {
17
17
  expressVersion: '^4.21.2',
18
18
  typesExpressVersion: '^4.17.21',
19
19
  browserSyncVersion: '^3.0.0',
20
- moduleFederationNodeVersion: '~2.3.0',
21
- moduleFederationEnhancedVersion: '~0.2.3',
22
- angularEslintVersion: '~17.3.0',
20
+ moduleFederationNodeVersion: '~2.5.0',
21
+ moduleFederationEnhancedVersion: '0.6.9',
22
+ angularEslintVersion: '^18.3.0',
23
+ typescriptEslintVersion: '^7.16.0',
23
24
  tailwindVersion: '^3.0.2',
24
25
  postcssVersion: '^8.4.5',
25
26
  postcssUrlVersion: '~10.1.3',
26
27
  autoprefixerVersion: '^10.4.0',
27
28
  tsNodeVersion: '10.9.1',
28
- jestPresetAngularVersion: '~14.0.3',
29
+ jestPresetAngularVersion: '~14.1.0',
29
30
  typesNodeVersion: '18.16.9',
30
31
  jasmineMarblesVersion: '^0.9.2',
31
32
  jsoncEslintParserVersion: '^2.1.0',
33
+ webpackMergeVersion: '^5.8.0',
32
34
  },
33
- angularV18: {
34
- angularVersion: '~18.2.0',
35
- angularDevkitVersion: '~18.2.0',
36
- ngPackagrVersion: '~18.2.0',
35
+ angularV19: {
36
+ angularVersion: '~19.2.0',
37
+ angularDevkitVersion: '~19.2.0',
38
+ ngPackagrVersion: '~19.2.0',
37
39
  angularRspackVersion: '~20.6.1',
38
- ngrxVersion: '~18.0.2',
40
+ ngrxVersion: '~19.1.0',
39
41
  rxjsVersion: '~7.8.0',
40
- zoneJsVersion: '~0.14.3',
42
+ zoneJsVersion: '~0.15.0',
41
43
  angularJsVersion: '1.7.9',
42
44
  tsLibVersion: '^2.3.0',
43
45
  corsVersion: '~2.8.5',
@@ -45,18 +47,19 @@ exports.backwardCompatibleVersions = {
45
47
  expressVersion: '^4.21.2',
46
48
  typesExpressVersion: '^4.17.21',
47
49
  browserSyncVersion: '^3.0.0',
48
- moduleFederationNodeVersion: '~2.5.0',
49
- moduleFederationEnhancedVersion: '0.6.9',
50
- angularEslintVersion: '^18.3.0',
50
+ moduleFederationNodeVersion: '^2.6.26',
51
+ moduleFederationEnhancedVersion: '^0.9.0',
52
+ angularEslintVersion: '^19.2.0',
51
53
  typescriptEslintVersion: '^7.16.0',
52
54
  tailwindVersion: '^3.0.2',
53
55
  postcssVersion: '^8.4.5',
54
56
  postcssUrlVersion: '~10.1.3',
55
57
  autoprefixerVersion: '^10.4.0',
56
58
  tsNodeVersion: '10.9.1',
57
- jestPresetAngularVersion: '~14.1.0',
59
+ jestPresetAngularVersion: '~14.4.0',
58
60
  typesNodeVersion: '18.16.9',
59
61
  jasmineMarblesVersion: '^0.9.2',
60
62
  jsoncEslintParserVersion: '^2.1.0',
63
+ webpackMergeVersion: '^5.8.0',
61
64
  },
62
65
  };
@@ -444,9 +444,18 @@ function getListOfRoutes(source) {
444
444
  }
445
445
  function isNgStandaloneApp(tree, projectName) {
446
446
  const project = (0, devkit_1.readProjectConfiguration)(tree, projectName);
447
- const mainFile = project.targets?.build?.options?.main ??
447
+ let mainFile = project.targets?.build?.options?.main ??
448
448
  project.targets?.build?.options?.browser;
449
- if (project.projectType !== 'application' || !mainFile) {
449
+ let hasMainFile = false;
450
+ if (mainFile) {
451
+ hasMainFile = true;
452
+ }
453
+ else {
454
+ const sourceRoot = project.sourceRoot ?? (0, devkit_1.joinPathFragments)(project.root, 'src');
455
+ mainFile = (0, devkit_1.joinPathFragments)(sourceRoot, 'main.ts');
456
+ hasMainFile = tree.exists(mainFile);
457
+ }
458
+ if (project.projectType !== 'application' || !hasMainFile) {
450
459
  return false;
451
460
  }
452
461
  (0, ensure_typescript_1.ensureTypescript)();
@@ -548,7 +557,12 @@ function readBootstrapInfo(host, app) {
548
557
  let mainPath;
549
558
  try {
550
559
  mainPath =
551
- config.targets.build.options.main ?? config.targets.build.options.browser;
560
+ config.targets.build.options?.main ??
561
+ config.targets.build.options?.browser;
562
+ if (!mainPath) {
563
+ const sourceRoot = config.sourceRoot ?? (0, devkit_1.joinPathFragments)(config.root, 'src');
564
+ mainPath = (0, devkit_1.joinPathFragments)(sourceRoot, 'main.ts');
565
+ }
552
566
  }
553
567
  catch (e) {
554
568
  throw new Error('Main file cannot be located');
@@ -18,24 +18,24 @@ function createApp(tree, appName, routing = true) {
18
18
  // save for getAppDir() lookup by external *.spec.ts tests
19
19
  appConfig = {
20
20
  appName,
21
- appModule: `${appName}/src/app/app.module.ts`,
21
+ appModule: `${appName}/src/app/app-module.ts`,
22
22
  };
23
23
  tree.write(appConfig.appModule, `import { NgModule } from '@angular/core';
24
24
  import { BrowserModule } from '@angular/platform-browser';
25
25
  ${routing ? "import { RouterModule } from '@angular/router'" : ''};
26
- import { AppComponent } from './app.component';
26
+ import { App } from './app';
27
27
  @NgModule({
28
28
  imports: [BrowserModule, ${routing ? 'RouterModule.forRoot([])' : ''}],
29
- declarations: [AppComponent],
30
- bootstrap: [AppComponent]
29
+ declarations: [App],
30
+ bootstrap: [App]
31
31
  })
32
32
  export class AppModule {}
33
33
  `);
34
- tree.write(`${appName}/src/main.ts`, `import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
34
+ tree.write(`${appName}/src/main.ts`, `import { platformBrowser } from '@angular/platform-browser';
35
35
 
36
- import { AppModule } from './app/app.module';
36
+ import { AppModule } from './app/app-module';
37
37
 
38
- platformBrowserDynamic()
38
+ platformBrowser()
39
39
  .bootstrapModule(AppModule)
40
40
  .catch(err => console.log(err));
41
41
  `);
@@ -65,7 +65,7 @@ function createLib(tree, libName) {
65
65
  const { name, className, fileName, propertyName } = (0, devkit_1.names)(libName);
66
66
  libConfig = {
67
67
  name,
68
- module: `${propertyName}/src/lib/${fileName}.module.ts`,
68
+ module: `${propertyName}/src/lib/${fileName}-module.ts`,
69
69
  barrel: `${propertyName}/src/index.ts`,
70
70
  };
71
71
  tree.write(libConfig.module, `import { NgModule } from '@angular/core';
@@ -78,6 +78,6 @@ import { CommonModule } from '@angular/common';
78
78
  })
79
79
  export class ${className}Module { }
80
80
  `);
81
- tree.write(libConfig.barrel, `export * from './lib/${fileName}.module';
81
+ tree.write(libConfig.barrel, `export * from './lib/${fileName}-module';
82
82
  `);
83
83
  }
@@ -1,2 +1,3 @@
1
- import { TargetConfiguration } from '@nx/devkit';
1
+ import type { ProjectConfiguration, TargetConfiguration } from '@nx/devkit';
2
+ export declare function allProjectTargets<T>(project: ProjectConfiguration): Iterable<[name: string, target: TargetConfiguration<T>]>;
2
3
  export declare function allTargetOptions<T>(target: TargetConfiguration<T>): Iterable<[string | undefined, T]>;
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allProjectTargets = allProjectTargets;
3
4
  exports.allTargetOptions = allTargetOptions;
5
+ function* allProjectTargets(project) {
6
+ for (const [name, target] of Object.entries(project.targets ?? {})) {
7
+ yield [name, target];
8
+ }
9
+ }
4
10
  function* allTargetOptions(target) {
5
11
  if (target.options) {
6
12
  yield [undefined, target.options];
@@ -1,7 +1,7 @@
1
1
  export declare const nxVersion: any;
2
- export declare const angularVersion = "~19.2.0";
3
- export declare const angularDevkitVersion = "~19.2.0";
4
- export declare const ngPackagrVersion = "~19.2.0";
2
+ export declare const angularVersion = "20.0.0-rc.2";
3
+ export declare const angularDevkitVersion = "20.0.0-rc.3";
4
+ export declare const ngPackagrVersion = "20.0.0-rc.1";
5
5
  export declare const angularRspackVersion = "^21.0.1";
6
6
  export declare const ngrxVersion = "^19.0.0";
7
7
  export declare const rxjsVersion = "~7.8.0";
@@ -15,6 +15,7 @@ export declare const typesExpressVersion = "^4.17.21";
15
15
  export declare const browserSyncVersion = "^3.0.0";
16
16
  export declare const moduleFederationNodeVersion = "^2.6.26";
17
17
  export declare const moduleFederationEnhancedVersion = "^0.9.0";
18
+ export declare const webpackMergeVersion = "^5.8.0";
18
19
  export declare const angularEslintVersion = "^19.2.0";
19
20
  export declare const typescriptEslintVersion = "^7.16.0";
20
21
  export declare const tailwindVersion = "^3.0.2";
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsoncEslintParserVersion = exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssVersion = exports.tailwindVersion = exports.typescriptEslintVersion = exports.angularEslintVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.browserSyncVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.tsLibVersion = exports.angularJsVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.angularRspackVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
3
+ exports.jsoncEslintParserVersion = exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssVersion = exports.tailwindVersion = exports.typescriptEslintVersion = exports.angularEslintVersion = exports.webpackMergeVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.browserSyncVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.tsLibVersion = exports.angularJsVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.angularRspackVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
4
4
  exports.nxVersion = require('../../package.json').version;
5
- exports.angularVersion = '~19.2.0';
6
- exports.angularDevkitVersion = '~19.2.0';
7
- exports.ngPackagrVersion = '~19.2.0';
5
+ exports.angularVersion = '20.0.0-rc.2';
6
+ exports.angularDevkitVersion = '20.0.0-rc.3';
7
+ exports.ngPackagrVersion = '20.0.0-rc.1';
8
8
  exports.angularRspackVersion = '^21.0.1';
9
9
  exports.ngrxVersion = '^19.0.0';
10
10
  exports.rxjsVersion = '~7.8.0';
@@ -18,6 +18,7 @@ exports.typesExpressVersion = '^4.17.21';
18
18
  exports.browserSyncVersion = '^3.0.0';
19
19
  exports.moduleFederationNodeVersion = '^2.6.26';
20
20
  exports.moduleFederationEnhancedVersion = '^0.9.0';
21
+ exports.webpackMergeVersion = '^5.8.0';
21
22
  exports.angularEslintVersion = '^19.2.0';
22
23
  exports.typescriptEslintVersion = '^7.16.0';
23
24
  exports.tailwindVersion = '^3.0.2';
package/mf/mf.d.ts DELETED
@@ -1,69 +0,0 @@
1
- export type ResolveRemoteUrlFunction = (remoteName: string) => string | Promise<string>;
2
- /**
3
- * @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
4
- */
5
- export declare function setRemoteUrlResolver(_resolveRemoteUrl: ResolveRemoteUrlFunction): void;
6
- /**
7
- * @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
8
- * If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:
9
- * ```ts
10
- * import { setRemoteDefinitions } from '@nx/angular/mf';
11
- *
12
- * setRemoteDefinitions({
13
- * 'my-remote-app': 'http://localhost:4201/mf-manifest.json'
14
- * });
15
- * ```
16
- * to use init():
17
- * ```ts
18
- * import { init } from '@module-federation/enhanced/runtime';
19
- *
20
- * init({
21
- * name: 'host',
22
- * remotes: [{
23
- * name: 'my-remote-app',
24
- * entry: 'http://localhost:4201/mf-manifest.json'
25
- * }]
26
- * });
27
- * ```
28
- */
29
- export declare function setRemoteDefinitions(definitions: Record<string, string>): void;
30
- /**
31
- * @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
32
- * If you set a remote app with `setRemoteDefinition` such as:
33
- * ```ts
34
- * import { setRemoteDefinition } from '@nx/angular/mf';
35
- *
36
- * setRemoteDefinition(
37
- * 'my-remote-app',
38
- * 'http://localhost:4201/mf-manifest.json'
39
- * );
40
- * ```
41
- * change it to use registerRemotes():
42
- * ```ts
43
- * import { registerRemotes } from '@module-federation/enhanced/runtime';
44
- *
45
- * registerRemotes([
46
- * {
47
- * name: 'my-remote-app',
48
- * entry: 'http://localhost:4201/mf-manifest.json'
49
- * }
50
- * ]);
51
- * ```
52
- */
53
- export declare function setRemoteDefinition(remoteName: string, remoteUrl: string): void;
54
- /**
55
- * @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
56
- * If you set a load a remote with `loadRemoteModule` such as:
57
- * ```ts
58
- * import { loadRemoteModule } from '@nx/angular/mf';
59
- *
60
- * loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);
61
- * ```
62
- * change it to use loadRemote():
63
- * ```ts
64
- * import { loadRemote } from '@module-federation/enhanced/runtime';
65
- *
66
- * loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);
67
- * ```
68
- */
69
- export declare function loadRemoteModule(remoteName: string, moduleName: string): Promise<any>;
@@ -1,29 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { AppComponent } from './app.component';<% if(!minimal) { %>
3
- import { NxWelcomeComponent } from './nx-welcome.component';<% } %><% if(routing && useRouterTestingModule) { %>
4
- import { RouterTestingModule } from '@angular/router/testing';<% } %><% if(routing && !useRouterTestingModule) { %>
5
- import { RouterModule } from '@angular/router';<% } %>
6
-
7
- describe('AppComponent', () => {
8
- beforeEach(async () => {
9
- await TestBed.configureTestingModule({
10
- imports: [<% if(routing && useRouterTestingModule) { %>RouterTestingModule<% } %><% if(routing && !useRouterTestingModule) { %>RouterModule.forRoot([])<% } %>],
11
- declarations: [AppComponent<% if(!minimal) { %>, NxWelcomeComponent<% } %>]
12
- }).compileComponents();
13
- });
14
-
15
- it('should render title', () => {
16
- const fixture = TestBed.createComponent(AppComponent);
17
- fixture.detectChanges();
18
- const compiled = fixture.nativeElement as HTMLElement;
19
- expect(compiled.querySelector('h1')?.textContent).toContain(
20
- 'Welcome <%= appName %>'
21
- );
22
- });<% if(!minimal) { %>
23
-
24
- it(`should have as title '<%= appName %>'`, () => {
25
- const fixture = TestBed.createComponent(AppComponent);
26
- const app = fixture.componentInstance;
27
- expect(app.title).toEqual('<%= appName %>');
28
- });<% } %>
29
- });
@@ -1,17 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { BrowserModule } from '@angular/platform-browser';<% if(routing) { %>
3
- import { RouterModule } from '@angular/router';<% } %>
4
- import { AppComponent } from './app.component';<% if(routing) { %>
5
- import { appRoutes } from './app.routes';<% } %><% if(!minimal) { %>
6
- import { NxWelcomeComponent } from './nx-welcome.component';<% } %>
7
-
8
- @NgModule({
9
- declarations: [AppComponent<% if(!minimal) { %>, NxWelcomeComponent<% } %>],
10
- imports: [
11
- BrowserModule,<% if(routing) { %>
12
- RouterModule.forRoot(appRoutes),<% } %>
13
- ],
14
- providers: [],
15
- bootstrap: [AppComponent],
16
- })
17
- export class AppModule {}
@@ -1,28 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { AppComponent } from './app.component';<% if(!minimal) { %>
3
- import { NxWelcomeComponent } from './nx-welcome.component';<% } %><% if(routing && useRouterTestingModule) { %>
4
- import { RouterTestingModule } from '@angular/router/testing';<% } %><% if(routing && !useRouterTestingModule) { %>
5
- import { RouterModule } from '@angular/router';<% } %>
6
-
7
- describe('AppComponent', () => {
8
- beforeEach(async () => {
9
- await TestBed.configureTestingModule({
10
- imports: [AppComponent<% if(!minimal) { %>, NxWelcomeComponent<% } %><% if(routing && useRouterTestingModule) { %>, RouterTestingModule<% } %><% if(routing && !useRouterTestingModule) { %>, RouterModule.forRoot([])<% } %>],
11
- }).compileComponents();
12
- });
13
-
14
- it('should render title', () => {
15
- const fixture = TestBed.createComponent(AppComponent);
16
- fixture.detectChanges();
17
- const compiled = fixture.nativeElement as HTMLElement;
18
- expect(compiled.querySelector('h1')?.textContent).toContain(
19
- 'Welcome <%= appName %>'
20
- );
21
- });<% if(!minimal) { %>
22
-
23
- it(`should have as title '<%= appName %>'`, () => {
24
- const fixture = TestBed.createComponent(AppComponent);
25
- const app = fixture.componentInstance;
26
- expect(app.title).toEqual('<%= appName %>');
27
- });<% } %>
28
- });
@@ -1,2 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- export declare function setApplicationStrictDefault(host: Tree, strict: boolean): void;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setApplicationStrictDefault = setApplicationStrictDefault;
4
- const devkit_1 = require("@nx/devkit");
5
- function setApplicationStrictDefault(host, strict) {
6
- const nxJson = (0, devkit_1.readNxJson)(host);
7
- nxJson.generators = nxJson.generators || {};
8
- nxJson.generators['@nx/angular:application'] =
9
- nxJson.generators['@nx/angular:application'] || {};
10
- nxJson.generators['@nx/angular:application'].strict =
11
- nxJson.generators['@nx/angular:application'].strict ?? strict;
12
- (0, devkit_1.updateNxJson)(host, nxJson);
13
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateEditorTsConfig = updateEditorTsConfig;
4
- const devkit_1 = require("@nx/devkit");
5
- const update_app_editor_tsconfig_excluded_files_1 = require("../../utils/update-app-editor-tsconfig-excluded-files");
6
- function getCompilerOptionsTypes(tsConfig) {
7
- return tsConfig?.compilerOptions?.types ?? [];
8
- }
9
- function updateEditorTsConfig(tree, options) {
10
- const appTsConfig = (0, devkit_1.readJson)(tree, (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.app.json'));
11
- const types = getCompilerOptionsTypes(appTsConfig);
12
- if (types?.length) {
13
- (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.editor.json'), (json) => {
14
- json.compilerOptions ??= {};
15
- json.compilerOptions.types = Array.from(new Set(types));
16
- return json;
17
- });
18
- }
19
- const project = (0, devkit_1.readProjectConfiguration)(tree, options.name);
20
- (0, update_app_editor_tsconfig_excluded_files_1.updateAppEditorTsConfigExcludedFiles)(tree, project);
21
- }