nx 22.6.0-beta.0 → 22.6.0-beta.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "22.6.0-beta.0",
3
+ "version": "22.6.0-beta.1",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -84,16 +84,16 @@
84
84
  }
85
85
  },
86
86
  "optionalDependencies": {
87
- "@nx/nx-darwin-arm64": "22.6.0-beta.0",
88
- "@nx/nx-darwin-x64": "22.6.0-beta.0",
89
- "@nx/nx-freebsd-x64": "22.6.0-beta.0",
90
- "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.0",
91
- "@nx/nx-linux-arm64-gnu": "22.6.0-beta.0",
92
- "@nx/nx-linux-arm64-musl": "22.6.0-beta.0",
93
- "@nx/nx-linux-x64-gnu": "22.6.0-beta.0",
94
- "@nx/nx-linux-x64-musl": "22.6.0-beta.0",
95
- "@nx/nx-win32-arm64-msvc": "22.6.0-beta.0",
96
- "@nx/nx-win32-x64-msvc": "22.6.0-beta.0"
87
+ "@nx/nx-darwin-arm64": "22.6.0-beta.1",
88
+ "@nx/nx-darwin-x64": "22.6.0-beta.1",
89
+ "@nx/nx-freebsd-x64": "22.6.0-beta.1",
90
+ "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.1",
91
+ "@nx/nx-linux-arm64-gnu": "22.6.0-beta.1",
92
+ "@nx/nx-linux-arm64-musl": "22.6.0-beta.1",
93
+ "@nx/nx-linux-x64-gnu": "22.6.0-beta.1",
94
+ "@nx/nx-linux-x64-musl": "22.6.0-beta.1",
95
+ "@nx/nx-win32-arm64-msvc": "22.6.0-beta.1",
96
+ "@nx/nx-win32-x64-msvc": "22.6.0-beta.1"
97
97
  },
98
98
  "nx-migrations": {
99
99
  "migrations": "./migrations.json",
@@ -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":"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;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"}
@@ -153,11 +153,7 @@ class ForkedProcessTaskRunner {
153
153
  isVerbose: this.verbose,
154
154
  });
155
155
  this.processes.add(p);
156
- let terminalOutput = '';
157
- p.onOutput((msg) => {
158
- terminalOutput += msg;
159
- });
160
- p.onExit((code) => {
156
+ p.onExit((code, terminalOutput) => {
161
157
  if (!this.tuiEnabled && code > 128) {
162
158
  process.exit(code);
163
159
  }
@@ -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"}
@@ -26,18 +26,22 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
26
26
  const failedTasks = new Set();
27
27
  const inProgressTasks = new Set();
28
28
  const stoppedTasks = new Set();
29
+ // Chunks accumulated progressively during task execution
30
+ const taskOutputChunks = {};
31
+ // Finalized output strings set on task completion — read by summary print functions
29
32
  const tasksToTerminalOutputs = {};
30
33
  const tasksToTaskStatus = {};
31
34
  const taskIdsInTheOrderTheyStart = [];
35
+ const getTerminalOutput = (taskId) => tasksToTerminalOutputs[taskId] ?? taskOutputChunks[taskId]?.join('') ?? '';
32
36
  lifeCycle.startTasks = (tasks) => {
33
37
  for (let t of tasks) {
34
- tasksToTerminalOutputs[t.id] ??= '';
38
+ taskOutputChunks[t.id] ??= [];
35
39
  taskIdsInTheOrderTheyStart.push(t.id);
36
40
  inProgressTasks.add(t.id);
37
41
  }
38
42
  };
39
43
  lifeCycle.appendTaskOutput = (taskId, output) => {
40
- tasksToTerminalOutputs[taskId] += output;
44
+ taskOutputChunks[taskId].push(output);
41
45
  };
42
46
  // TODO(@AgentEnder): The following 2 methods should be one but will need more refactoring
43
47
  lifeCycle.printTaskTerminalOutput = (task, taskStatus, output) => {
@@ -57,7 +61,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
57
61
  }
58
62
  };
59
63
  lifeCycle.endTasks = (taskResults) => {
60
- for (const { task, status } of taskResults) {
64
+ for (const { task, status, terminalOutput } of taskResults) {
61
65
  totalCompletedTasks++;
62
66
  inProgressTasks.delete(task.id);
63
67
  switch (status) {
@@ -75,6 +79,12 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
75
79
  failedTasks.add(task.id);
76
80
  break;
77
81
  }
82
+ // Store the final string directly — shares the same reference as
83
+ // TaskResultsLifeCycle, old chunks become GC-eligible
84
+ if (terminalOutput !== undefined) {
85
+ tasksToTerminalOutputs[task.id] = terminalOutput;
86
+ delete taskOutputChunks[task.id];
87
+ }
78
88
  }
79
89
  };
80
90
  lifeCycle.endCommand = () => {
@@ -118,7 +128,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
118
128
  // above the summary, since run-one should print all task results.
119
129
  for (const taskId of taskIdsInTheOrderTheyStart) {
120
130
  const taskStatus = tasksToTaskStatus[taskId];
121
- const terminalOutput = tasksToTerminalOutputs[taskId];
131
+ const terminalOutput = getTerminalOutput(taskId);
122
132
  output_1.output.logCommandOutput(taskId, taskStatus, terminalOutput);
123
133
  }
124
134
  // Print vertical separator
@@ -196,7 +206,7 @@ function getTuiTerminalSummaryLifeCycle({ projectNames, tasks, taskGraph, args,
196
206
  // First pass: Print task outputs and collect checklist lines
197
207
  for (const taskId of sortedTaskIds) {
198
208
  const taskStatus = tasksToTaskStatus[taskId];
199
- const terminalOutput = tasksToTerminalOutputs[taskId];
209
+ const terminalOutput = getTerminalOutput(taskId);
200
210
  // Task Status is null?
201
211
  if (!taskStatus) {
202
212
  output_1.output.logCommandOutput(taskId, taskStatus, terminalOutput);
@@ -36,13 +36,13 @@ export declare class PseudoTtyProcess implements RunningTask {
36
36
  isAlive: boolean;
37
37
  private exitCallbacks;
38
38
  private outputCallbacks;
39
- private terminalOutput;
39
+ private terminalOutputChunks;
40
40
  constructor(rustPseudoTerminal: RustPseudoTerminal, childProcess: ChildProcess);
41
41
  getResults(): Promise<{
42
42
  code: number;
43
43
  terminalOutput: string;
44
44
  }>;
45
- onExit(callback: (code: number) => void): void;
45
+ onExit(callback: (code: number, terminalOutput: string) => void): void;
46
46
  onOutput(callback: (message: string) => void): void;
47
47
  getPid(): number | undefined;
48
48
  kill(s?: NodeJS.Signals): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pseudo-terminal.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/pseudo-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAW,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,wBAAgB,oBAAoB,CAAC,gBAAgB,GAAE,OAAe,kBASrE;AAGD,qBAAa,cAAc;IAcb,OAAO,CAAC,kBAAkB;IAbtC,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,cAAc,CAA+B;IAErD,MAAM,CAAC,WAAW;gBAIE,kBAAkB,EAAE,kBAAkB;IAEpD,IAAI;IAQV,QAAQ,CAAC,IAAI,EAAE,MAAM;IAWrB,UAAU,CACR,OAAO,EAAE,MAAM,EACf,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,GACJ,GAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,GAAG,CAAC,EAAE,OAAO,CAAC;KACV;IAiBF,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IA2BH,qBAAqB,CAAC,OAAO,EAAE,YAAY;IAI3C,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;CAGhE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IASzC,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,YAAY;IATtB,OAAO,UAAQ;IAEf,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,cAAc,CAAM;gBAGnB,kBAAkB,EAAE,kBAAkB,EACrC,YAAY,EAAE,YAAY;IAiB9B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI9C,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAa9B,kBAAkB;CAGnB;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEnD,kBAAkB,EAAE,kBAAkB;IAE7C,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;gBAHV,kBAAkB,EAAE,kBAAkB,EAC7C,aAAa,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,eAAe;IAKpC,IAAI,CAAC,OAAO,EAAE,YAAY;CAG3B"}
1
+ {"version":3,"file":"pseudo-terminal.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/pseudo-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,YAAY,EAAW,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAS3D,wBAAgB,oBAAoB,CAAC,gBAAgB,GAAE,OAAe,kBASrE;AAGD,qBAAa,cAAc;IAcb,OAAO,CAAC,kBAAkB;IAbtC,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,cAAc,CAA+B;IAErD,MAAM,CAAC,WAAW;gBAIE,kBAAkB,EAAE,kBAAkB;IAEpD,IAAI;IAQV,QAAQ,CAAC,IAAI,EAAE,MAAM;IAWrB,UAAU,CACR,OAAO,EAAE,MAAM,EACf,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,GAAG,GACJ,GAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,GAAG,CAAC,EAAE,OAAO,CAAC;KACV;IAiBF,IAAI,CACR,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,EACE,GAAG,EACH,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IA2BH,qBAAqB,CAAC,OAAO,EAAE,YAAY;IAI3C,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;CAGhE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAUzC,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,YAAY;IAVtB,OAAO,UAAQ;IAEf,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,oBAAoB,CAAgB;gBAGnC,kBAAkB,EAAE,kBAAkB,EACrC,YAAY,EAAE,YAAY;IAmB9B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItE,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAa9B,kBAAkB;CAGnB;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEnD,kBAAkB,EAAE,kBAAkB;IAE7C,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;gBAHV,kBAAkB,EAAE,kBAAkB,EAC7C,aAAa,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,eAAe;IAKpC,IAAI,CAAC,OAAO,EAAE,YAAY;CAG3B"}
@@ -79,22 +79,24 @@ class PseudoTtyProcess {
79
79
  this.isAlive = true;
80
80
  this.exitCallbacks = [];
81
81
  this.outputCallbacks = [];
82
- this.terminalOutput = '';
82
+ this.terminalOutputChunks = [];
83
83
  childProcess.onOutput((output) => {
84
- this.terminalOutput += output;
84
+ this.terminalOutputChunks.push(output);
85
85
  this.outputCallbacks.forEach((cb) => cb(output));
86
86
  });
87
87
  childProcess.onExit((message) => {
88
88
  this.isAlive = false;
89
89
  const code = messageToCode(message);
90
90
  childProcess.cleanup();
91
- this.exitCallbacks.forEach((cb) => cb(code));
91
+ const terminalOutput = this.terminalOutputChunks.join('');
92
+ this.terminalOutputChunks = [];
93
+ this.exitCallbacks.forEach((cb) => cb(code, terminalOutput));
92
94
  });
93
95
  }
94
96
  async getResults() {
95
97
  return new Promise((res) => {
96
- this.onExit((code) => {
97
- res({ code, terminalOutput: this.terminalOutput });
98
+ this.onExit((code, terminalOutput) => {
99
+ res({ code, terminalOutput });
98
100
  });
99
101
  });
100
102
  }
@@ -8,7 +8,8 @@ export declare class BatchProcess {
8
8
  private batchResultsCallbacks;
9
9
  private taskResultsCallbacks;
10
10
  private outputCallbacks;
11
- private terminalOutput;
11
+ private terminalOutputChunks;
12
+ private joinedTerminalOutput;
12
13
  constructor(childProcess: ChildProcess, executorName: string);
13
14
  onExit(cb: (code: number) => void): void;
14
15
  onBatchResults(cb: (results: BatchResults) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/batch-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAGL,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,YAAY;IAUrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAVtB,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,qBAAqB,CAA8C;IAC3E,OAAO,CAAC,oBAAoB,CAErB;IACP,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAc;gBAG1B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM;IAqE9B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAIjC,cAAc,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;IAIlD,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI;IAI5D,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBzC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAMnC,iBAAiB,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"batch-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/batch-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAGL,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,YAAY;IAWrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAXtB,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,qBAAqB,CAA8C;IAC3E,OAAO,CAAC,oBAAoB,CAErB;IACP,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAqB;gBAGvC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM;IAqE9B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAIjC,cAAc,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI;IAIlD,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI;IAI5D,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBzC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;IAMnC,iBAAiB,IAAI,MAAM;CAI5B"}
@@ -11,7 +11,7 @@ class BatchProcess {
11
11
  this.batchResultsCallbacks = [];
12
12
  this.taskResultsCallbacks = [];
13
13
  this.outputCallbacks = [];
14
- this.terminalOutput = '';
14
+ this.terminalOutputChunks = [];
15
15
  this.childProcess.on('message', (message) => {
16
16
  switch (message.type) {
17
17
  case batch_messages_1.BatchMessageType.CompleteTask: {
@@ -48,7 +48,7 @@ class BatchProcess {
48
48
  if (this.childProcess.stdout) {
49
49
  this.childProcess.stdout.on('data', (chunk) => {
50
50
  const output = chunk.toString();
51
- this.terminalOutput += output;
51
+ this.terminalOutputChunks.push(output);
52
52
  // Maintain current terminal output behavior
53
53
  process.stdout.write(chunk);
54
54
  // Notify callbacks for TUI
@@ -61,7 +61,7 @@ class BatchProcess {
61
61
  if (this.childProcess.stderr) {
62
62
  this.childProcess.stderr.on('data', (chunk) => {
63
63
  const output = chunk.toString();
64
- this.terminalOutput += output;
64
+ this.terminalOutputChunks.push(output);
65
65
  // Maintain current terminal output behavior
66
66
  process.stderr.write(chunk);
67
67
  // Notify callbacks for TUI
@@ -108,7 +108,8 @@ class BatchProcess {
108
108
  }
109
109
  }
110
110
  getTerminalOutput() {
111
- return this.terminalOutput;
111
+ this.joinedTerminalOutput ??= this.terminalOutputChunks.join('');
112
+ return this.joinedTerminalOutput;
112
113
  }
113
114
  }
114
115
  exports.BatchProcess = BatchProcess;
@@ -2,7 +2,8 @@ import type { ChildProcess, Serializable } from 'child_process';
2
2
  import type { RunningTask } from './running-task';
3
3
  export declare class NodeChildProcessWithNonDirectOutput implements RunningTask {
4
4
  private childProcess;
5
- private terminalOutput;
5
+ private terminalOutputChunks;
6
+ private joinedTerminalOutput;
6
7
  private exitCallbacks;
7
8
  private outputCallbacks;
8
9
  private exitCode;
@@ -1 +1 @@
1
- {"version":3,"file":"node-child-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/node-child-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,mCAAoC,YAAW,WAAW;IASnE,OAAO,CAAC,YAAY;IARtB,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAClC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA2DrE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI;IAIzD,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAcrE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;CAOpC;AA2DD,qBAAa,gCAAiC,YAAW,WAAW;IAQhE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAR7B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAqD;IAE1E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,MAAM;IAqBrC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;IAInD,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,WAAW;IAMX,iBAAiB;IAKjB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;CAOpC"}
1
+ {"version":3,"file":"node-child-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/tasks-runner/running-tasks/node-child-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,mCAAoC,YAAW,WAAW;IAUnE,OAAO,CAAC,YAAY;IATtB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAClC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IA8DrE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI;IAIzD,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAI/B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAerE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;CAOpC;AA2DD,qBAAa,gCAAiC,YAAW,WAAW;IAQhE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAR7B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAqD;IAE1E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGf,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,MAAM;IAqBrC,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMjC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;IAInD,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,WAAW;IAMX,iBAAiB;IAKjB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI;CAOpC"}
@@ -9,7 +9,7 @@ const exit_codes_1 = require("../../utils/exit-codes");
9
9
  class NodeChildProcessWithNonDirectOutput {
10
10
  constructor(childProcess, { streamOutput, prefix }) {
11
11
  this.childProcess = childProcess;
12
- this.terminalOutput = '';
12
+ this.terminalOutputChunks = [];
13
13
  this.exitCallbacks = [];
14
14
  this.outputCallbacks = [];
15
15
  if (streamOutput) {
@@ -38,8 +38,11 @@ class NodeChildProcessWithNonDirectOutput {
38
38
  if (code === null)
39
39
  code = (0, exit_codes_1.signalToCode)(signal);
40
40
  this.exitCode = code;
41
+ // Join once and cache before notifying exit callbacks
42
+ this.joinedTerminalOutput = this.terminalOutputChunks.join('');
43
+ this.terminalOutputChunks = [];
41
44
  for (const cb of this.exitCallbacks) {
42
- cb(code, this.terminalOutput);
45
+ cb(code, this.joinedTerminalOutput);
43
46
  }
44
47
  });
45
48
  // Re-emit any messages from the task process
@@ -50,7 +53,7 @@ class NodeChildProcessWithNonDirectOutput {
50
53
  });
51
54
  this.childProcess.stdout.on('data', (chunk) => {
52
55
  const output = chunk.toString();
53
- this.terminalOutput += output;
56
+ this.terminalOutputChunks.push(output);
54
57
  // Stream output to TUI via callbacks
55
58
  for (const cb of this.outputCallbacks) {
56
59
  cb(output);
@@ -58,7 +61,7 @@ class NodeChildProcessWithNonDirectOutput {
58
61
  });
59
62
  this.childProcess.stderr.on('data', (chunk) => {
60
63
  const output = chunk.toString();
61
- this.terminalOutput += output;
64
+ this.terminalOutputChunks.push(output);
62
65
  // Stream output to TUI via callbacks
63
66
  for (const cb of this.outputCallbacks) {
64
67
  cb(output);
@@ -75,7 +78,7 @@ class NodeChildProcessWithNonDirectOutput {
75
78
  if (typeof this.exitCode === 'number') {
76
79
  return {
77
80
  code: this.exitCode,
78
- terminalOutput: this.terminalOutput,
81
+ terminalOutput: this.joinedTerminalOutput ?? this.terminalOutputChunks.join(''),
79
82
  };
80
83
  }
81
84
  return new Promise((res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -402,23 +402,11 @@ class TaskOrchestrator {
402
402
  }
403
403
  }
404
404
  if (!streamOutput) {
405
- if (runningTask instanceof pseudo_terminal_1.PseudoTtyProcess) {
406
- // TODO: shouldn't this be checking if the task is continuous before writing anything to disk or calling printTaskTerminalOutput?
407
- let terminalOutput = '';
408
- runningTask.onOutput((data) => {
409
- terminalOutput += data;
410
- });
411
- runningTask.onExit((code) => {
412
- this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
413
- (0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
414
- });
415
- }
416
- else {
417
- runningTask.onExit((code, terminalOutput) => {
418
- this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
419
- (0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
420
- });
421
- }
405
+ // TODO: shouldn't this be checking if the task is continuous before writing anything to disk or calling printTaskTerminalOutput?
406
+ runningTask.onExit((code, terminalOutput) => {
407
+ this.options.lifeCycle.printTaskTerminalOutput(task, code === 0 ? 'success' : 'failure', terminalOutput);
408
+ (0, fs_1.writeFileSync)(temporaryOutputPath, terminalOutput);
409
+ });
422
410
  }
423
411
  return runningTask;
424
412
  }