@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
@@ -8,7 +8,6 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.nxWritePackageTransform = void 0;
11
- const tslib_1 = require("tslib");
12
11
  const devkit_1 = require("@nx/devkit");
13
12
  const node_1 = require("ng-packagr/lib/graph/node");
14
13
  const transform_1 = require("ng-packagr/lib/graph/transform");
@@ -18,8 +17,7 @@ const glob_1 = require("ng-packagr/lib/utils/glob");
18
17
  const path_1 = require("ng-packagr/lib/utils/path");
19
18
  const path = require("path");
20
19
  const angular_version_utils_1 = require("../../../../utilities/angular-version-utils");
21
- const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromise)((graph) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
- var _a;
20
+ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromise)(async (graph) => {
23
21
  const entryPoint = graph.find((0, nodes_1.isEntryPointInProgress)());
24
22
  const ngEntryPoint = entryPoint.data.entryPoint;
25
23
  const ngPackageNode = graph.find(nodes_1.isPackage);
@@ -29,7 +27,7 @@ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromis
29
27
  if (!ngEntryPoint.isSecondaryEntryPoint) {
30
28
  devkit_1.logger.log('Copying assets');
31
29
  try {
32
- yield copyAssets(graph, entryPoint, ngPackageNode, angularVersion);
30
+ await copyAssets(graph, entryPoint, ngPackageNode, angularVersion);
33
31
  }
34
32
  catch (error) {
35
33
  throw error;
@@ -41,17 +39,22 @@ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromis
41
39
  try {
42
40
  devkit_1.logger.info('Writing package manifest');
43
41
  const relativeUnixFromDestPath = (filePath) => (0, path_1.ensureUnixPath)(path.relative(ngEntryPoint.destinationPath, filePath));
44
- yield writePackageJson(ngEntryPoint, ngPackage, Object.assign(Object.assign({}, (angularVersion.major < 16
45
- ? {
46
- module: relativeUnixFromDestPath(destinationFiles.esm2020),
47
- es2020: relativeUnixFromDestPath(destinationFiles.esm2020),
48
- esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),
49
- }
50
- : {
51
- module: relativeUnixFromDestPath(destinationFiles.esm2022),
52
- })), { typings: relativeUnixFromDestPath(destinationFiles.declarations), exports: generatePackageExports(ngEntryPoint, graph, angularVersion),
42
+ await writePackageJson(ngEntryPoint, ngPackage, {
43
+ // backward compat for Angular < 16
44
+ ...(angularVersion.major < 16
45
+ ? {
46
+ module: relativeUnixFromDestPath(destinationFiles.esm2020),
47
+ es2020: relativeUnixFromDestPath(destinationFiles.esm2020),
48
+ esm2020: relativeUnixFromDestPath(destinationFiles.esm2020),
49
+ }
50
+ : {
51
+ module: relativeUnixFromDestPath(destinationFiles.esm2022),
52
+ }),
53
+ typings: relativeUnixFromDestPath(destinationFiles.declarations),
54
+ exports: generatePackageExports(ngEntryPoint, graph, angularVersion),
53
55
  // webpack v4+ specific flag to enable advanced optimizations and code splitting
54
- sideEffects: (_a = ngEntryPoint.packageJson.sideEffects) !== null && _a !== void 0 ? _a : false }), !!options.watch);
56
+ sideEffects: ngEntryPoint.packageJson.sideEffects ?? false,
57
+ }, !!options.watch);
55
58
  }
56
59
  catch (error) {
57
60
  throw error;
@@ -63,94 +66,91 @@ const nxWritePackageTransform = (options) => (0, transform_1.transformFromPromis
63
66
  // https://github.com/ng-packagr/ng-packagr/issues/2069
64
67
  const primary = ngPackageNode.data.primary;
65
68
  const packageJsonPath = path.join(primary.destinationPath, 'package.json');
66
- if (yield (0, fs_1.exists)(packageJsonPath)) {
67
- const packageJson = JSON.parse(yield (0, fs_1.readFile)(packageJsonPath, { encoding: 'utf8' }));
69
+ if (await (0, fs_1.exists)(packageJsonPath)) {
70
+ const packageJson = JSON.parse(await (0, fs_1.readFile)(packageJsonPath, { encoding: 'utf8' }));
68
71
  packageJson.version = generateWatchVersion();
69
- yield (0, fs_1.writeFile)(path.join(primary.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
72
+ await (0, fs_1.writeFile)(path.join(primary.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
70
73
  }
71
74
  }
72
75
  devkit_1.logger.info(`Built ${ngEntryPoint.moduleId}`);
73
76
  return graph;
74
- }));
77
+ });
75
78
  exports.nxWritePackageTransform = nxWritePackageTransform;
76
- function copyAssets(graph, entryPointNode, ngPackageNode, angularVersion) {
77
- var _a;
78
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
- const ngPackage = ngPackageNode.data;
80
- const globsForceIgnored = [
81
- '.gitkeep',
82
- '**/.DS_Store',
83
- '**/Thumbs.db',
84
- `${ngPackage.dest}/**`,
85
- ];
86
- const assets = [];
87
- for (const assetPath of ngPackage.assets) {
88
- let asset;
89
- if (typeof assetPath === 'object') {
90
- asset = Object.assign({}, assetPath);
91
- }
92
- else {
93
- const [isDir, isFile] = yield (0, fs_1.stat)(path.join(ngPackage.src, assetPath))
94
- .then((stats) => [stats.isDirectory(), stats.isFile()])
95
- .catch(() => [false, false]);
96
- if (isDir) {
97
- asset = { glob: '**/*', input: assetPath, output: assetPath };
98
- }
99
- else if (isFile) {
100
- // filenames are their own glob
101
- asset = {
102
- glob: path.basename(assetPath),
103
- input: path.dirname(assetPath),
104
- output: path.dirname(assetPath),
105
- };
106
- }
107
- else {
108
- asset = { glob: assetPath, input: '/', output: '/' };
109
- }
110
- }
111
- asset.input = path.join(ngPackage.src, asset.input);
112
- asset.output = path.join(ngPackage.dest, asset.output);
113
- const isAncestorPath = (target, datum) => path.relative(datum, target).startsWith('..');
114
- if (isAncestorPath(asset.input, ngPackage.src)) {
115
- throw new Error('Cannot read assets from a location outside of the project root.');
116
- }
117
- if (isAncestorPath(asset.output, ngPackage.dest)) {
118
- throw new Error('Cannot write assets to a location outside of the output path.');
119
- }
120
- assets.push(asset);
79
+ async function copyAssets(graph, entryPointNode, ngPackageNode, angularVersion) {
80
+ const ngPackage = ngPackageNode.data;
81
+ const globsForceIgnored = [
82
+ '.gitkeep',
83
+ '**/.DS_Store',
84
+ '**/Thumbs.db',
85
+ `${ngPackage.dest}/**`,
86
+ ];
87
+ const assets = [];
88
+ for (const assetPath of ngPackage.assets) {
89
+ let asset;
90
+ if (typeof assetPath === 'object') {
91
+ asset = { ...assetPath };
121
92
  }
122
- for (const asset of assets) {
123
- const globOptions = {
124
- cwd: asset.input,
125
- ignore: [...((_a = asset.ignore) !== null && _a !== void 0 ? _a : []), ...globsForceIgnored],
126
- dot: true,
127
- };
128
- if (angularVersion.major < 16) {
129
- // versions lower than v16 support these properties
130
- globOptions.cache = ngPackageNode.cache.globCache;
131
- globOptions.nodir = true;
132
- globOptions.follow = asset.followSymlinks;
93
+ else {
94
+ const [isDir, isFile] = await (0, fs_1.stat)(path.join(ngPackage.src, assetPath))
95
+ .then((stats) => [stats.isDirectory(), stats.isFile()])
96
+ .catch(() => [false, false]);
97
+ if (isDir) {
98
+ asset = { glob: '**/*', input: assetPath, output: assetPath };
99
+ }
100
+ else if (isFile) {
101
+ // filenames are their own glob
102
+ asset = {
103
+ glob: path.basename(assetPath),
104
+ input: path.dirname(assetPath),
105
+ output: path.dirname(assetPath),
106
+ };
133
107
  }
134
108
  else {
135
- // starting in v16 these properties are supported
136
- globOptions.onlyFiles = true;
137
- globOptions.followSymbolicLinks = asset.followSymlinks;
109
+ asset = { glob: assetPath, input: '/', output: '/' };
138
110
  }
139
- const filePaths = yield (0, glob_1.globFiles)(asset.glob, globOptions);
140
- for (const filePath of filePaths) {
141
- const fileSrcFullPath = path.join(asset.input, filePath);
142
- const fileDestFullPath = path.join(asset.output, filePath);
143
- const nodeUri = (0, nodes_1.fileUrl)((0, path_1.ensureUnixPath)(fileSrcFullPath));
144
- let node = graph.get(nodeUri);
145
- if (!node) {
146
- node = new node_1.Node(nodeUri);
147
- graph.put(node);
148
- }
149
- entryPointNode.dependsOn(node);
150
- yield (0, fs_1.copyFile)(fileSrcFullPath, fileDestFullPath);
111
+ }
112
+ asset.input = path.join(ngPackage.src, asset.input);
113
+ asset.output = path.join(ngPackage.dest, asset.output);
114
+ const isAncestorPath = (target, datum) => path.relative(datum, target).startsWith('..');
115
+ if (isAncestorPath(asset.input, ngPackage.src)) {
116
+ throw new Error('Cannot read assets from a location outside of the project root.');
117
+ }
118
+ if (isAncestorPath(asset.output, ngPackage.dest)) {
119
+ throw new Error('Cannot write assets to a location outside of the output path.');
120
+ }
121
+ assets.push(asset);
122
+ }
123
+ for (const asset of assets) {
124
+ const globOptions = {
125
+ cwd: asset.input,
126
+ ignore: [...(asset.ignore ?? []), ...globsForceIgnored],
127
+ dot: true,
128
+ };
129
+ if (angularVersion.major < 16) {
130
+ // versions lower than v16 support these properties
131
+ globOptions.cache = ngPackageNode.cache.globCache;
132
+ globOptions.nodir = true;
133
+ globOptions.follow = asset.followSymlinks;
134
+ }
135
+ else {
136
+ // starting in v16 these properties are supported
137
+ globOptions.onlyFiles = true;
138
+ globOptions.followSymbolicLinks = asset.followSymlinks;
139
+ }
140
+ const filePaths = await (0, glob_1.globFiles)(asset.glob, globOptions);
141
+ for (const filePath of filePaths) {
142
+ const fileSrcFullPath = path.join(asset.input, filePath);
143
+ const fileDestFullPath = path.join(asset.output, filePath);
144
+ const nodeUri = (0, nodes_1.fileUrl)((0, path_1.ensureUnixPath)(fileSrcFullPath));
145
+ let node = graph.get(nodeUri);
146
+ if (!node) {
147
+ node = new node_1.Node(nodeUri);
148
+ graph.put(node);
151
149
  }
150
+ entryPointNode.dependsOn(node);
151
+ await (0, fs_1.copyFile)(fileSrcFullPath, fileDestFullPath);
152
152
  }
153
- });
153
+ }
154
154
  }
155
155
  /**
156
156
  * Creates and writes a `package.json` file of the entry point used by the `node_module`
@@ -167,74 +167,77 @@ function copyAssets(graph, entryPointNode, ngPackageNode, angularVersion) {
167
167
  * @param entryPoint An entry point of an Angular package / library
168
168
  * @param additionalProperties Additional properties, e.g. binary artefacts (bundle files), to merge into `package.json`
169
169
  */
170
- function writePackageJson(entryPoint, pkg, additionalProperties, isWatchMode) {
171
- var _a, _b, _c;
172
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
173
- // set additional properties
174
- const packageJson = Object.assign(Object.assign({}, entryPoint.packageJson), additionalProperties);
175
- // read tslib version from `@angular/compiler` so that our tslib
176
- // version at least matches that of angular if we use require('tslib').version
177
- // it will get what installed and not the minimum version nor if it is a `~` or `^`
178
- // this is only required for primary
179
- if (isWatchMode) {
180
- // Needed because of Webpack's 5 `cachemanagedpaths`
181
- // https://github.com/angular/angular-cli/issues/20962
182
- packageJson.version = generateWatchVersion();
183
- }
184
- if (!((_a = packageJson.peerDependencies) === null || _a === void 0 ? void 0 : _a.tslib) &&
185
- !((_b = packageJson.dependencies) === null || _b === void 0 ? void 0 : _b.tslib)) {
186
- const { peerDependencies: angularPeerDependencies = {}, dependencies: angularDependencies = {}, } = require('@angular/compiler/package.json');
187
- const tsLibVersion = angularPeerDependencies.tslib || angularDependencies.tslib;
188
- if (tsLibVersion) {
189
- packageJson.dependencies = Object.assign(Object.assign({}, packageJson.dependencies), { tslib: tsLibVersion });
190
- }
191
- }
192
- else if ((_c = packageJson.peerDependencies) === null || _c === void 0 ? void 0 : _c.tslib) {
193
- devkit_1.logger.warn(`'tslib' is no longer recommended to be used as a 'peerDependencies'. Moving it to 'dependencies'.`);
194
- packageJson.dependencies = Object.assign(Object.assign({}, (packageJson.dependencies || {})), { tslib: packageJson.peerDependencies.tslib });
195
- delete packageJson.peerDependencies.tslib;
196
- }
197
- // Verify non-peerDependencies as they can easily lead to duplicate installs or version conflicts
198
- // in the node_modules folder of an application
199
- const allowedList = pkg.allowedNonPeerDependencies.map((value) => new RegExp(value));
200
- try {
201
- checkNonPeerDependencies(packageJson, 'dependencies', allowedList);
170
+ async function writePackageJson(entryPoint, pkg, additionalProperties, isWatchMode) {
171
+ // set additional properties
172
+ const packageJson = { ...entryPoint.packageJson, ...additionalProperties };
173
+ // read tslib version from `@angular/compiler` so that our tslib
174
+ // version at least matches that of angular if we use require('tslib').version
175
+ // it will get what installed and not the minimum version nor if it is a `~` or `^`
176
+ // this is only required for primary
177
+ if (isWatchMode) {
178
+ // Needed because of Webpack's 5 `cachemanagedpaths`
179
+ // https://github.com/angular/angular-cli/issues/20962
180
+ packageJson.version = generateWatchVersion();
181
+ }
182
+ if (!packageJson.peerDependencies?.tslib &&
183
+ !packageJson.dependencies?.tslib) {
184
+ const { peerDependencies: angularPeerDependencies = {}, dependencies: angularDependencies = {}, } = require('@angular/compiler/package.json');
185
+ const tsLibVersion = angularPeerDependencies.tslib || angularDependencies.tslib;
186
+ if (tsLibVersion) {
187
+ packageJson.dependencies = {
188
+ ...packageJson.dependencies,
189
+ tslib: tsLibVersion,
190
+ };
202
191
  }
203
- catch (e) {
204
- yield (0, fs_1.rmdir)(entryPoint.destinationPath, { recursive: true });
205
- throw e;
192
+ }
193
+ else if (packageJson.peerDependencies?.tslib) {
194
+ devkit_1.logger.warn(`'tslib' is no longer recommended to be used as a 'peerDependencies'. Moving it to 'dependencies'.`);
195
+ packageJson.dependencies = {
196
+ ...(packageJson.dependencies || {}),
197
+ tslib: packageJson.peerDependencies.tslib,
198
+ };
199
+ delete packageJson.peerDependencies.tslib;
200
+ }
201
+ // Verify non-peerDependencies as they can easily lead to duplicate installs or version conflicts
202
+ // in the node_modules folder of an application
203
+ const allowedList = pkg.allowedNonPeerDependencies.map((value) => new RegExp(value));
204
+ try {
205
+ checkNonPeerDependencies(packageJson, 'dependencies', allowedList);
206
+ }
207
+ catch (e) {
208
+ await (0, fs_1.rmdir)(entryPoint.destinationPath, { recursive: true });
209
+ throw e;
210
+ }
211
+ // Removes scripts from package.json after build
212
+ if (packageJson.scripts) {
213
+ if (pkg.keepLifecycleScripts !== true) {
214
+ devkit_1.logger.info(`Removing scripts section in package.json as it's considered a potential security vulnerability.`);
215
+ delete packageJson.scripts;
206
216
  }
207
- // Removes scripts from package.json after build
208
- if (packageJson.scripts) {
209
- if (pkg.keepLifecycleScripts !== true) {
210
- devkit_1.logger.info(`Removing scripts section in package.json as it's considered a potential security vulnerability.`);
211
- delete packageJson.scripts;
212
- }
213
- else {
214
- devkit_1.logger.warn(`You enabled keepLifecycleScripts explicitly. The scripts section in package.json will be published to npm.`);
215
- }
217
+ else {
218
+ devkit_1.logger.warn(`You enabled keepLifecycleScripts explicitly. The scripts section in package.json will be published to npm.`);
216
219
  }
217
- // keep the dist package.json clean
218
- // this will not throw if ngPackage field does not exist
219
- delete packageJson.ngPackage;
220
- const packageJsonPropertiesToDelete = [
221
- 'stylelint',
222
- 'prettier',
223
- 'browserslist',
224
- 'devDependencies',
225
- 'jest',
226
- 'workspaces',
227
- 'husky',
228
- ];
229
- for (const prop of packageJsonPropertiesToDelete) {
230
- if (prop in packageJson) {
231
- delete packageJson[prop];
232
- devkit_1.logger.info(`Removing ${prop} section in package.json.`);
233
- }
220
+ }
221
+ // keep the dist package.json clean
222
+ // this will not throw if ngPackage field does not exist
223
+ delete packageJson.ngPackage;
224
+ const packageJsonPropertiesToDelete = [
225
+ 'stylelint',
226
+ 'prettier',
227
+ 'browserslist',
228
+ 'devDependencies',
229
+ 'jest',
230
+ 'workspaces',
231
+ 'husky',
232
+ ];
233
+ for (const prop of packageJsonPropertiesToDelete) {
234
+ if (prop in packageJson) {
235
+ delete packageJson[prop];
236
+ devkit_1.logger.info(`Removing ${prop} section in package.json.`);
234
237
  }
235
- packageJson.name = entryPoint.moduleId;
236
- yield (0, fs_1.writeFile)(path.join(entryPoint.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
237
- });
238
+ }
239
+ packageJson.name = entryPoint.moduleId;
240
+ await (0, fs_1.writeFile)(path.join(entryPoint.destinationPath, 'package.json'), JSON.stringify(packageJson, undefined, 2));
238
241
  }
239
242
  function checkNonPeerDependencies(packageJson, property, allowed) {
240
243
  if (!packageJson[property]) {
@@ -256,8 +259,7 @@ function generatePackageExports({ destinationPath, packageJson }, graph, angular
256
259
  ? JSON.parse(JSON.stringify(packageJson.exports))
257
260
  : {};
258
261
  const insertMappingOrError = (subpath, mapping) => {
259
- var _a;
260
- (_a = exports[subpath]) !== null && _a !== void 0 ? _a : (exports[subpath] = {});
262
+ exports[subpath] ??= {};
261
263
  const subpathExport = exports[subpath];
262
264
  // Go through all conditions that should be inserted. If the condition is already
263
265
  // manually set of the subpath export, we throw an error. In general, we allow for
@@ -20,10 +20,13 @@ exports.nxProvideOptions = nxProvideOptions;
20
20
  exports.NX_DEFAULT_OPTIONS_PROVIDER = (0, exports.nxProvideOptions)();
21
21
  function normalizeOptions(options = {}) {
22
22
  const ciEnv = process.env['CI'];
23
- const isCI = (ciEnv === null || ciEnv === void 0 ? void 0 : ciEnv.toLowerCase()) === 'true' || ciEnv === '1';
23
+ const isCI = ciEnv?.toLowerCase() === 'true' || ciEnv === '1';
24
24
  const { cacheEnabled = !isCI, cacheDirectory = findCachePath() } = options;
25
- return Object.assign(Object.assign({}, options), { cacheEnabled,
26
- cacheDirectory });
25
+ return {
26
+ ...options,
27
+ cacheEnabled,
28
+ cacheDirectory,
29
+ };
27
30
  }
28
31
  function findCachePath() {
29
32
  const name = 'ng-packagr';