nx 23.2.0-beta.1 → 23.2.0-beta.10

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 (364) hide show
  1. package/dist/bin/init-local.js +3 -5
  2. package/dist/bin/nx.js +2 -0
  3. package/dist/release/changelog-renderer/index.js +4 -5
  4. package/dist/release/index.d.ts +1 -1
  5. package/dist/src/adapter/ngcli-adapter.js +60 -1
  6. package/dist/src/ai/set-up-ai-agents/set-up-ai-agents.js +35 -15
  7. package/dist/src/analytics/analytics.d.ts +6 -0
  8. package/dist/src/analytics/analytics.js +16 -10
  9. package/dist/src/analytics/index.d.ts +1 -1
  10. package/dist/src/analytics/index.js +2 -1
  11. package/dist/src/command-line/add/add.js +5 -0
  12. package/dist/src/command-line/affected/affected.js +1 -0
  13. package/dist/src/command-line/completion/command-object.js +7 -12
  14. package/dist/src/command-line/configure-ai-agents/configure-ai-agents.js +19 -25
  15. package/dist/src/command-line/format/format.js +84 -101
  16. package/dist/src/command-line/generate/generate.js +35 -35
  17. package/dist/src/command-line/graph/graph.d.ts +1 -0
  18. package/dist/src/command-line/graph/graph.js +15 -6
  19. package/dist/src/command-line/import/import.js +30 -40
  20. package/dist/src/command-line/init/ai-agent-prompts.js +5 -11
  21. package/dist/src/command-line/init/command-object.js +4 -2
  22. package/dist/src/command-line/init/configure-plugins.js +4 -1
  23. package/dist/src/command-line/init/implementation/add-nx-to-monorepo.js +12 -32
  24. package/dist/src/command-line/init/implementation/add-nx-to-nest.js +17 -21
  25. package/dist/src/command-line/init/implementation/add-nx-to-npm-repo.js +8 -21
  26. package/dist/src/command-line/init/implementation/add-nx-to-turborepo.js +3 -17
  27. package/dist/src/command-line/init/implementation/angular/index.js +10 -15
  28. package/dist/src/command-line/init/implementation/angular/integrated-workspace.js +2 -5
  29. package/dist/src/command-line/init/implementation/angular/legacy-angular-versions.js +5 -0
  30. package/dist/src/command-line/init/implementation/angular/standalone-workspace.js +8 -2
  31. package/dist/src/command-line/init/implementation/check-compatible-with-plugins.js +2 -0
  32. package/dist/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +9 -1
  33. package/dist/src/command-line/init/implementation/format.d.ts +18 -0
  34. package/dist/src/command-line/init/implementation/format.js +114 -0
  35. package/dist/src/command-line/init/implementation/utils.js +8 -0
  36. package/dist/src/command-line/init/init-v1.js +15 -18
  37. package/dist/src/command-line/init/init-v2.js +40 -57
  38. package/dist/src/command-line/migrate/agentic/definitions.js +36 -9
  39. package/dist/src/command-line/migrate/agentic/handoff-gitignore.d.ts +37 -22
  40. package/dist/src/command-line/migrate/agentic/handoff-gitignore.js +30 -39
  41. package/dist/src/command-line/migrate/agentic/handoff.d.ts +7 -7
  42. package/dist/src/command-line/migrate/agentic/handoff.js +13 -10
  43. package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.d.ts +7 -12
  44. package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.js +7 -0
  45. package/dist/src/command-line/migrate/agentic/run-step.d.ts +10 -0
  46. package/dist/src/command-line/migrate/agentic/run-step.js +1 -0
  47. package/dist/src/command-line/migrate/agentic/runner.js +24 -24
  48. package/dist/src/command-line/migrate/agentic/select.d.ts +10 -2
  49. package/dist/src/command-line/migrate/agentic/select.js +30 -32
  50. package/dist/src/command-line/migrate/agentic/types.d.ts +33 -3
  51. package/dist/src/command-line/migrate/agentic/types.js +35 -0
  52. package/dist/src/command-line/migrate/command-object.d.ts +6 -0
  53. package/dist/src/command-line/migrate/command-object.js +19 -1
  54. package/dist/src/command-line/migrate/execute-migration.d.ts +28 -9
  55. package/dist/src/command-line/migrate/execute-migration.js +112 -27
  56. package/dist/src/command-line/migrate/migrate-analytics.d.ts +35 -0
  57. package/dist/src/command-line/migrate/migrate-analytics.js +64 -0
  58. package/dist/src/command-line/migrate/migrate-commits.d.ts +38 -8
  59. package/dist/src/command-line/migrate/migrate-commits.js +130 -15
  60. package/dist/src/command-line/migrate/migrate-config.d.ts +13 -12
  61. package/dist/src/command-line/migrate/migrate-config.js +22 -14
  62. package/dist/src/command-line/migrate/migrate-output.d.ts +45 -7
  63. package/dist/src/command-line/migrate/migrate-output.js +52 -8
  64. package/dist/src/command-line/migrate/migrate-ui-api.d.ts +2 -1
  65. package/dist/src/command-line/migrate/migrate-ui-api.js +16 -7
  66. package/dist/src/command-line/migrate/migrate.d.ts +28 -68
  67. package/dist/src/command-line/migrate/migrate.js +657 -293
  68. package/dist/src/command-line/migrate/migration-shape.d.ts +8 -0
  69. package/dist/src/command-line/migrate/multi-major.js +7 -10
  70. package/dist/src/command-line/migrate/resolve-package-version.js +4 -8
  71. package/dist/src/command-line/migrate/run/agent-output.d.ts +20 -0
  72. package/dist/src/command-line/migrate/run/agent-output.js +65 -0
  73. package/dist/src/command-line/migrate/run/index.d.ts +9 -0
  74. package/dist/src/command-line/migrate/run/index.js +23 -0
  75. package/dist/src/command-line/migrate/run/orchestrator.d.ts +20 -0
  76. package/dist/src/command-line/migrate/run/orchestrator.js +1200 -0
  77. package/dist/src/command-line/migrate/run/run-id.d.ts +16 -0
  78. package/dist/src/command-line/migrate/run/run-id.js +56 -0
  79. package/dist/src/command-line/migrate/run/run-state.d.ts +157 -0
  80. package/dist/src/command-line/migrate/run/run-state.js +438 -0
  81. package/dist/src/command-line/migrate/run/state-lock.d.ts +25 -0
  82. package/dist/src/command-line/migrate/run/state-lock.js +76 -0
  83. package/dist/src/command-line/migrate/run/state-machine.d.ts +84 -0
  84. package/dist/src/command-line/migrate/run/state-machine.js +315 -0
  85. package/dist/src/command-line/migrate/run/util.d.ts +59 -0
  86. package/dist/src/command-line/migrate/run/util.js +148 -0
  87. package/dist/src/command-line/migrate/run/worker.d.ts +16 -0
  88. package/dist/src/command-line/migrate/run/worker.js +682 -0
  89. package/dist/src/command-line/migrate/run-migration-process.js +6 -5
  90. package/dist/src/command-line/migrate/safe-prompt.d.ts +14 -26
  91. package/dist/src/command-line/migrate/safe-prompt.js +32 -43
  92. package/dist/src/command-line/migrate/sort-migrations.d.ts +16 -0
  93. package/dist/src/command-line/migrate/sort-migrations.js +32 -0
  94. package/dist/src/command-line/migrate/step-actions.d.ts +5 -0
  95. package/dist/src/command-line/migrate/step-actions.js +12 -0
  96. package/dist/src/command-line/migrate/text.d.ts +18 -0
  97. package/dist/src/command-line/migrate/text.js +26 -0
  98. package/dist/src/command-line/migrate/version-skew-guard.d.ts +60 -0
  99. package/dist/src/command-line/migrate/version-skew-guard.js +175 -0
  100. package/dist/src/command-line/nx-cloud/connect/connect-to-nx-cloud.js +17 -21
  101. package/dist/src/command-line/nx-cloud/connect/view-logs.js +2 -0
  102. package/dist/src/command-line/nx-cloud/start-nx-agents/command-object.d.ts +2 -0
  103. package/dist/src/command-line/nx-cloud/start-nx-agents/command-object.js +16 -0
  104. package/dist/src/command-line/nx-cloud/start-nx-agents/start-nx-agents.d.ts +4 -0
  105. package/dist/src/command-line/nx-cloud/start-nx-agents/start-nx-agents.js +13 -0
  106. package/dist/src/command-line/nx-commands.js +26 -24
  107. package/dist/src/command-line/release/changelog.js +11 -17
  108. package/dist/src/command-line/release/index.d.ts +1 -1
  109. package/dist/src/command-line/release/plan.js +15 -28
  110. package/dist/src/command-line/release/publish.js +5 -0
  111. package/dist/src/command-line/release/release.js +6 -17
  112. package/dist/src/command-line/release/utils/git.js +1 -1
  113. package/dist/src/command-line/release/utils/release-graph.d.ts +18 -0
  114. package/dist/src/command-line/release/utils/release-graph.js +81 -21
  115. package/dist/src/command-line/release/utils/remote-release-clients/github.js +17 -23
  116. package/dist/src/command-line/release/utils/remote-release-clients/gitlab.js +14 -23
  117. package/dist/src/command-line/release/utils/resolve-semver-specifier.js +19 -41
  118. package/dist/src/command-line/release/version/release-group-processor.d.ts +24 -0
  119. package/dist/src/command-line/release/version/release-group-processor.js +80 -6
  120. package/dist/src/command-line/release/version/resolve-current-version.js +7 -10
  121. package/dist/src/command-line/release/version/version-actions.d.ts +27 -2
  122. package/dist/src/command-line/release/version/version-actions.js +9 -1
  123. package/dist/src/command-line/release/version.js +10 -6
  124. package/dist/src/command-line/reset/reset.js +6 -1
  125. package/dist/src/command-line/run/run-one.js +1 -0
  126. package/dist/src/command-line/run-many/run-many.js +1 -0
  127. package/dist/src/command-line/show/show-target/inputs.js +50 -153
  128. package/dist/src/command-line/show/show-target/outputs.js +48 -173
  129. package/dist/src/command-line/show/show-target/utils.d.ts +28 -0
  130. package/dist/src/command-line/show/show-target/utils.js +83 -3
  131. package/dist/src/command-line/watch/watch.js +13 -0
  132. package/dist/src/command-line/yargs-utils/shared-options.d.ts +2 -2
  133. package/dist/src/command-line/yargs-utils/shared-options.js +3 -1
  134. package/dist/src/config/misc-interfaces.d.ts +19 -7
  135. package/dist/src/config/nx-json.d.ts +4 -2
  136. package/dist/src/core/graph/main.js +1 -1
  137. package/dist/src/core/graph/styles.js +1 -1
  138. package/dist/src/daemon/client/client.d.ts +52 -1
  139. package/dist/src/daemon/client/client.js +160 -36
  140. package/dist/src/daemon/client/daemon-environment.d.ts +17 -0
  141. package/dist/src/daemon/client/daemon-environment.js +110 -2
  142. package/dist/src/daemon/client/daemon-socket-messenger.js +4 -0
  143. package/dist/src/daemon/message-types/daemon-message.d.ts +32 -0
  144. package/dist/src/daemon/message-types/daemon-message.js +25 -0
  145. package/dist/src/daemon/server/file-watching/file-watcher-sockets.d.ts +5 -0
  146. package/dist/src/daemon/server/file-watching/file-watcher-sockets.js +16 -0
  147. package/dist/src/daemon/server/handle-tasks-execution-hooks.d.ts +1 -1
  148. package/dist/src/daemon/server/latest-nx.js +5 -2
  149. package/dist/src/daemon/server/server.js +31 -4
  150. package/dist/src/daemon/server/shutdown-utils.d.ts +5 -0
  151. package/dist/src/daemon/server/shutdown-utils.js +11 -4
  152. package/dist/src/daemon/socket-utils.d.ts +1 -0
  153. package/dist/src/daemon/socket-utils.js +24 -3
  154. package/dist/src/daemon/tmp-dir.d.ts +43 -3
  155. package/dist/src/daemon/tmp-dir.js +437 -15
  156. package/dist/src/devkit-internals.d.ts +105 -8
  157. package/dist/src/devkit-internals.js +223 -7
  158. package/dist/src/executors/run-commands/running-tasks.js +46 -29
  159. package/dist/src/generators/internal-utils/format-changed-files.d.ts +24 -0
  160. package/dist/src/generators/internal-utils/format-changed-files.js +163 -0
  161. package/dist/src/generators/testing-utils/create-tree-with-empty-workspace.d.ts +15 -0
  162. package/dist/src/generators/testing-utils/create-tree-with-empty-workspace.js +21 -3
  163. package/dist/src/generators/tree.d.ts +4 -2
  164. package/dist/src/hasher/check-task-files.d.ts +86 -0
  165. package/dist/src/hasher/check-task-files.js +378 -0
  166. package/dist/src/migrations/update-15-0-0/prefix-outputs.js +2 -2
  167. package/dist/src/migrations/update-16-0-0/remove-nrwl-cli.js +2 -2
  168. package/dist/src/migrations/update-16-0-0/update-depends-on-to-tokens.js +2 -2
  169. package/dist/src/migrations/update-16-0-0/update-nx-cloud-runner.js +2 -2
  170. package/dist/src/migrations/update-16-2-0/remove-run-commands-output-path.js +2 -2
  171. package/dist/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +2 -2
  172. package/dist/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +2 -2
  173. package/dist/src/migrations/update-17-2-0/move-default-base.js +2 -2
  174. package/dist/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +2 -2
  175. package/dist/src/migrations/update-19-2-4/set-project-name.js +2 -2
  176. package/dist/src/migrations/update-20-0-0/move-use-daemon-process.js +2 -2
  177. package/dist/src/migrations/update-20-0-1/use-legacy-cache.js +2 -2
  178. package/dist/src/migrations/update-21-0-0/release-changelog-config-changes.js +2 -2
  179. package/dist/src/migrations/update-21-0-0/release-version-config-changes.js +2 -2
  180. package/dist/src/migrations/update-21-0-0/remove-custom-tasks-runner.js +2 -2
  181. package/dist/src/migrations/update-21-0-0/remove-legacy-cache.js +2 -2
  182. package/dist/src/migrations/update-22-0-0/consolidate-release-tag-config.js +2 -2
  183. package/dist/src/migrations/update-22-0-0/release-version-config-changes.js +2 -2
  184. package/dist/src/migrations/update-22-2-0/add-self-healing-to-gitignore.js +2 -2
  185. package/dist/src/migrations/update-22-6-0/add-claude-settings-local-to-git-ignore.js +2 -2
  186. package/dist/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.js +2 -2
  187. package/dist/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.js +2 -2
  188. package/dist/src/migrations/update-23-0-0/add-migrate-runs-to-git-ignore.js +2 -2
  189. package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.d.ts +12 -0
  190. package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.js +250 -0
  191. package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.md +50 -0
  192. package/dist/src/native/index.d.ts +37 -4
  193. package/dist/src/native/index.js +71 -28
  194. package/dist/src/native/native-bindings.js +3 -0
  195. package/dist/src/native/native-file-cache-location.d.ts +17 -1
  196. package/dist/src/native/native-file-cache-location.js +86 -12
  197. package/dist/src/native/nx.wasm32-wasi.debug.wasm +0 -0
  198. package/dist/src/native/nx.wasm32-wasi.wasm +0 -0
  199. package/dist/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +3 -3
  200. package/dist/src/nx-cloud/utilities/get-cloud-options.js +5 -2
  201. package/dist/src/nx-cloud/utilities/onboarding.js +5 -2
  202. package/dist/src/nx-cloud/utilities/url-shorten.d.ts +1 -4
  203. package/dist/src/nx-cloud/utilities/url-shorten.js +9 -8
  204. package/dist/src/plugins/js/lock-file/bun-parser.js +43 -10
  205. package/dist/src/plugins/js/lock-file/lock-file.d.ts +46 -4
  206. package/dist/src/plugins/js/lock-file/lock-file.js +192 -15
  207. package/dist/src/plugins/js/lock-file/pnpm-parser.js +420 -64
  208. package/dist/src/plugins/js/lock-file/project-graph-pruning.d.ts +25 -1
  209. package/dist/src/plugins/js/lock-file/project-graph-pruning.js +92 -12
  210. package/dist/src/plugins/js/lock-file/pruned-output.d.ts +330 -0
  211. package/dist/src/plugins/js/lock-file/pruned-output.js +1441 -0
  212. package/dist/src/plugins/js/lock-file/utils/pnpm-normalizer.d.ts +1 -0
  213. package/dist/src/plugins/js/lock-file/utils/pnpm-normalizer.js +9 -5
  214. package/dist/src/plugins/js/project-graph/affected/npm-packages.js +51 -20
  215. package/dist/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +14 -4
  216. package/dist/src/project-graph/affected/affected-project-graph-models.d.ts +1 -1
  217. package/dist/src/project-graph/affected/affected-project-graph.d.ts +1 -1
  218. package/dist/src/project-graph/affected/affected-project-graph.js +2 -2
  219. package/dist/src/project-graph/affected/locators/project-glob-changes.js +5 -2
  220. package/dist/src/project-graph/build-project-graph.js +7 -1
  221. package/dist/src/project-graph/error-types.d.ts +12 -1
  222. package/dist/src/project-graph/error-types.js +27 -2
  223. package/dist/src/project-graph/plugins/isolation/isolated-plugin.d.ts +1 -0
  224. package/dist/src/project-graph/plugins/isolation/isolated-plugin.js +18 -1
  225. package/dist/src/project-graph/plugins/isolation/messaging.d.ts +16 -3
  226. package/dist/src/project-graph/plugins/isolation/messaging.js +3 -0
  227. package/dist/src/project-graph/plugins/isolation/plugin-worker.js +58 -8
  228. package/dist/src/project-graph/plugins/loaded-nx-plugin.js +1 -0
  229. package/dist/src/project-graph/project-graph.js +23 -0
  230. package/dist/src/project-graph/utils/project-configuration/name-substitution-manager.d.ts +1 -0
  231. package/dist/src/project-graph/utils/project-configuration/name-substitution-manager.js +16 -2
  232. package/dist/src/project-graph/utils/project-configuration/project-nodes-manager.d.ts +12 -8
  233. package/dist/src/project-graph/utils/project-configuration/project-nodes-manager.js +30 -21
  234. package/dist/src/project-graph/utils/project-configuration/source-maps.d.ts +12 -5
  235. package/dist/src/project-graph/utils/project-configuration/source-maps.js +21 -7
  236. package/dist/src/project-graph/utils/project-configuration/target-defaults.d.ts +1 -1
  237. package/dist/src/project-graph/utils/project-configuration/target-defaults.js +26 -27
  238. package/dist/src/project-graph/utils/project-configuration/target-merging.js +50 -8
  239. package/dist/src/project-graph/utils/project-configuration/target-normalization.js +149 -6
  240. package/dist/src/project-graph/utils/project-configuration/utils.d.ts +15 -0
  241. package/dist/src/project-graph/utils/project-configuration/utils.js +42 -6
  242. package/dist/src/project-graph/utils/project-configuration-utils.d.ts +15 -12
  243. package/dist/src/project-graph/utils/project-configuration-utils.js +79 -99
  244. package/dist/src/tasks-runner/is-tui-enabled.js +3 -1
  245. package/dist/src/tasks-runner/life-cycle.d.ts +2 -2
  246. package/dist/src/tasks-runner/life-cycle.js +2 -2
  247. package/dist/src/tasks-runner/life-cycles/performance-report.d.ts +12 -0
  248. package/dist/src/tasks-runner/life-cycles/performance-report.js +62 -3
  249. package/dist/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.d.ts +26 -1
  250. package/dist/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +99 -5
  251. package/dist/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +26 -0
  252. package/dist/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +113 -17
  253. package/dist/src/tasks-runner/pseudo-terminal.d.ts +17 -3
  254. package/dist/src/tasks-runner/pseudo-terminal.js +22 -10
  255. package/dist/src/tasks-runner/run-command.js +28 -35
  256. package/dist/src/tasks-runner/running-tasks/batch-process.d.ts +55 -0
  257. package/dist/src/tasks-runner/running-tasks/batch-process.js +161 -8
  258. package/dist/src/tasks-runner/task-env.d.ts +9 -0
  259. package/dist/src/tasks-runner/task-env.js +31 -4
  260. package/dist/src/tasks-runner/task-orchestrator.d.ts +72 -1
  261. package/dist/src/tasks-runner/task-orchestrator.js +182 -18
  262. package/dist/src/tasks-runner/utils.js +2 -6
  263. package/dist/src/utils/acknowledge-build-scripts.js +7 -5
  264. package/dist/src/utils/analytics-enabled.d.ts +7 -0
  265. package/dist/src/utils/analytics-enabled.js +11 -0
  266. package/dist/src/utils/analytics-prompt.d.ts +0 -6
  267. package/dist/src/utils/analytics-prompt.js +4 -58
  268. package/dist/src/utils/assert-workspace-validity.js +7 -2
  269. package/dist/src/utils/catalog/bun-manager-utils.d.ts +8 -0
  270. package/dist/src/utils/catalog/bun-manager-utils.js +174 -0
  271. package/dist/src/utils/catalog/bun-manager.d.ts +28 -0
  272. package/dist/src/utils/catalog/bun-manager.js +130 -0
  273. package/dist/src/utils/catalog/index.d.ts +1 -1
  274. package/dist/src/utils/catalog/index.js +1 -1
  275. package/dist/src/utils/catalog/manager-factory.js +3 -0
  276. package/dist/src/utils/catalog/manager-utils.d.ts +8 -1
  277. package/dist/src/utils/catalog/manager-utils.js +9 -4
  278. package/dist/src/utils/catalog/manager.d.ts +13 -1
  279. package/dist/src/utils/catalog/manager.js +30 -0
  280. package/dist/src/utils/catalog/pnpm-manager.d.ts +2 -1
  281. package/dist/src/utils/catalog/pnpm-manager.js +3 -0
  282. package/dist/src/utils/catalog/types.d.ts +4 -0
  283. package/dist/src/utils/catalog/yarn-manager.d.ts +6 -2
  284. package/dist/src/utils/catalog/yarn-manager.js +23 -32
  285. package/dist/src/utils/child-process.d.ts +31 -1
  286. package/dist/src/utils/child-process.js +103 -0
  287. package/dist/src/utils/chunkify.d.ts +7 -1
  288. package/dist/src/utils/chunkify.js +10 -3
  289. package/dist/src/utils/exit-codes.d.ts +9 -0
  290. package/dist/src/utils/exit-codes.js +19 -0
  291. package/dist/src/utils/fileutils.d.ts +5 -0
  292. package/dist/src/utils/fileutils.js +7 -2
  293. package/dist/src/utils/formatters/index.d.ts +13 -0
  294. package/dist/src/utils/formatters/index.js +74 -0
  295. package/dist/src/utils/formatters/oxfmt.d.ts +32 -0
  296. package/dist/src/utils/formatters/oxfmt.js +764 -0
  297. package/dist/src/utils/formatters/prettier.d.ts +26 -0
  298. package/dist/src/utils/formatters/prettier.js +201 -0
  299. package/dist/src/utils/formatters/shared.d.ts +5 -0
  300. package/dist/src/utils/formatters/shared.js +8 -0
  301. package/dist/src/utils/git-utils.d.ts +48 -2
  302. package/dist/src/utils/git-utils.js +220 -14
  303. package/dist/src/utils/git-worktrees.d.ts +30 -0
  304. package/dist/src/utils/git-worktrees.js +212 -0
  305. package/dist/src/utils/ignore.d.ts +170 -1
  306. package/dist/src/utils/ignore.js +263 -11
  307. package/dist/src/utils/long-running-target.d.ts +10 -0
  308. package/dist/src/utils/long-running-target.js +19 -0
  309. package/dist/src/utils/min-release-age/behavior/bun.js +7 -11
  310. package/dist/src/utils/min-release-age/behavior/npm.js +5 -2
  311. package/dist/src/utils/min-release-age/packument.js +1 -1
  312. package/dist/src/utils/nx-console-prompt.js +3 -6
  313. package/dist/src/utils/nx-tmp-dir.d.ts +18 -0
  314. package/dist/src/utils/nx-tmp-dir.js +40 -0
  315. package/dist/src/utils/output.d.ts +153 -0
  316. package/dist/src/utils/output.js +289 -5
  317. package/dist/src/utils/owned-private-dir.d.ts +132 -0
  318. package/dist/src/utils/owned-private-dir.js +323 -0
  319. package/dist/src/utils/package-json.d.ts +2 -0
  320. package/dist/src/utils/package-json.js +11 -7
  321. package/dist/src/utils/package-manager-config/bunfig.d.ts +14 -0
  322. package/dist/src/utils/package-manager-config/bunfig.js +49 -0
  323. package/dist/src/utils/package-manager-config/npmrc.d.ts +23 -0
  324. package/dist/src/utils/package-manager-config/npmrc.js +124 -0
  325. package/dist/src/utils/package-manager-config/pnpm-config.d.ts +17 -0
  326. package/dist/src/utils/package-manager-config/pnpm-config.js +60 -0
  327. package/dist/src/utils/package-manager.d.ts +23 -2
  328. package/dist/src/utils/package-manager.js +262 -42
  329. package/dist/src/utils/params.d.ts +7 -1
  330. package/dist/src/utils/params.js +64 -6
  331. package/dist/src/utils/plugins/core-plugins.js +4 -0
  332. package/dist/src/utils/prompt-helpers.d.ts +53 -0
  333. package/dist/src/utils/prompt-helpers.js +111 -0
  334. package/dist/src/utils/provenance.js +6 -14
  335. package/dist/src/utils/registry-config/bun.d.ts +2 -0
  336. package/dist/src/utils/registry-config/bun.js +257 -0
  337. package/dist/src/utils/registry-config/index.d.ts +13 -0
  338. package/dist/src/utils/registry-config/index.js +102 -0
  339. package/dist/src/utils/registry-config/pnpm.d.ts +2 -0
  340. package/dist/src/utils/registry-config/pnpm.js +1551 -0
  341. package/dist/src/utils/registry-config/utils.d.ts +195 -0
  342. package/dist/src/utils/registry-config/utils.js +496 -0
  343. package/dist/src/utils/registry-config/yarn-berry.d.ts +2 -0
  344. package/dist/src/utils/registry-config/yarn-berry.js +612 -0
  345. package/dist/src/utils/registry-config/yarn-classic.d.ts +2 -0
  346. package/dist/src/utils/registry-config/yarn-classic.js +1001 -0
  347. package/dist/src/utils/safe-spawn.d.ts +24 -0
  348. package/dist/src/utils/safe-spawn.js +104 -0
  349. package/dist/src/utils/shell-quoting.d.ts +15 -0
  350. package/dist/src/utils/shell-quoting.js +35 -0
  351. package/dist/src/utils/wait-for-socket-connection.d.ts +11 -0
  352. package/dist/src/utils/wait-for-socket-connection.js +14 -8
  353. package/dist/src/utils/workspace-id.d.ts +20 -0
  354. package/dist/src/utils/workspace-id.js +54 -0
  355. package/dist/src/utils/write-formatted-json-file.d.ts +3 -2
  356. package/dist/src/utils/write-formatted-json-file.js +5 -4
  357. package/migrations.json +6 -0
  358. package/package.json +29 -19
  359. package/dist/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +0 -19
  360. package/dist/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +0 -81
  361. package/dist/src/utils/is-using-prettier.d.ts +0 -3
  362. package/dist/src/utils/is-using-prettier.js +0 -62
  363. package/dist/src/utils/min-release-age/npmrc.d.ts +0 -15
  364. package/dist/src/utils/min-release-age/npmrc.js +0 -45
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Target names the pre-23 `longRunningTask` guard excluded from caching. Shared
3
+ * between that guard and the deprecated target-name cache fallback so the two
4
+ * cannot drift apart.
5
+ *
6
+ * The copy in `migrations/update-23-2-0/set-cache-on-executor-target-defaults.ts`
7
+ * deliberately does not use this: a migration's decision has to freeze at the
8
+ * semantics it shipped with.
9
+ */
10
+ export declare function isLongRunningTargetName(targetName: string): boolean;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLongRunningTargetName = isLongRunningTargetName;
4
+ /**
5
+ * Target names the pre-23 `longRunningTask` guard excluded from caching. Shared
6
+ * between that guard and the deprecated target-name cache fallback so the two
7
+ * cannot drift apart.
8
+ *
9
+ * The copy in `migrations/update-23-2-0/set-cache-on-executor-target-defaults.ts`
10
+ * deliberately does not use this: a migration's decision has to freeze at the
11
+ * semantics it shipped with.
12
+ */
13
+ function isLongRunningTargetName(targetName) {
14
+ return (targetName.endsWith(':watch') ||
15
+ targetName.endsWith('-watch') ||
16
+ targetName === 'serve' ||
17
+ targetName === 'dev' ||
18
+ targetName === 'start');
19
+ }
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readBunPolicy = readBunPolicy;
4
4
  exports.pickBunVersion = pickBunVersion;
5
- const fs_1 = require("fs");
6
5
  const path_1 = require("path");
7
6
  const semver_1 = require("semver");
8
- const smol_toml_1 = require("smol-toml");
7
+ const bunfig_1 = require("../../package-manager-config/bunfig");
9
8
  const constants_1 = require("../constants");
10
9
  const errors_1 = require("../errors");
11
10
  const pick_1 = require("../pick");
@@ -82,23 +81,20 @@ function readLocalBunInstall(root) {
82
81
  return readBunInstall((0, path_1.join)(root, 'bunfig.toml'));
83
82
  }
84
83
  function readGlobalBunInstall() {
85
- const xdg = process.env.XDG_CONFIG_HOME;
86
- const base = xdg || process.env.HOME;
84
+ const base = (0, bunfig_1.getBunGlobalConfigBase)(process.env);
87
85
  if (!base) {
88
86
  return {};
89
87
  }
90
88
  return readBunInstall((0, path_1.join)(base, '.bunfig.toml'));
91
89
  }
92
90
  function readBunInstall(path) {
93
- if (!(0, fs_1.existsSync)(path)) {
91
+ const parsed = (0, bunfig_1.readBunfigRaw)(path);
92
+ // bun skips a bunfig it cannot read and resolves on, so its settings do not
93
+ // apply. Only a parse failure kills the install.
94
+ if (parsed === null || parsed === 'unreadable') {
94
95
  return {};
95
96
  }
96
- let parsed;
97
- try {
98
- parsed = (0, smol_toml_1.parse)((0, fs_1.readFileSync)(path, 'utf-8'));
99
- }
100
- catch {
101
- // Unparseable bunfig makes bun's install die; treat as a hard error.
97
+ if (parsed === 'invalid') {
102
98
  return 'error';
103
99
  }
104
100
  const install = parsed.install;
@@ -8,7 +8,7 @@ const path_1 = require("path");
8
8
  const semver_1 = require("semver");
9
9
  const constants_1 = require("../constants");
10
10
  const errors_1 = require("../errors");
11
- const npmrc_1 = require("../npmrc");
11
+ const npmrc_1 = require("../../package-manager-config/npmrc");
12
12
  const pick_1 = require("../pick");
13
13
  const RANK_UNKNOWN = 0; // global/builtin/default - not detectable here
14
14
  const RANK_USER = 1;
@@ -116,7 +116,10 @@ function detectSurfaces(root, env) {
116
116
  }
117
117
  function readNpmrcKeys(override, fallback) {
118
118
  const present = { minReleaseAge: false, before: false };
119
- for (const { key } of (0, npmrc_1.readNpmrcEntries)(override ?? fallback) ?? []) {
119
+ // npm silently treats an .npmrc it cannot read as absent, so both non-array
120
+ // states scan nothing.
121
+ const entries = (0, npmrc_1.readNpmrcEntries)(override ?? fallback);
122
+ for (const { key } of Array.isArray(entries) ? entries : []) {
120
123
  if (key === 'min-release-age') {
121
124
  present.minReleaseAge = true;
122
125
  }
@@ -16,7 +16,7 @@ function toArray(value) {
16
16
  * `dist-tags` carries a hyphen.
17
17
  */
18
18
  async function fetchRegistryMetadata(pkg) {
19
- const raw = await (0, package_manager_1.packageRegistryView)(pkg, '', '--json');
19
+ const raw = await (0, package_manager_1.packageRegistryView)(pkg, '', ['--json']);
20
20
  const parsed = JSON.parse(raw);
21
21
  const time = parsed.time ?? null;
22
22
  if (time) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ensureNxConsoleInstalled = ensureNxConsoleInstalled;
4
- const enquirer_1 = require("enquirer");
4
+ const prompt_helpers_1 = require("./prompt-helpers");
5
5
  const os_1 = require("os");
6
6
  const output_1 = require("./output");
7
7
  const native_1 = require("../native");
@@ -50,13 +50,10 @@ async function promptForNxConsoleInstallation() {
50
50
  '- Explore your workspace visually',
51
51
  ],
52
52
  });
53
- const { shouldInstallNxConsole } = await (0, enquirer_1.prompt)({
54
- type: 'confirm',
55
- name: 'shouldInstallNxConsole',
53
+ return await (0, prompt_helpers_1.confirmationPrompt)({
56
54
  message: 'Install Nx Console? (you can uninstall anytime)',
57
- initial: true,
55
+ onCancel: () => false,
58
56
  });
59
- return shouldInstallNxConsole;
60
57
  }
61
58
  catch (error) {
62
59
  return false;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Stable root for Nx runtime artifacts that need an OS tmp location. On POSIX a
3
+ * literal `/tmp`, not `os.tmpdir()`, which honours `$TMPDIR` — per-user on
4
+ * macOS, rewritten by sandboxes, stripped from the daemon env, so client and
5
+ * daemon would disagree. Windows has no `/tmp`, and `%TMP%` is already per-user
6
+ * and stable, so it keeps `os.tmpdir()`.
7
+ *
8
+ * Consumed by the native binding loader, so keep this file limited to local
9
+ * helpers that themselves use Node builtins only.
10
+ */
11
+ export declare const NX_TMP_DIR: string;
12
+ /**
13
+ * Owner-only runtime root for the current user. No user segment on Windows —
14
+ * `%TMP%` is already per-account, and the segment would only cost path length.
15
+ */
16
+ export declare const NX_USER_TMP_DIR: string;
17
+ /** Runtime root under the user's home, used when the shared container cannot be established. */
18
+ export declare const NX_HOME_TMP_DIR: string;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NX_HOME_TMP_DIR = exports.NX_USER_TMP_DIR = exports.NX_TMP_DIR = void 0;
4
+ const node_os_1 = require("node:os");
5
+ const node_path_1 = require("node:path");
6
+ const owned_private_dir_1 = require("./owned-private-dir");
7
+ /**
8
+ * Stable root for Nx runtime artifacts that need an OS tmp location. On POSIX a
9
+ * literal `/tmp`, not `os.tmpdir()`, which honours `$TMPDIR` — per-user on
10
+ * macOS, rewritten by sandboxes, stripped from the daemon env, so client and
11
+ * daemon would disagree. Windows has no `/tmp`, and `%TMP%` is already per-user
12
+ * and stable, so it keeps `os.tmpdir()`.
13
+ *
14
+ * Consumed by the native binding loader, so keep this file limited to local
15
+ * helpers that themselves use Node builtins only.
16
+ */
17
+ exports.NX_TMP_DIR = (0, node_os_1.platform)() === 'win32' ? (0, node_path_1.join)((0, node_os_1.tmpdir)(), '.nx') : '/tmp/.nx';
18
+ /**
19
+ * Owner-only runtime root for the current user. No user segment on Windows —
20
+ * `%TMP%` is already per-account, and the segment would only cost path length.
21
+ */
22
+ exports.NX_USER_TMP_DIR = (0, node_os_1.platform)() === 'win32' ? exports.NX_TMP_DIR : (0, node_path_1.join)(exports.NX_TMP_DIR, (0, owned_private_dir_1.getUserSegment)());
23
+ /** Runtime root under the user's home, used when the shared container cannot be established. */
24
+ exports.NX_HOME_TMP_DIR = resolveHomeTmpDir();
25
+ /**
26
+ * Absolute, not merely non-empty: a relative `$HOME` would make `join` return
27
+ * `.nx`, putting sockets under the cwd and aiming `removeSocketDir`'s recursive
28
+ * delete at it. A rootless container has no `$HOME` and no passwd entry, so
29
+ * `homedir()` throws or returns empty — caught here because this runs at module
30
+ * scope and the native binding loader imports this file.
31
+ */
32
+ function resolveHomeTmpDir() {
33
+ try {
34
+ const home = (0, node_os_1.homedir)();
35
+ return home && (0, node_path_1.isAbsolute)(home) ? (0, node_path_1.join)(home, '.nx') : undefined;
36
+ }
37
+ catch {
38
+ return undefined;
39
+ }
40
+ }
@@ -1,5 +1,65 @@
1
1
  import { WriteStream } from 'tty';
2
2
  import type { TaskStatus } from '../tasks-runner/tasks-runner';
3
+ /**
4
+ * The statuses whose output can be collapsed to a single line: the task did the
5
+ * work, or the cache stood in for it.
6
+ */
7
+ export type CollapsibleTaskStatus = Extract<TaskStatus, 'success' | 'local-cache' | 'local-cache-kept-existing' | 'remote-cache'>;
8
+ /**
9
+ * `static-failures-only` is `static` with successful tasks collapsed to a single
10
+ * line. They select the same life cycle and differ only in what it prints, so
11
+ * everywhere the life cycle is chosen, the TUI is ruled out, or output is
12
+ * routed, the two behave identically.
13
+ */
14
+ export declare function isStaticOutputStyle(outputStyle: string | undefined): boolean;
15
+ /**
16
+ * Whether a run prints every task's output in full rather than collapsing the
17
+ * ones that succeeded. Both static life cycles and the batch renderer have to
18
+ * agree on this, so they read it from here rather than each deriving it.
19
+ *
20
+ * Exactly one style collapses, and it is also what a run that named no style
21
+ * gets. Every other style prints in full because it was asked for explicitly,
22
+ * so none may quietly withhold output. Note the static life cycles serve more
23
+ * styles than the static-sounding ones: `shouldUseDynamicLifeCycle` bails on
24
+ * `isCI()` before it looks at the style at all, so in CI `dynamic` and `tui`
25
+ * land here too. This is written as a deny-list for that reason — a new style
26
+ * prints in full until someone decides otherwise, rather than silently
27
+ * collapsing because an allow-list did not list it.
28
+ *
29
+ * Resolving the absent case here rather than assigning `outputStyle` upstream is
30
+ * deliberate: the value is also read by the orchestrator to decide whether a
31
+ * task streams, and naming the default there stops `shouldStreamOutput` from
32
+ * ever being consulted — including for the continuous tasks that must stream.
33
+ */
34
+ export declare function printsFullTaskOutput(args: {
35
+ verbose?: boolean;
36
+ outputStyle?: string;
37
+ }): boolean;
38
+ /**
39
+ * Whether task output should be wrapped in collapsible log groups. Grouping
40
+ * requires each task's output to be written as one contiguous block, which is
41
+ * why batch mode's implicit streaming backs off when this is on. It does not
42
+ * govern streaming in general — an explicit `--output-style`, the TUI, and
43
+ * long running tasks all still stream.
44
+ */
45
+ export declare function isLogGroupingEnabled(): boolean;
46
+ /**
47
+ * Whether a batch task's output should be held back from the live stream and
48
+ * rendered inside a fold instead. A batch worker writes to stdout/stderr live,
49
+ * so forwarding that copy would put its bytes outside the group and defeat the
50
+ * fold; what is held back is written to a file and rendered by the orchestrator.
51
+ *
52
+ * Note it is the captured file, not each task's `terminalOutput`, that makes
53
+ * this lossless. A worker is free to write bytes it attributes to no task —
54
+ * `@nx/maven`'s exit-code dump, `@nx/gradle`'s configuration phase — and those
55
+ * appear in no `terminalOutput` at all, so the fold has to be able to fall back
56
+ * to the file. See `TaskOrchestrator.printGroupedBatchOutput` for when it does.
57
+ *
58
+ * This is only worth doing when grouping is on and the user has not asked to
59
+ * stream — an explicit stream style (which sets NX_STREAM_OUTPUT) wants the
60
+ * live copy, folds or not.
61
+ */
62
+ export declare function shouldGroupBatchOutput(): boolean;
3
63
  export interface CLIErrorMessageConfig {
4
64
  title: string;
5
65
  bodyLines?: string[];
@@ -48,7 +108,66 @@ declare class CLIOutput {
48
108
  bold: import("picocolors/types").Formatter;
49
109
  underline: import("picocolors/types").Formatter;
50
110
  dim: import("picocolors/types").Formatter;
111
+ /**
112
+ * Whether the terminal is positioned at the start of a line. Task output does
113
+ * not reliably end in a newline, so writers that must begin on a fresh line
114
+ * ask for one via {@link ensureLineStart} rather than guessing.
115
+ *
116
+ * Holding that true means a writer that can leave the cursor mid-line has to
117
+ * be routed through this class or declared to it. The ones that exist today:
118
+ *
119
+ * - This class's own writes, via {@link writeToStream}.
120
+ * - A batch worker's live output, via {@link writeTaskOutputChunk}.
121
+ * - `nx:run-commands`, which is the only executor that runs in the main
122
+ * process (`task-orchestrator.ts` gates that on the executor name), and
123
+ * whose raw writes go through {@link writeTaskOutputChunk} for this reason.
124
+ * Its `addColorAndPrefix` splits on newlines without ever appending one, so
125
+ * its chunks routinely end mid-line.
126
+ * - A pseudo-terminal task, which cannot be routed: the native side writes to
127
+ * this process's stdout from Rust, at arbitrary PTY read boundaries. It
128
+ * declares itself via {@link noteExternalWrite} instead, which is why that
129
+ * exists.
130
+ *
131
+ * Two bypasses are deliberate and safe, both because they re-emit output a
132
+ * whole line at a time via `formatPrefixedLines`, which appends `EOL` to every
133
+ * line it writes: forked task streaming through
134
+ * `NodeChildProcessWithNonDirectOutput`'s `addPrefixTransformer`, and
135
+ * `writePrefixedLines` for a main-process `nx:run-commands` under
136
+ * `NX_PREFIX_OUTPUT`.
137
+ *
138
+ * One bypass is known and is NOT safe. With `NX_NATIVE_COMMAND_RUNNER=false`,
139
+ * `forkProcessLegacy` forks with inherited stdio and yields
140
+ * `NodeChildProcessWithDirectOutput`, whose child writes straight to this
141
+ * process's fd 1 at arbitrary boundaries — unroutable and undeclarable from
142
+ * here. Line tracking is simply wrong on that path; it degrades to the
143
+ * pre-tracking behavior of a glued marker rather than to anything new. Do not
144
+ * read this list as closed: it is what is known, and the way to tell you are
145
+ * adding to it is that you are writing to stdout during a run without going
146
+ * through {@link writeToStream}, {@link writeTaskOutputChunk} or
147
+ * {@link noteExternalWrite}.
148
+ */
149
+ private atLineStart;
51
150
  private writeToStream;
151
+ /**
152
+ * Forwards a chunk of a task's output live, keeping {@link atLineStart}
153
+ * accurate. Batch workers write raw chunks that routinely end mid-line, and a
154
+ * collapsed summary line must not be glued onto one.
155
+ *
156
+ * @internal Not part of the output API plugins may rely on.
157
+ */
158
+ writeTaskOutputChunk(chunk: string | Buffer, stream?: WriteStream): void;
159
+ /**
160
+ * Declares output this class could not route — a pseudo-terminal task's, which
161
+ * the native side writes straight to our stdout — so the next writer needing a
162
+ * fresh line asks for one instead of trusting a stale position.
163
+ *
164
+ * The chunk is inspected rather than assumed mid-line, so output that did end
165
+ * on a line boundary does not cost a blank line. PTY chunks often end in an
166
+ * escape sequence after the newline, and that reads as mid-line, which is the
167
+ * safe direction to be wrong in: a spare newline, never a glued one.
168
+ */
169
+ noteExternalWrite(chunk?: string | Buffer): void;
170
+ private ensureLineStart;
52
171
  overwriteLine(lineText?: string): void;
53
172
  private writeOutputTitle;
54
173
  private writeOptionalOutputBody;
@@ -66,6 +185,40 @@ declare class CLIOutput {
66
185
  logRawLine(message: string): void;
67
186
  logCommand(message: string, taskStatus?: TaskStatus): void;
68
187
  logCommandOutput(message: string, taskStatus: TaskStatus, output: string): void;
188
+ /**
189
+ * A single line standing in for a task's full output, used when the output
190
+ * itself carries no information worth printing (a success, or a cache hit).
191
+ * Statuses that carry a diagnosable body are deliberately not accepted here.
192
+ */
193
+ logCommandSummary(message: string, taskStatus: CollapsibleTaskStatus): void;
194
+ /**
195
+ * A one-line stand-in for a task whose full output is shown elsewhere — used
196
+ * for the tasks of a batch rendered as a single log group rather than per
197
+ * task. `note` points the reader at that group.
198
+ */
199
+ logCommandRedirect(message: string, taskStatus: Exclude<TaskStatus, 'skipped'>, note: string): void;
200
+ /**
201
+ * Prints a batch's combined output as one log group. A batch runner's
202
+ * diagnostics — a crash, a config-phase error, a runner summary — belong to no
203
+ * single task, so the group is labelled with the batch rather than a task.
204
+ *
205
+ * The batch's own output is copied straight from the file it was captured
206
+ * into, so an arbitrarily long log costs a fixed amount of memory here.
207
+ * Nothing is withheld: this rendering is chosen because the whole log was
208
+ * asked for, because no task claimed any of it, or because a task failed or
209
+ * was stopped — in which case repeating claimed bytes beside the per-task
210
+ * blocks is deliberate (see TaskOrchestrator.printGroupedBatchOutput).
211
+ */
212
+ logBatchGroup(label: string, body: {
213
+ capturedOutputPath?: string;
214
+ trailer?: string;
215
+ }, taskStatus: TaskStatus): void;
216
+ /**
217
+ * Copies a file to stdout a chunk at a time. Reading it into one string would
218
+ * reintroduce the unbounded growth that writing it to disk avoided, and a
219
+ * long batch log can exceed the maximum length of a JS string.
220
+ */
221
+ private copyFileToStream;
69
222
  private getCommandWithStatus;
70
223
  private getStatusIcon;
71
224
  private normalizeMessage;