nx 17.0.3 → 17.0.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 (320) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -4
  3. package/bin/init-local.js +10 -60
  4. package/bin/nx-cloud.js +6 -0
  5. package/bin/nx.js +1 -9
  6. package/bin/post-install.js +5 -1
  7. package/bin/run-executor.js +1 -1
  8. package/migrations.json +18 -0
  9. package/package.json +21 -18
  10. package/plugins/package-json.js +1 -1
  11. package/{changelog-renderer → release/changelog-renderer}/index.d.ts +18 -3
  12. package/{changelog-renderer → release/changelog-renderer}/index.js +78 -34
  13. package/release/index.d.ts +4 -0
  14. package/release/index.js +11 -0
  15. package/schemas/nx-schema.json +203 -19
  16. package/schemas/project-schema.json +20 -0
  17. package/src/adapter/angular-json.js +28 -18
  18. package/src/adapter/compat.d.ts +2 -2
  19. package/src/adapter/compat.js +6 -1
  20. package/src/adapter/ngcli-adapter.d.ts +16 -4
  21. package/src/adapter/ngcli-adapter.js +85 -28
  22. package/src/command-line/add/add.d.ts +2 -0
  23. package/src/command-line/add/add.js +169 -0
  24. package/src/command-line/add/command-object.d.ts +7 -0
  25. package/src/command-line/add/command-object.js +24 -0
  26. package/src/command-line/affected/affected.js +0 -3
  27. package/src/command-line/affected/command-object.d.ts +4 -4
  28. package/src/command-line/affected/command-object.js +53 -26
  29. package/src/command-line/affected/print-affected.js +10 -1
  30. package/src/command-line/connect/command-object.d.ts +1 -2
  31. package/src/command-line/connect/command-object.js +3 -7
  32. package/src/command-line/connect/connect-to-nx-cloud.d.ts +4 -5
  33. package/src/command-line/connect/connect-to-nx-cloud.js +43 -31
  34. package/src/command-line/connect/view-logs.js +5 -21
  35. package/src/command-line/examples.js +18 -0
  36. package/src/command-line/exec/command-object.js +2 -1
  37. package/src/command-line/exec/exec.d.ts +1 -1
  38. package/src/command-line/exec/exec.js +78 -35
  39. package/src/command-line/format/format.js +13 -4
  40. package/src/command-line/generate/generate.js +9 -9
  41. package/src/command-line/generate/generator-utils.d.ts +3 -2
  42. package/src/command-line/generate/generator-utils.js +5 -5
  43. package/src/command-line/graph/graph.d.ts +1 -1
  44. package/src/command-line/graph/graph.js +82 -37
  45. package/src/command-line/init/command-object.js +70 -43
  46. package/src/command-line/init/implementation/add-nx-to-monorepo.d.ts +4 -2
  47. package/src/command-line/init/implementation/add-nx-to-monorepo.js +11 -2
  48. package/src/command-line/init/implementation/add-nx-to-nest.d.ts +1 -1
  49. package/src/command-line/init/implementation/add-nx-to-nest.js +9 -6
  50. package/src/command-line/init/implementation/add-nx-to-npm-repo.d.ts +4 -2
  51. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +14 -4
  52. package/src/command-line/init/implementation/angular/index.js +4 -1
  53. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +10 -5
  54. package/src/command-line/init/implementation/angular/standalone-workspace.js +1 -1
  55. package/src/command-line/init/implementation/angular/types.d.ts +1 -1
  56. package/src/command-line/init/implementation/dot-nx/nxw.js +47 -16
  57. package/src/command-line/init/implementation/react/index.d.ts +1 -1
  58. package/src/command-line/init/implementation/react/index.js +4 -2
  59. package/src/command-line/init/implementation/react/rename-js-to-jsx.js +4 -2
  60. package/src/command-line/init/implementation/utils.d.ts +5 -5
  61. package/src/command-line/init/implementation/utils.js +46 -44
  62. package/src/command-line/init/{init.js → init-v1.js} +5 -13
  63. package/src/command-line/init/init-v2.d.ts +7 -0
  64. package/src/command-line/init/init-v2.js +201 -0
  65. package/src/command-line/list/list.js +6 -5
  66. package/src/command-line/migrate/command-object.js +19 -4
  67. package/src/command-line/migrate/migrate.js +21 -17
  68. package/src/command-line/new/new.js +1 -1
  69. package/src/command-line/nx-commands.js +4 -1
  70. package/src/command-line/release/changelog.d.ts +22 -1
  71. package/src/command-line/release/changelog.js +459 -257
  72. package/src/command-line/release/command-object.d.ts +29 -7
  73. package/src/command-line/release/command-object.js +120 -20
  74. package/src/command-line/release/config/config.d.ts +26 -21
  75. package/src/command-line/release/config/config.js +416 -59
  76. package/src/command-line/release/config/conventional-commits.d.ts +2 -0
  77. package/src/command-line/release/config/conventional-commits.js +98 -0
  78. package/src/command-line/release/config/filter-release-groups.d.ts +1 -2
  79. package/src/command-line/release/config/filter-release-groups.js +38 -1
  80. package/src/command-line/release/index.d.ts +16 -0
  81. package/src/command-line/release/index.js +23 -0
  82. package/src/command-line/release/publish.d.ts +7 -3
  83. package/src/command-line/release/publish.js +89 -37
  84. package/src/command-line/release/release.d.ts +4 -0
  85. package/src/command-line/release/release.js +176 -0
  86. package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts +7 -0
  87. package/src/command-line/release/utils/batch-projects-by-generator-config.js +37 -0
  88. package/src/command-line/release/utils/exec-command.d.ts +1 -0
  89. package/src/command-line/release/utils/exec-command.js +34 -0
  90. package/src/command-line/release/utils/git.d.ts +34 -1
  91. package/src/command-line/release/utils/git.js +238 -34
  92. package/src/command-line/release/utils/github.d.ts +5 -5
  93. package/src/command-line/release/utils/github.js +155 -8
  94. package/src/command-line/release/utils/markdown.js +6 -1
  95. package/src/command-line/release/utils/print-changes.d.ts +1 -1
  96. package/src/command-line/release/utils/print-changes.js +3 -3
  97. package/src/command-line/release/utils/resolve-nx-json-error-message.js +4 -1
  98. package/src/command-line/release/utils/resolve-semver-specifier.d.ts +4 -0
  99. package/src/command-line/release/utils/resolve-semver-specifier.js +58 -0
  100. package/src/command-line/release/utils/semver.d.ts +8 -0
  101. package/src/command-line/release/utils/semver.js +30 -1
  102. package/src/command-line/release/utils/shared.d.ts +39 -0
  103. package/src/command-line/release/utils/shared.js +213 -0
  104. package/src/command-line/release/version.d.ts +37 -3
  105. package/src/command-line/release/version.js +312 -117
  106. package/src/command-line/repair/repair.js +13 -9
  107. package/src/command-line/report/report.d.ts +3 -0
  108. package/src/command-line/report/report.js +22 -5
  109. package/src/command-line/run/command-object.d.ts +4 -0
  110. package/src/command-line/run/command-object.js +18 -2
  111. package/src/command-line/run/executor-utils.d.ts +2 -1
  112. package/src/command-line/run/executor-utils.js +4 -4
  113. package/src/command-line/run/run-one.js +3 -6
  114. package/src/command-line/run/run.js +34 -9
  115. package/src/command-line/run-many/command-object.js +4 -1
  116. package/src/command-line/run-many/run-many.js +0 -3
  117. package/src/command-line/show/command-object.d.ts +3 -0
  118. package/src/command-line/show/command-object.js +29 -2
  119. package/src/command-line/show/show.js +9 -0
  120. package/src/command-line/yargs-utils/shared-options.d.ts +4 -1
  121. package/src/command-line/yargs-utils/shared-options.js +23 -9
  122. package/src/commands-runner/command-graph.d.ts +13 -0
  123. package/src/commands-runner/command-graph.js +2 -0
  124. package/src/commands-runner/create-command-graph.d.ts +4 -0
  125. package/src/commands-runner/create-command-graph.js +44 -0
  126. package/src/commands-runner/get-command-projects.d.ts +3 -0
  127. package/src/commands-runner/get-command-projects.js +19 -0
  128. package/src/config/nx-json.d.ts +160 -25
  129. package/src/config/project-graph.d.ts +3 -3
  130. package/src/config/workspace-json-project-json.d.ts +23 -1
  131. package/src/config/workspaces.d.ts +1 -1
  132. package/src/config/workspaces.js +4 -6
  133. package/src/core/graph/3rdpartylicenses.txt +144 -74
  134. package/src/core/graph/environment.js +1 -1
  135. package/src/core/graph/index.html +4 -6
  136. package/src/core/graph/main.js +1 -1
  137. package/src/core/graph/runtime.js +1 -1
  138. package/src/core/graph/styles.css +3 -3
  139. package/src/core/graph/styles.js +1 -1
  140. package/src/daemon/client/client.d.ts +5 -1
  141. package/src/daemon/client/client.js +27 -8
  142. package/src/daemon/client/{socket-messenger.d.ts → daemon-socket-messenger.d.ts} +1 -1
  143. package/src/daemon/client/{socket-messenger.js → daemon-socket-messenger.js} +3 -3
  144. package/src/daemon/daemon-project-graph-error.d.ts +8 -0
  145. package/src/daemon/daemon-project-graph-error.js +13 -0
  146. package/src/daemon/server/handle-hash-tasks.js +12 -2
  147. package/src/daemon/server/handle-request-project-graph.js +1 -1
  148. package/src/daemon/server/project-graph-incremental-recomputation.d.ts +14 -13
  149. package/src/daemon/server/project-graph-incremental-recomputation.js +98 -33
  150. package/src/daemon/server/shutdown-utils.js +2 -4
  151. package/src/daemon/server/watcher.js +0 -3
  152. package/src/daemon/socket-utils.d.ts +2 -1
  153. package/src/daemon/socket-utils.js +15 -4
  154. package/src/daemon/tmp-dir.d.ts +1 -0
  155. package/src/daemon/tmp-dir.js +4 -4
  156. package/src/devkit-exports.d.ts +2 -2
  157. package/src/devkit-exports.js +3 -2
  158. package/src/devkit-internals.d.ts +3 -0
  159. package/src/devkit-internals.js +7 -1
  160. package/src/executors/noop/schema.json +1 -1
  161. package/src/executors/run-commands/run-commands.impl.d.ts +10 -2
  162. package/src/executors/run-commands/run-commands.impl.js +152 -48
  163. package/src/executors/run-commands/schema.json +11 -1
  164. package/src/executors/run-script/run-script.impl.js +43 -11
  165. package/src/executors/utils/convert-nx-executor.js +1 -1
  166. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +3 -1
  167. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +4 -2
  168. package/src/generators/testing-utils/create-tree-with-empty-workspace.js +0 -6
  169. package/src/generators/tree.d.ts +1 -0
  170. package/src/generators/utils/glob.js +2 -2
  171. package/src/generators/utils/project-configuration.js +28 -9
  172. package/src/hasher/create-task-hasher.d.ts +4 -0
  173. package/src/hasher/create-task-hasher.js +16 -0
  174. package/src/hasher/hash-task.js +9 -3
  175. package/src/hasher/native-task-hasher-impl.d.ts +19 -0
  176. package/src/hasher/native-task-hasher-impl.js +37 -0
  177. package/src/hasher/node-task-hasher-impl.d.ts +49 -0
  178. package/src/hasher/node-task-hasher-impl.js +431 -0
  179. package/src/hasher/task-hasher.d.ts +33 -21
  180. package/src/hasher/task-hasher.js +30 -428
  181. package/src/migrations/update-15-0-0/migrate-to-inputs.js +5 -5
  182. package/src/migrations/update-15-1-0/set-project-names.js +2 -1
  183. package/src/migrations/update-15-8-2/update-nxw.js +2 -6
  184. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +3 -3
  185. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +49 -13
  186. package/src/migrations/update-17-2-0/move-default-base.d.ts +5 -0
  187. package/src/migrations/update-17-2-0/move-default-base.js +21 -0
  188. package/src/migrations/update-17-3-0/nx-release-path.d.ts +3 -0
  189. package/src/migrations/update-17-3-0/nx-release-path.js +48 -0
  190. package/src/migrations/update-17-3-0/update-nxw.d.ts +2 -0
  191. package/src/migrations/update-17-3-0/update-nxw.js +7 -0
  192. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +2 -0
  193. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +9 -0
  194. package/src/native/index.d.ts +65 -15
  195. package/src/native/index.js +6 -2
  196. package/src/native/transform-objects.js +2 -0
  197. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +1 -0
  198. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +13 -12
  199. package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +6 -1
  200. package/src/nx-cloud/update-manager.js +2 -1
  201. package/src/plugins/js/index.d.ts +1 -1
  202. package/src/plugins/js/index.js +3 -3
  203. package/src/plugins/js/lock-file/lock-file.d.ts +2 -2
  204. package/src/plugins/js/lock-file/lock-file.js +15 -3
  205. package/src/plugins/js/package-json/create-package-json.js +1 -1
  206. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.d.ts +1 -1
  207. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.js +1 -1
  208. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.d.ts +1 -1
  209. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.js +1 -1
  210. package/src/plugins/js/utils/register.d.ts +1 -1
  211. package/src/plugins/js/utils/register.js +28 -8
  212. package/src/plugins/js/versions.d.ts +1 -1
  213. package/src/plugins/js/versions.js +1 -1
  214. package/{plugins/package-json-workspaces.d.ts → src/plugins/package-json-workspaces/create-nodes.d.ts} +4 -4
  215. package/{plugins/package-json-workspaces.js → src/plugins/package-json-workspaces/create-nodes.js} +34 -12
  216. package/src/plugins/package-json-workspaces/index.d.ts +1 -0
  217. package/src/plugins/package-json-workspaces/index.js +4 -0
  218. package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.d.ts +2 -0
  219. package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.js +47 -0
  220. package/src/plugins/project-json/build-nodes/project-json.d.ts +2 -5
  221. package/src/plugins/project-json/build-nodes/project-json.js +6 -44
  222. package/src/plugins/target-defaults/target-defaults-plugin.d.ts +66 -0
  223. package/src/plugins/target-defaults/target-defaults-plugin.js +182 -0
  224. package/src/project-graph/affected/locators/project-glob-changes.js +3 -3
  225. package/src/project-graph/affected/locators/workspace-projects.d.ts +0 -2
  226. package/src/project-graph/affected/locators/workspace-projects.js +16 -29
  227. package/src/project-graph/build-project-graph.d.ts +20 -1
  228. package/src/project-graph/build-project-graph.js +91 -33
  229. package/src/project-graph/file-map-utils.d.ts +9 -5
  230. package/src/project-graph/file-map-utils.js +16 -63
  231. package/src/project-graph/file-utils.d.ts +1 -1
  232. package/src/project-graph/file-utils.js +44 -2
  233. package/src/project-graph/nx-deps-cache.js +1 -1
  234. package/src/project-graph/project-graph-builder.d.ts +1 -1
  235. package/src/project-graph/project-graph-builder.js +1 -1
  236. package/src/project-graph/project-graph.d.ts +32 -1
  237. package/src/project-graph/project-graph.js +147 -23
  238. package/src/project-graph/utils/build-all-workspace-files.d.ts +2 -0
  239. package/src/project-graph/utils/build-all-workspace-files.js +15 -0
  240. package/src/project-graph/utils/normalize-project-nodes.d.ts +2 -3
  241. package/src/project-graph/utils/normalize-project-nodes.js +7 -33
  242. package/src/project-graph/utils/project-configuration-utils.d.ts +66 -4
  243. package/src/project-graph/utils/project-configuration-utils.js +509 -62
  244. package/src/project-graph/utils/retrieve-workspace-files.d.ts +12 -31
  245. package/src/project-graph/utils/retrieve-workspace-files.js +27 -90
  246. package/src/tasks-runner/batch/run-batch.js +3 -3
  247. package/src/tasks-runner/cache.js +6 -3
  248. package/src/tasks-runner/create-task-graph.js +1 -1
  249. package/src/tasks-runner/fork.d.ts +1 -0
  250. package/src/tasks-runner/fork.js +23 -0
  251. package/src/tasks-runner/forked-process-task-runner.d.ts +13 -5
  252. package/src/tasks-runner/forked-process-task-runner.js +112 -21
  253. package/src/tasks-runner/init-tasks-runner.js +1 -1
  254. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +28 -28
  255. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +19 -22
  256. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js +1 -3
  257. package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.js +1 -3
  258. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +2 -4
  259. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +1 -0
  260. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +11 -5
  261. package/src/tasks-runner/life-cycles/view-logs-utils.js +1 -1
  262. package/src/tasks-runner/pseudo-ipc.d.ts +49 -0
  263. package/src/tasks-runner/pseudo-ipc.js +140 -0
  264. package/src/tasks-runner/pseudo-terminal.d.ts +43 -0
  265. package/src/tasks-runner/pseudo-terminal.js +159 -0
  266. package/src/tasks-runner/run-command.d.ts +1 -1
  267. package/src/tasks-runner/run-command.js +13 -19
  268. package/src/tasks-runner/task-env.js +1 -2
  269. package/src/tasks-runner/task-graph-utils.d.ts +7 -3
  270. package/src/tasks-runner/task-graph-utils.js +15 -15
  271. package/src/tasks-runner/task-orchestrator.js +68 -12
  272. package/src/tasks-runner/tasks-schedule.js +3 -3
  273. package/src/tasks-runner/utils.d.ts +16 -7
  274. package/src/tasks-runner/utils.js +30 -16
  275. package/src/utils/ab-testing.d.ts +36 -2
  276. package/src/utils/ab-testing.js +34 -16
  277. package/src/utils/assert-workspace-validity.js +1 -1
  278. package/src/utils/cache-directory.d.ts +1 -0
  279. package/src/utils/cache-directory.js +5 -1
  280. package/src/utils/child-process.d.ts +15 -1
  281. package/src/utils/child-process.js +91 -1
  282. package/src/utils/command-line-utils.js +2 -1
  283. package/src/utils/exit-codes.d.ts +6 -0
  284. package/src/utils/exit-codes.js +20 -0
  285. package/src/utils/fileutils.d.ts +1 -0
  286. package/src/utils/find-matching-projects.js +5 -5
  287. package/src/utils/find-workspace-root.js +1 -0
  288. package/src/utils/ignore.js +8 -1
  289. package/src/utils/json-diff.d.ts +1 -0
  290. package/src/utils/json-diff.js +2 -1
  291. package/src/utils/json.js +3 -1
  292. package/src/utils/logger.js +1 -1
  293. package/src/utils/nx-cloud-utils.d.ts +1 -1
  294. package/src/utils/nx-cloud-utils.js +9 -4
  295. package/src/utils/nx-plugin.d.ts +32 -15
  296. package/src/utils/nx-plugin.deprecated.d.ts +10 -5
  297. package/src/utils/nx-plugin.deprecated.js +23 -0
  298. package/src/utils/nx-plugin.js +71 -80
  299. package/src/utils/output.d.ts +4 -2
  300. package/src/utils/output.js +44 -9
  301. package/src/utils/package-json.d.ts +4 -4
  302. package/src/utils/package-json.js +18 -12
  303. package/src/utils/package-manager.d.ts +7 -0
  304. package/src/utils/package-manager.js +24 -4
  305. package/src/utils/params.d.ts +12 -4
  306. package/src/utils/params.js +37 -4
  307. package/src/utils/plugins/core-plugins.js +8 -0
  308. package/src/utils/plugins/installed-plugins.d.ts +2 -1
  309. package/src/utils/plugins/installed-plugins.js +2 -2
  310. package/src/utils/plugins/local-plugins.js +1 -1
  311. package/src/utils/plugins/plugin-capabilities.d.ts +3 -2
  312. package/src/utils/plugins/plugin-capabilities.js +7 -7
  313. package/src/utils/typescript.js +1 -1
  314. package/src/utils/update-nxw.d.ts +2 -0
  315. package/src/utils/update-nxw.js +12 -0
  316. package/src/utils/workspace-configuration-check.js +1 -1
  317. package/src/utils/workspace-context.d.ts +6 -4
  318. package/src/utils/workspace-context.js +19 -9
  319. package/src/core/graph/polyfills.js +0 -1
  320. /package/src/command-line/init/{init.d.ts → init-v1.d.ts} +0 -0
@@ -16,15 +16,16 @@ const nx_json_1 = require("../../config/nx-json");
16
16
  *
17
17
  */
18
18
  async function listHandler(args) {
19
+ const nxJson = (0, nx_json_1.readNxJson)();
20
+ const projectGraph = await (0, project_graph_1.createProjectGraphAsync)({ exitOnError: true });
21
+ const projects = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
19
22
  if (args.plugin) {
20
- await (0, plugins_1.listPluginCapabilities)(args.plugin);
23
+ await (0, plugins_1.listPluginCapabilities)(args.plugin, projects.projects);
21
24
  }
22
25
  else {
23
- const nxJson = (0, nx_json_1.readNxJson)();
24
26
  const corePlugins = (0, plugins_1.fetchCorePlugins)();
25
- const projectGraph = await (0, project_graph_1.createProjectGraphAsync)({ exitOnError: true });
26
- const localPlugins = await (0, local_plugins_1.getLocalWorkspacePlugins)((0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph), nxJson);
27
- const installedPlugins = await (0, plugins_1.getInstalledPluginsAndCapabilities)(workspace_root_1.workspaceRoot);
27
+ const localPlugins = await (0, local_plugins_1.getLocalWorkspacePlugins)(projects, nxJson);
28
+ const installedPlugins = await (0, plugins_1.getInstalledPluginsAndCapabilities)(workspace_root_1.workspaceRoot, projects.projects);
28
29
  if (localPlugins.size) {
29
30
  (0, local_plugins_1.listLocalWorkspacePlugins)(localPlugins);
30
31
  }
@@ -108,18 +108,33 @@ function runMigration() {
108
108
  }
109
109
  }
110
110
  function nxCliPath() {
111
+ const version = process.env.NX_MIGRATE_CLI_VERSION || 'latest';
111
112
  try {
112
- const packageManager = (0, package_manager_1.getPackageManagerCommand)();
113
+ const packageManager = (0, package_manager_1.detectPackageManager)();
114
+ const pmc = (0, package_manager_1.getPackageManagerCommand)(packageManager);
113
115
  const { dirSync } = require('tmp');
114
116
  const tmpDir = dirSync().name;
115
- const version = process.env.NX_MIGRATE_USE_NEXT === 'true' ? 'next' : 'latest';
116
117
  (0, fileutils_1.writeJsonFile)(path.join(tmpDir, 'package.json'), {
117
118
  dependencies: {
118
119
  nx: version,
119
120
  },
120
121
  license: 'MIT',
121
122
  });
122
- (0, child_process_2.execSync)(packageManager.install, {
123
+ if (pmc.preInstall) {
124
+ // ensure package.json and repo in tmp folder is set to a proper package manager state
125
+ (0, child_process_2.execSync)(pmc.preInstall, {
126
+ cwd: tmpDir,
127
+ stdio: ['ignore', 'ignore', 'ignore'],
128
+ });
129
+ // if it's berry ensure we set the node_linker to node-modules
130
+ if (packageManager === 'yarn' && pmc.ciInstall.includes('immutable')) {
131
+ (0, child_process_2.execSync)(pmc.preInstall, {
132
+ cwd: 'yarn config set nodeLinker node-modules',
133
+ stdio: ['ignore', 'ignore', 'ignore'],
134
+ });
135
+ }
136
+ }
137
+ (0, child_process_2.execSync)(pmc.install, {
123
138
  cwd: tmpDir,
124
139
  stdio: ['ignore', 'ignore', 'ignore'],
125
140
  });
@@ -129,7 +144,7 @@ function nxCliPath() {
129
144
  return path.join(tmpDir, `node_modules`, '.bin', 'nx');
130
145
  }
131
146
  catch (e) {
132
- console.error('Failed to install the latest version of the migration script. Using the current version.');
147
+ console.error(`Failed to install the ${version} version of the migration script. Using the current version.`);
133
148
  if (process.env.NX_VERBOSE_LOGGING) {
134
149
  console.error(e);
135
150
  }
@@ -16,8 +16,6 @@ const package_manager_1 = require("../../utils/package-manager");
16
16
  const params_1 = require("../../utils/params");
17
17
  const connect_to_nx_cloud_1 = require("../connect/connect-to-nx-cloud");
18
18
  const output_1 = require("../../utils/output");
19
- const ab_testing_1 = require("../../utils/ab-testing");
20
- const versions_1 = require("../../utils/versions");
21
19
  const fs_1 = require("fs");
22
20
  const workspace_root_1 = require("../../utils/workspace-root");
23
21
  const is_ci_1 = require("../../utils/is-ci");
@@ -26,6 +24,7 @@ const configuration_1 = require("../../config/configuration");
26
24
  const child_process_2 = require("../../utils/child-process");
27
25
  const client_1 = require("../../daemon/client/client");
28
26
  const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
27
+ const project_graph_1 = require("../../project-graph/project-graph");
29
28
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
30
29
  function normalizeVersion(version) {
31
30
  const [semver, ...prereleaseTagParts] = version.split('-');
@@ -431,13 +430,15 @@ async function parseTargetPackageAndVersion(args) {
431
430
  else {
432
431
  if (args === 'latest' ||
433
432
  args === 'next' ||
433
+ args === 'canary' ||
434
434
  (0, semver_1.valid)(args) ||
435
435
  args.match(/^\d+(?:\.\d+)?(?:\.\d+)?$/)) {
436
436
  // Passing `nx` here may seem wrong, but nx and @nrwl/workspace are synced in version.
437
437
  // We could duplicate the ternary below, but its not necessary since they are equivalent
438
438
  // on the registry
439
439
  const targetVersion = await normalizeVersionWithTagCheck('nx', args);
440
- const targetPackage = !['latest', 'next'].includes(args) && (0, semver_1.lt)(targetVersion, '14.0.0-beta.0')
440
+ const targetPackage = !['latest', 'next', 'canary'].includes(args) &&
441
+ (0, semver_1.lt)(targetVersion, '14.0.0-beta.0')
441
442
  ? '@nrwl/workspace'
442
443
  : 'nx';
443
444
  return {
@@ -718,7 +719,7 @@ async function updateInstallationDetails(root, updatedPackages) {
718
719
  }
719
720
  async function isMigratingToNewMajor(from, to) {
720
721
  from = normalizeVersion(from);
721
- to = ['latest', 'next'].includes(to) ? to : normalizeVersion(to);
722
+ to = ['latest', 'next', 'canary'].includes(to) ? to : normalizeVersion(to);
722
723
  if (!(0, semver_1.valid)(from)) {
723
724
  from = await (0, package_manager_1.resolvePackageVersionUsingRegistry)('nx', from);
724
725
  }
@@ -750,16 +751,7 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
750
751
  (await isMigratingToNewMajor(from, opts.targetVersion)) &&
751
752
  !(0, is_ci_1.isCI)() &&
752
753
  !(0, nx_cloud_utils_1.isNxCloudUsed)(originalNxJson)) {
753
- const useCloud = await (0, connect_to_nx_cloud_1.connectToNxCloudCommand)({
754
- promptOverride: ab_testing_1.messages.getPromptMessage('nxCloudMigration'),
755
- interactive: true,
756
- });
757
- await (0, ab_testing_1.recordStat)({
758
- command: 'migrate',
759
- nxVersion: versions_1.nxVersion,
760
- useCloud,
761
- meta: ab_testing_1.messages.codeOfSelectedPromptMessage('nxCloudMigration'),
762
- });
754
+ await (0, connect_to_nx_cloud_1.connectToNxCloudWithPrompt)('migrate');
763
755
  originalPackageJson = (0, fileutils_1.readJsonFile)((0, path_1.join)(root, 'package.json'));
764
756
  }
765
757
  }
@@ -811,7 +803,7 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
811
803
  `- To learn more go to https://nx.dev/recipes/tips-n-tricks/advanced-update`,
812
804
  ]
813
805
  : [
814
- `- To learn more go to https://nx.dev/core-features/automate-updating-dependencies`,
806
+ `- To learn more go to https://nx.dev/features/automate-updating-dependencies`,
815
807
  ]),
816
808
  ...(showConnectToCloudMessage()
817
809
  ? [
@@ -872,7 +864,19 @@ function runInstall() {
872
864
  async function executeMigrations(root, migrations, isVerbose, shouldCreateCommits, commitPrefix) {
873
865
  const depsBeforeMigrations = getStringifiedPackageJsonDeps(root);
874
866
  const migrationsWithNoChanges = [];
875
- for (const m of migrations) {
867
+ const sortedMigrations = migrations.sort((a, b) => {
868
+ // special case for the split configuration migration to run first
869
+ if (a.name === '15-7-0-split-configuration-into-project-json-files') {
870
+ return -1;
871
+ }
872
+ if (b.name === '15-7-0-split-configuration-into-project-json-files') {
873
+ return 1;
874
+ }
875
+ return (0, semver_1.lt)(normalizeVersion(a.version), normalizeVersion(b.version))
876
+ ? -1
877
+ : 1;
878
+ });
879
+ for (const m of sortedMigrations) {
876
880
  try {
877
881
  const { collection, collectionPath } = readMigrationCollection(m.package, root);
878
882
  if (!isAngularMigration(collection, collectionPath, m.name)) {
@@ -888,7 +892,7 @@ async function executeMigrations(root, migrations, isVerbose, shouldCreateCommit
888
892
  }
889
893
  else {
890
894
  const ngCliAdapter = await getNgCompatLayer();
891
- const { madeChanges, loggingQueue } = await ngCliAdapter.runMigration(root, m.package, m.name, isVerbose);
895
+ const { madeChanges, loggingQueue } = await ngCliAdapter.runMigration(root, m.package, m.name, (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(await (0, project_graph_1.createProjectGraphAsync)()).projects, isVerbose);
892
896
  if (!madeChanges) {
893
897
  migrationsWithNoChanges.push(m);
894
898
  // If no changes are made, continue on without printing anything
@@ -14,7 +14,7 @@ function removeSpecialFlags(generatorOptions) {
14
14
  async function newWorkspace(cwd, args) {
15
15
  return (0, params_1.handleErrors)(process.env.NX_VERBOSE_LOGGING === 'true' || args.verbose, async () => {
16
16
  const isInteractive = args.interactive;
17
- const { normalizedGeneratorName, schema, implementationFactory } = (0, generator_utils_1.getGeneratorInformation)('@nx/workspace/generators.json', 'new', null);
17
+ const { normalizedGeneratorName, schema, implementationFactory } = (0, generator_utils_1.getGeneratorInformation)('@nx/workspace/generators.json', 'new', null, {});
18
18
  removeSpecialFlags(args);
19
19
  const combinedOpts = await (0, params_1.combineOptionsForGenerator)(args, '@nx/workspace/generators.json', normalizedGeneratorName, null, null, schema, isInteractive, null, null, false);
20
20
  const host = new tree_1.FsTree(cwd, false, 'nx new');
@@ -22,6 +22,7 @@ const command_object_16 = require("./show/command-object");
22
22
  const command_object_17 = require("./watch/command-object");
23
23
  const command_object_18 = require("./reset/command-object");
24
24
  const command_object_19 = require("./release/command-object");
25
+ const command_object_20 = require("./add/command-object");
25
26
  // Ensure that the output takes up the available width of the terminal.
26
27
  yargs.wrap(yargs.terminalWidth());
27
28
  exports.parserConfiguration = {
@@ -36,8 +37,9 @@ exports.parserConfiguration = {
36
37
  */
37
38
  exports.commandsObject = yargs
38
39
  .parserConfiguration(exports.parserConfiguration)
39
- .usage(chalk.bold('Smart, Fast and Extensible Build System'))
40
+ .usage(chalk.bold('Smart Monorepos · Fast CI'))
40
41
  .demandCommand(1, '')
42
+ .command(command_object_20.yargsAddCommand)
41
43
  .command(command_object_1.yargsAffectedBuildCommand)
42
44
  .command(command_object_1.yargsAffectedCommand)
43
45
  .command(command_object_1.yargsAffectedE2ECommand)
@@ -66,6 +68,7 @@ exports.commandsObject = yargs
66
68
  .command(command_object_16.yargsShowCommand)
67
69
  .command(command_object_2.yargsViewLogsCommand)
68
70
  .command(command_object_17.yargsWatchCommand)
71
+ .command(command_object_14.yargsNxInfixCommand)
69
72
  .scriptName('nx')
70
73
  .help()
71
74
  // NOTE: we handle --version in nx.ts, this just tells yargs that the option exists
@@ -1,2 +1,23 @@
1
+ import { NxReleaseChangelogConfiguration } from '../../config/nx-json';
1
2
  import { ChangelogOptions } from './command-object';
2
- export declare function changelogHandler(args: ChangelogOptions): Promise<void>;
3
+ import { ReleaseVersion } from './utils/shared';
4
+ export interface NxReleaseChangelogResult {
5
+ workspaceChangelog?: {
6
+ releaseVersion: ReleaseVersion;
7
+ contents: string;
8
+ };
9
+ projectChangelogs?: {
10
+ [projectName: string]: {
11
+ releaseVersion: ReleaseVersion;
12
+ contents: string;
13
+ };
14
+ };
15
+ }
16
+ export declare const releaseChangelogCLIHandler: (args: ChangelogOptions) => Promise<any>;
17
+ /**
18
+ * NOTE: This function is also exported for programmatic usage and forms part of the public API
19
+ * of Nx. We intentionally do not wrap the implementation with handleErrors because users need
20
+ * to have control over their own error handling when using the API.
21
+ */
22
+ export declare function releaseChangelog(args: ChangelogOptions): Promise<NxReleaseChangelogResult>;
23
+ export declare function shouldCreateGitHubRelease(changelogConfig: NxReleaseChangelogConfiguration | false | undefined, createReleaseArg?: ChangelogOptions['createRelease'] | undefined): boolean;