nx 22.5.0-beta.2 → 22.5.0-beta.4
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/README.md +3 -3
- package/package.json +13 -13
- package/src/ai/constants.d.ts +1 -0
- package/src/ai/constants.d.ts.map +1 -1
- package/src/ai/constants.js +4 -0
- 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 +22 -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 +77 -43
- package/src/command-line/nx-commands.js +1 -1
- package/src/command-line/release/changelog/version-plan-filtering.d.ts +6 -3
- package/src/command-line/release/changelog/version-plan-filtering.d.ts.map +1 -1
- package/src/command-line/release/changelog/version-plan-filtering.js +4 -3
- package/src/command-line/release/changelog.d.ts.map +1 -1
- package/src/command-line/release/changelog.js +11 -9
- package/src/command-line/release/utils/git.d.ts +3 -2
- package/src/command-line/release/utils/git.d.ts.map +1 -1
- package/src/command-line/release/utils/git.js +3 -69
- package/src/command-line/release/utils/release-graph.d.ts +10 -0
- package/src/command-line/release/utils/release-graph.d.ts.map +1 -1
- package/src/command-line/release/utils/release-graph.js +32 -1
- package/src/command-line/release/utils/repository-git-tags.d.ts +26 -0
- package/src/command-line/release/utils/repository-git-tags.d.ts.map +1 -0
- package/src/command-line/release/utils/repository-git-tags.js +125 -0
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts +2 -1
- package/src/command-line/release/utils/resolve-semver-specifier.d.ts.map +1 -1
- package/src/command-line/release/utils/resolve-semver-specifier.js +2 -2
- package/src/command-line/release/utils/shared.d.ts +3 -2
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +4 -10
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts +2 -1
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.d.ts.map +1 -1
- package/src/command-line/release/version/derive-specifier-from-conventional-commits.js +2 -2
- package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
- package/src/command-line/release/version/release-group-processor.js +1 -1
- package/src/command-line/run/run-one.d.ts +1 -1
- package/src/command-line/run/run-one.d.ts.map +1 -1
- package/src/command-line/run/run-one.js +12 -9
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.js +4 -4
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +3 -2
- package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
- package/src/daemon/server/shutdown-utils.js +1 -1
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +4 -4
- package/src/hasher/hash-task.d.ts +3 -3
- package/src/hasher/hash-task.d.ts.map +1 -1
- package/src/hasher/hash-task.js +24 -5
- package/src/hasher/native-task-hasher-impl.d.ts +1 -1
- package/src/hasher/native-task-hasher-impl.d.ts.map +1 -1
- package/src/hasher/native-task-hasher-impl.js +2 -2
- package/src/hasher/task-hasher.d.ts +4 -1
- package/src/hasher/task-hasher.d.ts.map +1 -1
- package/src/hasher/task-hasher.js +1 -0
- package/src/native/index.d.ts +18 -2
- package/src/native/nx.wasi.cjs +29 -28
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/project-graph/plugins/get-plugins.d.ts.map +1 -1
- package/src/project-graph/plugins/get-plugins.js +81 -11
- package/src/project-graph/plugins/isolation/plugin-pool.d.ts.map +1 -1
- package/src/project-graph/plugins/isolation/plugin-pool.js +78 -27
- package/src/project-graph/plugins/isolation/plugin-worker.js +33 -17
- package/src/project-graph/project-graph.js +1 -1
- package/src/tasks-runner/cache.d.ts +2 -2
- package/src/tasks-runner/cache.d.ts.map +1 -1
- package/src/tasks-runner/cache.js +14 -11
- package/src/tasks-runner/forked-process-task-runner.d.ts +3 -3
- package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +12 -11
- package/src/tasks-runner/process-metrics-service.d.ts +2 -2
- package/src/tasks-runner/process-metrics-service.d.ts.map +1 -1
- package/src/tasks-runner/process-metrics-service.js +2 -2
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/task-io-service.d.ts +97 -0
- package/src/tasks-runner/task-io-service.d.ts.map +1 -0
- package/src/tasks-runner/task-io-service.js +146 -0
- package/src/utils/consume-messages-from-socket.d.ts.map +1 -1
- package/src/utils/consume-messages-from-socket.js +3 -1
- package/src/utils/promised-based-queue.d.ts +0 -7
- package/src/utils/promised-based-queue.d.ts.map +1 -1
- package/src/utils/promised-based-queue.js +0 -9
|
@@ -790,13 +790,13 @@ class DaemonClient {
|
|
|
790
790
|
this.establishConnection();
|
|
791
791
|
// Resend the pending message if one exists
|
|
792
792
|
if (this.currentMessage && this.currentResolve && this.currentReject) {
|
|
793
|
-
//
|
|
794
|
-
|
|
795
|
-
//
|
|
793
|
+
// Retry the message directly (not through the queue) to resolve the
|
|
794
|
+
// pending promise that the original queue entry is waiting on.
|
|
795
|
+
// This allows the original queue entry to complete naturally.
|
|
796
796
|
const msg = this.currentMessage;
|
|
797
797
|
const res = this.currentResolve;
|
|
798
798
|
const rej = this.currentReject;
|
|
799
|
-
this.
|
|
799
|
+
this.sendMessageToDaemon(msg).then(res, rej);
|
|
800
800
|
}
|
|
801
801
|
}
|
|
802
802
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAwKnD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAwKnD,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACtC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAAa,CAAC;AAuRlD,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAClC,IAAI,EAAE,MAAM,GAAG,IAAI,iBA6BpB;AA+KD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA2GnD"}
|
|
@@ -80,8 +80,9 @@ const server = (0, net_1.createServer)(async (socket) => {
|
|
|
80
80
|
await handleMessage(socket, message);
|
|
81
81
|
}));
|
|
82
82
|
socket.on('error', (e) => {
|
|
83
|
-
logger_1.serverLogger.log(
|
|
84
|
-
|
|
83
|
+
logger_1.serverLogger.log(`Socket error: ${e.message}`);
|
|
84
|
+
(0, file_watcher_sockets_1.removeRegisteredFileWatcherSocket)(socket);
|
|
85
|
+
(0, project_graph_listener_sockets_1.removeRegisteredProjectGraphListenerSocket)(socket);
|
|
85
86
|
});
|
|
86
87
|
socket.on('close', () => {
|
|
87
88
|
numberOfOpenConnections -= 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAkB5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AA6C9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAEtC;AAED,wBAAsB,yCAAyC,CAAC,EAC9D,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAMtC;AAgDD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"shutdown-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/shutdown-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAkB5C,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AA6C9D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAErD;AAED,wBAAgB,kBAAkB,YAEjC;AAID,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,QAE3D;AAED,wBAAgB,wBAAwB,YAEvC;AAED,UAAU,oCAAoC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,wBAAsB,8BAA8B,CAAC,EACnD,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAEtC;AAED,wBAAsB,yCAAyC,CAAC,EAC9D,MAAM,EACN,MAAM,EACN,OAAO,GACR,EAAE,oCAAoC,iBAMtC;AAgDD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK3D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,oBAgBpB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,iBAsBb"}
|
|
@@ -127,7 +127,7 @@ function respondToClient(socket, response, description) {
|
|
|
127
127
|
}
|
|
128
128
|
socket.write(response + consume_messages_from_socket_1.MESSAGE_END_SEQ, (err) => {
|
|
129
129
|
if (err) {
|
|
130
|
-
|
|
130
|
+
logger_1.serverLogger.log(`Socket write error (client likely disconnected): ${err.message}`);
|
|
131
131
|
}
|
|
132
132
|
logger_1.serverLogger.log(`Done responding to the client`, description);
|
|
133
133
|
res(null);
|
|
@@ -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;
|
|
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"}
|
|
@@ -9,7 +9,7 @@ const path_1 = require("path");
|
|
|
9
9
|
const treeKill = require("tree-kill");
|
|
10
10
|
const pseudo_terminal_1 = require("../../tasks-runner/pseudo-terminal");
|
|
11
11
|
const task_env_1 = require("../../tasks-runner/task-env");
|
|
12
|
-
const
|
|
12
|
+
const task_io_service_1 = require("../../tasks-runner/task-io-service");
|
|
13
13
|
const exit_codes_1 = require("../../utils/exit-codes");
|
|
14
14
|
const run_commands_impl_1 = require("./run-commands.impl");
|
|
15
15
|
class ParallelRunningTasks {
|
|
@@ -220,7 +220,7 @@ class SeriallyRunningTasks {
|
|
|
220
220
|
// Skip registration if we're in a forked executor - the fork wrapper already registered
|
|
221
221
|
const pid = pseudoTtyProcess.getPid();
|
|
222
222
|
if (pid && !process.env.NX_FORKED_TASK_EXECUTOR) {
|
|
223
|
-
(0,
|
|
223
|
+
(0, task_io_service_1.registerTaskProcessStart)(taskId, pid);
|
|
224
224
|
}
|
|
225
225
|
return pseudoTtyProcess;
|
|
226
226
|
}
|
|
@@ -250,7 +250,7 @@ class RunningNodeProcess {
|
|
|
250
250
|
// Register process for metrics collection
|
|
251
251
|
// Skip registration if we're in a forked executor - the fork wrapper already registered
|
|
252
252
|
if (this.childProcess.pid && !process.env.NX_FORKED_TASK_EXECUTOR) {
|
|
253
|
-
(0,
|
|
253
|
+
(0, task_io_service_1.registerTaskProcessStart)(taskId, this.childProcess.pid);
|
|
254
254
|
}
|
|
255
255
|
this.addListeners(commandConfig, streamOutput);
|
|
256
256
|
}
|
|
@@ -363,7 +363,7 @@ async function runSingleCommandWithPseudoTerminal(normalized, context, taskId) {
|
|
|
363
363
|
// Skip registration if we're in a forked executor - the fork wrapper already registered
|
|
364
364
|
const pid = pseudoTtyProcess.getPid();
|
|
365
365
|
if (pid && !process.env.NX_FORKED_TASK_EXECUTOR) {
|
|
366
|
-
(0,
|
|
366
|
+
(0, task_io_service_1.registerTaskProcessStart)(taskId, pid);
|
|
367
367
|
}
|
|
368
368
|
registerProcessListener(pseudoTtyProcess, pseudoTerminal);
|
|
369
369
|
return pseudoTtyProcess;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Task, TaskGraph } from '../config/task-graph';
|
|
2
|
-
import { TaskHasher } from './task-hasher';
|
|
3
|
-
import { ProjectGraph } from '../config/project-graph';
|
|
4
1
|
import { NxJsonConfiguration } from '../config/nx-json';
|
|
2
|
+
import { ProjectGraph } from '../config/project-graph';
|
|
3
|
+
import { Task, TaskGraph } from '../config/task-graph';
|
|
5
4
|
import { TaskDetails } from '../native';
|
|
5
|
+
import { TaskHasher } from './task-hasher';
|
|
6
6
|
export declare function getTaskDetails(): TaskDetails | null;
|
|
7
7
|
export declare function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, tasksDetails: TaskDetails | null): Promise<void>;
|
|
8
8
|
export declare function hashTask(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, task: Task, env: NodeJS.ProcessEnv, taskDetails: TaskDetails | null): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-task.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/hash-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hash-task.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/hash-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAc,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAW,WAAW,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AAItD,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CASnD;AAED,wBAAsB,6CAA6C,CACjE,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,WAAW,GAAG,IAAI,iBAsDjC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,iBA4ChC;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,EAAE,WAAW,GAAG,IAAI,iBAqFhC"}
|
package/src/hasher/hash-task.js
CHANGED
|
@@ -4,12 +4,13 @@ exports.getTaskDetails = getTaskDetails;
|
|
|
4
4
|
exports.hashTasksThatDoNotDependOnOutputsOfOtherTasks = hashTasksThatDoNotDependOnOutputsOfOtherTasks;
|
|
5
5
|
exports.hashTask = hashTask;
|
|
6
6
|
exports.hashTasks = hashTasks;
|
|
7
|
-
const utils_1 = require("../tasks-runner/utils");
|
|
8
|
-
const project_graph_1 = require("../project-graph/project-graph");
|
|
9
|
-
const task_hasher_1 = require("./task-hasher");
|
|
10
7
|
const nx_json_1 = require("../config/nx-json");
|
|
11
8
|
const native_1 = require("../native");
|
|
9
|
+
const project_graph_1 = require("../project-graph/project-graph");
|
|
10
|
+
const task_io_service_1 = require("../tasks-runner/task-io-service");
|
|
11
|
+
const utils_1 = require("../tasks-runner/utils");
|
|
12
12
|
const db_connection_1 = require("../utils/db-connection");
|
|
13
|
+
const task_hasher_1 = require("./task-hasher");
|
|
13
14
|
let taskDetails;
|
|
14
15
|
function getTaskDetails() {
|
|
15
16
|
// TODO: Remove when wasm supports sqlite
|
|
@@ -39,9 +40,14 @@ async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGrap
|
|
|
39
40
|
})
|
|
40
41
|
.map((t) => t.task);
|
|
41
42
|
const hashes = await hasher.hashTasks(tasksToHash, taskGraph, process.env);
|
|
43
|
+
const ioService = (0, task_io_service_1.getTaskIOService)();
|
|
42
44
|
for (let i = 0; i < tasksToHash.length; i++) {
|
|
43
45
|
tasksToHash[i].hash = hashes[i].value;
|
|
44
46
|
tasksToHash[i].hashDetails = hashes[i].details;
|
|
47
|
+
// Notify TaskIOService of hash inputs
|
|
48
|
+
if (hashes[i].inputs) {
|
|
49
|
+
ioService.notifyTaskInputs(tasksToHash[i].id, hashes[i].inputs);
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
if (tasksDetails?.recordTaskDetails) {
|
|
47
53
|
tasksDetails.recordTaskDetails(tasksToHash.map((task) => ({
|
|
@@ -58,7 +64,7 @@ async function hashTask(hasher, projectGraph, taskGraph, task, env, taskDetails)
|
|
|
58
64
|
performance.mark('hashSingleTask:start');
|
|
59
65
|
const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
|
|
60
66
|
const projectsConfigurations = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
|
|
61
|
-
const { value, details } = await (customHasher
|
|
67
|
+
const { value, details, inputs } = await (customHasher
|
|
62
68
|
? customHasher(task, {
|
|
63
69
|
hasher,
|
|
64
70
|
projectGraph,
|
|
@@ -71,6 +77,10 @@ async function hashTask(hasher, projectGraph, taskGraph, task, env, taskDetails)
|
|
|
71
77
|
: hasher.hashTask(task, taskGraph, env));
|
|
72
78
|
task.hash = value;
|
|
73
79
|
task.hashDetails = details;
|
|
80
|
+
// Notify TaskIOService of hash inputs
|
|
81
|
+
if (inputs) {
|
|
82
|
+
(0, task_io_service_1.getTaskIOService)().notifyTaskInputs(task.id, inputs);
|
|
83
|
+
}
|
|
74
84
|
if (taskDetails?.recordTaskDetails) {
|
|
75
85
|
taskDetails.recordTaskDetails([
|
|
76
86
|
{
|
|
@@ -102,9 +112,10 @@ async function hashTasks(hasher, projectGraph, taskGraph, env, taskDetails) {
|
|
|
102
112
|
}
|
|
103
113
|
}
|
|
104
114
|
// Hash tasks with custom hashers individually
|
|
115
|
+
const ioService = (0, task_io_service_1.getTaskIOService)();
|
|
105
116
|
const customHasherPromises = tasksWithCustomHashers.map(async (task) => {
|
|
106
117
|
const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph);
|
|
107
|
-
const { value, details } = await customHasher(task, {
|
|
118
|
+
const { value, details, inputs } = await customHasher(task, {
|
|
108
119
|
hasher,
|
|
109
120
|
projectGraph,
|
|
110
121
|
taskGraph,
|
|
@@ -115,6 +126,10 @@ async function hashTasks(hasher, projectGraph, taskGraph, env, taskDetails) {
|
|
|
115
126
|
});
|
|
116
127
|
task.hash = value;
|
|
117
128
|
task.hashDetails = details;
|
|
129
|
+
// Notify TaskIOService of hash inputs
|
|
130
|
+
if (inputs) {
|
|
131
|
+
ioService.notifyTaskInputs(task.id, inputs);
|
|
132
|
+
}
|
|
118
133
|
});
|
|
119
134
|
// Hash tasks without custom hashers in batch
|
|
120
135
|
let batchHashPromise = Promise.resolve();
|
|
@@ -125,6 +140,10 @@ async function hashTasks(hasher, projectGraph, taskGraph, env, taskDetails) {
|
|
|
125
140
|
for (let i = 0; i < tasksWithoutCustomHashers.length; i++) {
|
|
126
141
|
tasksWithoutCustomHashers[i].hash = hashes[i].value;
|
|
127
142
|
tasksWithoutCustomHashers[i].hashDetails = hashes[i].details;
|
|
143
|
+
// Notify TaskIOService of hash inputs
|
|
144
|
+
if (hashes[i].inputs) {
|
|
145
|
+
ioService.notifyTaskInputs(tasksWithoutCustomHashers[i].id, hashes[i].inputs);
|
|
146
|
+
}
|
|
128
147
|
}
|
|
129
148
|
});
|
|
130
149
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NxJsonConfiguration } from '../config/nx-json';
|
|
2
2
|
import { ProjectGraph } from '../config/project-graph';
|
|
3
3
|
import { Task, TaskGraph } from '../config/task-graph';
|
|
4
|
-
import { ExternalObject, FileData, HasherOptions, HashPlanner,
|
|
4
|
+
import { ExternalObject, FileData, HasherOptions, HashPlanner, ProjectGraph as NativeProjectGraph, NxWorkspaceFilesExternals, TaskHasher } from '../native';
|
|
5
5
|
import { PartialHash, TaskHasherImpl } from './task-hasher';
|
|
6
6
|
export declare class NativeTaskHasherImpl implements TaskHasherImpl {
|
|
7
7
|
hasher: TaskHasher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-task-hasher-impl.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/native-task-hasher-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,QAAQ,EACR,aAAa,EACb,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"native-task-hasher-impl.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/native-task-hasher-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,IAAI,kBAAkB,EAClC,yBAAyB,EACzB,UAAU,EAEX,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,qBAAa,oBAAqB,YAAW,cAAc;IACzD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACpD,oBAAoB,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,iBAAiB,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;gBAGjC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,yBAAyB,EACpC,OAAO,EAAE;QAAE,uBAAuB,EAAE,OAAO,CAAA;KAAE;IAkCzC,QAAQ,CACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC;IAOjB,SAAS,CACb,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,EAAE,CAAC;CAQ1B"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NativeTaskHasherImpl = void 0;
|
|
4
4
|
const native_1 = require("../native");
|
|
5
5
|
const transform_objects_1 = require("../native/transform-objects");
|
|
6
|
-
const fileutils_1 = require("../utils/fileutils");
|
|
7
6
|
const typescript_1 = require("../plugins/js/utils/typescript");
|
|
7
|
+
const fileutils_1 = require("../utils/fileutils");
|
|
8
8
|
class NativeTaskHasherImpl {
|
|
9
9
|
constructor(workspaceRoot, nxJson, projectGraph, externals, options) {
|
|
10
10
|
this.projectGraphRef = (0, native_1.transferProjectGraph)((0, transform_objects_1.transformProjectGraphForRust)(projectGraph));
|
|
@@ -21,7 +21,7 @@ class NativeTaskHasherImpl {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
this.planner = new native_1.HashPlanner(nxJson, this.projectGraphRef);
|
|
24
|
-
this.hasher = new native_1.TaskHasher(workspaceRoot, this.projectGraphRef, this.projectFileMapRef, this.allWorkspaceFilesRef, Buffer.from(JSON.stringify(tsconfig)), paths, options);
|
|
24
|
+
this.hasher = new native_1.TaskHasher(workspaceRoot, this.projectGraphRef, this.projectFileMapRef, this.allWorkspaceFilesRef, Buffer.from(JSON.stringify(tsconfig)), paths, rootTsConfigPath, options);
|
|
25
25
|
}
|
|
26
26
|
async hashTask(task, taskGraph, env, cwd) {
|
|
27
27
|
const plans = this.planner.getPlansReference([task.id], taskGraph);
|
|
@@ -3,7 +3,8 @@ import { NxJsonConfiguration } from '../config/nx-json';
|
|
|
3
3
|
import { Task, TaskGraph } from '../config/task-graph';
|
|
4
4
|
import { DaemonClient } from '../daemon/client/client';
|
|
5
5
|
import { InputDefinition } from '../config/workspace-json-project-json';
|
|
6
|
-
import { NxWorkspaceFilesExternals } from '../native';
|
|
6
|
+
import { HashInputs, NxWorkspaceFilesExternals } from '../native';
|
|
7
|
+
export { HashInputs };
|
|
7
8
|
/**
|
|
8
9
|
* A data structure returned by the default hasher.
|
|
9
10
|
*/
|
|
@@ -12,6 +13,7 @@ export interface PartialHash {
|
|
|
12
13
|
details: {
|
|
13
14
|
[name: string]: string;
|
|
14
15
|
};
|
|
16
|
+
inputs: HashInputs;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* A data structure returned by the default hasher.
|
|
@@ -30,6 +32,7 @@ export interface Hash {
|
|
|
30
32
|
[input: string]: string;
|
|
31
33
|
};
|
|
32
34
|
};
|
|
35
|
+
inputs?: HashInputs;
|
|
33
36
|
}
|
|
34
37
|
export interface TaskHasher {
|
|
35
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-hasher.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/task-hasher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAIxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"task-hasher.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/task-hasher.ts"],"names":[],"mappings":"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"}
|
package/src/native/index.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare class NxCache {
|
|
|
74
74
|
cacheDirectory: string
|
|
75
75
|
constructor(workspaceRoot: string, cachePath: string, dbConnection: ExternalObject<NxDbConnection>, linkTaskDetails?: boolean | undefined | null, maxCacheSize?: number | undefined | null)
|
|
76
76
|
get(hash: string): CachedResult | null
|
|
77
|
-
put(hash: string, terminalOutput: string, outputs: Array<string>, code: number):
|
|
77
|
+
put(hash: string, terminalOutput: string, outputs: Array<string>, code: number): Array<string>
|
|
78
78
|
applyRemoteCacheResults(hash: string, result: CachedResult, outputs?: Array<string> | undefined | null): void
|
|
79
79
|
getTaskOutputsPath(hash: string): string
|
|
80
80
|
getCacheSize(): number
|
|
@@ -158,7 +158,7 @@ export declare class TaskDetails {
|
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
export declare class TaskHasher {
|
|
161
|
-
constructor(workspaceRoot: string, projectGraph: ExternalObject<ProjectGraph>, projectFileMap: ExternalObject<ProjectFiles>, allWorkspaceFiles: ExternalObject<Array<FileData>>, tsConfig: Buffer, tsConfigPaths: Record<string, Array<string>>, options?: HasherOptions | undefined | null)
|
|
161
|
+
constructor(workspaceRoot: string, projectGraph: ExternalObject<ProjectGraph>, projectFileMap: ExternalObject<ProjectFiles>, allWorkspaceFiles: ExternalObject<Array<FileData>>, tsConfig: Buffer, tsConfigPaths: Record<string, Array<string>>, rootTsconfigPath?: string | undefined | null, options?: HasherOptions | undefined | null)
|
|
162
162
|
hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string>, cwd: string): NapiDashMap
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -309,6 +309,8 @@ export declare export declare function hashArray(input: Array<string | undefined
|
|
|
309
309
|
export interface HashDetails {
|
|
310
310
|
value: string
|
|
311
311
|
details: Record<string, string>
|
|
312
|
+
/** Structured inputs used for hashing (file patterns, env vars, etc.) */
|
|
313
|
+
inputs: HashInputs
|
|
312
314
|
}
|
|
313
315
|
|
|
314
316
|
export interface HashedTask {
|
|
@@ -324,6 +326,20 @@ export interface HasherOptions {
|
|
|
324
326
|
|
|
325
327
|
export declare export declare function hashFile(file: string): string | null
|
|
326
328
|
|
|
329
|
+
/** NAPI-compatible struct for returning hash inputs to JavaScript */
|
|
330
|
+
export interface HashInputs {
|
|
331
|
+
/** Expanded file paths that were used as inputs */
|
|
332
|
+
files: Array<string>
|
|
333
|
+
/** Runtime commands */
|
|
334
|
+
runtime: Array<string>
|
|
335
|
+
/** Environment variable names */
|
|
336
|
+
environment: Array<string>
|
|
337
|
+
/** Dependent task outputs */
|
|
338
|
+
depOutputs: Array<string>
|
|
339
|
+
/** External dependencies */
|
|
340
|
+
external: Array<string>
|
|
341
|
+
}
|
|
342
|
+
|
|
327
343
|
export interface InputsInput {
|
|
328
344
|
input: string
|
|
329
345
|
dependencies?: boolean
|
package/src/native/nx.wasi.cjs
CHANGED
|
@@ -112,34 +112,35 @@ function __napi_rs_initialize_modules(__napiInstance) {
|
|
|
112
112
|
__napiInstance.exports['__napi_register__HashPlanInspector_impl_32']?.()
|
|
113
113
|
__napiInstance.exports['__napi_register__HashPlanner_struct_33']?.()
|
|
114
114
|
__napiInstance.exports['__napi_register__HashPlanner_impl_37']?.()
|
|
115
|
-
__napiInstance.exports['
|
|
116
|
-
__napiInstance.exports['
|
|
117
|
-
__napiInstance.exports['
|
|
118
|
-
__napiInstance.exports['
|
|
119
|
-
__napiInstance.exports['
|
|
120
|
-
__napiInstance.exports['
|
|
121
|
-
__napiInstance.exports['
|
|
122
|
-
__napiInstance.exports['
|
|
123
|
-
__napiInstance.exports['
|
|
124
|
-
__napiInstance.exports['
|
|
125
|
-
__napiInstance.exports['
|
|
126
|
-
__napiInstance.exports['
|
|
127
|
-
__napiInstance.exports['
|
|
128
|
-
__napiInstance.exports['
|
|
129
|
-
__napiInstance.exports['
|
|
130
|
-
__napiInstance.exports['
|
|
131
|
-
__napiInstance.exports['
|
|
132
|
-
__napiInstance.exports['
|
|
133
|
-
__napiInstance.exports['
|
|
134
|
-
__napiInstance.exports['
|
|
135
|
-
__napiInstance.exports['
|
|
136
|
-
__napiInstance.exports['
|
|
137
|
-
__napiInstance.exports['
|
|
138
|
-
__napiInstance.exports['
|
|
139
|
-
__napiInstance.exports['
|
|
140
|
-
__napiInstance.exports['
|
|
141
|
-
__napiInstance.exports['
|
|
142
|
-
__napiInstance.exports['
|
|
115
|
+
__napiInstance.exports['__napi_register__HashInputs_struct_38']?.()
|
|
116
|
+
__napiInstance.exports['__napi_register__HashDetails_struct_39']?.()
|
|
117
|
+
__napiInstance.exports['__napi_register__HasherOptions_struct_40']?.()
|
|
118
|
+
__napiInstance.exports['__napi_register__TaskHasher_struct_41']?.()
|
|
119
|
+
__napiInstance.exports['__napi_register__TaskHasher_impl_44']?.()
|
|
120
|
+
__napiInstance.exports['__napi_register__Task_struct_45']?.()
|
|
121
|
+
__napiInstance.exports['__napi_register__TaskTarget_struct_46']?.()
|
|
122
|
+
__napiInstance.exports['__napi_register__TaskResult_struct_47']?.()
|
|
123
|
+
__napiInstance.exports['__napi_register__TaskGraph_struct_48']?.()
|
|
124
|
+
__napiInstance.exports['__napi_register__FileData_struct_49']?.()
|
|
125
|
+
__napiInstance.exports['__napi_register__InputsInput_struct_50']?.()
|
|
126
|
+
__napiInstance.exports['__napi_register__FileSetInput_struct_51']?.()
|
|
127
|
+
__napiInstance.exports['__napi_register__RuntimeInput_struct_52']?.()
|
|
128
|
+
__napiInstance.exports['__napi_register__EnvironmentInput_struct_53']?.()
|
|
129
|
+
__napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_54']?.()
|
|
130
|
+
__napiInstance.exports['__napi_register__DepsOutputsInput_struct_55']?.()
|
|
131
|
+
__napiInstance.exports['__napi_register__WorkingDirectoryInput_struct_56']?.()
|
|
132
|
+
__napiInstance.exports['__napi_register__NxJson_struct_57']?.()
|
|
133
|
+
__napiInstance.exports['__napi_register__is_ai_agent_58']?.()
|
|
134
|
+
__napiInstance.exports['__napi_register__FileLock_struct_59']?.()
|
|
135
|
+
__napiInstance.exports['__napi_register__FileLock_impl_61']?.()
|
|
136
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_struct_62']?.()
|
|
137
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_impl_73']?.()
|
|
138
|
+
__napiInstance.exports['__napi_register__WorkspaceErrors_74']?.()
|
|
139
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_75']?.()
|
|
140
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_76']?.()
|
|
141
|
+
__napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_77']?.()
|
|
142
|
+
__napiInstance.exports['__napi_register__FileMap_struct_78']?.()
|
|
143
|
+
__napiInstance.exports['__napi_register____test_only_transfer_file_map_79']?.()
|
|
143
144
|
}
|
|
144
145
|
module.exports.FileLock = __napiModule.exports.FileLock
|
|
145
146
|
module.exports.HashPlanInspector = __napiModule.exports.HashPlanInspector
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-plugins.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/plugins/get-plugins.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAwBzD,wBAAsB,UAAU,CAC9B,IAAI,SAAgB,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-plugins.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/project-graph/plugins/get-plugins.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAwBzD,wBAAsB,UAAU,CAC9B,IAAI,SAAgB,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,CA6C3B;AAaD,wBAAsB,qBAAqB,CAAC,IAAI,SAAgB,6BAyB/D;AAED,wBAAgB,cAAc,SAK7B"}
|
|
@@ -31,10 +31,27 @@ async function getPlugins(root = workspace_root_1.workspaceRoot) {
|
|
|
31
31
|
return loadedPlugins;
|
|
32
32
|
}
|
|
33
33
|
currentPluginsConfigurationHash = pluginsConfigurationHash;
|
|
34
|
-
const
|
|
34
|
+
const results = await Promise.allSettled([
|
|
35
35
|
getOnlyDefaultPlugins(root),
|
|
36
36
|
(pendingPluginsPromise ??= loadSpecifiedNxPlugins(pluginsConfiguration, root)),
|
|
37
37
|
]);
|
|
38
|
+
const errors = [];
|
|
39
|
+
const defaultPlugins = [];
|
|
40
|
+
const specifiedPlugins = [];
|
|
41
|
+
for (let i = 0; i < results.length; i++) {
|
|
42
|
+
const result = results[i];
|
|
43
|
+
if (result.status === 'fulfilled') {
|
|
44
|
+
(i === 0 ? defaultPlugins : specifiedPlugins).push(...result.value);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
errors.push(result.reason instanceof Error
|
|
48
|
+
? result.reason
|
|
49
|
+
: new Error(String(result.reason)));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (errors.length > 0) {
|
|
53
|
+
throw new AggregateError(errors, errors.map((e) => e.message).join('\n'));
|
|
54
|
+
}
|
|
38
55
|
loadedPlugins = specifiedPlugins.concat(defaultPlugins);
|
|
39
56
|
return loadedPlugins;
|
|
40
57
|
}
|
|
@@ -79,16 +96,42 @@ async function loadDefaultNxPlugins(root = workspace_root_1.workspaceRoot) {
|
|
|
79
96
|
performance.mark('loadDefaultNxPlugins:start');
|
|
80
97
|
const plugins = getDefaultPlugins(root);
|
|
81
98
|
const cleanupFunctions = [];
|
|
99
|
+
const results = await Promise.allSettled(plugins.map(async (plugin) => {
|
|
100
|
+
performance.mark(`Load Nx Plugin: ${plugin} - start`);
|
|
101
|
+
const [loadedPluginPromise, cleanup] = await loadingMethod(plugin, root);
|
|
102
|
+
cleanupFunctions.push(cleanup);
|
|
103
|
+
const res = await loadedPluginPromise;
|
|
104
|
+
performance.mark(`Load Nx Plugin: ${plugin} - end`);
|
|
105
|
+
performance.measure(`Load Nx Plugin: ${plugin}`, `Load Nx Plugin: ${plugin} - start`, `Load Nx Plugin: ${plugin} - end`);
|
|
106
|
+
return res;
|
|
107
|
+
}));
|
|
108
|
+
const defaultPluginResults = [];
|
|
109
|
+
const errors = [];
|
|
110
|
+
for (let i = 0; i < results.length; i++) {
|
|
111
|
+
const result = results[i];
|
|
112
|
+
if (result.status === 'fulfilled') {
|
|
113
|
+
defaultPluginResults.push(result.value);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
errors.push({
|
|
117
|
+
pluginName: plugins[i],
|
|
118
|
+
error: result.reason instanceof Error
|
|
119
|
+
? result.reason
|
|
120
|
+
: new Error(String(result.reason)),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (errors.length > 0) {
|
|
125
|
+
for (const fn of cleanupFunctions) {
|
|
126
|
+
fn();
|
|
127
|
+
}
|
|
128
|
+
const errorMessage = errors
|
|
129
|
+
.map((e) => ` - ${e.pluginName}: ${e.error.message}`)
|
|
130
|
+
.join('\n');
|
|
131
|
+
throw new AggregateError(errors.map((e) => e.error), `Failed to load ${errors.length} default Nx plugin(s):\n${errorMessage}`);
|
|
132
|
+
}
|
|
82
133
|
const ret = [
|
|
83
|
-
|
|
84
|
-
performance.mark(`Load Nx Plugin: ${plugin} - start`);
|
|
85
|
-
const [loadedPluginPromise, cleanup] = await loadingMethod(plugin, root);
|
|
86
|
-
cleanupFunctions.push(cleanup);
|
|
87
|
-
const res = await loadedPluginPromise;
|
|
88
|
-
performance.mark(`Load Nx Plugin: ${plugin} - end`);
|
|
89
|
-
performance.measure(`Load Nx Plugin: ${plugin}`, `Load Nx Plugin: ${plugin} - start`, `Load Nx Plugin: ${plugin} - end`);
|
|
90
|
-
return res;
|
|
91
|
-
})),
|
|
134
|
+
defaultPluginResults,
|
|
92
135
|
() => {
|
|
93
136
|
for (const fn of cleanupFunctions) {
|
|
94
137
|
fn();
|
|
@@ -111,7 +154,7 @@ async function loadSpecifiedNxPlugins(pluginsConfigurations, root = workspace_ro
|
|
|
111
154
|
performance.mark('loadSpecifiedNxPlugins:start');
|
|
112
155
|
pluginsConfigurations ??= [];
|
|
113
156
|
const cleanupFunctions = [];
|
|
114
|
-
const
|
|
157
|
+
const results = await Promise.allSettled(pluginsConfigurations.map(async (plugin, index) => {
|
|
115
158
|
const pluginPath = typeof plugin === 'string' ? plugin : plugin.plugin;
|
|
116
159
|
performance.mark(`Load Nx Plugin: ${pluginPath} - start`);
|
|
117
160
|
const [loadedPluginPromise, cleanup] = await loadingMethod(plugin, root, index);
|
|
@@ -124,6 +167,33 @@ async function loadSpecifiedNxPlugins(pluginsConfigurations, root = workspace_ro
|
|
|
124
167
|
}));
|
|
125
168
|
performance.mark('loadSpecifiedNxPlugins:end');
|
|
126
169
|
performance.measure('loadSpecifiedNxPlugins', 'loadSpecifiedNxPlugins:start', 'loadSpecifiedNxPlugins:end');
|
|
170
|
+
const plugins = [];
|
|
171
|
+
const errors = [];
|
|
172
|
+
for (let i = 0; i < results.length; i++) {
|
|
173
|
+
const result = results[i];
|
|
174
|
+
if (result.status === 'fulfilled') {
|
|
175
|
+
plugins.push(result.value);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const pluginConfig = pluginsConfigurations[i];
|
|
179
|
+
const pluginName = typeof pluginConfig === 'string' ? pluginConfig : pluginConfig.plugin;
|
|
180
|
+
errors.push({
|
|
181
|
+
pluginName,
|
|
182
|
+
error: result.reason instanceof Error
|
|
183
|
+
? result.reason
|
|
184
|
+
: new Error(String(result.reason)),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (errors.length > 0) {
|
|
189
|
+
for (const fn of cleanupFunctions) {
|
|
190
|
+
fn();
|
|
191
|
+
}
|
|
192
|
+
const errorMessage = errors
|
|
193
|
+
.map((e) => ` - ${e.pluginName}: ${e.error.message}`)
|
|
194
|
+
.join('\n');
|
|
195
|
+
throw new AggregateError(errors.map((e) => e.error), `Failed to load ${errors.length} Nx plugin(s):\n${errorMessage}`);
|
|
196
|
+
}
|
|
127
197
|
cleanupSpecifiedPlugins = () => {
|
|
128
198
|
for (const fn of cleanupFunctions) {
|
|
129
199
|
fn();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-pool.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/plugin-pool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-pool.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/plugin-pool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA4C1D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAmGhD"}
|