@nx/angular 16.8.0-beta.3 → 16.8.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/mf/mf.js +31 -36
  2. package/migrations.json +9 -0
  3. package/package.json +11 -11
  4. package/plugins/component-testing.js +82 -44
  5. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +4 -6
  6. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +4 -6
  7. package/src/builders/utilities/buildable-libs.js +1 -2
  8. package/src/builders/utilities/module-federation.js +2 -3
  9. package/src/builders/utilities/webpack.js +16 -21
  10. package/src/builders/webpack-browser/webpack-browser.impl.js +13 -13
  11. package/src/builders/webpack-dev-server/lib/normalize-options.js +8 -1
  12. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +24 -18
  13. package/src/builders/webpack-server/webpack-server.impl.js +5 -7
  14. package/src/executors/browser-esbuild/browser-esbuild.impl.js +19 -23
  15. package/src/executors/browser-esbuild/lib/buildable-libs.js +1 -2
  16. package/src/executors/delegate-build/delegate-build.impl.js +9 -12
  17. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +4 -7
  18. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +4 -5
  19. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +158 -156
  20. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  21. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +118 -118
  22. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  23. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +20 -12
  24. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +18 -21
  25. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +6 -9
  26. package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  27. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +122 -122
  28. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  29. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +21 -13
  30. package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +5 -8
  31. package/src/executors/package/package.impl.js +33 -38
  32. package/src/executors/utilities/angular-version-utils.js +1 -1
  33. package/src/executors/utilities/tailwindcss.js +2 -2
  34. package/src/executors/utilities/typescript.js +23 -28
  35. package/src/generators/add-linting/add-linting.js +76 -69
  36. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +2 -0
  37. package/src/generators/add-linting/lib/create-eslint-configuration.js +12 -4
  38. package/src/generators/application/application.js +56 -55
  39. package/src/generators/application/lib/add-e2e.js +36 -40
  40. package/src/generators/application/lib/add-linting.js +12 -15
  41. package/src/generators/application/lib/add-proxy-config.js +4 -1
  42. package/src/generators/application/lib/add-unit-test-runner.js +15 -18
  43. package/src/generators/application/lib/create-files.js +44 -47
  44. package/src/generators/application/lib/enable-strict-type-checking.js +2 -2
  45. package/src/generators/application/lib/normalize-options.js +37 -25
  46. package/src/generators/application/lib/set-app-strict-default.js +1 -2
  47. package/src/generators/application/lib/update-editor-tsconfig.js +1 -2
  48. package/src/generators/component/component.js +40 -43
  49. package/src/generators/component/lib/normalize-options.js +15 -5
  50. package/src/generators/component-cypress-spec/component-cypress-spec.js +25 -28
  51. package/src/generators/component-story/component-story.js +19 -22
  52. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +19 -22
  53. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +3 -4
  54. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +103 -106
  55. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +59 -62
  56. package/src/generators/directive/directive.js +21 -24
  57. package/src/generators/directive/lib/normalize-options.js +11 -5
  58. package/src/generators/host/files/src/main.server.ts__tmpl__ +1 -1
  59. package/src/generators/host/host.js +77 -67
  60. package/src/generators/host/lib/add-ssr.js +32 -33
  61. package/src/generators/init/init.js +101 -92
  62. package/src/generators/library/lib/add-standalone-component.js +18 -13
  63. package/src/generators/library/lib/enable-strict-type-checking.js +17 -5
  64. package/src/generators/library/lib/normalize-options.js +68 -53
  65. package/src/generators/library/library.js +89 -92
  66. package/src/generators/library-secondary-entry-point/lib/add-files.js +5 -1
  67. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +6 -3
  68. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +1 -2
  69. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +6 -9
  70. package/src/generators/move/lib/normalize-schema.js +5 -1
  71. package/src/generators/move/lib/update-module-name.js +1 -1
  72. package/src/generators/move/lib/update-ng-package.js +1 -2
  73. package/src/generators/move/lib/update-secondary-entry-points.js +1 -2
  74. package/src/generators/move/move.js +9 -12
  75. package/src/generators/ng-add/migrate-from-angular-cli.js +54 -53
  76. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +4 -3
  77. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +11 -12
  78. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +39 -42
  79. package/src/generators/ng-add/migrators/builders/builder.migrator.js +1 -2
  80. package/src/generators/ng-add/migrators/migrator.js +7 -11
  81. package/src/generators/ng-add/migrators/projects/app.migrator.js +39 -43
  82. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +115 -91
  83. package/src/generators/ng-add/migrators/projects/lib.migrator.js +23 -31
  84. package/src/generators/ng-add/migrators/projects/project.migrator.js +10 -14
  85. package/src/generators/ng-add/ng-add.js +5 -8
  86. package/src/generators/ng-add/utilities/dependencies.js +2 -3
  87. package/src/generators/ng-add/utilities/format-files-task.js +1 -1
  88. package/src/generators/ng-add/utilities/projects.js +1 -1
  89. package/src/generators/ng-add/utilities/workspace.js +25 -36
  90. package/src/generators/ngrx/lib/add-imports-to-module.js +1 -2
  91. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +1 -3
  92. package/src/generators/ngrx/lib/generate-files.js +11 -2
  93. package/src/generators/ngrx/lib/normalize-options.js +9 -4
  94. package/src/generators/ngrx/lib/validate-options.js +3 -3
  95. package/src/generators/ngrx/ngrx.js +18 -21
  96. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +1 -1
  97. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +2 -2
  98. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  99. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +6 -6
  100. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  101. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +3 -3
  102. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +2 -2
  103. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +3 -3
  104. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +1 -1
  105. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  106. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  107. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +4 -1
  108. package/src/generators/ngrx-feature-store/lib/add-imports.js +1 -1
  109. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +1 -3
  110. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -4
  111. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +1 -0
  112. package/src/generators/ngrx-feature-store/lib/normalize-options.js +22 -3
  113. package/src/generators/ngrx-feature-store/lib/validate-options.js +2 -2
  114. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +18 -21
  115. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +8 -6
  116. package/src/generators/ngrx-root-store/lib/normalize-options.js +8 -4
  117. package/src/generators/ngrx-root-store/lib/validate-options.js +2 -2
  118. package/src/generators/ngrx-root-store/ngrx-root-store.js +27 -30
  119. package/src/generators/pipe/lib/normalize-options.js +9 -3
  120. package/src/generators/pipe/pipe.js +21 -24
  121. package/src/generators/remote/files/base/src/main.server.ts__tmpl__ +2 -2
  122. package/src/generators/remote/lib/add-ssr.js +46 -43
  123. package/src/generators/remote/lib/find-next-available-port.js +1 -2
  124. package/src/generators/remote/remote.js +52 -49
  125. package/src/generators/scam/lib/convert-component-to-scam.js +1 -2
  126. package/src/generators/scam/lib/normalize-options.js +11 -4
  127. package/src/generators/scam/scam.js +15 -12
  128. package/src/generators/scam-directive/lib/normalize-options.js +12 -4
  129. package/src/generators/scam-directive/scam-directive.js +13 -10
  130. package/src/generators/scam-pipe/lib/normalize-options.js +12 -4
  131. package/src/generators/scam-pipe/scam-pipe.js +13 -10
  132. package/src/generators/scam-to-standalone/scam-to-standalone.js +23 -26
  133. package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -1
  134. package/src/generators/setup-mf/lib/add-remote-to-host.js +4 -1
  135. package/src/generators/setup-mf/lib/change-build-target.js +10 -4
  136. package/src/generators/setup-mf/lib/generate-config.js +1 -1
  137. package/src/generators/setup-mf/lib/get-remotes-with-ports.js +1 -2
  138. package/src/generators/setup-mf/lib/normalize-options.js +5 -2
  139. package/src/generators/setup-mf/lib/set-tsconfig-target.js +7 -1
  140. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -2
  141. package/src/generators/setup-mf/lib/setup-serve-target.js +10 -3
  142. package/src/generators/setup-mf/setup-mf.js +32 -35
  143. package/src/generators/setup-ssr/lib/generate-files.js +8 -5
  144. package/src/generators/setup-ssr/lib/normalize-options.js +9 -10
  145. package/src/generators/setup-ssr/lib/update-project-config.js +21 -17
  146. package/src/generators/setup-ssr/setup-ssr.js +26 -27
  147. package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.js +6 -4
  148. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +1 -2
  149. package/src/generators/setup-tailwind/lib/normalize-options.js +4 -1
  150. package/src/generators/setup-tailwind/lib/update-application-styles.js +5 -6
  151. package/src/generators/setup-tailwind/setup-tailwind.js +20 -23
  152. package/src/generators/stories/lib/get-e2e-project.js +1 -1
  153. package/src/generators/stories/stories.js +43 -50
  154. package/src/generators/storybook-configuration/lib/assert-compatible-storybook-version.js +1 -1
  155. package/src/generators/storybook-configuration/lib/generate-stories.js +10 -13
  156. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +12 -15
  157. package/src/generators/storybook-configuration/storybook-configuration.js +20 -16
  158. package/src/generators/utils/create-ts-config.js +1 -1
  159. package/src/generators/utils/entry-point.js +1 -2
  160. package/src/generators/utils/export-scam.js +1 -1
  161. package/src/generators/utils/insert-ngmodule-import.js +1 -1
  162. package/src/generators/utils/path.js +3 -3
  163. package/src/generators/utils/project.js +2 -3
  164. package/src/generators/utils/selector.js +1 -1
  165. package/src/generators/utils/storybook-ast/component-info.js +1 -2
  166. package/src/generators/utils/storybook-ast/entry-point.js +1 -2
  167. package/src/generators/utils/storybook-ast/module-info.js +1 -2
  168. package/src/generators/utils/storybook-ast/tree-utilities.js +1 -1
  169. package/src/generators/utils/testing.js +141 -138
  170. package/src/generators/utils/validations.js +1 -1
  171. package/src/generators/utils/version-utils.js +5 -7
  172. package/src/generators/web-worker/lib/normalize-options.js +6 -3
  173. package/src/generators/web-worker/web-worker.js +25 -28
  174. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +10 -13
  175. package/src/migrations/update-14-2-0/update-angular-cli.js +14 -18
  176. package/src/migrations/update-14-2-0/update-libraries-secondary-entrypoints.js +22 -26
  177. package/src/migrations/update-14-2-0/update-ngcc-target.js +10 -14
  178. package/src/migrations/update-14-2-0/update-router-initial-navigation.js +31 -39
  179. package/src/migrations/update-14-2-0/update-tsconfig-target.js +48 -56
  180. package/src/migrations/update-14-5-0/migrate-mfe-to-mf.js +14 -17
  181. package/src/migrations/update-14-5-2/update-angular-cli.js +14 -18
  182. package/src/migrations/update-14-6-0/update-angular-cli.js +14 -18
  183. package/src/migrations/update-15-0-0/add-karma-inputs.js +27 -32
  184. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +62 -68
  185. package/src/migrations/update-15-2-0/remove-browserlist-config.js +34 -37
  186. package/src/migrations/update-15-2-0/remove-platform-server-exports.js +49 -52
  187. package/src/migrations/update-15-2-0/update-angular-cli.js +14 -18
  188. package/src/migrations/update-15-2-0/update-karma-main-file.js +11 -12
  189. package/src/migrations/update-15-2-0/update-typescript-target.js +40 -39
  190. package/src/migrations/update-15-2-0/update-workspace-config.js +16 -19
  191. package/src/migrations/update-15-5-0/update-angular-cli.js +14 -18
  192. package/src/migrations/update-15-7-0/install-required-packages.js +26 -28
  193. package/src/migrations/update-15-8-0/update-angular-cli.js +14 -18
  194. package/src/migrations/update-15-9-0/update-file-server-executor.js +31 -35
  195. package/src/migrations/update-15-9-0/update-testing-tsconfig.js +17 -22
  196. package/src/migrations/update-16-0-0/remove-karma-defaults.js +15 -18
  197. package/src/migrations/update-16-0-0/remove-library-generator-simple-module-name-option.js +22 -25
  198. package/src/migrations/update-16-0-0/remove-protractor-defaults.js +15 -18
  199. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
  200. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +38 -42
  201. package/src/migrations/update-16-1-0/remove-ngcc-invocation.js +15 -19
  202. package/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.js +49 -52
  203. package/src/migrations/update-16-1-0/update-angular-cli.js +14 -18
  204. package/src/migrations/update-16-1-0/update-server-executor-config.js +13 -16
  205. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +25 -29
  206. package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +13 -16
  207. package/src/migrations/update-16-4-0/update-angular-cli.js +14 -18
  208. package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
  209. package/src/migrations/update-16-7-0/update-angular-cli.js +14 -18
  210. package/src/migrations/utils/projects.js +9 -15
  211. package/src/utils/backward-compatible-versions.js +2 -0
  212. package/src/utils/get-mf-projects.js +1 -2
  213. package/src/utils/mf/utils.js +43 -44
  214. package/src/utils/mf/with-module-federation-ssr.js +39 -24
  215. package/src/utils/mf/with-module-federation.js +40 -21
  216. package/src/utils/nx-devkit/ast-utils.js +2 -3
  217. package/src/utils/nx-devkit/testing.js +9 -9
  218. package/src/utils/version-utils.js +2 -4
  219. package/src/utils/versions.d.ts +1 -0
  220. package/src/utils/versions.js +2 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_BROWSERS = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const path_1 = require("path");
7
6
  const validBrowserslistConfigFilenames = new Set([
@@ -16,46 +15,44 @@ exports.DEFAULT_BROWSERS = [
16
15
  'last 2 iOS major versions',
17
16
  'Firefox ESR',
18
17
  ];
19
- function removeBrowserlistConfig(tree) {
20
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- let browserslist;
22
- try {
23
- browserslist = yield Promise.resolve().then(() => require('browserslist'));
18
+ async function removeBrowserlistConfig(tree) {
19
+ let browserslist;
20
+ try {
21
+ browserslist = await Promise.resolve().then(() => require('browserslist'));
22
+ }
23
+ catch {
24
+ devkit_1.logger.warn('Skipping migration because the "browserslist" package could not be loaded.');
25
+ return;
26
+ }
27
+ // Set the defaults to match the defaults in build-angular.
28
+ browserslist.defaults = exports.DEFAULT_BROWSERS;
29
+ const defaultSupportedBrowsers = new Set(browserslist(exports.DEFAULT_BROWSERS));
30
+ const es5Browsers = new Set(browserslist(['supports es6-module']));
31
+ (0, devkit_1.visitNotIgnoredFiles)(tree, '/', (path) => {
32
+ const fileName = (0, path_1.basename)(path);
33
+ if (!validBrowserslistConfigFilenames.has(fileName) ||
34
+ path.startsWith('node_modules')) {
35
+ return;
24
36
  }
25
- catch (_a) {
26
- devkit_1.logger.warn('Skipping migration because the "browserslist" package could not be loaded.');
37
+ const { defaults: browsersListConfig, ...otherConfigs } = browserslist.parseConfig(tree.read(path, 'utf-8'));
38
+ if (Object.keys(otherConfigs).length) {
39
+ // The config contains additional sections.
27
40
  return;
28
41
  }
29
- // Set the defaults to match the defaults in build-angular.
30
- browserslist.defaults = exports.DEFAULT_BROWSERS;
31
- const defaultSupportedBrowsers = new Set(browserslist(exports.DEFAULT_BROWSERS));
32
- const es5Browsers = new Set(browserslist(['supports es6-module']));
33
- (0, devkit_1.visitNotIgnoredFiles)(tree, '/', (path) => {
34
- const fileName = (0, path_1.basename)(path);
35
- if (!validBrowserslistConfigFilenames.has(fileName) ||
36
- path.startsWith('node_modules')) {
37
- return;
38
- }
39
- const _a = browserslist.parseConfig(tree.read(path, 'utf-8')), { defaults: browsersListConfig } = _a, otherConfigs = tslib_1.__rest(_a, ["defaults"]);
40
- if (Object.keys(otherConfigs).length) {
41
- // The config contains additional sections.
42
- return;
43
- }
44
- const browserslistInProject = browserslist(
45
- // Exclude from the list ES5 browsers which are not supported.
46
- browsersListConfig.map((s) => `${s} and supports es6-module`), {
47
- ignoreUnknownVersions: true,
48
- });
49
- if (defaultSupportedBrowsers.size !== browserslistInProject.length) {
50
- return;
51
- }
52
- const shouldDelete = browserslistInProject.every((browser) => defaultSupportedBrowsers.has(browser));
53
- if (shouldDelete) {
54
- // All browsers are the same as the default config.
55
- // Delete file as it's redundant.
56
- tree.delete(path);
57
- }
42
+ const browserslistInProject = browserslist(
43
+ // Exclude from the list ES5 browsers which are not supported.
44
+ browsersListConfig.map((s) => `${s} and supports es6-module`), {
45
+ ignoreUnknownVersions: true,
58
46
  });
47
+ if (defaultSupportedBrowsers.size !== browserslistInProject.length) {
48
+ return;
49
+ }
50
+ const shouldDelete = browserslistInProject.every((browser) => defaultSupportedBrowsers.has(browser));
51
+ if (shouldDelete) {
52
+ // All browsers are the same as the default config.
53
+ // Delete file as it's redundant.
54
+ tree.delete(path);
55
+ }
59
56
  });
60
57
  }
61
58
  exports.default = removeBrowserlistConfig;
@@ -1,64 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const ts = require("typescript");
6
5
  const file_change_recorder_1 = require("../../utils/file-change-recorder");
7
- function default_1(tree) {
8
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- (0, devkit_1.visitNotIgnoredFiles)(tree, '/', (path) => {
10
- if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {
11
- const content = tree.read(path, 'utf8');
12
- if (content.includes('@angular/platform-server') &&
13
- content.includes('renderModule')) {
14
- const source = ts.createSourceFile(path, content.toString().replace(/^\uFEFF/, ''), ts.ScriptTarget.Latest, true);
15
- let recorder;
16
- let printer;
17
- ts.forEachChild(source, function analyze(node) {
18
- if (!(ts.isExportDeclaration(node) &&
19
- node.moduleSpecifier &&
20
- ts.isStringLiteral(node.moduleSpecifier) &&
21
- node.moduleSpecifier.text === '@angular/platform-server' &&
22
- node.exportClause &&
23
- ts.isNamedExports(node.exportClause))) {
24
- // Not a @angular/platform-server named export.
25
- return;
26
- }
27
- const exportClause = node.exportClause;
28
- const newElements = [];
29
- for (const element of exportClause.elements) {
30
- if (element.name.text !== 'renderModule') {
31
- newElements.push(element);
32
- }
33
- }
34
- if (newElements.length === exportClause.elements.length) {
35
- // No changes
36
- return;
37
- }
38
- recorder !== null && recorder !== void 0 ? recorder : (recorder = new file_change_recorder_1.FileChangeRecorder(tree, path));
39
- if (newElements.length) {
40
- // Update named exports as there are leftovers.
41
- const newExportClause = ts.factory.updateNamedExports(exportClause, newElements);
42
- printer !== null && printer !== void 0 ? printer : (printer = ts.createPrinter());
43
- const fix = printer.printNode(ts.EmitHint.Unspecified, newExportClause, source);
44
- const index = exportClause.getStart();
45
- const length = exportClause.getWidth();
46
- recorder.remove(index, index + length);
47
- recorder.insertLeft(index, fix);
48
- }
49
- else {
50
- // Delete export as no exports remain.
51
- recorder.remove(node.getStart(), node.getStart() + node.getWidth());
6
+ async function default_1(tree) {
7
+ (0, devkit_1.visitNotIgnoredFiles)(tree, '/', (path) => {
8
+ if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {
9
+ const content = tree.read(path, 'utf8');
10
+ if (content.includes('@angular/platform-server') &&
11
+ content.includes('renderModule')) {
12
+ const source = ts.createSourceFile(path, content.toString().replace(/^\uFEFF/, ''), ts.ScriptTarget.Latest, true);
13
+ let recorder;
14
+ let printer;
15
+ ts.forEachChild(source, function analyze(node) {
16
+ if (!(ts.isExportDeclaration(node) &&
17
+ node.moduleSpecifier &&
18
+ ts.isStringLiteral(node.moduleSpecifier) &&
19
+ node.moduleSpecifier.text === '@angular/platform-server' &&
20
+ node.exportClause &&
21
+ ts.isNamedExports(node.exportClause))) {
22
+ // Not a @angular/platform-server named export.
23
+ return;
24
+ }
25
+ const exportClause = node.exportClause;
26
+ const newElements = [];
27
+ for (const element of exportClause.elements) {
28
+ if (element.name.text !== 'renderModule') {
29
+ newElements.push(element);
52
30
  }
53
- ts.forEachChild(node, analyze);
54
- });
55
- if (recorder) {
56
- recorder.applyChanges();
57
31
  }
32
+ if (newElements.length === exportClause.elements.length) {
33
+ // No changes
34
+ return;
35
+ }
36
+ recorder ??= new file_change_recorder_1.FileChangeRecorder(tree, path);
37
+ if (newElements.length) {
38
+ // Update named exports as there are leftovers.
39
+ const newExportClause = ts.factory.updateNamedExports(exportClause, newElements);
40
+ printer ??= ts.createPrinter();
41
+ const fix = printer.printNode(ts.EmitHint.Unspecified, newExportClause, source);
42
+ const index = exportClause.getStart();
43
+ const length = exportClause.getWidth();
44
+ recorder.remove(index, index + length);
45
+ recorder.insertLeft(index, fix);
46
+ }
47
+ else {
48
+ // Delete export as no exports remain.
49
+ recorder.remove(node.getStart(), node.getStart() + node.getWidth());
50
+ }
51
+ ts.forEachChild(node, analyze);
52
+ });
53
+ if (recorder) {
54
+ recorder.applyChanges();
58
55
  }
59
56
  }
60
- });
61
- yield (0, devkit_1.formatFiles)(tree);
57
+ }
62
58
  });
59
+ await (0, devkit_1.formatFiles)(tree);
63
60
  }
64
61
  exports.default = default_1;
@@ -1,26 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const angularCliVersion = '~15.0.0';
6
- function default_1(tree) {
7
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
- let shouldFormat = false;
9
- (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
10
- var _a, _b;
11
- if ((_a = json.devDependencies) === null || _a === void 0 ? void 0 : _a['@angular/cli']) {
12
- json.devDependencies['@angular/cli'] = angularCliVersion;
13
- shouldFormat = true;
14
- }
15
- else if ((_b = json.dependencies) === null || _b === void 0 ? void 0 : _b['@angular/cli']) {
16
- json.dependencies['@angular/cli'] = angularCliVersion;
17
- shouldFormat = true;
18
- }
19
- return json;
20
- });
21
- if (shouldFormat) {
22
- yield (0, devkit_1.formatFiles)(tree);
5
+ async function default_1(tree) {
6
+ let shouldFormat = false;
7
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
8
+ if (json.devDependencies?.['@angular/cli']) {
9
+ json.devDependencies['@angular/cli'] = angularCliVersion;
10
+ shouldFormat = true;
23
11
  }
12
+ else if (json.dependencies?.['@angular/cli']) {
13
+ json.dependencies['@angular/cli'] = angularCliVersion;
14
+ shouldFormat = true;
15
+ }
16
+ return json;
24
17
  });
18
+ if (shouldFormat) {
19
+ await (0, devkit_1.formatFiles)(tree);
20
+ }
25
21
  }
26
22
  exports.default = default_1;
@@ -1,18 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const ts = require("typescript");
6
5
  const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
7
6
  const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
8
7
  const file_change_recorder_1 = require("../../utils/file-change-recorder");
9
- function default_1(tree) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- for (const file of findTestMainFiles(tree)) {
12
- updateTestFile(tree, file);
13
- }
14
- yield (0, devkit_1.formatFiles)(tree);
15
- });
8
+ async function default_1(tree) {
9
+ for (const file of findTestMainFiles(tree)) {
10
+ updateTestFile(tree, file);
11
+ }
12
+ await (0, devkit_1.formatFiles)(tree);
16
13
  }
17
14
  exports.default = default_1;
18
15
  function findTestMainFiles(tree) {
@@ -34,11 +31,11 @@ function updateTestFile(tree, file) {
34
31
  const usedVariableNames = new Set();
35
32
  const recorder = new file_change_recorder_1.FileChangeRecorder(tree, sourceFile.fileName);
36
33
  ts.forEachChild(sourceFile, (node) => {
37
- var _a, _b;
38
34
  if (ts.isVariableStatement(node)) {
39
35
  const variableDeclaration = node.declarationList.declarations[0];
40
- if ((_a = ts
41
- .getModifiers(node)) === null || _a === void 0 ? void 0 : _a.some((m) => m.kind === ts.SyntaxKind.DeclareKeyword)) {
36
+ if (ts
37
+ .getModifiers(node)
38
+ ?.some((m) => m.kind === ts.SyntaxKind.DeclareKeyword)) {
42
39
  // `declare const require`
43
40
  if (variableDeclaration.name.getText() !== 'require') {
44
41
  return;
@@ -46,7 +43,9 @@ function updateTestFile(tree, file) {
46
43
  }
47
44
  else {
48
45
  // `const context = require.context('./', true, /\.spec\.ts$/);`
49
- if (!((_b = variableDeclaration.initializer) === null || _b === void 0 ? void 0 : _b.getText().startsWith('require.context'))) {
46
+ if (!variableDeclaration.initializer
47
+ ?.getText()
48
+ .startsWith('require.context')) {
50
49
  return;
51
50
  }
52
51
  // add variable name as used.
@@ -1,51 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
6
5
  function updateTarget(tree, tsconfigPath) {
7
- (0, devkit_1.updateJson)(tree, tsconfigPath, (json) => {
8
- var _a;
9
- return (Object.assign(Object.assign({}, json), { compilerOptions: Object.assign(Object.assign({}, ((_a = json.compilerOptions) !== null && _a !== void 0 ? _a : {})), { target: 'ES2022', useDefineForClassFields: false }) }));
10
- });
6
+ (0, devkit_1.updateJson)(tree, tsconfigPath, (json) => ({
7
+ ...json,
8
+ compilerOptions: {
9
+ ...(json.compilerOptions ?? {}),
10
+ target: 'ES2022',
11
+ useDefineForClassFields: false,
12
+ },
13
+ }));
11
14
  }
12
- function updateTypescriptTarget(tree) {
13
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
- const projects = (0, devkit_1.getProjects)(tree);
15
- for (const [, project] of projects) {
16
- if (!project.targets)
15
+ async function updateTypescriptTarget(tree) {
16
+ const projects = (0, devkit_1.getProjects)(tree);
17
+ for (const [, project] of projects) {
18
+ if (!project.targets)
19
+ continue;
20
+ for (const [, target] of Object.entries(project.targets)) {
21
+ // Update all other known CLI builders that use a tsconfig
22
+ const tsConfigs = [
23
+ target.options || {},
24
+ ...Object.values(target.configurations || {}),
25
+ ]
26
+ .filter((opt) => typeof opt?.tsConfig === 'string')
27
+ .map((opt) => opt.tsConfig);
28
+ const uniqueTsConfigs = [...new Set(tsConfigs)];
29
+ if (uniqueTsConfigs.length < 1) {
17
30
  continue;
18
- for (const [, target] of Object.entries(project.targets)) {
19
- // Update all other known CLI builders that use a tsconfig
20
- const tsConfigs = [
21
- target.options || {},
22
- ...Object.values(target.configurations || {}),
23
- ]
24
- .filter((opt) => typeof (opt === null || opt === void 0 ? void 0 : opt.tsConfig) === 'string')
25
- .map((opt) => opt.tsConfig);
26
- const uniqueTsConfigs = [...new Set(tsConfigs)];
27
- if (uniqueTsConfigs.length < 1) {
28
- continue;
29
- }
30
- const supportedExecutors = new Set([
31
- workspace_models_1.Builders.Server,
32
- workspace_models_1.Builders.Karma,
33
- workspace_models_1.Builders.Browser,
34
- workspace_models_1.Builders.NgPackagr,
35
- '@nrwl/angular:webpack-browser',
36
- '@nrwl/angular:ng-packagr-lite',
37
- '@nrwl/angular:package',
38
- '@nrwl/angular:delegate-build',
39
- '@nrwl/jest:jest',
40
- ]);
41
- if (supportedExecutors.has(target.executor)) {
42
- for (const tsConfig of uniqueTsConfigs) {
43
- updateTarget(tree, tsConfig);
44
- }
31
+ }
32
+ const supportedExecutors = new Set([
33
+ workspace_models_1.Builders.Server,
34
+ workspace_models_1.Builders.Karma,
35
+ workspace_models_1.Builders.Browser,
36
+ workspace_models_1.Builders.NgPackagr,
37
+ '@nrwl/angular:webpack-browser',
38
+ '@nrwl/angular:ng-packagr-lite',
39
+ '@nrwl/angular:package',
40
+ '@nrwl/angular:delegate-build',
41
+ '@nrwl/jest:jest',
42
+ ]);
43
+ if (supportedExecutors.has(target.executor)) {
44
+ for (const tsConfig of uniqueTsConfigs) {
45
+ updateTarget(tree, tsConfig);
45
46
  }
46
47
  }
47
48
  }
48
- yield (0, devkit_1.formatFiles)(tree);
49
- });
49
+ }
50
+ await (0, devkit_1.formatFiles)(tree);
50
51
  }
51
52
  exports.default = updateTypescriptTarget;
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
6
- function updateWorkspaceConfigurations(tree) {
7
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
- const projects = (0, devkit_1.getProjects)(tree);
9
- const supportedExecutors = new Set([workspace_models_1.Builders.Server]);
10
- for (const [name, project] of projects) {
11
- for (const [targetName, target] of Object.entries(project.targets || {})) {
12
- if (!supportedExecutors.has(target.executor)) {
13
- continue;
14
- }
15
- target.options.bundleDependencies = undefined;
16
- for (const [configurationName, configuration] of Object.entries(target.configurations || {})) {
17
- configuration.bundleDependencies = undefined;
18
- target[configurationName] = configuration;
19
- }
20
- project.targets[targetName] = target;
21
- (0, devkit_1.updateProjectConfiguration)(tree, name, project);
5
+ async function updateWorkspaceConfigurations(tree) {
6
+ const projects = (0, devkit_1.getProjects)(tree);
7
+ const supportedExecutors = new Set([workspace_models_1.Builders.Server]);
8
+ for (const [name, project] of projects) {
9
+ for (const [targetName, target] of Object.entries(project.targets || {})) {
10
+ if (!supportedExecutors.has(target.executor)) {
11
+ continue;
22
12
  }
13
+ target.options.bundleDependencies = undefined;
14
+ for (const [configurationName, configuration] of Object.entries(target.configurations || {})) {
15
+ configuration.bundleDependencies = undefined;
16
+ target[configurationName] = configuration;
17
+ }
18
+ project.targets[targetName] = target;
19
+ (0, devkit_1.updateProjectConfiguration)(tree, name, project);
23
20
  }
24
- yield (0, devkit_1.formatFiles)(tree);
25
- });
21
+ }
22
+ await (0, devkit_1.formatFiles)(tree);
26
23
  }
27
24
  exports.default = updateWorkspaceConfigurations;
@@ -1,26 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const angularCliVersion = '~15.1.0';
6
- function default_1(tree) {
7
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
- let shouldFormat = false;
9
- (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
10
- var _a, _b;
11
- if ((_a = json.devDependencies) === null || _a === void 0 ? void 0 : _a['@angular/cli']) {
12
- json.devDependencies['@angular/cli'] = angularCliVersion;
13
- shouldFormat = true;
14
- }
15
- else if ((_b = json.dependencies) === null || _b === void 0 ? void 0 : _b['@angular/cli']) {
16
- json.dependencies['@angular/cli'] = angularCliVersion;
17
- shouldFormat = true;
18
- }
19
- return json;
20
- });
21
- if (shouldFormat) {
22
- yield (0, devkit_1.formatFiles)(tree);
5
+ async function default_1(tree) {
6
+ let shouldFormat = false;
7
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
8
+ if (json.devDependencies?.['@angular/cli']) {
9
+ json.devDependencies['@angular/cli'] = angularCliVersion;
10
+ shouldFormat = true;
23
11
  }
12
+ else if (json.dependencies?.['@angular/cli']) {
13
+ json.dependencies['@angular/cli'] = angularCliVersion;
14
+ shouldFormat = true;
15
+ }
16
+ return json;
24
17
  });
18
+ if (shouldFormat) {
19
+ await (0, devkit_1.formatFiles)(tree);
20
+ }
25
21
  }
26
22
  exports.default = default_1;
@@ -1,38 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const child_process_1 = require("child_process");
6
5
  const path_1 = require("path");
7
6
  const version_utils_1 = require("../../generators/utils/version-utils");
8
7
  const version_utils_2 = require("../../utils/version-utils");
9
- function default_1(tree) {
10
- var _a, _b, _c, _d, _e;
11
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
- const packagesToInstall = [
13
- '@angular-devkit/core',
14
- '@angular-devkit/schematics',
15
- '@schematics/angular',
16
- ];
17
- const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
18
- const angularMajorVersion = (0, version_utils_1.getInstalledAngularMajorVersion)(tree);
19
- const angularDevkitVersion = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('angularDevkitVersion', angularMajorVersion);
20
- const angularCliVersion = (_d = (_b = (_a = pkgJson.devDependencies) === null || _a === void 0 ? void 0 : _a['@angular-devkit/build-angular']) !== null && _b !== void 0 ? _b : (_c = pkgJson.dependencies) === null || _c === void 0 ? void 0 : _c['@angular-devkit/build-angular']) !== null && _d !== void 0 ? _d : angularDevkitVersion;
21
- const filteredPackages = packagesToInstall
22
- .filter((pkg) => { var _a, _b; return !((_a = pkgJson.devDependencies) === null || _a === void 0 ? void 0 : _a[pkg]) && !((_b = pkgJson.dependencies) === null || _b === void 0 ? void 0 : _b[pkg]); })
23
- .reduce((allPkgs, pkg) => (Object.assign(Object.assign({}, allPkgs), { [pkg]: angularCliVersion })), {});
24
- // even though we are going to install the packages directly, we still want
25
- // to add them to the tree so the migrate command knows changes were made
26
- (0, devkit_1.addDependenciesToPackageJson)(tree, {}, Object.assign({}, filteredPackages));
27
- // we need to install them immediately so the packages are available for
28
- // other migrations that might be using them
29
- (_e = pkgJson.devDependencies) !== null && _e !== void 0 ? _e : (pkgJson.devDependencies = {});
30
- Object.entries(filteredPackages).forEach(([pkg, version]) => {
31
- pkgJson.devDependencies[pkg] = version;
32
- });
33
- (0, devkit_1.writeJsonFile)((0, path_1.join)(tree.root, 'package.json'), pkgJson);
34
- const pmc = (0, devkit_1.getPackageManagerCommand)();
35
- (0, child_process_1.execSync)(pmc.install, { stdio: [0, 1, 2] });
8
+ async function default_1(tree) {
9
+ const packagesToInstall = [
10
+ '@angular-devkit/core',
11
+ '@angular-devkit/schematics',
12
+ '@schematics/angular',
13
+ ];
14
+ const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
15
+ const angularMajorVersion = (0, version_utils_1.getInstalledAngularMajorVersion)(tree);
16
+ const angularDevkitVersion = (0, version_utils_2.getPkgVersionForAngularMajorVersion)('angularDevkitVersion', angularMajorVersion);
17
+ const angularCliVersion = pkgJson.devDependencies?.['@angular-devkit/build-angular'] ??
18
+ pkgJson.dependencies?.['@angular-devkit/build-angular'] ??
19
+ angularDevkitVersion;
20
+ const filteredPackages = packagesToInstall
21
+ .filter((pkg) => !pkgJson.devDependencies?.[pkg] && !pkgJson.dependencies?.[pkg])
22
+ .reduce((allPkgs, pkg) => ({ ...allPkgs, [pkg]: angularCliVersion }), {});
23
+ // even though we are going to install the packages directly, we still want
24
+ // to add them to the tree so the migrate command knows changes were made
25
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { ...filteredPackages });
26
+ // we need to install them immediately so the packages are available for
27
+ // other migrations that might be using them
28
+ pkgJson.devDependencies ??= {};
29
+ Object.entries(filteredPackages).forEach(([pkg, version]) => {
30
+ pkgJson.devDependencies[pkg] = version;
36
31
  });
32
+ (0, devkit_1.writeJsonFile)((0, path_1.join)(tree.root, 'package.json'), pkgJson);
33
+ const pmc = (0, devkit_1.getPackageManagerCommand)();
34
+ (0, child_process_1.execSync)(pmc.install, { stdio: [0, 1, 2] });
37
35
  }
38
36
  exports.default = default_1;
@@ -1,26 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
3
  const devkit_1 = require("@nx/devkit");
5
4
  const angularCliVersion = '~15.2.0';
6
- function default_1(tree) {
7
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
- let shouldFormat = false;
9
- (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
10
- var _a, _b;
11
- if ((_a = json.devDependencies) === null || _a === void 0 ? void 0 : _a['@angular/cli']) {
12
- json.devDependencies['@angular/cli'] = angularCliVersion;
13
- shouldFormat = true;
14
- }
15
- else if ((_b = json.dependencies) === null || _b === void 0 ? void 0 : _b['@angular/cli']) {
16
- json.dependencies['@angular/cli'] = angularCliVersion;
17
- shouldFormat = true;
18
- }
19
- return json;
20
- });
21
- if (shouldFormat) {
22
- yield (0, devkit_1.formatFiles)(tree);
5
+ async function default_1(tree) {
6
+ let shouldFormat = false;
7
+ (0, devkit_1.updateJson)(tree, 'package.json', (json) => {
8
+ if (json.devDependencies?.['@angular/cli']) {
9
+ json.devDependencies['@angular/cli'] = angularCliVersion;
10
+ shouldFormat = true;
23
11
  }
12
+ else if (json.dependencies?.['@angular/cli']) {
13
+ json.dependencies['@angular/cli'] = angularCliVersion;
14
+ shouldFormat = true;
15
+ }
16
+ return json;
24
17
  });
18
+ if (shouldFormat) {
19
+ await (0, devkit_1.formatFiles)(tree);
20
+ }
25
21
  }
26
22
  exports.default = default_1;