nx 22.5.1 → 22.5.3
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/LICENSE +1 -1
- package/bin/init-local.d.ts.map +1 -1
- package/bin/init-local.js +1 -0
- package/bin/nx.js +6 -0
- package/package.json +14 -14
- package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
- package/src/ai/set-up-ai-agents/set-up-ai-agents.js +1 -0
- package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/configure-ai-agents.js +22 -0
- package/src/command-line/list/command-object.d.ts.map +1 -1
- package/src/command-line/list/command-object.js +6 -1
- package/src/command-line/list/list.d.ts +2 -0
- package/src/command-line/list/list.d.ts.map +1 -1
- package/src/command-line/list/list.js +5 -1
- package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts +5 -0
- package/src/command-line/nx-cloud/apply-locally/apply-locally.d.ts.map +1 -0
- package/src/command-line/nx-cloud/apply-locally/apply-locally.js +13 -0
- package/src/command-line/nx-cloud/apply-locally/command-object.d.ts +3 -0
- package/src/command-line/nx-cloud/apply-locally/command-object.d.ts.map +1 -0
- package/src/command-line/nx-cloud/apply-locally/command-object.js +15 -0
- package/src/command-line/nx-commands.d.ts.map +1 -1
- package/src/command-line/nx-commands.js +9 -7
- package/src/command-line/release/config/config.d.ts.map +1 -1
- package/src/command-line/release/config/config.js +11 -2
- package/src/command-line/release/index.d.ts +1 -1
- package/src/command-line/release/index.d.ts.map +1 -1
- package/src/command-line/release/release.d.ts +1 -1
- package/src/command-line/release/release.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.d.ts +1 -1
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +23 -15
- package/src/command-line/watch/watch.js +4 -4
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +6 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.js +38 -10
- package/src/executors/run-commands/running-tasks.d.ts +1 -1
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +23 -17
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/plugins/js/lock-file/project-graph-pruning.d.ts.map +1 -1
- package/src/plugins/js/lock-file/project-graph-pruning.js +3 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts.map +1 -1
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +6 -3
- package/src/plugins/js/utils/register.d.ts.map +1 -1
- package/src/plugins/js/utils/register.js +14 -0
- package/src/project-graph/plugins/isolation/isolated-plugin.d.ts.map +1 -1
- package/src/project-graph/plugins/isolation/isolated-plugin.js +42 -35
- package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +1 -5
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts.map +1 -1
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +1 -0
- package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.d.ts.map +1 -1
- package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +1 -0
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.d.ts.map +1 -1
- package/src/tasks-runner/life-cycles/tui-summary-life-cycle.js +15 -5
- package/src/tasks-runner/pseudo-terminal.d.ts +2 -2
- package/src/tasks-runner/pseudo-terminal.d.ts.map +1 -1
- package/src/tasks-runner/pseudo-terminal.js +7 -5
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/run-command.js +3 -1
- package/src/tasks-runner/running-tasks/batch-process.d.ts +0 -2
- package/src/tasks-runner/running-tasks/batch-process.d.ts.map +1 -1
- package/src/tasks-runner/running-tasks/batch-process.js +0 -6
- package/src/tasks-runner/running-tasks/node-child-process.d.ts +2 -1
- package/src/tasks-runner/running-tasks/node-child-process.d.ts.map +1 -1
- package/src/tasks-runner/running-tasks/node-child-process.js +8 -5
- package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +5 -17
- package/src/utils/output.d.ts.map +1 -1
- package/src/utils/output.js +6 -1
- package/src/utils/plugins/output.d.ts +29 -1
- package/src/utils/plugins/output.d.ts.map +1 -1
- package/src/utils/plugins/output.js +90 -1
- package/src/utils/plugins/plugin-capabilities.d.ts +1 -0
- package/src/utils/plugins/plugin-capabilities.d.ts.map +1 -1
- package/src/utils/plugins/plugin-capabilities.js +2 -0
- package/src/native/index.d.ts +0 -553
|
@@ -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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
|
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;
|
|
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.
|
|
82
|
+
this.terminalOutputChunks = [];
|
|
83
83
|
childProcess.onOutput((output) => {
|
|
84
|
-
this.
|
|
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.
|
|
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
|
|
98
|
+
this.onExit((code, terminalOutput) => {
|
|
99
|
+
res({ code, terminalOutput });
|
|
98
100
|
});
|
|
99
101
|
});
|
|
100
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/run-command.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EAGpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAa/E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAkBrD,OAAO,EAEL,SAAS,EACT,UAAU,EACV,WAAW,EACZ,MAAM,cAAc,CAAC;AAkBtB,OAAO,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAuWzD,wBAAsB,UAAU,CAC9B,aAAa,EAAE,uBAAuB,EAAE,EACxC,mBAAmB,EAAE,YAAY,EACjC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,EAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,EACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,EAC5E,YAAY,EAAE;IAAE,uBAAuB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAC3E,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAwDrC;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,uBAAuB,EAAE,EACxC,mBAAmB,EAAE,YAAY,EACjC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,EAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,EACd,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,EAC5E,YAAY,EAAE;IAAE,uBAAuB,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAC3E,OAAO,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CA+D3D;AA+UD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"run-command.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/run-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -609,7 +609,9 @@ function setEnvVarsBasedOnArgs(nxArgs, loadDotEnvFiles) {
|
|
|
609
609
|
process.env.NX_STREAM_OUTPUT = 'true';
|
|
610
610
|
process.env.NX_PREFIX_OUTPUT = 'false';
|
|
611
611
|
}
|
|
612
|
-
|
|
612
|
+
// Force streaming only when the TUI is active, so it can capture and
|
|
613
|
+
// render task output. Other output styles manage their own streaming.
|
|
614
|
+
if ((0, is_tui_enabled_1.isTuiEnabled)()) {
|
|
613
615
|
process.env.NX_STREAM_OUTPUT = 'true';
|
|
614
616
|
}
|
|
615
617
|
if (loadDotEnvFiles) {
|
|
@@ -8,7 +8,6 @@ export declare class BatchProcess {
|
|
|
8
8
|
private batchResultsCallbacks;
|
|
9
9
|
private taskResultsCallbacks;
|
|
10
10
|
private outputCallbacks;
|
|
11
|
-
private terminalOutput;
|
|
12
11
|
constructor(childProcess: ChildProcess, executorName: string);
|
|
13
12
|
onExit(cb: (code: number) => void): void;
|
|
14
13
|
onBatchResults(cb: (results: BatchResults) => void): void;
|
|
@@ -17,6 +16,5 @@ export declare class BatchProcess {
|
|
|
17
16
|
getResults(): Promise<BatchResults>;
|
|
18
17
|
send(message: Serializable): void;
|
|
19
18
|
kill(signal?: NodeJS.Signals): void;
|
|
20
|
-
getTerminalOutput(): string;
|
|
21
19
|
}
|
|
22
20
|
//# sourceMappingURL=batch-process.d.ts.map
|
|
@@ -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;
|
|
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;IASrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IATtB,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,qBAAqB,CAA8C;IAC3E,OAAO,CAAC,oBAAoB,CAErB;IACP,OAAO,CAAC,eAAe,CAAuC;gBAGpD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM;IAmE9B,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;CAKpC"}
|
|
@@ -11,7 +11,6 @@ class BatchProcess {
|
|
|
11
11
|
this.batchResultsCallbacks = [];
|
|
12
12
|
this.taskResultsCallbacks = [];
|
|
13
13
|
this.outputCallbacks = [];
|
|
14
|
-
this.terminalOutput = '';
|
|
15
14
|
this.childProcess.on('message', (message) => {
|
|
16
15
|
switch (message.type) {
|
|
17
16
|
case batch_messages_1.BatchMessageType.CompleteTask: {
|
|
@@ -48,7 +47,6 @@ class BatchProcess {
|
|
|
48
47
|
if (this.childProcess.stdout) {
|
|
49
48
|
this.childProcess.stdout.on('data', (chunk) => {
|
|
50
49
|
const output = chunk.toString();
|
|
51
|
-
this.terminalOutput += output;
|
|
52
50
|
// Maintain current terminal output behavior
|
|
53
51
|
process.stdout.write(chunk);
|
|
54
52
|
// Notify callbacks for TUI
|
|
@@ -61,7 +59,6 @@ class BatchProcess {
|
|
|
61
59
|
if (this.childProcess.stderr) {
|
|
62
60
|
this.childProcess.stderr.on('data', (chunk) => {
|
|
63
61
|
const output = chunk.toString();
|
|
64
|
-
this.terminalOutput += output;
|
|
65
62
|
// Maintain current terminal output behavior
|
|
66
63
|
process.stderr.write(chunk);
|
|
67
64
|
// Notify callbacks for TUI
|
|
@@ -107,8 +104,5 @@ class BatchProcess {
|
|
|
107
104
|
this.childProcess.kill(signal);
|
|
108
105
|
}
|
|
109
106
|
}
|
|
110
|
-
getTerminalOutput() {
|
|
111
|
-
return this.terminalOutput;
|
|
112
|
-
}
|
|
113
107
|
}
|
|
114
108
|
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
|
|
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;
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK/D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAiBD,cAAM,SAAS;IACb,OAAO,SAAQ;IACf,aAAa,GAAI,QAAQ,MAAM,YAAqC;IAEpE;;;OAGG;IACH,OAAO,KAAK,kBAAkB,GAM7B;IAED;;;;OAIG;IACH,MAAM;;;;;;;MAOJ;IACF,IAAI,uCAAW;IACf,SAAS,uCAAgB;IACzB,GAAG,uCAAU;IAEb,OAAO,CAAC,aAAa;IAIrB,aAAa,CAAC,QAAQ,GAAE,MAAW;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/utils/output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK/D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAiBD,cAAM,SAAS;IACb,OAAO,SAAQ;IACf,aAAa,GAAI,QAAQ,MAAM,YAAqC;IAEpE;;;OAGG;IACH,OAAO,KAAK,kBAAkB,GAM7B;IAED;;;;OAIG;IACH,MAAM;;;;;;;MAOJ;IACF,IAAI,uCAAW;IACf,SAAS,uCAAgB;IACzB,GAAG,uCAAU;IAEb,OAAO,CAAC,aAAa;IAIrB,aAAa,CAAC,QAAQ,GAAE,MAAW;IAcnC,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,uBAAuB;IAQ/B,aAAa,CAAC,KAAK,QAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAMnD,UAAU;IAIV,oBAAoB,CAAC,KAAK,SAAS;IAMnC,mCAAmC,CAAC,KAAK,SAAS;IAIlD,yBAAyB,CAAC,KAAK,SAAS;IAIxC,OAAO,CAAC,oBAAoB;IAK5B,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,qBAAqB;IAyBvD,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,oBAAoB;IAyBrD,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,oBAAoB;IAa/C,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,uBAAuB;IAarD,aAAa,CAAC,OAAO,EAAE,MAAM;IAW7B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAOnD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IA4BxE,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAuBrB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAc1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CASvB;AAED,eAAO,MAAM,MAAM,WAAkB,CAAC"}
|
package/src/utils/output.js
CHANGED
|
@@ -65,12 +65,17 @@ class CLIOutput {
|
|
|
65
65
|
process.stdout.write(str);
|
|
66
66
|
}
|
|
67
67
|
overwriteLine(lineText = '') {
|
|
68
|
+
// Ensure we always start writing from column 0.
|
|
69
|
+
readline.cursorTo(process.stdout, 0);
|
|
68
70
|
// this replaces the existing text up to the new line length
|
|
69
71
|
process.stdout.write(lineText);
|
|
70
72
|
// clear whatever text might be left to the right of the cursor (happens
|
|
71
73
|
// when existing text was longer than new one)
|
|
72
74
|
readline.clearLine(process.stdout, 1);
|
|
73
|
-
|
|
75
|
+
// Move to the next line and re-anchor to column 0 without relying on
|
|
76
|
+
// terminal newline translation behavior.
|
|
77
|
+
process.stdout.write('\n');
|
|
78
|
+
readline.cursorTo(process.stdout, 0);
|
|
74
79
|
}
|
|
75
80
|
writeOutputTitle({ color, title, }) {
|
|
76
81
|
this.writeToStdOut(`${this.applyNxPrefix(color, title)}${os_1.EOL}`);
|
|
@@ -3,5 +3,33 @@ import { PluginCapabilities } from './plugin-capabilities';
|
|
|
3
3
|
export declare function listPlugins(plugins: Map<string, PluginCapabilities>, title: string): void;
|
|
4
4
|
export declare function listAlsoAvailableCorePlugins(installedPlugins: Map<string, PluginCapabilities>): void;
|
|
5
5
|
export declare function listPowerpackPlugins(): void;
|
|
6
|
-
export declare function listPluginCapabilities(pluginName: string, projects: Record<string, ProjectConfiguration
|
|
6
|
+
export declare function listPluginCapabilities(pluginName: string, projects: Record<string, ProjectConfiguration>, json?: boolean): Promise<void>;
|
|
7
|
+
export declare function formatPluginCapabilitiesAsJson(plugin: PluginCapabilities): {
|
|
8
|
+
name: string;
|
|
9
|
+
path: string;
|
|
10
|
+
generators: Record<string, {
|
|
11
|
+
description: string;
|
|
12
|
+
path: string | null;
|
|
13
|
+
schema: string | null;
|
|
14
|
+
}>;
|
|
15
|
+
executors: Record<string, {
|
|
16
|
+
description: string;
|
|
17
|
+
path: string | null;
|
|
18
|
+
schema: string | null;
|
|
19
|
+
}>;
|
|
20
|
+
projectGraphExtension: boolean;
|
|
21
|
+
projectInference: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare function formatPluginsAsJson(localPlugins: Map<string, PluginCapabilities>, installedPlugins: Map<string, PluginCapabilities>): {
|
|
24
|
+
localWorkspacePlugins: {
|
|
25
|
+
name: string;
|
|
26
|
+
path: string;
|
|
27
|
+
capabilities: string[];
|
|
28
|
+
}[];
|
|
29
|
+
installedPlugins: {
|
|
30
|
+
name: string;
|
|
31
|
+
path: string;
|
|
32
|
+
capabilities: string[];
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
7
35
|
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/utils/plugins/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/utils/plugins/output.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAKhF,OAAO,EACL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,WAAW,CACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACxC,KAAK,EAAE,MAAM,QA8Bd;AAED,wBAAgB,4BAA4B,CAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAChD,IAAI,CAaN;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC9C,IAAI,UAAQ,iBAyGb;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,kBAAkB;;;;qBAGtD,MAAM;cAAQ,MAAM,GAAG,IAAI;gBAAU,MAAM,GAAG,IAAI;;;qBAelD,MAAM;cAAQ,MAAM,GAAG,IAAI;gBAAU,MAAM,GAAG,IAAI;;;;EAsBpE;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;;;;;;;;;;;EA+BlD"}
|
|
@@ -4,6 +4,9 @@ exports.listPlugins = listPlugins;
|
|
|
4
4
|
exports.listAlsoAvailableCorePlugins = listAlsoAvailableCorePlugins;
|
|
5
5
|
exports.listPowerpackPlugins = listPowerpackPlugins;
|
|
6
6
|
exports.listPluginCapabilities = listPluginCapabilities;
|
|
7
|
+
exports.formatPluginCapabilitiesAsJson = formatPluginCapabilitiesAsJson;
|
|
8
|
+
exports.formatPluginsAsJson = formatPluginsAsJson;
|
|
9
|
+
const path_1 = require("path");
|
|
7
10
|
const pc = require("picocolors");
|
|
8
11
|
const output_1 = require("../output");
|
|
9
12
|
const package_manager_1 = require("../package-manager");
|
|
@@ -52,9 +55,13 @@ function listPowerpackPlugins() {
|
|
|
52
55
|
title: `Available Powerpack Plugins: ${powerpackLink}`,
|
|
53
56
|
});
|
|
54
57
|
}
|
|
55
|
-
async function listPluginCapabilities(pluginName, projects) {
|
|
58
|
+
async function listPluginCapabilities(pluginName, projects, json = false) {
|
|
56
59
|
const plugin = await (0, plugin_capabilities_1.getPluginCapabilities)(workspace_root_1.workspaceRoot, pluginName, projects);
|
|
57
60
|
if (!plugin) {
|
|
61
|
+
if (json) {
|
|
62
|
+
console.log(JSON.stringify({ error: `${pluginName} is not installed` }));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
58
65
|
const pmc = (0, package_manager_1.getPackageManagerCommand)();
|
|
59
66
|
output_1.output.note({
|
|
60
67
|
title: `${pluginName} is not currently installed`,
|
|
@@ -73,10 +80,29 @@ async function listPluginCapabilities(pluginName, projects) {
|
|
|
73
80
|
!hasGenerators &&
|
|
74
81
|
!hasProjectGraphExtension &&
|
|
75
82
|
!hasProjectInference) {
|
|
83
|
+
if (json) {
|
|
84
|
+
console.log(JSON.stringify({
|
|
85
|
+
name: plugin.name,
|
|
86
|
+
path: plugin.path,
|
|
87
|
+
generators: {},
|
|
88
|
+
executors: {},
|
|
89
|
+
projectGraphExtension: false,
|
|
90
|
+
projectInference: false,
|
|
91
|
+
}));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
76
94
|
output_1.output.warn({ title: `No capabilities found in ${pluginName}` });
|
|
77
95
|
return;
|
|
78
96
|
}
|
|
97
|
+
if (json) {
|
|
98
|
+
console.log(JSON.stringify(formatPluginCapabilitiesAsJson(plugin), null, 2));
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
79
101
|
const bodyLines = [];
|
|
102
|
+
if (plugin.path) {
|
|
103
|
+
bodyLines.push(`${pc.bold('Path:')} ${plugin.path}`);
|
|
104
|
+
bodyLines.push('');
|
|
105
|
+
}
|
|
80
106
|
if (hasGenerators) {
|
|
81
107
|
bodyLines.push(pc.bold(pc.green('GENERATORS')));
|
|
82
108
|
bodyLines.push('');
|
|
@@ -106,6 +132,69 @@ async function listPluginCapabilities(pluginName, projects) {
|
|
|
106
132
|
bodyLines,
|
|
107
133
|
});
|
|
108
134
|
}
|
|
135
|
+
function formatPluginCapabilitiesAsJson(plugin) {
|
|
136
|
+
const generators = {};
|
|
137
|
+
for (const [name, entry] of Object.entries(plugin.generators ?? {})) {
|
|
138
|
+
generators[name] = {
|
|
139
|
+
description: entry.description ?? '',
|
|
140
|
+
path: resolveCapabilityPath(plugin.path, entry.factory ?? entry.implementation),
|
|
141
|
+
schema: resolveCapabilityPath(plugin.path, entry.schema),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const executors = {};
|
|
145
|
+
for (const [name, entry] of Object.entries(plugin.executors ?? {})) {
|
|
146
|
+
if (typeof entry === 'string') {
|
|
147
|
+
executors[name] = { description: '', path: null, schema: null };
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
executors[name] = {
|
|
151
|
+
description: entry.description ?? '',
|
|
152
|
+
path: resolveCapabilityPath(plugin.path, entry.implementation),
|
|
153
|
+
schema: resolveCapabilityPath(plugin.path, entry.schema),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
name: plugin.name,
|
|
159
|
+
path: plugin.path ?? null,
|
|
160
|
+
generators,
|
|
161
|
+
executors,
|
|
162
|
+
projectGraphExtension: !!plugin.projectGraphExtension,
|
|
163
|
+
projectInference: !!plugin.projectInference,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function formatPluginsAsJson(localPlugins, installedPlugins) {
|
|
167
|
+
function formatPluginSummary(plugin) {
|
|
168
|
+
const capabilities = [];
|
|
169
|
+
if (hasElements(plugin.executors)) {
|
|
170
|
+
capabilities.push('executors');
|
|
171
|
+
}
|
|
172
|
+
if (hasElements(plugin.generators)) {
|
|
173
|
+
capabilities.push('generators');
|
|
174
|
+
}
|
|
175
|
+
if (plugin.projectGraphExtension) {
|
|
176
|
+
capabilities.push('graph-extension');
|
|
177
|
+
}
|
|
178
|
+
if (plugin.projectInference) {
|
|
179
|
+
capabilities.push('project-inference');
|
|
180
|
+
}
|
|
181
|
+
return {
|
|
182
|
+
name: plugin.name,
|
|
183
|
+
path: plugin.path ?? null,
|
|
184
|
+
capabilities,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
localWorkspacePlugins: Array.from(localPlugins.values()).map(formatPluginSummary),
|
|
189
|
+
installedPlugins: Array.from(installedPlugins.values()).map(formatPluginSummary),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function resolveCapabilityPath(pluginPath, relativePath) {
|
|
193
|
+
if (!pluginPath || !relativePath) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
return (0, path_1.join)(pluginPath, relativePath);
|
|
197
|
+
}
|
|
109
198
|
function hasElements(obj) {
|
|
110
199
|
return obj && Object.values(obj).length > 0;
|
|
111
200
|
}
|
|
@@ -2,6 +2,7 @@ import { ExecutorsJsonEntry, GeneratorsJsonEntry } from '../../config/misc-inter
|
|
|
2
2
|
import { ProjectConfiguration } from '../../config/workspace-json-project-json';
|
|
3
3
|
export interface PluginCapabilities {
|
|
4
4
|
name: string;
|
|
5
|
+
path?: string;
|
|
5
6
|
executors?: {
|
|
6
7
|
[name: string]: ExecutorsJsonEntry;
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-capabilities.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/utils/plugins/plugin-capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAQhF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAC;IACnD,UAAU,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmBD,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC9C,0BAA0B,UAAQ,GACjC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"plugin-capabilities.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/utils/plugins/plugin-capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAQhF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;KAAE,CAAC;IACnD,UAAU,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmBD,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC9C,0BAA0B,UAAQ,GACjC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA8DpC"}
|
|
@@ -24,8 +24,10 @@ async function getPluginCapabilities(workspaceRoot, pluginName, projects, includ
|
|
|
24
24
|
const pluginModule = includeRuntimeCapabilities
|
|
25
25
|
? await tryGetModule(packageJson, workspaceRoot)
|
|
26
26
|
: {};
|
|
27
|
+
const pluginPath = (0, path_1.relative)(workspaceRoot, (0, path_1.dirname)(packageJsonPath)) || '.';
|
|
27
28
|
return {
|
|
28
29
|
name: pluginName,
|
|
30
|
+
path: pluginPath,
|
|
29
31
|
generators: {
|
|
30
32
|
...tryGetCollection(packageJsonPath, packageJson.schematics, 'schematics'),
|
|
31
33
|
...tryGetCollection(packageJsonPath, packageJson.generators, 'schematics'),
|