@nx/angular 17.0.3 → 17.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -4
  3. package/esm2022/mf/mf.mjs +1 -1
  4. package/esm2022/src/runtime/nx/data-persistence.mjs +1 -1
  5. package/executors.d.ts +9 -2
  6. package/executors.js +7 -2
  7. package/executors.json +19 -9
  8. package/fesm2022/nx-angular-mf.mjs.map +1 -1
  9. package/fesm2022/nx-angular.mjs.map +1 -1
  10. package/generators.d.ts +1 -1
  11. package/generators.js +3 -1
  12. package/generators.json +7 -2
  13. package/migrations.json +451 -0
  14. package/ng-package.json +2 -2
  15. package/package.json +20 -26
  16. package/plugins/component-testing.d.ts +1 -26
  17. package/plugins/component-testing.js +15 -4
  18. package/src/builders/dev-server/dev-server.impl.d.ts +4 -0
  19. package/src/builders/dev-server/dev-server.impl.js +160 -0
  20. package/src/builders/{webpack-dev-server → dev-server}/lib/index.d.ts +1 -0
  21. package/src/builders/{webpack-dev-server → dev-server}/lib/index.js +1 -0
  22. package/src/builders/dev-server/lib/normalize-options.d.ts +2 -0
  23. package/src/builders/dev-server/lib/normalize-options.js +20 -0
  24. package/src/builders/dev-server/lib/validate-options.d.ts +2 -0
  25. package/src/builders/dev-server/lib/validate-options.js +22 -0
  26. package/src/builders/dev-server/schema.d.ts +39 -0
  27. package/src/builders/{webpack-dev-server → dev-server}/schema.json +42 -5
  28. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.d.ts +1 -1
  29. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +15 -9
  30. package/src/builders/utilities/module-federation.js +1 -1
  31. package/src/builders/webpack-browser/schema.d.ts +6 -2
  32. package/src/builders/webpack-browser/schema.json +15 -15
  33. package/src/builders/webpack-browser/webpack-browser.impl.js +8 -6
  34. package/src/builders/webpack-server/schema.d.ts +0 -1
  35. package/src/builders/webpack-server/schema.json +7 -20
  36. package/src/builders/webpack-server/validate-options.js +0 -7
  37. package/src/builders/webpack-server/webpack-server.impl.js +4 -9
  38. package/src/executors/application/application.impl.d.ts +3 -0
  39. package/src/executors/application/application.impl.js +37 -0
  40. package/src/executors/application/schema.d.ts +8 -0
  41. package/src/executors/application/schema.json +682 -0
  42. package/src/executors/application/utils/validate-options.d.ts +2 -0
  43. package/src/executors/application/utils/validate-options.js +52 -0
  44. package/src/executors/browser-esbuild/browser-esbuild.impl.d.ts +2 -3
  45. package/src/executors/browser-esbuild/browser-esbuild.impl.js +15 -8
  46. package/src/executors/browser-esbuild/schema.d.ts +3 -1
  47. package/src/executors/browser-esbuild/schema.json +38 -8
  48. package/src/executors/extract-i18n/extract-i18n.impl.d.ts +3 -0
  49. package/src/executors/extract-i18n/extract-i18n.impl.js +43 -0
  50. package/src/executors/extract-i18n/schema.d.ts +8 -0
  51. package/src/executors/extract-i18n/schema.json +45 -0
  52. package/src/executors/module-federation-dev-server/lib/build-static-remotes.d.ts +4 -0
  53. package/src/executors/module-federation-dev-server/lib/build-static-remotes.js +56 -0
  54. package/src/executors/module-federation-dev-server/lib/index.d.ts +5 -0
  55. package/src/executors/module-federation-dev-server/lib/index.js +8 -0
  56. package/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +2 -0
  57. package/src/executors/module-federation-dev-server/lib/normalize-options.js +23 -0
  58. package/src/executors/module-federation-dev-server/lib/parse-static-remotes-config.d.ts +11 -0
  59. package/src/executors/module-federation-dev-server/lib/parse-static-remotes-config.js +18 -0
  60. package/src/executors/module-federation-dev-server/lib/start-dev-remotes.d.ts +9 -0
  61. package/src/executors/module-federation-dev-server/lib/start-dev-remotes.js +29 -0
  62. package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.d.ts +9 -0
  63. package/src/executors/module-federation-dev-server/lib/start-static-remotes-file-server.js +46 -0
  64. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +4 -0
  65. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +115 -0
  66. package/src/{builders → executors}/module-federation-dev-server/schema.d.ts +25 -7
  67. package/src/{builders → executors}/module-federation-dev-server/schema.json +31 -6
  68. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.d.ts +3 -0
  69. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.js +34 -0
  70. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.transform.js +6 -4
  71. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.transform.js +25 -13
  72. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ngc → pre-v17/ngc}/compile-source-files.d.ts +1 -2
  73. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ngc → pre-v17/ngc}/compile-source-files.js +14 -9
  74. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.d.ts +5 -10
  75. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.js +39 -86
  76. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.di.d.ts +2 -0
  77. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.di.js +12 -0
  78. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.transform.d.ts +8 -0
  79. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-bundles.transform.js +12 -0
  80. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.di.d.ts +8 -0
  81. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.di.js +18 -0
  82. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.transform.d.ts +8 -0
  83. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/v17+/ng-package/entry-point/write-package.transform.js +285 -0
  84. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +5 -17
  85. package/src/executors/ng-packagr-lite/schema.json +1 -1
  86. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +5 -3
  87. package/src/executors/package/ng-packagr-adjustments/ng-packagr.d.ts +3 -0
  88. package/src/executors/package/ng-packagr-adjustments/ng-packagr.js +28 -0
  89. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.d.ts +1 -1
  90. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +13 -6
  91. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.d.ts +5 -10
  92. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +39 -86
  93. package/src/executors/package/package.impl.d.ts +1 -1
  94. package/src/executors/package/package.impl.js +5 -15
  95. package/src/executors/package/schema.json +3 -3
  96. package/src/executors/utilities/buildable-libs.d.ts +6 -0
  97. package/src/executors/{browser-esbuild/lib → utilities}/buildable-libs.js +3 -4
  98. package/src/executors/utilities/esbuild-extensions.d.ts +10 -0
  99. package/src/executors/utilities/esbuild-extensions.js +50 -0
  100. package/src/executors/utilities/module-loader.d.ts +15 -0
  101. package/src/executors/utilities/module-loader.js +52 -0
  102. package/src/executors/utilities/ng-compiler-cli.d.ts +1 -0
  103. package/src/executors/utilities/ng-compiler-cli.js +8 -0
  104. package/src/executors/utilities/ng-packagr/stylesheet-processor.d.ts +49 -0
  105. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.d.ts +2 -0
  106. package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +16 -0
  107. package/src/executors/utilities/ng-packagr/stylesheet-processor.js +209 -0
  108. package/src/executors/utilities/ng-packagr/tailwindcss.d.ts +7 -0
  109. package/src/executors/utilities/{tailwindcss.js → ng-packagr/tailwindcss.js} +5 -22
  110. package/src/executors/utilities/patch-builder-context.d.ts +3 -0
  111. package/src/executors/utilities/patch-builder-context.js +41 -0
  112. package/src/executors/utilities/typescript.js +1 -1
  113. package/src/generators/add-linting/add-linting.d.ts +1 -1
  114. package/src/generators/add-linting/add-linting.js +9 -15
  115. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.d.ts +2 -2
  116. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +9 -5
  117. package/src/generators/add-linting/lib/buildable-project.d.ts +2 -0
  118. package/src/generators/add-linting/lib/buildable-project.js +9 -0
  119. package/src/generators/add-linting/lib/create-eslint-configuration.d.ts +2 -2
  120. package/src/generators/add-linting/schema.json +1 -1
  121. package/src/generators/application/application.js +19 -17
  122. package/src/generators/application/files/base/tsconfig.app.json__tpl__ +1 -1
  123. package/src/generators/application/files/base/tsconfig.json__tpl__ +6 -2
  124. package/src/generators/application/files/ng-module/src/app/app.component.spec.ts__tpl__ +3 -1
  125. package/src/generators/application/files/ng-module/src/app/app.component.ts__tpl__ +4 -2
  126. package/src/generators/application/files/ng-module/src/app/app.module.ts__tpl__ +1 -1
  127. package/src/generators/application/files/ng-module/src/app/nx-welcome.component.ts__tpl__ +53 -14
  128. package/src/generators/application/files/ng-module/src/main.ts__tpl__ +2 -8
  129. package/src/generators/application/files/standalone-components/src/app/app.component.spec.ts__tpl__ +6 -4
  130. package/src/generators/application/files/standalone-components/src/app/app.component.ts__tpl__ +4 -2
  131. package/src/generators/application/files/standalone-components/src/app/app.config.ts__tpl__ +3 -3
  132. package/src/generators/application/files/standalone-components/src/app/nx-welcome.component.ts__tpl__ +53 -14
  133. package/src/generators/application/files/standalone-components/src/main.ts__tpl__ +4 -8
  134. package/src/generators/application/lib/add-e2e.js +22 -8
  135. package/src/generators/application/lib/add-unit-test-runner.js +5 -20
  136. package/src/generators/application/lib/create-files.js +14 -10
  137. package/src/generators/application/lib/create-project.d.ts +1 -1
  138. package/src/generators/application/lib/create-project.js +48 -38
  139. package/src/generators/application/lib/index.d.ts +1 -0
  140. package/src/generators/application/lib/index.js +1 -0
  141. package/src/generators/application/lib/normalize-options.d.ts +1 -1
  142. package/src/generators/application/lib/normalize-options.js +28 -6
  143. package/src/generators/application/lib/normalized-schema.d.ts +5 -0
  144. package/src/generators/application/lib/set-generator-defaults.d.ts +3 -0
  145. package/src/generators/application/lib/set-generator-defaults.js +17 -0
  146. package/src/generators/application/lib/update-editor-tsconfig.d.ts +1 -1
  147. package/src/generators/application/lib/update-editor-tsconfig.js +11 -14
  148. package/src/generators/application/schema.d.ts +1 -0
  149. package/src/generators/application/schema.json +18 -10
  150. package/src/generators/component/component.js +4 -1
  151. package/src/generators/component/files/__fileName__.spec.ts__tpl__ +2 -3
  152. package/src/generators/component/files/__fileName__.ts__tpl__ +8 -2
  153. package/src/generators/component/lib/component.js +1 -1
  154. package/src/generators/component/lib/index.d.ts +1 -1
  155. package/src/generators/component/lib/index.js +1 -1
  156. package/src/generators/component/lib/normalize-options.js +3 -2
  157. package/src/generators/component/lib/set-generator-defaults.d.ts +3 -0
  158. package/src/generators/component/lib/set-generator-defaults.js +14 -0
  159. package/src/generators/component/schema.d.ts +3 -3
  160. package/src/generators/component/schema.json +4 -4
  161. package/src/generators/component-cypress-spec/files/__componentFileName__.__fileExt__ +13 -8
  162. package/src/generators/component-cypress-spec/schema.json +1 -1
  163. package/src/generators/component-story/files/__componentFileName__.stories.ts__tmpl__ +2 -2
  164. package/src/generators/component-test/component-test.d.ts +1 -1
  165. package/src/generators/component-test/component-test.js +8 -3
  166. package/src/generators/component-test/files/__componentFileName__.cy.ts__tpl__ +9 -11
  167. package/src/generators/component-test/schema.json +1 -1
  168. package/src/generators/convert-to-application-executor/convert-to-application-executor.d.ts +4 -0
  169. package/src/generators/convert-to-application-executor/convert-to-application-executor.js +242 -0
  170. package/src/generators/convert-to-application-executor/schema.d.ts +4 -0
  171. package/src/generators/convert-to-application-executor/schema.json +26 -0
  172. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +3 -1
  173. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +3 -2
  174. package/src/generators/convert-to-with-mf/schema.d.ts +1 -0
  175. package/src/generators/convert-to-with-mf/schema.json +6 -0
  176. package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts +2 -1
  177. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +43 -24
  178. package/src/generators/directive/directive.js +0 -1
  179. package/src/generators/directive/files/__fileName__.ts__tpl__ +1 -3
  180. package/src/generators/directive/lib/index.d.ts +0 -1
  181. package/src/generators/directive/lib/index.js +0 -1
  182. package/src/generators/directive/lib/normalize-options.js +3 -1
  183. package/src/generators/directive/schema.d.ts +3 -3
  184. package/src/generators/directive/schema.json +4 -4
  185. package/src/generators/federate-module/federate-module.js +1 -0
  186. package/src/generators/federate-module/lib/add-remote.d.ts +1 -1
  187. package/src/generators/federate-module/lib/add-remote.js +2 -11
  188. package/src/generators/federate-module/schema.json +3 -3
  189. package/src/generators/host/files/common/v17+/src/main.server.ts__tmpl__ +67 -0
  190. package/src/generators/host/files/ts/webpack.server.config.ts__tmpl__ +2 -2
  191. package/src/generators/host/host.js +8 -9
  192. package/src/generators/host/lib/index.d.ts +1 -1
  193. package/src/generators/host/lib/index.js +1 -1
  194. package/src/generators/host/lib/update-ssr-setup.d.ts +3 -0
  195. package/src/generators/host/lib/{add-ssr.js → update-ssr-setup.js} +8 -14
  196. package/src/generators/host/schema.json +6 -6
  197. package/src/generators/init/init.d.ts +2 -2
  198. package/src/generators/init/init.js +19 -137
  199. package/src/generators/init/schema.d.ts +1 -9
  200. package/src/generators/init/schema.json +8 -59
  201. package/src/generators/library/files/ng-module/src/lib/lib.routes.ts__tpl__ +1 -1
  202. package/src/generators/library/files/standalone-components/src/lib/lib.routes.ts__tpl__ +1 -1
  203. package/src/generators/library/lib/add-load-children.js +2 -2
  204. package/src/generators/library/lib/add-project.js +24 -22
  205. package/src/generators/library/lib/add-standalone-component.d.ts +2 -2
  206. package/src/generators/library/lib/add-standalone-component.js +5 -4
  207. package/src/generators/library/lib/normalize-options.js +2 -5
  208. package/src/generators/library/lib/set-generator-defaults.d.ts +3 -0
  209. package/src/generators/library/lib/set-generator-defaults.js +15 -0
  210. package/src/generators/library/lib/update-tsconfig.js +3 -3
  211. package/src/generators/library/library.js +15 -27
  212. package/src/generators/library/schema.d.ts +1 -0
  213. package/src/generators/library/schema.json +13 -13
  214. package/src/generators/library-secondary-entry-point/files/src/index.ts__tmpl__ +1 -5
  215. package/src/generators/library-secondary-entry-point/lib/index.d.ts +0 -1
  216. package/src/generators/library-secondary-entry-point/lib/index.js +0 -1
  217. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +3 -2
  218. package/src/generators/library-secondary-entry-point/schema.d.ts +1 -0
  219. package/src/generators/library-secondary-entry-point/schema.json +9 -3
  220. package/src/generators/move/schema.json +1 -1
  221. package/src/generators/ng-add/migrate-from-angular-cli.js +1 -1
  222. package/src/generators/ng-add/migrators/projects/app.migrator.js +50 -7
  223. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +31 -23
  224. package/src/generators/ng-add/ng-add.js +1 -8
  225. package/src/generators/ng-add/schema.json +1 -1
  226. package/src/generators/ng-add/utilities/workspace.d.ts +1 -1
  227. package/src/generators/ng-add/utilities/workspace.js +9 -16
  228. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  229. package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  230. package/src/generators/ngrx/lib/generate-files.js +1 -10
  231. package/src/generators/ngrx/lib/validate-options.js +0 -23
  232. package/src/generators/ngrx/schema.json +3 -3
  233. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.models.ts__tmpl__ +1 -1
  234. package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.spec.ts__tmpl__ +1 -1
  235. package/src/generators/ngrx-feature-store/lib/generate-files.js +1 -12
  236. package/src/generators/ngrx-feature-store/lib/validate-options.js +0 -22
  237. package/src/generators/ngrx-feature-store/schema.json +3 -3
  238. package/src/generators/ngrx-root-store/lib/normalize-options.js +1 -1
  239. package/src/generators/ngrx-root-store/lib/validate-options.js +0 -15
  240. package/src/generators/ngrx-root-store/schema.json +2 -2
  241. package/src/generators/pipe/files/__fileName__.ts__tpl__ +0 -2
  242. package/src/generators/pipe/lib/index.d.ts +0 -1
  243. package/src/generators/pipe/lib/index.js +0 -1
  244. package/src/generators/pipe/lib/normalize-options.js +1 -0
  245. package/src/generators/pipe/pipe.js +0 -1
  246. package/src/generators/pipe/schema.d.ts +3 -3
  247. package/src/generators/pipe/schema.json +4 -4
  248. package/src/generators/remote/files/base-ts/webpack.server.config.ts__tmpl__ +2 -2
  249. package/src/generators/remote/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +1 -3
  250. package/src/generators/remote/files/common/v17+/src/main.server.ts__tmpl__ +73 -0
  251. package/src/generators/remote/lib/index.d.ts +1 -1
  252. package/src/generators/remote/lib/index.js +1 -1
  253. package/src/generators/remote/lib/{add-ssr.d.ts → update-ssr-setup.d.ts} +1 -1
  254. package/src/generators/remote/lib/{add-ssr.js → update-ssr-setup.js} +9 -13
  255. package/src/generators/remote/remote.js +7 -9
  256. package/src/generators/remote/schema.json +6 -6
  257. package/src/generators/scam/lib/convert-component-to-scam.js +2 -1
  258. package/src/generators/scam/schema.d.ts +3 -3
  259. package/src/generators/scam/schema.json +2 -2
  260. package/src/generators/scam-directive/lib/convert-directive-to-scam.js +2 -1
  261. package/src/generators/scam-directive/scam-directive.js +3 -1
  262. package/src/generators/scam-directive/schema.d.ts +4 -3
  263. package/src/generators/scam-directive/schema.json +8 -2
  264. package/src/generators/scam-pipe/lib/convert-pipe-to-scam.js +2 -1
  265. package/src/generators/scam-pipe/scam-pipe.js +3 -1
  266. package/src/generators/scam-pipe/schema.d.ts +4 -3
  267. package/src/generators/scam-pipe/schema.json +8 -2
  268. package/src/generators/scam-to-standalone/scam-to-standalone.js +0 -7
  269. package/src/generators/scam-to-standalone/schema.json +2 -2
  270. package/src/generators/setup-mf/files/host-files/app.component.spec.ts__tmpl__ +3 -1
  271. package/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +12 -0
  272. package/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +12 -0
  273. package/src/generators/setup-mf/files/ts-webpack/webpack.config.ts__tmpl__ +1 -1
  274. package/src/generators/setup-mf/files/ts-webpack/webpack.prod.config.ts__tmpl__ +12 -12
  275. package/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +13 -1
  276. package/src/generators/setup-mf/lib/add-cypress-workaround.js +14 -4
  277. package/src/generators/setup-mf/lib/add-remote-entry.js +2 -11
  278. package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -1
  279. package/src/generators/setup-mf/lib/fix-bootstrap.js +10 -18
  280. package/src/generators/setup-mf/lib/generate-config.js +3 -0
  281. package/src/generators/setup-mf/lib/index.d.ts +1 -1
  282. package/src/generators/setup-mf/lib/index.js +1 -1
  283. package/src/generators/setup-mf/lib/normalize-options.js +2 -1
  284. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +10 -10
  285. package/src/generators/setup-mf/lib/setup-serve-target.js +1 -1
  286. package/src/generators/setup-mf/lib/update-host-app-routes.js +2 -2
  287. package/src/generators/{pipe/lib/validate-options.d.ts → setup-mf/lib/update-tsconfig.d.ts} +1 -1
  288. package/src/generators/setup-mf/lib/update-tsconfig.js +19 -0
  289. package/src/generators/setup-mf/schema.d.ts +1 -0
  290. package/src/generators/setup-mf/schema.json +8 -3
  291. package/src/generators/setup-mf/setup-mf.js +1 -7
  292. package/src/generators/setup-ssr/files/ngmodule/base/src/__main__ +1 -1
  293. package/src/generators/setup-ssr/files/server/application-builder/__serverFileName__ +56 -0
  294. package/src/generators/setup-ssr/files/{ngmodule/base → server/server-builder/pre-v17}/__serverFileName__ +7 -8
  295. package/src/generators/setup-ssr/files/{standalone → server/server-builder/v17+}/__serverFileName__ +25 -16
  296. package/src/generators/setup-ssr/lib/add-dependencies.d.ts +2 -0
  297. package/src/generators/setup-ssr/lib/add-dependencies.js +36 -0
  298. package/src/generators/setup-ssr/lib/add-hydration.js +11 -5
  299. package/src/generators/setup-ssr/lib/add-server-file.d.ts +3 -0
  300. package/src/generators/setup-ssr/lib/add-server-file.js +31 -0
  301. package/src/generators/setup-ssr/lib/constants.d.ts +3 -0
  302. package/src/generators/setup-ssr/lib/constants.js +6 -0
  303. package/src/generators/setup-ssr/lib/generate-files.d.ts +1 -1
  304. package/src/generators/setup-ssr/lib/generate-files.js +11 -16
  305. package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts +4 -0
  306. package/src/generators/setup-ssr/lib/generate-server-ts-config.js +29 -0
  307. package/src/generators/setup-ssr/lib/index.d.ts +4 -0
  308. package/src/generators/setup-ssr/lib/index.js +4 -0
  309. package/src/generators/setup-ssr/lib/normalize-options.js +7 -1
  310. package/src/generators/setup-ssr/lib/set-router-initial-navigation.d.ts +3 -0
  311. package/src/generators/setup-ssr/lib/set-router-initial-navigation.js +93 -0
  312. package/src/generators/setup-ssr/lib/update-project-config.d.ts +2 -1
  313. package/src/generators/setup-ssr/lib/update-project-config.js +46 -13
  314. package/src/generators/setup-ssr/lib/validate-options.js +15 -2
  315. package/src/generators/setup-ssr/schema.json +4 -4
  316. package/src/generators/setup-ssr/setup-ssr.js +18 -12
  317. package/src/generators/setup-tailwind/schema.json +1 -1
  318. package/src/generators/stories/schema.json +1 -1
  319. package/src/generators/stories/stories.js +2 -2
  320. package/src/generators/storybook-configuration/lib/generate-stories.js +6 -4
  321. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +3 -1
  322. package/src/generators/storybook-configuration/schema.d.ts +1 -1
  323. package/src/generators/storybook-configuration/schema.json +7 -7
  324. package/src/generators/storybook-configuration/storybook-configuration.js +8 -5
  325. package/src/generators/utils/add-jest.d.ts +8 -0
  326. package/src/generators/utils/add-jest.js +36 -0
  327. package/src/generators/utils/add-mf-env-to-inputs.d.ts +2 -0
  328. package/src/generators/utils/add-mf-env-to-inputs.js +27 -0
  329. package/src/generators/utils/dependencies.js +1 -2
  330. package/src/generators/utils/ensure-angular-dependencies.d.ts +2 -0
  331. package/src/generators/utils/ensure-angular-dependencies.js +35 -0
  332. package/src/generators/utils/export-scam.js +2 -2
  333. package/src/generators/utils/project.d.ts +0 -1
  334. package/src/generators/utils/project.js +2 -29
  335. package/src/generators/utils/selector.d.ts +2 -2
  336. package/src/generators/utils/selector.js +11 -4
  337. package/src/generators/utils/testing.js +24 -1
  338. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.d.ts +2 -0
  339. package/src/generators/utils/update-app-editor-tsconfig-excluded-files.js +23 -0
  340. package/src/generators/utils/update-project-root-tsconfig.d.ts +3 -0
  341. package/src/generators/utils/update-project-root-tsconfig.js +26 -0
  342. package/src/generators/utils/validations.d.ts +0 -1
  343. package/src/generators/utils/validations.js +1 -14
  344. package/src/generators/utils/version-utils.d.ts +2 -2
  345. package/src/generators/utils/version-utils.js +3 -3
  346. package/src/migrations/update-17-1-0/browser-target-to-build-target.d.ts +3 -0
  347. package/src/migrations/update-17-1-0/browser-target-to-build-target.js +50 -0
  348. package/src/migrations/update-17-1-0/replace-nguniversal-builders.d.ts +2 -0
  349. package/src/migrations/update-17-1-0/replace-nguniversal-builders.js +75 -0
  350. package/src/migrations/update-17-1-0/replace-nguniversal-engines.d.ts +2 -0
  351. package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +183 -0
  352. package/src/migrations/update-17-1-0/update-angular-cli.d.ts +3 -0
  353. package/src/migrations/update-17-1-0/update-angular-cli.js +23 -0
  354. package/src/migrations/update-17-1-0/update-zone-js-deep-import.d.ts +2 -0
  355. package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +37 -0
  356. package/src/migrations/update-17-2-0/rename-webpack-dev-server.d.ts +2 -0
  357. package/src/migrations/update-17-2-0/rename-webpack-dev-server.js +40 -0
  358. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.d.ts +2 -0
  359. package/src/migrations/update-17-3-0/add-autoprefixer-dependency.js +26 -0
  360. package/src/migrations/update-17-3-0/add-browser-sync-dependency.d.ts +2 -0
  361. package/src/migrations/update-17-3-0/add-browser-sync-dependency.js +26 -0
  362. package/src/migrations/update-17-3-0/update-angular-cli.d.ts +3 -0
  363. package/src/migrations/update-17-3-0/update-angular-cli.js +23 -0
  364. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.d.ts +2 -0
  365. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +26 -0
  366. package/src/migrations/update-18-1-0/update-angular-cli.d.ts +3 -0
  367. package/src/migrations/update-18-1-0/update-angular-cli.js +23 -0
  368. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +2 -0
  369. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +53 -0
  370. package/src/migrations/update-18-2-0/update-angular-cli.d.ts +3 -0
  371. package/src/migrations/update-18-2-0/update-angular-cli.js +23 -0
  372. package/src/utils/backward-compatible-versions.d.ts +6 -4
  373. package/src/utils/backward-compatible-versions.js +20 -22
  374. package/src/utils/{public-api.d.ts → index.d.ts} +5 -0
  375. package/src/utils/{public-api.js → index.js} +5 -0
  376. package/src/utils/mf/utils.js +7 -0
  377. package/src/utils/mf/with-module-federation-ssr.js +3 -0
  378. package/src/utils/mf/with-module-federation.js +3 -0
  379. package/src/utils/nx-devkit/ast-utils.js +4 -2
  380. package/src/utils/nx-devkit/testing.js +27 -31
  381. package/src/utils/targets.d.ts +2 -0
  382. package/src/utils/targets.js +17 -0
  383. package/src/utils/version-utils.d.ts +3 -3
  384. package/src/utils/versions.d.ts +9 -11
  385. package/src/utils/versions.js +10 -12
  386. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -5
  387. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +0 -136
  388. package/src/builders/webpack-browser/validate-options.d.ts +0 -2
  389. package/src/builders/webpack-browser/validate-options.js +0 -40
  390. package/src/builders/webpack-dev-server/lib/normalize-options.d.ts +0 -2
  391. package/src/builders/webpack-dev-server/lib/normalize-options.js +0 -14
  392. package/src/builders/webpack-dev-server/schema.d.ts +0 -21
  393. package/src/builders/webpack-dev-server/webpack-dev-server.impl.d.ts +0 -4
  394. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +0 -105
  395. package/src/executors/browser-esbuild/lib/buildable-libs.d.ts +0 -9
  396. package/src/executors/browser-esbuild/lib/validate-options.d.ts +0 -2
  397. package/src/executors/browser-esbuild/lib/validate-options.js +0 -40
  398. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -16
  399. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -175
  400. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.d.ts +0 -15
  401. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +0 -197
  402. package/src/executors/utilities/tailwindcss.d.ts +0 -7
  403. package/src/generators/application/files/tsconfig.editor.json__tpl__ +0 -5
  404. package/src/generators/application/files/v14/.browserlistrc__tpl__ +0 -16
  405. package/src/generators/application/files/v14/src/environments/environment.prod.ts__tpl__ +0 -3
  406. package/src/generators/application/files/v14/src/environments/environment.ts__tpl__ +0 -16
  407. package/src/generators/application/files/v14/src/polyfills.ts__tpl__ +0 -53
  408. package/src/generators/component/lib/validate-options.d.ts +0 -3
  409. package/src/generators/component/lib/validate-options.js +0 -8
  410. package/src/generators/directive/lib/validate-options.d.ts +0 -3
  411. package/src/generators/directive/lib/validate-options.js +0 -8
  412. package/src/generators/host/lib/add-ssr.d.ts +0 -3
  413. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.d.ts +0 -3
  414. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +0 -15
  415. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  416. package/src/generators/ngrx/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  417. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +0 -22
  418. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +0 -27
  419. package/src/generators/pipe/lib/validate-options.js +0 -8
  420. package/src/generators/setup-mf/lib/set-tsconfig-target.d.ts +0 -3
  421. package/src/generators/setup-mf/lib/set-tsconfig-target.js +0 -16
  422. package/src/generators/setup-ssr/files/ngmodule/v14/src/__main__ +0 -11
  423. package/src/generators/utils/create-ts-config.d.ts +0 -8
  424. package/src/generators/utils/create-ts-config.js +0 -35
  425. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.d.ts +0 -0
  426. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.di.js +0 -0
  427. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/compile-ngc.transform.d.ts +0 -0
  428. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.d.ts +0 -0
  429. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.di.js +0 -0
  430. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.d.ts +0 -0
  431. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/entry-point.transform.js +0 -0
  432. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.d.ts +0 -0
  433. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.di.js +0 -0
  434. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/entry-point/write-package.transform.d.ts +0 -0
  435. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.d.ts +0 -0
  436. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/options.di.js +0 -0
  437. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.d.ts +0 -0
  438. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{ng-package → pre-v17/ng-package}/package.di.js +0 -0
  439. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.d.ts +0 -0
  440. /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{styles → pre-v17/styles}/stylesheet-processor.di.js +0 -0
  441. /package/src/generators/host/files/common/{src → pre-v17/src}/main.server.ts__tmpl__ +0 -0
  442. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  443. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  444. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  445. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  446. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  447. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  448. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  449. /package/src/generators/ngrx/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  450. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.actions.ts__tmpl__ +0 -0
  451. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.spec.ts__tmpl__ +0 -0
  452. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.effects.ts__tmpl__ +0 -0
  453. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.spec.ts__tmpl__ +0 -0
  454. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.facade.ts__tmpl__ +0 -0
  455. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.spec.ts__tmpl__ +0 -0
  456. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.reducer.ts__tmpl__ +0 -0
  457. /package/src/generators/ngrx-feature-store/files/{base/__directory__ → __directory__}/__fileName__.selectors.ts__tmpl__ +0 -0
  458. /package/src/generators/setup-ssr/files/{base → root}/tsconfig.server.json__tpl__ +0 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STYLESHEET_PROCESSOR = void 0;
4
+ const stylesheet_processor_di_1 = require("ng-packagr/lib/styles/stylesheet-processor.di");
5
+ const angular_version_utils_1 = require("../angular-version-utils");
6
+ const stylesheet_processor_1 = require("./stylesheet-processor");
7
+ exports.STYLESHEET_PROCESSOR = {
8
+ provide: stylesheet_processor_di_1.STYLESHEET_PROCESSOR_TOKEN,
9
+ useFactory: () => {
10
+ const { version: ngPackagrVersion } = (0, angular_version_utils_1.getInstalledPackageVersionInfo)('ng-packagr');
11
+ return ngPackagrVersion !== '17.2.0'
12
+ ? stylesheet_processor_1.StylesheetProcessor
13
+ : stylesheet_processor_1.AsyncStylesheetProcessor;
14
+ },
15
+ deps: [],
16
+ };
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /**
3
+ * Adapted from the original ng-packagr source.
4
+ *
5
+ * Changes made:
6
+ * - Use our own function to get the TailwindCSS config path to support a
7
+ * config at the root of the workspace.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AsyncStylesheetProcessor = exports.StylesheetProcessor = exports.CssUrl = void 0;
11
+ const browserslist = require("browserslist");
12
+ const fs_1 = require("fs");
13
+ const path_1 = require("path");
14
+ const Piscina = require('piscina');
15
+ const color_1 = require("ng-packagr/lib/utils/color");
16
+ // using this instead of the one from ng-packagr
17
+ const tailwindcss_1 = require("./tailwindcss");
18
+ const devkit_1 = require("@nx/devkit");
19
+ const semver_1 = require("semver");
20
+ const angular_version_utils_1 = require("../angular-version-utils");
21
+ const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
22
+ const maxThreads = typeof maxWorkersVariable === 'string' && maxWorkersVariable !== ''
23
+ ? +maxWorkersVariable
24
+ : 4;
25
+ var CssUrl;
26
+ (function (CssUrl) {
27
+ CssUrl["inline"] = "inline";
28
+ CssUrl["none"] = "none";
29
+ })(CssUrl || (exports.CssUrl = CssUrl = {}));
30
+ class StylesheetProcessor {
31
+ constructor(projectBasePath, basePath, cssUrl, includePaths, cacheDirectory) {
32
+ this.projectBasePath = projectBasePath;
33
+ this.basePath = basePath;
34
+ this.cssUrl = cssUrl;
35
+ this.includePaths = includePaths;
36
+ this.cacheDirectory = cacheDirectory;
37
+ // By default, browserslist defaults are too inclusive
38
+ // https://github.com/browserslist/browserslist/blob/83764ea81ffaa39111c204b02c371afa44a4ff07/index.js#L516-L522
39
+ // We change the default query to browsers that Angular support.
40
+ // https://angular.io/guide/browser-support
41
+ browserslist.defaults = [
42
+ 'last 2 Chrome versions',
43
+ 'last 1 Firefox version',
44
+ 'last 2 Edge major versions',
45
+ 'last 2 Safari major versions',
46
+ 'last 2 iOS major versions',
47
+ 'Firefox ESR',
48
+ ];
49
+ }
50
+ async process({ filePath, content, }) {
51
+ this.createRenderWorker();
52
+ return this.renderWorker.run({ content, filePath });
53
+ }
54
+ /** Destory workers in pool. */
55
+ destroy() {
56
+ void this.renderWorker?.destroy();
57
+ }
58
+ createRenderWorker() {
59
+ if (this.renderWorker) {
60
+ return;
61
+ }
62
+ const styleIncludePaths = [...this.includePaths];
63
+ let prevDir = null;
64
+ let currentDir = this.basePath;
65
+ while (currentDir !== prevDir) {
66
+ const p = (0, path_1.join)(currentDir, 'node_modules');
67
+ if ((0, fs_1.existsSync)(p)) {
68
+ styleIncludePaths.push(p);
69
+ }
70
+ prevDir = currentDir;
71
+ currentDir = (0, path_1.dirname)(prevDir);
72
+ }
73
+ const browserslistData = browserslist(undefined, { path: this.basePath });
74
+ const { version: ngPackagrVersion } = (0, angular_version_utils_1.getInstalledPackageVersionInfo)('ng-packagr');
75
+ let postcssConfiguration;
76
+ if ((0, semver_1.gte)(ngPackagrVersion, '17.3.0')) {
77
+ const { loadPostcssConfiguration, } = require('ng-packagr/lib/styles/postcss-configuration');
78
+ postcssConfiguration = loadPostcssConfiguration(this.projectBasePath);
79
+ }
80
+ this.renderWorker = new Piscina({
81
+ filename: require.resolve('ng-packagr/lib/styles/stylesheet-processor-worker'),
82
+ maxThreads,
83
+ recordTiming: false,
84
+ env: {
85
+ ...process.env,
86
+ FORCE_COLOR: '' + color_1.colors.enabled,
87
+ },
88
+ workerData: {
89
+ postcssConfiguration,
90
+ tailwindConfigPath: (0, tailwindcss_1.getTailwindConfigPath)(this.projectBasePath, devkit_1.workspaceRoot),
91
+ projectBasePath: this.projectBasePath,
92
+ browserslistData,
93
+ targets: transformSupportedBrowsersToTargets(browserslistData),
94
+ cacheDirectory: this.cacheDirectory,
95
+ cssUrl: this.cssUrl,
96
+ styleIncludePaths,
97
+ },
98
+ });
99
+ }
100
+ }
101
+ exports.StylesheetProcessor = StylesheetProcessor;
102
+ /**
103
+ * This class is used when ng-packagr version is 17.2.0. The async `loadPostcssConfiguration` function
104
+ * introduced in ng-packagr 17.2.0 causes a memory leak due to multiple workers being created. We must
105
+ * keep this class to support any workspace that might be using ng-packagr 17.2.0 where that function
106
+ * need to be awaited.
107
+ */
108
+ class AsyncStylesheetProcessor {
109
+ constructor(projectBasePath, basePath, cssUrl, includePaths, cacheDirectory) {
110
+ this.projectBasePath = projectBasePath;
111
+ this.basePath = basePath;
112
+ this.cssUrl = cssUrl;
113
+ this.includePaths = includePaths;
114
+ this.cacheDirectory = cacheDirectory;
115
+ // By default, browserslist defaults are too inclusive
116
+ // https://github.com/browserslist/browserslist/blob/83764ea81ffaa39111c204b02c371afa44a4ff07/index.js#L516-L522
117
+ // We change the default query to browsers that Angular support.
118
+ // https://angular.io/guide/browser-support
119
+ browserslist.defaults = [
120
+ 'last 2 Chrome versions',
121
+ 'last 1 Firefox version',
122
+ 'last 2 Edge major versions',
123
+ 'last 2 Safari major versions',
124
+ 'last 2 iOS major versions',
125
+ 'Firefox ESR',
126
+ ];
127
+ }
128
+ async process({ filePath, content, }) {
129
+ await this.createRenderWorker();
130
+ return this.renderWorker.run({ content, filePath });
131
+ }
132
+ /** Destory workers in pool. */
133
+ destroy() {
134
+ void this.renderWorker?.destroy();
135
+ }
136
+ async createRenderWorker() {
137
+ if (this.renderWorker) {
138
+ return;
139
+ }
140
+ const styleIncludePaths = [...this.includePaths];
141
+ let prevDir = null;
142
+ let currentDir = this.basePath;
143
+ while (currentDir !== prevDir) {
144
+ const p = (0, path_1.join)(currentDir, 'node_modules');
145
+ if ((0, fs_1.existsSync)(p)) {
146
+ styleIncludePaths.push(p);
147
+ }
148
+ prevDir = currentDir;
149
+ currentDir = (0, path_1.dirname)(prevDir);
150
+ }
151
+ const browserslistData = browserslist(undefined, { path: this.basePath });
152
+ const { version: ngPackagrVersion } = (0, angular_version_utils_1.getInstalledPackageVersionInfo)('ng-packagr');
153
+ let postcssConfiguration;
154
+ if (ngPackagrVersion === '17.2.0') {
155
+ const { loadPostcssConfiguration } = await Promise.resolve().then(() => require('ng-packagr/lib/styles/postcss-configuration'));
156
+ postcssConfiguration = await loadPostcssConfiguration(this.projectBasePath);
157
+ }
158
+ this.renderWorker = new Piscina({
159
+ filename: require.resolve('ng-packagr/lib/styles/stylesheet-processor-worker'),
160
+ maxThreads,
161
+ recordTiming: false,
162
+ env: {
163
+ ...process.env,
164
+ FORCE_COLOR: '' + color_1.colors.enabled,
165
+ },
166
+ workerData: {
167
+ postcssConfiguration,
168
+ tailwindConfigPath: (0, tailwindcss_1.getTailwindConfigPath)(this.projectBasePath, devkit_1.workspaceRoot),
169
+ projectBasePath: this.projectBasePath,
170
+ browserslistData,
171
+ targets: transformSupportedBrowsersToTargets(browserslistData),
172
+ cacheDirectory: this.cacheDirectory,
173
+ cssUrl: this.cssUrl,
174
+ styleIncludePaths,
175
+ },
176
+ });
177
+ }
178
+ }
179
+ exports.AsyncStylesheetProcessor = AsyncStylesheetProcessor;
180
+ function transformSupportedBrowsersToTargets(supportedBrowsers) {
181
+ const transformed = [];
182
+ // https://esbuild.github.io/api/#target
183
+ const esBuildSupportedBrowsers = new Set([
184
+ 'safari',
185
+ 'firefox',
186
+ 'edge',
187
+ 'chrome',
188
+ 'ios',
189
+ ]);
190
+ for (const browser of supportedBrowsers) {
191
+ let [browserName, version] = browser.split(' ');
192
+ // browserslist uses the name `ios_saf` for iOS Safari whereas esbuild uses `ios`
193
+ if (browserName === 'ios_saf') {
194
+ browserName = 'ios';
195
+ }
196
+ // browserslist uses ranges `15.2-15.3` versions but only the lowest is required
197
+ // to perform minimum supported feature checks. esbuild also expects a single version.
198
+ [version] = version.split('-');
199
+ if (esBuildSupportedBrowsers.has(browserName)) {
200
+ if (browserName === 'safari' && version === 'tp') {
201
+ // esbuild only supports numeric versions so `TP` is converted to a high number (999) since
202
+ // a Technology Preview (TP) of Safari is assumed to support all currently known features.
203
+ version = '999';
204
+ }
205
+ transformed.push(browserName + version);
206
+ }
207
+ }
208
+ return transformed.length ? transformed : undefined;
209
+ }
@@ -0,0 +1,7 @@
1
+ export interface TailwindSetup {
2
+ tailwindConfigPath: string;
3
+ tailwindPackagePath: string;
4
+ }
5
+ export declare function getTailwindSetup(basePath: string, tailwindConfig?: string): TailwindSetup | undefined;
6
+ export declare function getTailwindConfigPath(projectRoot: string, workspaceRoot: string): string | undefined;
7
+ export declare function getTailwindPostCssPlugin({ tailwindConfigPath, tailwindPackagePath, }: TailwindSetup): any;
@@ -1,19 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTailwindPostCssPlugins = exports.getTailwindSetup = exports.tailwindDirectives = void 0;
3
+ exports.getTailwindPostCssPlugin = exports.getTailwindConfigPath = exports.getTailwindSetup = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const devkit_2 = require("@nx/devkit");
6
6
  const fs_1 = require("fs");
7
7
  const path_1 = require("path");
8
- const postcssImport = require("postcss-import");
9
- exports.tailwindDirectives = [
10
- '@tailwind',
11
- '@apply',
12
- '@layer',
13
- '@variants',
14
- '@responsive',
15
- '@screen',
16
- ];
17
8
  function getTailwindSetup(basePath, tailwindConfig) {
18
9
  let tailwindConfigPath = tailwindConfig;
19
10
  if (!tailwindConfigPath) {
@@ -58,16 +49,8 @@ function getTailwindConfigPath(projectRoot, workspaceRoot) {
58
49
  }
59
50
  return undefined;
60
51
  }
61
- function getTailwindPostCssPlugins({ tailwindConfigPath, tailwindPackagePath }, includePaths, watch) {
62
- if (process.env['TAILWIND_MODE'] === undefined) {
63
- process.env['TAILWIND_MODE'] = watch ? 'watch' : 'build';
64
- }
65
- return [
66
- postcssImport({
67
- addModulesDirectories: includePaths ?? [],
68
- resolve: (url) => (url.startsWith('~') ? url.substring(1) : url),
69
- }),
70
- require(tailwindPackagePath)({ config: tailwindConfigPath }),
71
- ];
52
+ exports.getTailwindConfigPath = getTailwindConfigPath;
53
+ function getTailwindPostCssPlugin({ tailwindConfigPath, tailwindPackagePath, }) {
54
+ return require(tailwindPackagePath)({ config: tailwindConfigPath });
72
55
  }
73
- exports.getTailwindPostCssPlugins = getTailwindPostCssPlugins;
56
+ exports.getTailwindPostCssPlugin = getTailwindPostCssPlugin;
@@ -0,0 +1,3 @@
1
+ import type { BuilderContext } from '@angular-devkit/architect';
2
+ import type { Target } from '@nx/devkit';
3
+ export declare function patchBuilderContext(context: BuilderContext, isUsingEsbuildBuilder: boolean, buildTarget: Target): void;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patchBuilderContext = void 0;
4
+ const executorToBuilderMap = new Map([
5
+ [
6
+ '@nx/angular:browser-esbuild',
7
+ '@angular-devkit/build-angular:browser-esbuild',
8
+ ],
9
+ ['@nx/angular:application', '@angular-devkit/build-angular:application'],
10
+ ]);
11
+ function patchBuilderContext(context, isUsingEsbuildBuilder, buildTarget) {
12
+ const originalGetBuilderNameForTarget = context.getBuilderNameForTarget;
13
+ context.getBuilderNameForTarget = async (target) => {
14
+ const builderName = await originalGetBuilderNameForTarget(target);
15
+ if (executorToBuilderMap.has(builderName)) {
16
+ return executorToBuilderMap.get(builderName);
17
+ }
18
+ return builderName;
19
+ };
20
+ if (isUsingEsbuildBuilder) {
21
+ const originalGetTargetOptions = context.getTargetOptions;
22
+ context.getTargetOptions = async (target) => {
23
+ const options = await originalGetTargetOptions(target);
24
+ if (target.project === buildTarget.project &&
25
+ target.target === buildTarget.target &&
26
+ target.configuration === buildTarget.configuration) {
27
+ cleanBuildTargetOptions(options);
28
+ }
29
+ return options;
30
+ };
31
+ }
32
+ }
33
+ exports.patchBuilderContext = patchBuilderContext;
34
+ function cleanBuildTargetOptions(options) {
35
+ delete options.buildLibsFromSource;
36
+ delete options.customWebpackConfig;
37
+ delete options.indexHtmlTransformer;
38
+ delete options.indexFileTransformer;
39
+ delete options.plugins;
40
+ return options;
41
+ }
@@ -9,9 +9,9 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.parseRemappedTsConfigAndMergeDefaults = void 0;
12
- const ng_compiler_cli_1 = require("ng-packagr/lib/utils/ng-compiler-cli");
13
12
  const path_1 = require("path");
14
13
  const ts = require("typescript");
14
+ const ng_compiler_cli_1 = require("./ng-compiler-cli");
15
15
  async function readDefaultTsConfig(fileName) {
16
16
  // these options are mandatory
17
17
  const extraOptions = {
@@ -1,4 +1,4 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
1
+ import { type GeneratorCallback, type Tree } from '@nx/devkit';
2
2
  import type { AddLintingGeneratorSchema } from './schema';
3
3
  export declare function addLintingGenerator(tree: Tree, options: AddLintingGeneratorSchema): Promise<GeneratorCallback>;
4
4
  export default addLintingGenerator;
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addLintingGenerator = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const string_utils_1 = require("@nx/devkit/src/utils/string-utils");
5
6
  const eslint_1 = require("@nx/eslint");
6
- const lint_project_1 = require("@nx/eslint/src/generators/lint-project/lint-project");
7
- const add_angular_eslint_dependencies_1 = require("./lib/add-angular-eslint-dependencies");
7
+ const global_eslint_config_1 = require("@nx/eslint/src/generators/init/global-eslint-config");
8
8
  const eslint_file_1 = require("@nx/eslint/src/generators/utils/eslint-file");
9
- const string_utils_1 = require("@nx/devkit/src/utils/string-utils");
9
+ const add_angular_eslint_dependencies_1 = require("./lib/add-angular-eslint-dependencies");
10
+ const buildable_project_1 = require("./lib/buildable-project");
10
11
  async function addLintingGenerator(tree, options) {
11
12
  const tasks = [];
12
13
  const rootProject = options.projectRoot === '.' || options.projectRoot === '';
@@ -17,13 +18,11 @@ async function addLintingGenerator(tree, options) {
17
18
  (0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.app.json'),
18
19
  ],
19
20
  unitTestRunner: options.unitTestRunner,
20
- eslintFilePatterns: [
21
- (0, lint_project_1.mapLintPattern)(options.projectRoot, 'ts', rootProject),
22
- (0, lint_project_1.mapLintPattern)(options.projectRoot, 'html', rootProject),
23
- ],
24
21
  setParserOptionsProject: options.setParserOptionsProject,
25
22
  skipFormat: true,
26
23
  rootProject: rootProject,
24
+ addPlugin: false,
25
+ addExplicitTargets: true,
27
26
  });
28
27
  tasks.push(lintTask);
29
28
  if ((0, eslint_file_1.isEslintConfigSupported)(tree)) {
@@ -33,6 +32,7 @@ async function addLintingGenerator(tree, options) {
33
32
  .read((0, devkit_1.joinPathFragments)(options.projectRoot, eslintFile), 'utf8')
34
33
  .includes(`${options.projectRoot}/tsconfig.*?.json`);
35
34
  (0, eslint_file_1.replaceOverridesInLintConfig)(tree, options.projectRoot, [
35
+ ...(rootProject ? [global_eslint_config_1.typeScriptOverride, global_eslint_config_1.javaScriptOverride] : []),
36
36
  {
37
37
  files: ['*.ts'],
38
38
  ...(hasParserOptions
@@ -74,7 +74,7 @@ async function addLintingGenerator(tree, options) {
74
74
  */
75
75
  rules: {},
76
76
  },
77
- ...(isBuildableLibraryProject(tree, options.projectName)
77
+ ...((0, buildable_project_1.isBuildableLibraryProject)(tree, options.projectName)
78
78
  ? [
79
79
  {
80
80
  files: ['*.json'],
@@ -88,7 +88,7 @@ async function addLintingGenerator(tree, options) {
88
88
  ]);
89
89
  }
90
90
  if (!options.skipPackageJson) {
91
- const installTask = (0, add_angular_eslint_dependencies_1.addAngularEsLintDependencies)(tree);
91
+ const installTask = (0, add_angular_eslint_dependencies_1.addAngularEsLintDependencies)(tree, options.projectName);
92
92
  tasks.push(installTask);
93
93
  }
94
94
  if (!options.skipFormat) {
@@ -97,10 +97,4 @@ async function addLintingGenerator(tree, options) {
97
97
  return (0, devkit_1.runTasksInSerial)(...tasks);
98
98
  }
99
99
  exports.addLintingGenerator = addLintingGenerator;
100
- function isBuildableLibraryProject(tree, projectName) {
101
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, projectName);
102
- return (projectConfig.projectType === 'library' &&
103
- projectConfig.targets?.build &&
104
- !!projectConfig.targets.build);
105
- }
106
100
  exports.default = addLintingGenerator;
@@ -1,2 +1,2 @@
1
- import type { GeneratorCallback, Tree } from '@nx/devkit';
2
- export declare function addAngularEsLintDependencies(tree: Tree): GeneratorCallback;
1
+ import { type GeneratorCallback, type Tree } from '@nx/devkit';
2
+ export declare function addAngularEsLintDependencies(tree: Tree, projectName: string): GeneratorCallback;
@@ -3,14 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addAngularEsLintDependencies = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const version_utils_1 = require("../../utils/version-utils");
6
- function addAngularEsLintDependencies(tree) {
6
+ const buildable_project_1 = require("./buildable-project");
7
+ function addAngularEsLintDependencies(tree, projectName) {
7
8
  const angularEslintVersionToInstall = (0, version_utils_1.versions)(tree).angularEslintVersion;
8
- const jsoncEslintParserVersionToInstall = (0, version_utils_1.versions)(tree).jsoncEslintParserVersion;
9
- return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
9
+ const devDependencies = {
10
10
  '@angular-eslint/eslint-plugin': angularEslintVersionToInstall,
11
11
  '@angular-eslint/eslint-plugin-template': angularEslintVersionToInstall,
12
12
  '@angular-eslint/template-parser': angularEslintVersionToInstall,
13
- 'jsonc-eslint-parser': jsoncEslintParserVersionToInstall,
14
- });
13
+ };
14
+ if ((0, buildable_project_1.isBuildableLibraryProject)(tree, projectName)) {
15
+ const jsoncEslintParserVersionToInstall = (0, version_utils_1.versions)(tree).jsoncEslintParserVersion;
16
+ devDependencies['jsonc-eslint-parser'] = jsoncEslintParserVersionToInstall;
17
+ }
18
+ return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies);
15
19
  }
16
20
  exports.addAngularEsLintDependencies = addAngularEsLintDependencies;
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export declare function isBuildableLibraryProject(tree: Tree, projectName: string): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBuildableLibraryProject = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ function isBuildableLibraryProject(tree, projectName) {
6
+ const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, projectName);
7
+ return (projectConfig.projectType === 'library' && !!projectConfig.targets?.build);
8
+ }
9
+ exports.isBuildableLibraryProject = isBuildableLibraryProject;
@@ -29,7 +29,7 @@ export declare const extendAngularEslintJson: (json: Linter.Config, options: Esl
29
29
  [name: string]: boolean;
30
30
  };
31
31
  globals?: {
32
- [name: string]: boolean | "off" | "readonly" | "readable" | "writable" | "writeable";
32
+ [name: string]: boolean | "readable" | "off" | "readonly" | "writable" | "writeable";
33
33
  };
34
34
  noInlineConfig?: boolean;
35
35
  overrides?: Linter.ConfigOverride<Linter.RulesRecord>[];
@@ -61,7 +61,7 @@ export declare const extendAngularEslintJson: (json: Linter.Config, options: Esl
61
61
  };
62
62
  extends?: string | string[];
63
63
  globals?: {
64
- [name: string]: boolean | "off" | "readonly" | "readable" | "writable" | "writeable";
64
+ [name: string]: boolean | "readable" | "off" | "readonly" | "writable" | "writeable";
65
65
  };
66
66
  noInlineConfig?: boolean;
67
67
  parser?: string;
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "$id": "NxAngularAddLintingGenerator",
4
4
  "title": "Add linting to an Angular project.",
5
5
  "description": "Adds linting configuration to an Angular project.",
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applicationGeneratorInternal = exports.applicationGenerator = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const js_1 = require("@nx/js");
5
6
  const init_1 = require("../init/init");
7
+ const setup_ssr_1 = require("../setup-ssr/setup-ssr");
6
8
  const setup_tailwind_1 = require("../setup-tailwind/setup-tailwind");
7
- const version_utils_1 = require("../utils/version-utils");
9
+ const ensure_angular_dependencies_1 = require("../utils/ensure-angular-dependencies");
8
10
  const lib_1 = require("./lib");
9
- const semver_1 = require("semver");
10
- const enquirer_1 = require("enquirer");
11
+ const log_show_project_command_1 = require("@nx/devkit/src/utils/log-show-project-command");
11
12
  async function applicationGenerator(tree, schema) {
12
13
  return await applicationGeneratorInternal(tree, {
13
14
  projectNameAndRootFormat: 'derived',
@@ -16,26 +17,19 @@ async function applicationGenerator(tree, schema) {
16
17
  }
17
18
  exports.applicationGenerator = applicationGenerator;
18
19
  async function applicationGeneratorInternal(tree, schema) {
19
- const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
20
- if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && schema.standalone) {
21
- throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
22
- You can resolve this error by removing the "standalone" option or by migrating to Angular 14.1.0.`);
23
- }
24
- if ((0, semver_1.gte)(installedAngularVersionInfo.version, '14.1.0') &&
25
- schema.standalone === undefined &&
26
- process.env.NX_INTERACTIVE === 'true') {
27
- schema.standalone = await (0, enquirer_1.prompt)({
28
- name: 'standalone-components',
29
- message: 'Would you like to use Standalone Components?',
30
- type: 'confirm',
31
- }).then((a) => a['standalone-components']);
32
- }
33
20
  const options = await (0, lib_1.normalizeOptions)(tree, schema);
34
21
  const rootOffset = (0, devkit_1.offsetFromRoot)(options.appProjectRoot);
22
+ await (0, js_1.initGenerator)(tree, {
23
+ ...options,
24
+ tsConfigName: options.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
25
+ js: false,
26
+ skipFormat: true,
27
+ });
35
28
  await (0, init_1.angularInitGenerator)(tree, {
36
29
  ...options,
37
30
  skipFormat: true,
38
31
  });
32
+ (0, ensure_angular_dependencies_1.ensureAngularDependencies)(tree);
39
33
  (0, lib_1.createProject)(tree, options);
40
34
  await (0, lib_1.createFiles)(tree, options, rootOffset);
41
35
  if (options.addTailwind) {
@@ -49,6 +43,7 @@ async function applicationGeneratorInternal(tree, schema) {
49
43
  await (0, lib_1.addUnitTestRunner)(tree, options);
50
44
  await (0, lib_1.addE2e)(tree, options);
51
45
  (0, lib_1.updateEditorTsConfig)(tree, options);
46
+ (0, lib_1.setGeneratorDefaults)(tree, options);
52
47
  if (options.rootProject) {
53
48
  const nxJson = (0, devkit_1.readNxJson)(tree);
54
49
  nxJson.defaultProject = options.name;
@@ -63,11 +58,18 @@ async function applicationGeneratorInternal(tree, schema) {
63
58
  else {
64
59
  (0, lib_1.setApplicationStrictDefault)(tree, false);
65
60
  }
61
+ if (options.ssr) {
62
+ await (0, setup_ssr_1.setupSsr)(tree, {
63
+ project: options.name,
64
+ standalone: options.standalone,
65
+ });
66
+ }
66
67
  if (!options.skipFormat) {
67
68
  await (0, devkit_1.formatFiles)(tree);
68
69
  }
69
70
  return () => {
70
71
  (0, devkit_1.installPackagesTask)(tree);
72
+ (0, log_show_project_command_1.logShowProjectCommand)(options.name);
71
73
  };
72
74
  }
73
75
  exports.applicationGeneratorInternal = applicationGeneratorInternal;
@@ -4,7 +4,7 @@
4
4
  "outDir": "<%= rootOffset %>dist/out-tsc",
5
5
  "types": []
6
6
  },
7
- "files": ["src/main.ts"<% if(installedAngularInfo.major === 14) { %>, "src/polyfills.ts"<% } %>],
7
+ "files": ["src/main.ts"],
8
8
  "include": ["src/**/*.d.ts"],
9
9
  "exclude": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts"]
10
10
  }
@@ -1,11 +1,15 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": <% if(installedAngularInfo.major === 14) { %>"es2020"<% } else { %>"es2022"<% } %><% if(installedAngularInfo.major === 15) { %>,
4
- "useDefineForClassFields": false<% } %>
3
+ "target": "es2022",
4
+ "useDefineForClassFields": false<% if (isUsingApplicationBuilder) { %>,
5
+ "esModuleInterop": true<% } %>
5
6
  },
6
7
  "files": [],
7
8
  "include": [],
8
9
  "references": [
10
+ {
11
+ "path": "./tsconfig.editor.json"
12
+ },
9
13
  {
10
14
  "path": "./tsconfig.app.json"
11
15
  }
@@ -15,7 +15,9 @@ describe('AppComponent', () => {
15
15
  const fixture = TestBed.createComponent(AppComponent);
16
16
  fixture.detectChanges();
17
17
  const compiled = fixture.nativeElement as HTMLElement;
18
- expect(compiled.querySelector('h1')?.textContent).toContain('Welcome <%= appName %>');
18
+ expect(compiled.querySelector('h1')?.textContent).toContain(
19
+ 'Welcome <%= appName %>'
20
+ );
19
21
  });<% if(!minimal) { %>
20
22
 
21
23
  it(`should have as title '<%= appName %>'`, () => {
@@ -3,9 +3,11 @@ import { Component<% if(viewEncapsulation) { %>, ViewEncapsulation<% } %> } from
3
3
  @Component({
4
4
  selector: '<%= rootSelector %>',<% if(!inlineTemplate) { %>
5
5
  templateUrl: './app.component.html',<% } else { %>
6
- template: `<% if(minimal) { %><h1>Welcome <%= appName %></h1><% } else { %><<%= nxWelcomeSelector %>></<%= nxWelcomeSelector %>><% } %> <% if(routing) { %><router-outlet></router-outlet><% } %>`,<% } %><% if(!inlineStyle) { %>
6
+ template: `<% if(minimal) { %><h1>Welcome <%= appName %></h1><% } else { %><<%= nxWelcomeSelector %>></<%= nxWelcomeSelector %>><% } %> <% if(routing) { %><router-outlet></router-outlet><% } %>`,<% } %><% if (angularMajorVersion < 17) { if(!inlineStyle) { %>
7
7
  styleUrls: ['./app.component.<%= style %>'],<% } else { %>
8
- styles: [''],<% } %><% if(viewEncapsulation) { %>
8
+ styles: [``],<% } %><% } else { if(!inlineStyle) { %>
9
+ styleUrl: './app.component.<%= style %>',<% } else { %>
10
+ styles: ``,<% } %><% } %><% if(viewEncapsulation) { %>
9
11
  encapsulation: ViewEncapsulation.<%= viewEncapsulation %>,<% } %>
10
12
  })
11
13
  export class AppComponent {<% if(!minimal) { %>
@@ -9,7 +9,7 @@ import { NxWelcomeComponent } from './nx-welcome.component';<% } %>
9
9
  declarations: [AppComponent<% if(!minimal) { %>, NxWelcomeComponent<% } %>],
10
10
  imports: [
11
11
  BrowserModule,<% if(routing) { %>
12
- RouterModule.forRoot(appRoutes, { initialNavigation: 'enabledBlocking' }),<% } %>
12
+ RouterModule.forRoot(appRoutes),<% } %>
13
13
  ],
14
14
  providers: [],
15
15
  bootstrap: [AppComponent],