nx 22.4.0-beta.0 → 22.4.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -11
- package/plugins/package-json.d.ts.map +1 -1
- package/plugins/package-json.js +2 -1
- package/schemas/nx-schema.json +14 -0
- package/src/command-line/release/config/config.d.ts.map +1 -1
- package/src/command-line/release/config/config.js +2 -0
- package/src/command-line/release/config/conventional-commits.d.ts.map +1 -1
- package/src/command-line/release/config/conventional-commits.js +1 -0
- package/src/command-line/release/utils/release-graph.d.ts +1 -0
- package/src/command-line/release/utils/release-graph.d.ts.map +1 -1
- package/src/command-line/release/utils/release-graph.js +10 -0
- package/src/command-line/release/utils/semver.d.ts +3 -1
- package/src/command-line/release/utils/semver.d.ts.map +1 -1
- package/src/command-line/release/utils/semver.js +39 -4
- package/src/command-line/release/utils/test/test-utils.d.ts +1 -0
- package/src/command-line/release/utils/test/test-utils.d.ts.map +1 -1
- package/src/command-line/release/utils/test/test-utils.js +1 -0
- package/src/command-line/release/version/version-actions.d.ts.map +1 -1
- package/src/command-line/release/version/version-actions.js +3 -1
- package/src/config/nx-json.d.ts +23 -0
- package/src/config/nx-json.d.ts.map +1 -1
- package/src/config/workspace-json-project-json.d.ts +2 -0
- package/src/config/workspace-json-project-json.d.ts.map +1 -1
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/styles.js +1 -1
- package/src/daemon/client/client.d.ts +1 -1
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +6 -3
- package/src/daemon/server/handle-hash-tasks.d.ts +1 -0
- package/src/daemon/server/handle-hash-tasks.d.ts.map +1 -1
- package/src/daemon/server/handle-hash-tasks.js +1 -1
- package/src/hasher/native-task-hasher-impl.d.ts +2 -2
- package/src/hasher/native-task-hasher-impl.d.ts.map +1 -1
- package/src/hasher/native-task-hasher-impl.js +4 -4
- package/src/hasher/task-hasher.d.ts +6 -6
- package/src/hasher/task-hasher.d.ts.map +1 -1
- package/src/hasher/task-hasher.js +8 -7
- package/src/native/index.d.ts +5 -1
- package/src/native/nx.wasi.cjs +13 -12
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- 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 +5 -0
- package/src/plugins/package-json/create-nodes.d.ts +9 -1
- package/src/plugins/package-json/create-nodes.d.ts.map +1 -1
- package/src/plugins/package-json/create-nodes.js +38 -10
- package/src/project-graph/plugins/isolation/plugin-pool.d.ts.map +1 -1
- package/src/project-graph/plugins/isolation/plugin-pool.js +95 -18
- package/src/tasks-runner/init-tasks-runner.js +1 -1
- package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
- package/src/tasks-runner/task-orchestrator.js +13 -25
- package/src/utils/package-json.js +1 -1
package/src/core/graph/styles.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_nx_graph_client=self.webpackChunk_nx_graph_client||[]).push([[869],{
|
|
1
|
+
"use strict";(self.webpackChunk_nx_graph_client=self.webpackChunk_nx_graph_client||[]).push([[869],{5376:()=>{}},e=>{var n;n=5376,e(e.s=n)}]);
|
|
@@ -43,7 +43,7 @@ export declare class DaemonClient {
|
|
|
43
43
|
sourceMaps: ConfigurationSourceMaps;
|
|
44
44
|
}>;
|
|
45
45
|
getAllFileData(): Promise<FileData[]>;
|
|
46
|
-
hashTasks(runnerOptions: any, tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<Hash[]>;
|
|
46
|
+
hashTasks(runnerOptions: any, tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd: string): Promise<Hash[]>;
|
|
47
47
|
registerFileWatcher(config: {
|
|
48
48
|
watchProjects: string[] | 'all';
|
|
49
49
|
includeGlobalWorkspaceFiles?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;AAmBpD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAapE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAKhG,OAAO,EAAW,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmC9E,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAcrC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAIL,KAAK,uBAAuB,EAE5B,KAAK,wCAAwC,EAC9C,MAAM,6BAA6B,CAAC;AAarC,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACtC,CAAC;AAaF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;;IAWpD,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,eAAe,CAAwB;IAE/C,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,aAAa,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,IAAI,CAAoB;IAGhC,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,oBAAoB,CASd;IACd,OAAO,CAAC,kBAAkB,CAQZ;IAGd,OAAO,CAAC,6BAA6B,CAAoC;IACzE,OAAO,CAAC,gCAAgC,CAAkB;IAC1D,OAAO,CAAC,6BAA6B,CAUvB;IAEd,OAAO;IA+CP,KAAK;IA0BL,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAMd,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,4BAA4B,IAAI,OAAO,CAAC;QAC5C,YAAY,EAAE,YAAY,CAAC;QAC3B,UAAU,EAAE,uBAAuB,CAAC;KACrC,CAAC;IA6BI,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI3C,SAAS,CACP,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -181,7 +181,7 @@ class DaemonClient {
|
|
|
181
181
|
async getAllFileData() {
|
|
182
182
|
return await this.sendToDaemonViaQueue({ type: 'REQUEST_FILE_DATA' });
|
|
183
183
|
}
|
|
184
|
-
hashTasks(runnerOptions, tasks, taskGraph, env) {
|
|
184
|
+
hashTasks(runnerOptions, tasks, taskGraph, env, cwd) {
|
|
185
185
|
return this.sendToDaemonViaQueue({
|
|
186
186
|
type: 'HASH_TASKS',
|
|
187
187
|
runnerOptions,
|
|
@@ -190,6 +190,7 @@ class DaemonClient {
|
|
|
190
190
|
: env,
|
|
191
191
|
tasks,
|
|
192
192
|
taskGraph,
|
|
193
|
+
cwd,
|
|
193
194
|
});
|
|
194
195
|
}
|
|
195
196
|
async registerFileWatcher(config, callback) {
|
|
@@ -715,12 +716,14 @@ class DaemonClient {
|
|
|
715
716
|
this._daemonStatus = DaemonStatus.CONNECTED;
|
|
716
717
|
this._daemonReady();
|
|
717
718
|
daemonPid ??= (0, cache_1.getDaemonProcessIdSync)();
|
|
718
|
-
|
|
719
|
+
// Fire-and-forget - don't block daemon connection by waiting for metrics registration
|
|
720
|
+
this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
719
721
|
}
|
|
720
722
|
else if (this._daemonStatus == DaemonStatus.CONNECTING) {
|
|
721
723
|
await this._waitForDaemonReady;
|
|
722
724
|
const daemonPid = (0, cache_1.getDaemonProcessIdSync)();
|
|
723
|
-
|
|
725
|
+
// Fire-and-forget - don't block daemon connection by waiting for metrics registration
|
|
726
|
+
this.registerDaemonProcessWithMetricsService(daemonPid);
|
|
724
727
|
}
|
|
725
728
|
}
|
|
726
729
|
async sendToDaemonViaQueue(messageToDaemon, force) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-hash-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/handle-hash-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAa1D,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,aAAa,EAAE,GAAG,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"handle-hash-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/daemon/server/handle-hash-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAa1D,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,aAAa,EAAE,GAAG,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;;;GAuCA"}
|
|
@@ -27,7 +27,7 @@ async function handleHashTasks(payload) {
|
|
|
27
27
|
storedProjectGraph = projectGraph;
|
|
28
28
|
storedHasher = new task_hasher_1.InProcessTaskHasher(projectGraph, nxJson, rustReferences, payload.runnerOptions);
|
|
29
29
|
}
|
|
30
|
-
const response = await storedHasher.hashTasks(payload.tasks, payload.taskGraph, payload.env);
|
|
30
|
+
const response = await storedHasher.hashTasks(payload.tasks, payload.taskGraph, payload.env, payload.cwd);
|
|
31
31
|
return {
|
|
32
32
|
response,
|
|
33
33
|
description: 'handleHashTasks',
|
|
@@ -13,7 +13,7 @@ export declare class NativeTaskHasherImpl implements TaskHasherImpl {
|
|
|
13
13
|
constructor(workspaceRoot: string, nxJson: NxJsonConfiguration, projectGraph: ProjectGraph, externals: NxWorkspaceFilesExternals, options: {
|
|
14
14
|
selectivelyHashTsConfig: boolean;
|
|
15
15
|
});
|
|
16
|
-
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash>;
|
|
17
|
-
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash[]>;
|
|
16
|
+
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<PartialHash>;
|
|
17
|
+
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<PartialHash[]>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=native-task-hasher-impl.d.ts.map
|
|
@@ -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,yBAAyB,EACzB,YAAY,IAAI,kBAAkB,EAClC,UAAU,EAEX,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI5D,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;IAiCzC,QAAQ,CACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,
|
|
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,yBAAyB,EACzB,YAAY,IAAI,kBAAkB,EAClC,UAAU,EAEX,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI5D,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;IAiCzC,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"}
|
|
@@ -23,14 +23,14 @@ class NativeTaskHasherImpl {
|
|
|
23
23
|
this.planner = new native_1.HashPlanner(nxJson, this.projectGraphRef);
|
|
24
24
|
this.hasher = new native_1.TaskHasher(workspaceRoot, this.projectGraphRef, this.projectFileMapRef, this.allWorkspaceFilesRef, Buffer.from(JSON.stringify(tsconfig)), paths, options);
|
|
25
25
|
}
|
|
26
|
-
async hashTask(task, taskGraph, env) {
|
|
26
|
+
async hashTask(task, taskGraph, env, cwd) {
|
|
27
27
|
const plans = this.planner.getPlansReference([task.id], taskGraph);
|
|
28
|
-
const hashes = this.hasher.hashPlans(plans, env);
|
|
28
|
+
const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd());
|
|
29
29
|
return hashes[task.id];
|
|
30
30
|
}
|
|
31
|
-
async hashTasks(tasks, taskGraph, env) {
|
|
31
|
+
async hashTasks(tasks, taskGraph, env, cwd) {
|
|
32
32
|
const plans = this.planner.getPlansReference(tasks.map((t) => t.id), taskGraph);
|
|
33
|
-
const hashes = this.hasher.hashPlans(plans, env);
|
|
33
|
+
const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd());
|
|
34
34
|
return tasks.map((t) => hashes[t.id]);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -41,7 +41,7 @@ export interface TaskHasher {
|
|
|
41
41
|
* @deprecated use hashTask(task:Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v20
|
|
42
42
|
*/
|
|
43
43
|
hashTask(task: Task, taskGraph: TaskGraph): Promise<Hash>;
|
|
44
|
-
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<Hash>;
|
|
44
|
+
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<Hash>;
|
|
45
45
|
/**
|
|
46
46
|
* @deprecated use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v20
|
|
47
47
|
* @param tasks
|
|
@@ -51,11 +51,11 @@ export interface TaskHasher {
|
|
|
51
51
|
* @deprecated use hashTasks(tasks:Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv) instead. This will be removed in v20
|
|
52
52
|
*/
|
|
53
53
|
hashTasks(tasks: Task[], taskGraph: TaskGraph): Promise<Hash[]>;
|
|
54
|
-
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<Hash[]>;
|
|
54
|
+
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<Hash[]>;
|
|
55
55
|
}
|
|
56
56
|
export interface TaskHasherImpl {
|
|
57
|
-
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv): Promise<PartialHash[]>;
|
|
58
|
-
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv,
|
|
57
|
+
hashTasks(tasks: Task[], taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<PartialHash[]>;
|
|
58
|
+
hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string): Promise<PartialHash>;
|
|
59
59
|
}
|
|
60
60
|
export type Hasher = TaskHasher;
|
|
61
61
|
export declare class DaemonBasedTaskHasher implements TaskHasher {
|
|
@@ -72,8 +72,8 @@ export declare class InProcessTaskHasher implements TaskHasher {
|
|
|
72
72
|
private readonly options;
|
|
73
73
|
private taskHasher;
|
|
74
74
|
constructor(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, externalRustReferences: NxWorkspaceFilesExternals | null, options: any);
|
|
75
|
-
hashTasks(tasks: Task[], taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv): Promise<Hash[]>;
|
|
76
|
-
hashTask(task: Task, taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv): Promise<Hash>;
|
|
75
|
+
hashTasks(tasks: Task[], taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv, cwd?: string): Promise<Hash[]>;
|
|
76
|
+
hashTask(task: Task, taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv, cwd?: string): Promise<Hash>;
|
|
77
77
|
private createHashDetails;
|
|
78
78
|
private hashCommand;
|
|
79
79
|
}
|
|
@@ -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;AAEtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE;YAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAClC,YAAY,CAAC,EAAE;YAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC9C,OAAO,CAAC,EAAE;YAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,QAAQ,CACN,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"task-hasher.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/hasher/task-hasher.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,10 @@ class DaemonBasedTaskHasher {
|
|
|
20
20
|
this.runnerOptions = runnerOptions;
|
|
21
21
|
}
|
|
22
22
|
async hashTasks(tasks, taskGraph, env) {
|
|
23
|
-
return this.daemonClient.hashTasks(this.runnerOptions, tasks, taskGraph, env ?? process.env);
|
|
23
|
+
return this.daemonClient.hashTasks(this.runnerOptions, tasks, taskGraph, env ?? process.env, process.cwd());
|
|
24
24
|
}
|
|
25
25
|
async hashTask(task, taskGraph, env) {
|
|
26
|
-
return (await this.daemonClient.hashTasks(this.runnerOptions, [task], taskGraph, env ?? process.env))[0];
|
|
26
|
+
return (await this.daemonClient.hashTasks(this.runnerOptions, [task], taskGraph, env ?? process.env, process.cwd()))[0];
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.DaemonBasedTaskHasher = DaemonBasedTaskHasher;
|
|
@@ -37,12 +37,12 @@ class InProcessTaskHasher {
|
|
|
37
37
|
selectivelyHashTsConfig: this.options?.selectivelyHashTsConfig ?? false,
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
async hashTasks(tasks, taskGraph, env) {
|
|
41
|
-
const hashes = await this.taskHasher.hashTasks(tasks, taskGraph, env ?? process.env);
|
|
40
|
+
async hashTasks(tasks, taskGraph, env, cwd) {
|
|
41
|
+
const hashes = await this.taskHasher.hashTasks(tasks, taskGraph, env ?? process.env, cwd ?? process.cwd());
|
|
42
42
|
return tasks.map((task, index) => this.createHashDetails(task, hashes[index]));
|
|
43
43
|
}
|
|
44
|
-
async hashTask(task, taskGraph, env) {
|
|
45
|
-
const res = await this.taskHasher.hashTask(task, taskGraph, env ?? process.env);
|
|
44
|
+
async hashTask(task, taskGraph, env, cwd) {
|
|
45
|
+
const res = await this.taskHasher.hashTask(task, taskGraph, env ?? process.env, cwd ?? process.cwd());
|
|
46
46
|
return this.createHashDetails(task, res);
|
|
47
47
|
}
|
|
48
48
|
createHashDetails(task, res) {
|
|
@@ -184,7 +184,8 @@ function expandSingleProjectInputs(inputs, namedInputs) {
|
|
|
184
184
|
d.env ||
|
|
185
185
|
d.runtime ||
|
|
186
186
|
d.externalDependencies ||
|
|
187
|
-
d.dependentTasksOutputFiles
|
|
187
|
+
d.dependentTasksOutputFiles ||
|
|
188
|
+
d.workingDirectory) {
|
|
188
189
|
expanded.push(d);
|
|
189
190
|
}
|
|
190
191
|
else {
|
package/src/native/index.d.ts
CHANGED
|
@@ -156,7 +156,7 @@ export declare class TaskDetails {
|
|
|
156
156
|
|
|
157
157
|
export declare class TaskHasher {
|
|
158
158
|
constructor(workspaceRoot: string, projectGraph: ExternalObject<ProjectGraph>, projectFileMap: ExternalObject<ProjectFiles>, allWorkspaceFiles: ExternalObject<Array<FileData>>, tsConfig: Buffer, tsConfigPaths: Record<string, Array<string>>, options?: HasherOptions | undefined | null)
|
|
159
|
-
hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string
|
|
159
|
+
hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string>, cwd: string): NapiDashMap
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
export declare class Watcher {
|
|
@@ -513,6 +513,10 @@ export interface WatchEvent {
|
|
|
513
513
|
type: EventType
|
|
514
514
|
}
|
|
515
515
|
|
|
516
|
+
export interface WorkingDirectoryInput {
|
|
517
|
+
workingDirectory: string
|
|
518
|
+
}
|
|
519
|
+
|
|
516
520
|
/** Public NAPI error codes that are for Node */
|
|
517
521
|
export declare const enum WorkspaceErrors {
|
|
518
522
|
ParseError = 'ParseError',
|
package/src/native/nx.wasi.cjs
CHANGED
|
@@ -127,18 +127,19 @@ function __napi_rs_initialize_modules(__napiInstance) {
|
|
|
127
127
|
__napiInstance.exports['__napi_register__EnvironmentInput_struct_52']?.()
|
|
128
128
|
__napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_53']?.()
|
|
129
129
|
__napiInstance.exports['__napi_register__DepsOutputsInput_struct_54']?.()
|
|
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['
|
|
130
|
+
__napiInstance.exports['__napi_register__WorkingDirectoryInput_struct_55']?.()
|
|
131
|
+
__napiInstance.exports['__napi_register__NxJson_struct_56']?.()
|
|
132
|
+
__napiInstance.exports['__napi_register__is_ai_agent_57']?.()
|
|
133
|
+
__napiInstance.exports['__napi_register__FileLock_struct_58']?.()
|
|
134
|
+
__napiInstance.exports['__napi_register__FileLock_impl_60']?.()
|
|
135
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_struct_61']?.()
|
|
136
|
+
__napiInstance.exports['__napi_register__WorkspaceContext_impl_72']?.()
|
|
137
|
+
__napiInstance.exports['__napi_register__WorkspaceErrors_73']?.()
|
|
138
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_74']?.()
|
|
139
|
+
__napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_75']?.()
|
|
140
|
+
__napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_76']?.()
|
|
141
|
+
__napiInstance.exports['__napi_register__FileMap_struct_77']?.()
|
|
142
|
+
__napiInstance.exports['__napi_register____test_only_transfer_file_map_78']?.()
|
|
142
143
|
}
|
|
143
144
|
module.exports.FileLock = __napiModule.exports.FileLock
|
|
144
145
|
module.exports.HashPlanInspector = __napiModule.exports.HashPlanInspector
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target-project-locator.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/plugins/js/project-graph/build-dependencies/target-project-locator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAmB1C;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAErD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,qBAAa,oBAAoB;IAc7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAI9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAlBrC,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,KAAK,CAAgD;IAC7D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,yBAAyB,CAAoC;IACrE,OAAO,CAAC,gBAAgB,CAItB;gBAGiB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAC9C,aAAa,GAAE,MAAM,CACpC,MAAM,EACN,wBAAwB,CACpB,EACW,kBAAkB,GAAE,kBAA8C;IA8BrF;;;;;;OAMG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAsEnE;;;;;;OAMG;IACH,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI;IAoEhB;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAmB7D,iBAAiB,CACf,UAAU,EAAE,MAAM,GACjB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS;IA6B/D,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAehE,iCAAiC,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI;IAgDhB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"target-project-locator.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/plugins/js/project-graph/build-dependencies/target-project-locator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAmB1C;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAErD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAaF,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,qBAAa,oBAAoB;IAc7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAI9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAlBrC,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,KAAK,CAAgD;IAC7D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,yBAAyB,CAAoC;IACrE,OAAO,CAAC,gBAAgB,CAItB;gBAGiB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAC9C,aAAa,GAAE,MAAM,CACpC,MAAM,EACN,wBAAwB,CACpB,EACW,kBAAkB,GAAE,kBAA8C;IA8BrF;;;;;;OAMG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAsEnE;;;;;;OAMG;IACH,wBAAwB,CACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI;IAoEhB;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAmB7D,iBAAiB,CACf,UAAU,EAAE,MAAM,GACjB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS;IA6B/D,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAehE,iCAAiC,CAC/B,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI;IAgDhB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,2BAA2B;IAqDnC,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,wBAAwB;IAKhC;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;CAyCxB"}
|
|
@@ -286,6 +286,11 @@ class TargetProjectLocator {
|
|
|
286
286
|
}
|
|
287
287
|
resolveImportWithTypescript(normalizedImportExpr, filePath) {
|
|
288
288
|
let resolvedModule;
|
|
289
|
+
if (!(0, node_path_1.isAbsolute)(filePath)) {
|
|
290
|
+
// Convert to an absolute file path because TypeScript's module resolution won't
|
|
291
|
+
// properly walk up the directory tree (toward the workspace root) when given a relative path.
|
|
292
|
+
filePath = this.getAbsolutePath(filePath);
|
|
293
|
+
}
|
|
289
294
|
const projectName = (0, find_project_for_path_1.findProjectForPath)(filePath, this.projectRootMappings);
|
|
290
295
|
const cacheScope = projectName
|
|
291
296
|
? // fall back to the project name if the project root can't be determined
|
|
@@ -4,7 +4,14 @@ import { PackageJson } from '../../utils/package-json';
|
|
|
4
4
|
import { CreateNodesV2 } from '../../project-graph/plugins';
|
|
5
5
|
import { PackageJsonConfigurationCache } from '../../../plugins/package-json';
|
|
6
6
|
export declare const createNodesV2: CreateNodesV2;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function buildPackageJsonPatterns(workspaceRoot: string, readJson: (path: string) => any): PackageJsonPatterns;
|
|
8
|
+
type PackageJsonPatterns = {
|
|
9
|
+
positive: string[];
|
|
10
|
+
positiveLookup: Record<string, boolean>;
|
|
11
|
+
negative: string[];
|
|
12
|
+
negativeLookup: Record<string, boolean>;
|
|
13
|
+
};
|
|
14
|
+
export declare function buildPackageJsonWorkspacesMatcher(patterns: PackageJsonPatterns): (p: any) => boolean;
|
|
8
15
|
export declare function createNodeFromPackageJson(pkgJsonPath: string, workspaceRoot: string, cache: PackageJsonConfigurationCache, isInPackageManagerWorkspaces: boolean): {
|
|
9
16
|
projects: {
|
|
10
17
|
[x: string]: ProjectConfiguration;
|
|
@@ -17,4 +24,5 @@ export declare function buildProjectConfigurationFromPackageJson(packageJson: Pa
|
|
|
17
24
|
* Get the package.json globs from package manager workspaces
|
|
18
25
|
*/
|
|
19
26
|
export declare function getGlobPatternsFromPackageManagerWorkspaces(root: string, readJson?: <T extends Object>(path: string) => T, readYaml?: <T extends Object>(path: string) => T, exists?: (path: string) => boolean): string[];
|
|
27
|
+
export {};
|
|
20
28
|
//# sourceMappingURL=create-nodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-nodes.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/package-json/create-nodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAMrF,OAAO,EAEL,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,6BAA6B,EAE9B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-nodes.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/plugins/package-json/create-nodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAMrF,OAAO,EAEL,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,aAAa,EACd,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,6BAA6B,EAE9B,MAAM,+BAA+B,CAAC;AASvC,eAAO,MAAM,aAAa,EAAE,aAgD3B,CAAC;AAmBF,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GAC9B,mBAAmB,CAqCrB;AACD,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AACF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,mBAAmB,IAErB,MAAC,aAeV;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,6BAA6B,EACpC,4BAA4B,EAAE,OAAO;;;;EAoCtC;AAED,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,mBAAmB,EAC3B,4BAA4B,EAAE,OAAO,GACpC,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CA8DzC;AAED;;GAEG;AACH,wBAAgB,2CAA2C,CACzD,IAAI,EAAE,MAAM,EAEZ,QAAQ,GAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,CAER,EACtC,QAAQ,GAAE,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,CAER,EACtC,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAA0C,GACnE,MAAM,EAAE,CA+CV"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createNodesV2 = void 0;
|
|
4
|
+
exports.buildPackageJsonPatterns = buildPackageJsonPatterns;
|
|
4
5
|
exports.buildPackageJsonWorkspacesMatcher = buildPackageJsonWorkspacesMatcher;
|
|
5
6
|
exports.createNodeFromPackageJson = createNodeFromPackageJson;
|
|
6
7
|
exports.buildProjectConfigurationFromPackageJson = buildProjectConfigurationFromPackageJson;
|
|
@@ -21,15 +22,18 @@ const plugins_1 = require("../../project-graph/plugins");
|
|
|
21
22
|
const path_2 = require("path");
|
|
22
23
|
const file_hasher_1 = require("../../hasher/file-hasher");
|
|
23
24
|
const package_json_2 = require("../../../plugins/package-json");
|
|
25
|
+
const globPatterns = (0, globs_1.combineGlobPatterns)('package.json', '**/package.json', 'project.json', '**/project.json');
|
|
24
26
|
exports.createNodesV2 = [
|
|
25
|
-
|
|
27
|
+
globPatterns,
|
|
26
28
|
(configFiles, _, context) => {
|
|
27
29
|
const { packageJsons, projectJsonRoots } = splitConfigFiles(configFiles);
|
|
28
30
|
const readJson = (f) => (0, fileutils_1.readJsonFile)((0, node_path_1.join)(context.workspaceRoot, f));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
let isInPackageJsonWorkspaces = (p) => true;
|
|
32
|
+
if (process.env.NX_INFER_ALL_PACKAGE_JSONS !== 'true' ||
|
|
33
|
+
configFiles.includes('package.json')) {
|
|
34
|
+
const patterns = buildPackageJsonPatterns(context.workspaceRoot, readJson);
|
|
35
|
+
isInPackageJsonWorkspaces = buildPackageJsonWorkspacesMatcher(patterns);
|
|
36
|
+
}
|
|
33
37
|
const isNextToProjectJson = (packageJsonPath) => {
|
|
34
38
|
return projectJsonRoots.has((0, node_path_1.dirname)(packageJsonPath));
|
|
35
39
|
};
|
|
@@ -58,10 +62,22 @@ function splitConfigFiles(configFiles) {
|
|
|
58
62
|
}
|
|
59
63
|
return { packageJsons, projectJsonRoots };
|
|
60
64
|
}
|
|
61
|
-
function
|
|
65
|
+
function buildPackageJsonPatterns(workspaceRoot, readJson) {
|
|
62
66
|
const patterns = getGlobPatternsFromPackageManagerWorkspaces(workspaceRoot, readJson);
|
|
63
|
-
const negativePatterns =
|
|
64
|
-
const positivePatterns =
|
|
67
|
+
const negativePatterns = [];
|
|
68
|
+
const positivePatterns = [];
|
|
69
|
+
const positivePatternLookup = {};
|
|
70
|
+
const negativePatternLookup = {};
|
|
71
|
+
for (const pattern of patterns) {
|
|
72
|
+
if (pattern.startsWith('!')) {
|
|
73
|
+
negativePatterns.push(pattern);
|
|
74
|
+
negativePatternLookup[pattern.slice(1)] = true;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
positivePatterns.push(pattern);
|
|
78
|
+
positivePatternLookup[pattern] = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
65
81
|
if (
|
|
66
82
|
// There are some negative patterns
|
|
67
83
|
negativePatterns.length > 0 &&
|
|
@@ -71,7 +87,18 @@ function buildPackageJsonWorkspacesMatcher(workspaceRoot, readJson) {
|
|
|
71
87
|
(positivePatterns.length === 1 && positivePatterns[0] === 'package.json'))) {
|
|
72
88
|
positivePatterns.push('**/package.json');
|
|
73
89
|
}
|
|
74
|
-
return
|
|
90
|
+
return {
|
|
91
|
+
positive: positivePatterns,
|
|
92
|
+
positiveLookup: positivePatternLookup,
|
|
93
|
+
negative: negativePatterns,
|
|
94
|
+
negativeLookup: negativePatternLookup,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function buildPackageJsonWorkspacesMatcher(patterns) {
|
|
98
|
+
return (p) =>
|
|
99
|
+
// use lookup to avoid unnecessary minimatch calls
|
|
100
|
+
(patterns.positiveLookup[p] ||
|
|
101
|
+
patterns.positive.some((positive) => (0, minimatch_1.minimatch)(p, positive))) &&
|
|
75
102
|
/**
|
|
76
103
|
* minimatch will return true if the given p is NOT excluded by the negative pattern.
|
|
77
104
|
*
|
|
@@ -81,7 +108,8 @@ function buildPackageJsonWorkspacesMatcher(workspaceRoot, readJson) {
|
|
|
81
108
|
* Therefore, we need to ensure that every negative pattern returns true to validate that the given p is not
|
|
82
109
|
* excluded by any of the negative patterns.
|
|
83
110
|
*/
|
|
84
|
-
|
|
111
|
+
!patterns.negativeLookup[p] &&
|
|
112
|
+
patterns.negative.every((negative) => (0, minimatch_1.minimatch)(p, negative));
|
|
85
113
|
}
|
|
86
114
|
function createNodeFromPackageJson(pkgJsonPath, workspaceRoot, cache, isInPackageManagerWorkspaces) {
|
|
87
115
|
const json = (0, fileutils_1.readJsonFile)((0, node_path_1.join)(workspaceRoot, pkgJsonPath));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-pool.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/plugin-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-pool.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/project-graph/plugins/isolation/plugin-pool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,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"}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadRemoteNxPlugin = loadRemoteNxPlugin;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
|
-
const path = require("path");
|
|
6
5
|
const net_1 = require("net");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
// TODO (@AgentEnder): After scoped verbose logging is implemented, re-add verbose logs here.
|
|
8
|
+
// import { logger } from '../../utils/logger';
|
|
7
9
|
const socket_utils_1 = require("../../../daemon/socket-utils");
|
|
8
10
|
const consume_messages_from_socket_1 = require("../../../utils/consume-messages-from-socket");
|
|
9
|
-
const messaging_1 = require("./messaging");
|
|
10
11
|
const installation_directory_1 = require("../../../utils/installation-directory");
|
|
11
12
|
const resolve_plugin_1 = require("../resolve-plugin");
|
|
13
|
+
const messaging_1 = require("./messaging");
|
|
12
14
|
const cleanupFunctions = new Set();
|
|
13
15
|
const pluginNames = new Map();
|
|
14
16
|
const PLUGIN_TIMEOUT_HINT_TEXT = 'As a last resort, you can set NX_PLUGIN_NO_TIMEOUTS=true to bypass this timeout.';
|
|
@@ -35,28 +37,40 @@ async function loadRemoteNxPlugin(plugin, root, index) {
|
|
|
35
37
|
const { worker, socket } = await startPluginWorker(name);
|
|
36
38
|
// Register plugin worker as a subprocess of the main CLI
|
|
37
39
|
// This allows metrics collection when the daemon is not used
|
|
40
|
+
// Fire-and-forget to avoid blocking the loading of the plugin
|
|
38
41
|
if (worker.pid) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
(async () => {
|
|
43
|
+
try {
|
|
44
|
+
const { isOnDaemon } = await Promise.resolve().then(() => require('../../../daemon/is-on-daemon'));
|
|
45
|
+
/**
|
|
46
|
+
* We can only register the plugin worker as a subprocess of the main CLI
|
|
47
|
+
* when the daemon is not used. Additionally, we can't explcitly register
|
|
48
|
+
* the plugin worker as a subprocess of the daemon, because when on the
|
|
49
|
+
* daemon, we'd get a different instance of the process metrics service.
|
|
50
|
+
*/
|
|
51
|
+
if (!isOnDaemon()) {
|
|
52
|
+
const { getProcessMetricsService } = await Promise.resolve().then(() => require('../../../tasks-runner/process-metrics-service'));
|
|
53
|
+
getProcessMetricsService().registerMainCliSubprocess(worker.pid, `${name}${index !== undefined ? ` (${index})` : ''}`);
|
|
54
|
+
}
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
56
|
+
catch {
|
|
57
|
+
// Silently ignore - metrics collection is optional
|
|
58
|
+
}
|
|
59
|
+
})();
|
|
55
60
|
}
|
|
56
61
|
const pendingPromises = new Map();
|
|
57
62
|
const exitHandler = createWorkerExitHandler(worker, pendingPromises);
|
|
58
63
|
const cleanupFunction = () => {
|
|
59
64
|
worker.off('exit', exitHandler);
|
|
65
|
+
// Unpipe streams to prevent hanging processes and release references
|
|
66
|
+
if (worker.stdout) {
|
|
67
|
+
worker.stdout.unpipe(process.stdout);
|
|
68
|
+
worker.stdout.destroy();
|
|
69
|
+
}
|
|
70
|
+
if (worker.stderr) {
|
|
71
|
+
worker.stderr.unpipe(process.stderr);
|
|
72
|
+
worker.stderr.destroy();
|
|
73
|
+
}
|
|
60
74
|
socket.destroy();
|
|
61
75
|
nxPluginWorkerCache.delete(cacheKey);
|
|
62
76
|
};
|
|
@@ -235,6 +249,13 @@ function createWorkerHandler(worker, pending, onload, onloadError, socket) {
|
|
|
235
249
|
}
|
|
236
250
|
function createWorkerExitHandler(worker, pendingPromises) {
|
|
237
251
|
return () => {
|
|
252
|
+
// Clean up piped streams when worker exits to prevent hanging
|
|
253
|
+
if (worker.stdout) {
|
|
254
|
+
worker.stdout.unpipe(process.stdout);
|
|
255
|
+
}
|
|
256
|
+
if (worker.stderr) {
|
|
257
|
+
worker.stderr.unpipe(process.stderr);
|
|
258
|
+
}
|
|
238
259
|
for (const [_, pendingPromise] of pendingPromises) {
|
|
239
260
|
pendingPromise.rejector(new Error(`Plugin worker ${pluginNames.get(worker) ?? worker.pid} exited unexpectedly with code ${worker.exitCode}`));
|
|
240
261
|
}
|
|
@@ -298,13 +319,56 @@ async function startPluginWorker(name) {
|
|
|
298
319
|
ipcPath,
|
|
299
320
|
name,
|
|
300
321
|
], {
|
|
301
|
-
stdio: '
|
|
322
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
302
323
|
env,
|
|
303
324
|
detached: true,
|
|
304
325
|
shell: false,
|
|
305
326
|
windowsHide: true,
|
|
306
327
|
});
|
|
328
|
+
// To make debugging easier and allow plugins to communicate things
|
|
329
|
+
// like performance metrics, we pipe the stdout/stderr of the worker
|
|
330
|
+
// to the main process.
|
|
331
|
+
// This adds one listener per plugin to a few events on process.stdout/stderr,
|
|
332
|
+
// so we need to increase the max listener count to avoid warnings.
|
|
333
|
+
//
|
|
334
|
+
// We originally used `inherit` for stdio, but that caused issues with
|
|
335
|
+
// some environments where the terminal was left in an inconsistent state
|
|
336
|
+
// that prevented `↑`/`↓` arrow keys from working correctly after Nx finished execution.
|
|
337
|
+
// Instead, they would print things like `^[[A`/`^[[B` to the terminal.
|
|
338
|
+
const stdoutMaxListeners = process.stdout.getMaxListeners();
|
|
339
|
+
const stderrMaxListeners = process.stderr.getMaxListeners();
|
|
340
|
+
if (stdoutMaxListeners !== 0) {
|
|
341
|
+
process.stdout.setMaxListeners(stdoutMaxListeners + 1);
|
|
342
|
+
}
|
|
343
|
+
if (stderrMaxListeners !== 0) {
|
|
344
|
+
process.stderr.setMaxListeners(stderrMaxListeners + 1);
|
|
345
|
+
}
|
|
346
|
+
worker.stdout.pipe(process.stdout);
|
|
347
|
+
worker.stderr.pipe(process.stderr);
|
|
348
|
+
// Unref the worker process so it doesn't prevent the parent from exiting.
|
|
349
|
+
// IMPORTANT: We must also unref the stdout/stderr streams. When streams are
|
|
350
|
+
// piped, they maintain internal references in Node's event loop. Without
|
|
351
|
+
// unreferencing them, the parent process will wait for the worker to exit
|
|
352
|
+
// even after worker.unref() is called. This causes e2e tests to hang on CI
|
|
353
|
+
// where test frameworks wait for all handles to be released.
|
|
354
|
+
//
|
|
355
|
+
// Although TypeScript types these as Readable/Writable, they are actually
|
|
356
|
+
// net.Socket instances at runtime. Node.js internally creates sockets for
|
|
357
|
+
// stdio pipes (see lib/internal/child_process.js createSocket function).
|
|
358
|
+
// Socket.unref() allows the event loop to exit if these are the only handles.
|
|
307
359
|
worker.unref();
|
|
360
|
+
if (worker.stdout instanceof net_1.Socket) {
|
|
361
|
+
worker.stdout.unref();
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
throw new Error(`Expected worker.stdout to be an instance of Socket, but got ${getTypeName(worker.stdout)}`);
|
|
365
|
+
}
|
|
366
|
+
if (worker.stderr instanceof net_1.Socket) {
|
|
367
|
+
worker.stderr.unref();
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
throw new Error(`Expected worker.stderr to be an instance of Socket, but got ${getTypeName(worker.stderr)}`);
|
|
371
|
+
}
|
|
308
372
|
let attempts = 0;
|
|
309
373
|
return new Promise((resolve, reject) => {
|
|
310
374
|
const id = setInterval(async () => {
|
|
@@ -343,3 +407,16 @@ function isServerAvailable(ipcPath) {
|
|
|
343
407
|
}
|
|
344
408
|
});
|
|
345
409
|
}
|
|
410
|
+
function getTypeName(u) {
|
|
411
|
+
if (u === null)
|
|
412
|
+
return 'null';
|
|
413
|
+
if (u === undefined)
|
|
414
|
+
return 'undefined';
|
|
415
|
+
if (typeof u !== 'object')
|
|
416
|
+
return typeof u;
|
|
417
|
+
if (Array.isArray(u)) {
|
|
418
|
+
const innerTypes = u.map((el) => getTypeName(el));
|
|
419
|
+
return `Array<${Array.from(new Set(innerTypes)).join('|')}>`;
|
|
420
|
+
}
|
|
421
|
+
return u.constructor?.name ?? 'unknown object';
|
|
422
|
+
}
|
|
@@ -105,7 +105,7 @@ async function createOrchestrator(tasks, projectGraph, taskGraphForHashing, nxJs
|
|
|
105
105
|
lifeCycle: compositedLifeCycle,
|
|
106
106
|
};
|
|
107
107
|
(0, run_command_1.setEnvVarsBasedOnArgs)(nxArgs, true);
|
|
108
|
-
const orchestrator = new task_orchestrator_1.TaskOrchestrator(hasher, null,
|
|
108
|
+
const orchestrator = new task_orchestrator_1.TaskOrchestrator(hasher, null, tasks, projectGraph, taskGraph, nxJson, nxArgs, false, client_1.daemonClient, undefined, taskGraphForHashing);
|
|
109
109
|
await orchestrator.init();
|
|
110
110
|
orchestrator.processAllScheduledTasks();
|
|
111
111
|
return orchestrator;
|