nx 22.5.0 → 22.5.2

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 (64) hide show
  1. package/LICENSE +1 -1
  2. package/bin/init-local.d.ts.map +1 -1
  3. package/bin/init-local.js +1 -0
  4. package/package.json +13 -13
  5. package/src/ai/constants.d.ts +7 -1
  6. package/src/ai/constants.d.ts.map +1 -1
  7. package/src/ai/constants.js +4 -3
  8. package/src/ai/set-up-ai-agents/get-agent-rules.d.ts +5 -1
  9. package/src/ai/set-up-ai-agents/get-agent-rules.d.ts.map +1 -1
  10. package/src/ai/set-up-ai-agents/get-agent-rules.js +4 -3
  11. package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
  12. package/src/ai/set-up-ai-agents/set-up-ai-agents.js +59 -1
  13. package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
  14. package/src/command-line/configure-ai-agents/configure-ai-agents.js +22 -0
  15. package/src/command-line/release/index.d.ts +1 -1
  16. package/src/command-line/release/index.d.ts.map +1 -1
  17. package/src/command-line/release/release.d.ts +1 -1
  18. package/src/command-line/release/release.d.ts.map +1 -1
  19. package/src/core/graph/main.js +1 -1
  20. package/src/daemon/client/client.d.ts.map +1 -1
  21. package/src/daemon/client/client.js +8 -2
  22. package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
  23. package/src/daemon/server/project-graph-incremental-recomputation.js +38 -10
  24. package/src/executors/run-commands/running-tasks.d.ts +1 -1
  25. package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
  26. package/src/executors/run-commands/running-tasks.js +23 -17
  27. package/src/native/nx.wasm32-wasi.wasm +0 -0
  28. package/src/plugins/js/utils/register.d.ts.map +1 -1
  29. package/src/plugins/js/utils/register.js +14 -0
  30. package/src/project-graph/plugins/isolation/enabled.d.ts.map +1 -1
  31. package/src/project-graph/plugins/isolation/enabled.js +4 -1
  32. package/src/project-graph/utils/project-configuration-utils.d.ts.map +1 -1
  33. package/src/project-graph/utils/project-configuration-utils.js +47 -10
  34. package/src/tasks-runner/forked-process-task-runner.d.ts +1 -1
  35. package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
  36. package/src/tasks-runner/forked-process-task-runner.js +4 -9
  37. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts.map +1 -1
  38. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +1 -0
  39. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.d.ts.map +1 -1
  40. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +1 -0
  41. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts.map +1 -1
  42. package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +15 -5
  43. package/src/tasks-runner/pseudo-ipc.d.ts.map +1 -1
  44. package/src/tasks-runner/pseudo-ipc.js +16 -0
  45. package/src/tasks-runner/pseudo-terminal.d.ts +2 -2
  46. package/src/tasks-runner/pseudo-terminal.d.ts.map +1 -1
  47. package/src/tasks-runner/pseudo-terminal.js +7 -5
  48. package/src/tasks-runner/run-command.d.ts.map +1 -1
  49. package/src/tasks-runner/run-command.js +3 -1
  50. package/src/tasks-runner/running-tasks/batch-process.d.ts +2 -1
  51. package/src/tasks-runner/running-tasks/batch-process.d.ts.map +1 -1
  52. package/src/tasks-runner/running-tasks/batch-process.js +5 -4
  53. package/src/tasks-runner/running-tasks/node-child-process.d.ts +2 -1
  54. package/src/tasks-runner/running-tasks/node-child-process.d.ts.map +1 -1
  55. package/src/tasks-runner/running-tasks/node-child-process.js +8 -5
  56. package/src/tasks-runner/task-graph-utils.d.ts.map +1 -1
  57. package/src/tasks-runner/task-graph-utils.js +8 -2
  58. package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
  59. package/src/tasks-runner/task-orchestrator.js +5 -17
  60. package/src/utils/is-sandbox.d.ts +2 -0
  61. package/src/utils/is-sandbox.d.ts.map +1 -0
  62. package/src/utils/is-sandbox.js +9 -0
  63. package/src/utils/output.d.ts.map +1 -1
  64. package/src/utils/output.js +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ const project_graph_1 = require("../../project-graph/project-graph");
17
17
  const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
18
18
  const delayed_spinner_1 = require("../../utils/delayed-spinner");
19
19
  const is_ci_1 = require("../../utils/is-ci");
20
+ const is_sandbox_1 = require("../../utils/is-sandbox");
20
21
  const output_1 = require("../../utils/output");
21
22
  const promised_based_queue_1 = require("../../utils/promised-based-queue");
22
23
  const workspace_root_1 = require("../../utils/workspace-root");
@@ -96,7 +97,7 @@ class DaemonClient {
96
97
  // WASM => no daemon because file watching does not work
97
98
  // version mismatch => no daemon because the installed nx version differs from the running one
98
99
  if ((0, is_nx_version_mismatch_1.isNxVersionMismatch)() ||
99
- (((0, is_ci_1.isCI)() || isDocker()) && env !== 'true') ||
100
+ (((0, is_ci_1.isCI)() || isDocker() || (0, is_sandbox_1.isSandbox)()) && env !== 'true') ||
100
101
  (0, tmp_dir_1.isDaemonDisabled)() ||
101
102
  nxJsonIsNotPresent() ||
102
103
  (useDaemonProcessOption === undefined && env === 'false') ||
@@ -733,7 +734,12 @@ class DaemonClient {
733
734
  }
734
735
  setUpConnection() {
735
736
  const socketPath = this.getSocketPath();
736
- this.socketMessenger = new daemon_socket_messenger_1.DaemonSocketMessenger((0, net_1.connect)(socketPath)).listen((message) => this.handleMessage(message), () => {
737
+ const socket = (0, net_1.connect)(socketPath);
738
+ // Unref the socket so it doesn't keep the process alive. The
739
+ // sendMessageToDaemon method uses a keep-alive setTimeout to
740
+ // explicitly hold the event loop open while awaiting a response.
741
+ socket.unref();
742
+ this.socketMessenger = new daemon_socket_messenger_1.DaemonSocketMessenger(socket).listen((message) => this.handleMessage(message), () => {
737
743
  // it's ok for the daemon to terminate if the client doesn't wait on
738
744
  // any messages from the daemon
739
745
  if (this.queue.isEmpty()) {
@@ -1 +1 @@
1
- {"version":3,"file":"project-graph-incremental-recomputation.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,YAAY,EAIb,MAAM,mCAAmC,CAAC;AAe3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAEL,uBAAuB,EACxB,MAAM,uDAAuD,CAAC;AAS/D,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAClD;AAGD,eAAO,IAAI,gBAAgB,EACvB;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,cAAc,EAAE,yBAAyB,CAAC;CAC3C,GACD,SAAS,CAAC;AACd,eAAO,IAAI,0BAA0B,EAAE,YAAY,GAAG,SAAS,CAAC;AAChE,eAAO,IAAI,mBAAmB,EAAE,YAAY,GAAG,SAAS,CAAC;AAgBzD,wBAAsB,sCAAsC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAgF9F;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,QAgDvB;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,CACR,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,uBAAuB,EACnC,KAAK,EAAE,KAAK,GAAG,IAAI,KAChB,IAAI,QAGV"}
1
+ {"version":3,"file":"project-graph-incremental-recomputation.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/project-graph-incremental-recomputation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,OAAO,EACP,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,YAAY,EAIb,MAAM,mCAAmC,CAAC;AAe3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAEL,uBAAuB,EACxB,MAAM,uDAAuD,CAAC;AAS/D,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAClD;AAGD,eAAO,IAAI,gBAAgB,EACvB;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,cAAc,EAAE,yBAAyB,CAAC;CAC3C,GACD,SAAS,CAAC;AACd,eAAO,IAAI,0BAA0B,EAAE,YAAY,GAAG,SAAS,CAAC;AAChE,eAAO,IAAI,mBAAmB,EAAE,YAAY,GAAG,SAAS,CAAC;AAoBzD,wBAAsB,sCAAsC,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAgF9F;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,QAiDvB;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,CACR,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,uBAAuB,EACnC,KAAK,EAAE,KAAK,GAAG,IAAI,KAChB,IAAI,QAGV"}
@@ -21,13 +21,17 @@ const logger_1 = require("../logger");
21
21
  const error_types_1 = require("../../project-graph/error-types");
22
22
  const get_plugins_1 = require("../../project-graph/plugins/get-plugins");
23
23
  let cachedSerializedProjectGraphPromise;
24
- const collectedUpdatedFiles = new Set();
25
- const collectedDeletedFiles = new Set();
24
+ // Maps file path to a version counter that increments on each modification.
25
+ // This lets us detect mid-flight re-modifications when clearing processed files.
26
+ const collectedUpdatedFiles = new Map();
27
+ const collectedDeletedFiles = new Map();
26
28
  const projectGraphRecomputationListeners = new Set();
27
29
  let storedWorkspaceConfigHash;
28
30
  let waitPeriod = 100;
29
31
  let scheduledTimeoutId;
30
32
  let knownExternalNodes = {};
33
+ let fileChangeCounter = 0;
34
+ let recomputationGeneration = 0;
31
35
  async function getCachedSerializedProjectGraphPromise() {
32
36
  try {
33
37
  let wasScheduled = false;
@@ -91,13 +95,14 @@ async function getCachedSerializedProjectGraphPromise() {
91
95
  }
92
96
  }
93
97
  function addUpdatedAndDeletedFiles(createdFiles, updatedFiles, deletedFiles) {
98
+ ++fileChangeCounter;
94
99
  for (let f of [...createdFiles, ...updatedFiles]) {
95
100
  collectedDeletedFiles.delete(f);
96
- collectedUpdatedFiles.add(f);
101
+ collectedUpdatedFiles.set(f, fileChangeCounter);
97
102
  }
98
103
  for (let f of deletedFiles) {
99
104
  collectedUpdatedFiles.delete(f);
100
- collectedDeletedFiles.add(f);
105
+ collectedDeletedFiles.set(f, fileChangeCounter);
101
106
  }
102
107
  // Notify file change listeners immediately when files change
103
108
  if (createdFiles.length > 0 ||
@@ -153,8 +158,6 @@ async function processCollectedUpdatedAndDeletedFiles({ projects, externalNodes,
153
158
  exports.fileMapWithFiles = await (0, retrieve_workspace_files_1.retrieveWorkspaceFiles)(workspace_root_1.workspaceRoot, projectRootMap);
154
159
  }
155
160
  }
156
- collectedUpdatedFiles.clear();
157
- collectedDeletedFiles.clear();
158
161
  }
159
162
  catch (e) {
160
163
  // this is expected
@@ -170,16 +173,21 @@ async function processCollectedUpdatedAndDeletedFiles({ projects, externalNodes,
170
173
  }
171
174
  }
172
175
  async function processFilesAndCreateAndSerializeProjectGraph(plugins) {
176
+ const myGeneration = ++recomputationGeneration;
177
+ // Helper to check if this recomputation is stale (a newer one has started)
178
+ const isStale = () => myGeneration !== recomputationGeneration;
173
179
  try {
174
180
  perf_hooks_1.performance.mark('hash-watched-changes-start');
175
- const updatedFiles = [...collectedUpdatedFiles.values()];
176
- const deletedFiles = [...collectedDeletedFiles.values()];
181
+ const updatedFilesSnapshot = new Map(collectedUpdatedFiles);
182
+ const deletedFilesSnapshot = new Map(collectedDeletedFiles);
183
+ const updatedFiles = [...updatedFilesSnapshot.keys()];
184
+ const deletedFiles = [...deletedFilesSnapshot.keys()];
177
185
  let updatedFileHashes = (0, workspace_context_1.updateFilesInContext)(workspace_root_1.workspaceRoot, updatedFiles, deletedFiles);
178
186
  perf_hooks_1.performance.mark('hash-watched-changes-end');
179
187
  perf_hooks_1.performance.measure('hash changed files from watcher', 'hash-watched-changes-start', 'hash-watched-changes-end');
180
188
  logger_1.serverLogger.requestLog(`Updated workspace context based on watched changes, recomputing project graph...`);
181
- logger_1.serverLogger.requestLog([...updatedFiles.values()]);
182
- logger_1.serverLogger.requestLog([...deletedFiles]);
189
+ logger_1.serverLogger.requestLog(updatedFiles);
190
+ logger_1.serverLogger.requestLog(deletedFiles);
183
191
  const nxJson = (0, nx_json_1.readNxJson)(workspace_root_1.workspaceRoot);
184
192
  global.NX_GRAPH_CREATION = true;
185
193
  let projectConfigurationsResult;
@@ -196,7 +204,27 @@ async function processFilesAndCreateAndSerializeProjectGraph(plugins) {
196
204
  throw e;
197
205
  }
198
206
  }
207
+ // Early exit if a newer recomputation has started - chain to the newer one
208
+ if (isStale()) {
209
+ return cachedSerializedProjectGraphPromise;
210
+ }
199
211
  await processCollectedUpdatedAndDeletedFiles(projectConfigurationsResult, updatedFileHashes, deletedFiles);
212
+ // Only remove files whose version matches the snapshot — if the version
213
+ // is higher, the file was modified again mid-flight and needs reprocessing.
214
+ for (const [f, version] of updatedFilesSnapshot) {
215
+ if (collectedUpdatedFiles.get(f) === version) {
216
+ collectedUpdatedFiles.delete(f);
217
+ }
218
+ }
219
+ for (const [f, version] of deletedFilesSnapshot) {
220
+ if (collectedDeletedFiles.get(f) === version) {
221
+ collectedDeletedFiles.delete(f);
222
+ }
223
+ }
224
+ // Early exit if a newer recomputation has started - chain to the newer one
225
+ if (isStale()) {
226
+ return cachedSerializedProjectGraphPromise;
227
+ }
200
228
  const g = await createAndSerializeProjectGraph(projectConfigurationsResult);
201
229
  delete global.NX_GRAPH_CREATION;
202
230
  const errors = [...(projectConfigurationsError?.errors ?? [])];
@@ -24,7 +24,7 @@ export declare class ParallelRunningTasks implements RunningTask {
24
24
  export declare class SeriallyRunningTasks implements RunningTask {
25
25
  private readonly tuiEnabled;
26
26
  private readonly taskId;
27
- private terminalOutput;
27
+ private terminalOutputChunks;
28
28
  private currentProcess;
29
29
  private exitCallbacks;
30
30
  private code;
@@ -1 +1 @@
1
- {"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACP,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM;IAajC,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAY/D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAId,GAAG;YAyCH,aAAa;CAsD5B;AAiKD,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"}
1
+ {"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACP,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM;IAejC,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAY/D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAId,GAAG;YAwCH,aAAa;CAsD5B;AAsKD,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"}
@@ -143,7 +143,7 @@ class SeriallyRunningTasks {
143
143
  constructor(options, context, tuiEnabled, taskId) {
144
144
  this.tuiEnabled = tuiEnabled;
145
145
  this.taskId = taskId;
146
- this.terminalOutput = '';
146
+ this.terminalOutputChunks = [];
147
147
  this.currentProcess = null;
148
148
  this.exitCallbacks = [];
149
149
  this.code = 0;
@@ -153,19 +153,21 @@ class SeriallyRunningTasks {
153
153
  this.error = e;
154
154
  })
155
155
  .finally(() => {
156
+ const terminalOutput = this.terminalOutputChunks.join('');
157
+ this.terminalOutputChunks = [];
156
158
  for (const cb of this.exitCallbacks) {
157
- cb(this.code, this.terminalOutput);
159
+ cb(this.code, terminalOutput);
158
160
  }
159
161
  });
160
162
  }
161
163
  getResults() {
162
164
  return new Promise((res, rej) => {
163
- this.onExit((code) => {
165
+ this.onExit((code, terminalOutput) => {
164
166
  if (this.error) {
165
167
  rej(this.error);
166
168
  }
167
169
  else {
168
- res({ code, terminalOutput: this.terminalOutput });
170
+ res({ code, terminalOutput });
169
171
  }
170
172
  });
171
173
  });
@@ -192,15 +194,14 @@ class SeriallyRunningTasks {
192
194
  }
193
195
  });
194
196
  let { code, terminalOutput } = await childProcess.getResults();
195
- this.terminalOutput += terminalOutput;
197
+ this.terminalOutputChunks.push(terminalOutput);
196
198
  this.code = code;
197
199
  if (code !== 0) {
198
200
  const output = `Warning: command "${c.command}" exited with non-zero status code`;
199
- terminalOutput += output;
200
201
  if (options.streamOutput) {
201
202
  process.stderr.write(output);
202
203
  }
203
- this.terminalOutput += terminalOutput;
204
+ this.terminalOutputChunks.push(output);
204
205
  // Stop running commands
205
206
  break;
206
207
  }
@@ -232,14 +233,15 @@ class RunningNodeProcess {
232
233
  constructor(commandConfig, color, cwd, env, readyWhenStatus, streamOutput = true, envFile, taskId) {
233
234
  this.readyWhenStatus = readyWhenStatus;
234
235
  this.taskId = taskId;
235
- this.terminalOutput = '';
236
+ this.terminalOutputChunks = [];
236
237
  this.exitCallbacks = [];
237
238
  this.outputCallbacks = [];
238
239
  env = processEnv(color, cwd, env, envFile);
239
240
  this.command = commandConfig.command;
240
- this.terminalOutput = pc.dim('> ') + commandConfig.command + '\r\n\r\n';
241
+ const header = pc.dim('> ') + commandConfig.command + '\r\n\r\n';
242
+ this.terminalOutputChunks.push(header);
241
243
  if (streamOutput) {
242
- process.stdout.write(this.terminalOutput);
244
+ process.stdout.write(header);
243
245
  }
244
246
  this.childProcess = (0, child_process_1.exec)(commandConfig.command, {
245
247
  maxBuffer: run_commands_impl_1.LARGE_BUFFER,
@@ -292,7 +294,7 @@ class RunningNodeProcess {
292
294
  addListeners(commandConfig, streamOutput) {
293
295
  this.childProcess.stdout.on('data', (data) => {
294
296
  const output = addColorAndPrefix(data, commandConfig);
295
- this.terminalOutput += output;
297
+ this.terminalOutputChunks.push(output);
296
298
  this.triggerOutputListeners(output);
297
299
  if (streamOutput) {
298
300
  process.stdout.write(output);
@@ -300,13 +302,13 @@ class RunningNodeProcess {
300
302
  if (this.readyWhenStatus.length &&
301
303
  isReady(this.readyWhenStatus, data.toString())) {
302
304
  for (const cb of this.exitCallbacks) {
303
- cb(0, this.terminalOutput);
305
+ cb(0, this.terminalOutputChunks.join(''));
304
306
  }
305
307
  }
306
308
  });
307
309
  this.childProcess.stderr.on('data', (err) => {
308
310
  const output = addColorAndPrefix(err, commandConfig);
309
- this.terminalOutput += output;
311
+ this.terminalOutputChunks.push(output);
310
312
  this.triggerOutputListeners(output);
311
313
  if (streamOutput) {
312
314
  process.stderr.write(output);
@@ -314,24 +316,28 @@ class RunningNodeProcess {
314
316
  if (this.readyWhenStatus.length &&
315
317
  isReady(this.readyWhenStatus, err.toString())) {
316
318
  for (const cb of this.exitCallbacks) {
317
- cb(1, this.terminalOutput);
319
+ cb(1, this.terminalOutputChunks.join(''));
318
320
  }
319
321
  }
320
322
  });
321
323
  this.childProcess.on('error', (err) => {
322
324
  const output = addColorAndPrefix(err.toString(), commandConfig);
323
- this.terminalOutput += output;
325
+ this.terminalOutputChunks.push(output);
324
326
  if (streamOutput) {
325
327
  process.stderr.write(output);
326
328
  }
329
+ const terminalOutput = this.terminalOutputChunks.join('');
330
+ this.terminalOutputChunks = [];
327
331
  for (const cb of this.exitCallbacks) {
328
- cb(1, this.terminalOutput);
332
+ cb(1, terminalOutput);
329
333
  }
330
334
  });
331
335
  this.childProcess.on('exit', (code) => {
332
336
  if (!this.readyWhenStatus.length || isReady(this.readyWhenStatus)) {
337
+ const terminalOutput = this.terminalOutputChunks.join('');
338
+ this.terminalOutputChunks = [];
333
339
  for (const cb of this.exitCallbacks) {
334
- cb(code, this.terminalOutput);
340
+ cb(code, terminalOutput);
335
341
  }
336
342
  }
337
343
  });
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/plugins/js/utils/register.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAiElD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;AACpE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,OAAE;AAoDxE,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,eAAe,GAC/B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAcjC;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,eAAe,EAChC,aAAa,CAAC,EAAE,eAAe,EAC/B,YAAY,CAAC,EAAE,OAAO,GACrB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAwBjC;AAiFD,wBAAgB,aAAa,CAC3B,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,OAAO,SALc,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAiFnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,IAAI,CAUZ;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,KAAA,GAAG,MAAM,IAAI,CAuB9D;AA+ED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/plugins/js/utils/register.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkElD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;AACpE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,OAAE;AAoDxE,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,eAAe,GAC/B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAcjC;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,eAAe,EAChC,aAAa,CAAC,EAAE,eAAe,EAC/B,YAAY,CAAC,EAAE,OAAO,GACrB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAwBjC;AAiFD,wBAAgB,aAAa,CAC3B,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,OAAO,SALc,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAiFnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,IAAI,CAUZ;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,KAAA,GAAG,MAAM,IAAI,CAuB9D;AA8FD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CxE"}
@@ -9,6 +9,7 @@ exports.registerTsConfigPaths = registerTsConfigPaths;
9
9
  exports.getTsNodeCompilerOptions = getTsNodeCompilerOptions;
10
10
  const path_1 = require("path");
11
11
  const logger_1 = require("../../../utils/logger");
12
+ const workspace_root_1 = require("../../../utils/workspace-root");
12
13
  const typescript_1 = require("./typescript");
13
14
  const swcNodeInstalled = packageIsInstalled('@swc-node/register');
14
15
  const tsNodeInstalled = packageIsInstalled('ts-node/register');
@@ -308,6 +309,19 @@ function readCompilerOptionsWithSwc(tsConfigPath) {
308
309
  // @swc-node/register filters the files to transpile based on it, but it can be limiting when processing
309
310
  // files not part of the received tsconfig included files (e.g. shared helpers, or config files not in source, etc.).
310
311
  delete compilerOptions.files;
312
+ // @swc-node/register's readDefaultTsConfig auto-sets baseUrl to the
313
+ // dirname of the tsconfig when not explicitly configured. This is incorrect
314
+ // when paths are inherited via "extends" from a parent tsconfig at a
315
+ // different directory level (e.g., tsconfig.base.json at workspace root),
316
+ // because SWC will resolve "./"-prefixed paths relative to the wrong
317
+ // directory. Use the workspace root as baseUrl in that case.
318
+ // baseUrl will not be configured when using newer versions of TypeScript like `tsgo`.
319
+ if (compilerOptions.paths) {
320
+ const { options: tsOptions } = (0, typescript_1.readTsConfigWithoutFiles)(tsConfigPath);
321
+ if (!tsOptions.baseUrl) {
322
+ compilerOptions.baseUrl = workspace_root_1.workspaceRoot;
323
+ }
324
+ }
311
325
  return compilerOptions;
312
326
  }
313
327
  function readCompilerOptionsWithTypescript(tsConfigPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"enabled.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/enabled.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,YAejC"}
1
+ {"version":3,"file":"enabled.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/enabled.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,YAiBjC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIsolationEnabled = isIsolationEnabled;
4
4
  const native_1 = require("../../../native");
5
+ const is_sandbox_1 = require("../../../utils/is-sandbox");
5
6
  function isIsolationEnabled() {
6
7
  // Explicitly enabled, regardless of further conditions
7
8
  if (process.env.NX_ISOLATE_PLUGINS === 'true') {
@@ -11,7 +12,9 @@ function isIsolationEnabled() {
11
12
  // Explicitly disabled
12
13
  process.env.NX_ISOLATE_PLUGINS === 'false' ||
13
14
  // Isolation is disabled on WASM builds currently.
14
- native_1.IS_WASM) {
15
+ native_1.IS_WASM ||
16
+ // Isolation is disabled in sandbox environments (AI agents, etc.)
17
+ (0, is_sandbox_1.isSandbox)()) {
15
18
  return false;
16
19
  }
17
20
  // Default value
@@ -1 +1 @@
1
- {"version":3,"file":"project-configuration-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/utils/project-configuration-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-configuration-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/utils/project-configuration-utils.ts"],"names":[],"mappings":"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"}
@@ -373,21 +373,58 @@ function mergeCreateNodesResults(results, nxJsonConfiguration, workspaceRoot, er
373
373
  perf_hooks_1.performance.measure('createNodes:merge', 'createNodes:merge - start', 'createNodes:merge - end');
374
374
  return { projectRootMap, externalNodes, rootMap, configurationSourceMaps };
375
375
  }
376
+ /**
377
+ * Fast matcher for patterns without negations - uses short-circuit evaluation.
378
+ */
379
+ function matchesSimplePatterns(file, patterns) {
380
+ return patterns.some((pattern) => (0, minimatch_1.minimatch)(file, pattern, { dot: true }));
381
+ }
382
+ /**
383
+ * Full matcher for patterns with negations - processes all patterns sequentially.
384
+ * Patterns starting with '!' are negation patterns that remove files from the match set.
385
+ * Patterns are processed in order, with later patterns overriding earlier ones.
386
+ */
387
+ function matchesNegationPatterns(file, patterns) {
388
+ // If first pattern is negation, start by matching everything
389
+ let isMatch = patterns[0].startsWith('!');
390
+ for (const pattern of patterns) {
391
+ const isNegation = pattern.startsWith('!');
392
+ const actualPattern = isNegation ? pattern.substring(1) : pattern;
393
+ if ((0, minimatch_1.minimatch)(file, actualPattern, { dot: true })) {
394
+ // Last matching pattern wins
395
+ isMatch = !isNegation;
396
+ }
397
+ }
398
+ return isMatch;
399
+ }
400
+ /**
401
+ * Creates a matcher function for the given patterns.
402
+ * @param patterns Array of glob patterns (can include negation patterns starting with '!')
403
+ * @param emptyValue Value to return when patterns array is empty
404
+ * @returns A function that checks if a file matches the patterns
405
+ */
406
+ function createMatcher(patterns, emptyValue) {
407
+ if (!patterns || patterns.length === 0) {
408
+ return () => emptyValue;
409
+ }
410
+ const hasNegationPattern = patterns.some((p) => p.startsWith('!'));
411
+ return hasNegationPattern
412
+ ? (file) => matchesNegationPatterns(file, patterns)
413
+ : (file) => matchesSimplePatterns(file, patterns);
414
+ }
376
415
  function findMatchingConfigFiles(projectFiles, pattern, include, exclude) {
377
416
  const matchingConfigFiles = [];
417
+ // Create matchers once, outside the loop
418
+ // Empty include means include everything, empty exclude means exclude nothing
419
+ const includes = createMatcher(include, true);
420
+ const excludes = createMatcher(exclude, false);
378
421
  for (const file of projectFiles) {
379
422
  if ((0, minimatch_1.minimatch)(file, pattern, { dot: true })) {
380
- if (include) {
381
- const included = include.some((includedPattern) => (0, minimatch_1.minimatch)(file, includedPattern, { dot: true }));
382
- if (!included) {
383
- continue;
384
- }
423
+ if (!includes(file)) {
424
+ continue;
385
425
  }
386
- if (exclude) {
387
- const excluded = exclude.some((excludedPattern) => (0, minimatch_1.minimatch)(file, excludedPattern, { dot: true }));
388
- if (excluded) {
389
- continue;
390
- }
426
+ if (excludes(file)) {
427
+ continue;
391
428
  }
392
429
  matchingConfigFiles.push(file);
393
430
  }
@@ -15,7 +15,7 @@ export declare class ForkedProcessTaskRunner {
15
15
  private pseudoTerminals;
16
16
  constructor(options: DefaultTasksRunnerOptions, tuiEnabled: boolean);
17
17
  init(): Promise<void>;
18
- forkProcessForBatch({ executorName, taskGraph: batchTaskGraph }: Batch, projectGraph: ProjectGraph, fullTaskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<BatchProcess>;
18
+ forkProcessForBatch({ id: batchId, executorName, taskGraph: batchTaskGraph }: Batch, projectGraph: ProjectGraph, fullTaskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<BatchProcess>;
19
19
  cleanUpBatchProcesses(): void;
20
20
  forkProcessLegacy(task: Task, { temporaryOutputPath, streamOutput, pipeOutput, taskGraph, env, }: {
21
21
  temporaryOutputPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"forked-process-task-runner.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/forked-process-task-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAkB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAOzC,qBAAa,uBAAuB;IAShC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,SAAgB;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,eAAe,CAA6B;gBAGjC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,OAAO;IAGhC,IAAI;IAKG,mBAAmB,CAC9B,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,KAAK,EAClD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,YAAY,CAAC;IAiDjB,qBAAqB;IASf,iBAAiB,CAC5B,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,GAAG,GACJ,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC;IAgBV,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,GAAG,EACH,qBAAqB,GACtB,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QACvB,qBAAqB,EAAE,OAAO,CAAC;KAChC,GACA,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC;YAiC5B,oBAAoB;YAYpB,6BAA6B;IAkE3C,OAAO,CAAC,8BAA8B;IAmEtC,OAAO,CAAC,8BAA8B;IA2EtC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;IAO/B,OAAO,CAAC,0BAA0B;CAwCnC"}
1
+ {"version":3,"file":"forked-process-task-runner.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/forked-process-task-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAGL,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAOzC,qBAAa,uBAAuB;IAShC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,SAAgB;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,eAAe,CAA6B;gBAGjC,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,OAAO;IAGhC,IAAI;IAKG,mBAAmB,CAC9B,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,KAAK,EAC/D,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,YAAY,CAAC;IAgDjB,qBAAqB;IASf,iBAAiB,CAC5B,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,GAAG,GACJ,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC;IAgBV,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,EACE,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,GAAG,EACH,qBAAqB,GACtB,EAAE;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QACvB,qBAAqB,EAAE,OAAO,CAAC;KAChC,GACA,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC;YAiC5B,oBAAoB;YAapB,6BAA6B;IA6D3C,OAAO,CAAC,8BAA8B;IAmEtC,OAAO,CAAC,8BAA8B;IA2EtC,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;IAO/B,OAAO,CAAC,0BAA0B;CAwCnC"}
@@ -4,7 +4,6 @@ exports.ForkedProcessTaskRunner = void 0;
4
4
  const child_process_1 = require("child_process");
5
5
  const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
- const native_1 = require("../native");
8
7
  const exit_codes_1 = require("../utils/exit-codes");
9
8
  const output_1 = require("../utils/output");
10
9
  const strip_indents_1 = require("../utils/strip-indents");
@@ -31,7 +30,7 @@ class ForkedProcessTaskRunner {
31
30
  this.setupProcessEventListeners();
32
31
  }
33
32
  // TODO: vsavkin delegate terminal output printing
34
- async forkProcessForBatch({ executorName, taskGraph: batchTaskGraph }, projectGraph, fullTaskGraph, env) {
33
+ async forkProcessForBatch({ id: batchId, executorName, taskGraph: batchTaskGraph }, projectGraph, fullTaskGraph, env) {
35
34
  const count = Object.keys(batchTaskGraph.tasks).length;
36
35
  if (count > 1) {
37
36
  output_1.output.logSingleLine(`Running ${output_1.output.bold(count)} ${output_1.output.bold('tasks')} with ${output_1.output.bold(executorName)}`);
@@ -49,7 +48,6 @@ class ForkedProcessTaskRunner {
49
48
  });
50
49
  // Register batch worker process with all tasks
51
50
  if (p.pid) {
52
- const batchId = `${executorName}-${p.pid}`;
53
51
  const taskIds = Object.keys(batchTaskGraph.tasks);
54
52
  (0, process_metrics_service_1.getProcessMetricsService)().registerBatch(batchId, taskIds, p.pid);
55
53
  }
@@ -121,7 +119,8 @@ class ForkedProcessTaskRunner {
121
119
  }
122
120
  }
123
121
  async createPseudoTerminal() {
124
- const terminal = new pseudo_terminal_1.PseudoTerminal(new native_1.RustPseudoTerminal());
122
+ // Use the helper to ensure shutdown callbacks are registered
123
+ const terminal = (0, pseudo_terminal_1.createPseudoTerminal)(true);
125
124
  await terminal.init();
126
125
  terminal.onMessageFromChildren((message) => {
127
126
  process.send(message);
@@ -154,11 +153,7 @@ class ForkedProcessTaskRunner {
154
153
  isVerbose: this.verbose,
155
154
  });
156
155
  this.processes.add(p);
157
- let terminalOutput = '';
158
- p.onOutput((msg) => {
159
- terminalOutput += msg;
160
- });
161
- p.onExit((code) => {
156
+ p.onExit((code, terminalOutput) => {
162
157
  if (!this.tuiEnabled && code > 128) {
163
158
  process.exit(code);
164
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-run-many-terminal-output-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAU/C;;;;;;;;;GASG;AACH,wBAAsB,kCAAkC,CAAC,EACvD,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CA0cjE"}
1
+ {"version":3,"file":"dynamic-run-many-terminal-output-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAU/C;;;;;;;;;GASG;AACH,wBAAsB,kCAAkC,CAAC,EACvD,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CA2cjE"}
@@ -68,6 +68,7 @@ async function createRunManyDynamicOutputRenderer({ projectNames, tasks, args, o
68
68
  let currentFrame = 0;
69
69
  let renderIntervalId;
70
70
  const moveCursorToStartOfPinnedFooter = () => {
71
+ readline.cursorTo(process.stdout, 0);
71
72
  readline.moveCursor(process.stdout, 0, -pinnedFooterNumLines);
72
73
  };
73
74
  const renderPinnedFooter = (lines, dividerColor = 'cyan') => {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-run-one-terminal-output-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAqB/C;;;;;;;;;GASG;AACH,wBAAsB,iCAAiC,CAAC,EACtD,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAyUjE"}
1
+ {"version":3,"file":"dynamic-run-one-terminal-output-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAqB/C;;;;;;;;;GASG;AACH,wBAAsB,iCAAiC,CAAC,EACtD,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,SAAS,GACV,EAAE;IACD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CA0UjE"}
@@ -63,6 +63,7 @@ async function createRunOneDynamicOutputRenderer({ initiatingProject, tasks, arg
63
63
  let dependentTargetsCurrentFrame = 0;
64
64
  let renderDependentTargetsIntervalId;
65
65
  const moveCursorToStartOfDependentTargetLines = () => {
66
+ readline.cursorTo(process.stdout, 0);
66
67
  readline.moveCursor(process.stdout, 0, -dependentTargetsNumLines);
67
68
  };
68
69
  const renderLines = (lines, dividerColor = 'cyan', renderDivider = true) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tui-summary-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/tui-summary-life-cycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAc/C,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,0BAA0B,GAC3B,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,0BAA0B,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACnD;eAkfkC,SAAS;;EAC3C"}
1
+ {"version":3,"file":"tui-summary-life-cycle.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/life-cycles/tui-summary-life-cycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAc/C,wBAAgB,8BAA8B,CAAC,EAC7C,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,0BAA0B,GAC3B,EAAE;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,0BAA0B,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;CACnD;eA+fkC,SAAS;;EAC3C"}