| import { Tree } from '../../generators/tree'; | ||
| export default function addClaudeSettingsLocalToGitIgnore(tree: Tree): Promise<void>; | ||
| //# sourceMappingURL=add-claude-settings-local-to-git-ignore.d.ts.map |
| {"version":3,"file":"add-claude-settings-local-to-git-ignore.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-6-0/add-claude-settings-local-to-git-ignore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,wBAA8B,iCAAiC,CAAC,IAAI,EAAE,IAAI,iBAWzE"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = addClaudeSettingsLocalToGitIgnore; | ||
| const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available"); | ||
| const ignore_1 = require("../../utils/ignore"); | ||
| async function addClaudeSettingsLocalToGitIgnore(tree) { | ||
| if (!tree.exists('.gitignore')) { | ||
| return; | ||
| } | ||
| // Lerna users that don't use nx.json may not expect .claude directory changes | ||
| if (tree.exists('lerna.json') && !tree.exists('nx.json')) { | ||
| return; | ||
| } | ||
| (0, ignore_1.addEntryToGitIgnore)(tree, '.gitignore', '.claude/settings.local.json'); | ||
| await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree); | ||
| } |
+6
-0
@@ -152,2 +152,8 @@ { | ||
| }, | ||
| "22-6-0-add-claude-settings-local-to-git-ignore": { | ||
| "cli": "nx", | ||
| "version": "22.6.0-rc.0", | ||
| "description": "Adds .claude/settings.local.json to .gitignore", | ||
| "implementation": "./src/migrations/update-22-6-0/add-claude-settings-local-to-git-ignore" | ||
| }, | ||
| "22-6-0-enable-analytics-prompt": { | ||
@@ -154,0 +160,0 @@ "cli": "nx", |
+11
-11
| { | ||
| "name": "nx", | ||
| "version": "22.6.0-pr.34866.93e8887", | ||
| "version": "22.6.0-rc.0", | ||
| "private": false, | ||
@@ -88,12 +88,12 @@ "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", | ||
| "optionalDependencies": { | ||
| "@nx/nx-darwin-arm64": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-darwin-x64": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-freebsd-x64": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-linux-arm-gnueabihf": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-linux-arm64-gnu": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-linux-arm64-musl": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-linux-x64-gnu": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-linux-x64-musl": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-win32-arm64-msvc": "22.6.0-pr.34866.93e8887", | ||
| "@nx/nx-win32-x64-msvc": "22.6.0-pr.34866.93e8887" | ||
| "@nx/nx-darwin-arm64": "22.6.0-rc.0", | ||
| "@nx/nx-darwin-x64": "22.6.0-rc.0", | ||
| "@nx/nx-freebsd-x64": "22.6.0-rc.0", | ||
| "@nx/nx-linux-arm-gnueabihf": "22.6.0-rc.0", | ||
| "@nx/nx-linux-arm64-gnu": "22.6.0-rc.0", | ||
| "@nx/nx-linux-arm64-musl": "22.6.0-rc.0", | ||
| "@nx/nx-linux-x64-gnu": "22.6.0-rc.0", | ||
| "@nx/nx-linux-x64-musl": "22.6.0-rc.0", | ||
| "@nx/nx-win32-arm64-msvc": "22.6.0-rc.0", | ||
| "@nx/nx-win32-x64-msvc": "22.6.0-rc.0" | ||
| }, | ||
@@ -100,0 +100,0 @@ "nx-migrations": { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAuB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAoP7C;AAuRD,eAAe,sBAAsB,CAAC"} | ||
| {"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAuB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CA0P7C;AAuRD,eAAe,sBAAsB,CAAC"} |
@@ -207,2 +207,3 @@ "use strict"; | ||
| (0, ignore_1.addEntryToGitIgnore)(tree, (0, path_1.join)(options.directory, '.gitignore'), '.claude/worktrees'); | ||
| (0, ignore_1.addEntryToGitIgnore)(tree, (0, path_1.join)(options.directory, '.gitignore'), '.claude/settings.local.json'); | ||
| await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree); | ||
@@ -209,0 +210,0 @@ // we use the check variable to determine if we should actually make changes or just report what would be changed |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACP,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM;IAejC,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAY/D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAId,GAAG;YAwCH,aAAa;CAsD5B;AAuKD,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"} | ||
| {"version":3,"file":"running-tasks.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/executors/run-commands/running-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAGL,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAO5E,OAAO,EAEL,4BAA4B,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,oBAAqB,YAAW,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM;IAqBV,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAQrE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAYpB,GAAG;YAiGH,2BAA2B;CAkC1C;AAED,qBAAa,oBAAqB,YAAW,WAAW;IAYpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,aAAa,CAChB;IACL,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,eAAe,CAA+C;gBAGpE,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,eAAe,EACP,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM;IAejC,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAY/D,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhE,QAAQ,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO;YAId,GAAG;YAwCH,aAAa;CAsD5B;AAyKD,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"} |
@@ -353,2 +353,4 @@ "use strict"; | ||
| this.kill('SIGTERM'); | ||
| // we exit here because we don't need to write anything to cache. | ||
| process.exit((0, exit_codes_1.signalToCode)('SIGINT')); | ||
| }); | ||
@@ -488,2 +490,4 @@ process.on('SIGTERM', () => { | ||
| runningTask.kill('SIGTERM'); | ||
| // we exit here because we don't need to write anything to cache. | ||
| process.exit((0, exit_codes_1.signalToCode)('SIGINT')); | ||
| }); | ||
@@ -490,0 +494,0 @@ process.on('SIGTERM', () => { |
@@ -1,1 +0,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,iBAuDjC;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,iBA6ChC;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,EAC/B,mBAAmB,CAAC,EAAE,IAAI,EAAE,iBAwF7B"} | ||
| {"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,EAC/B,mBAAmB,CAAC,EAAE,IAAI,EAAE,iBAuF7B"} |
@@ -44,3 +44,2 @@ "use strict"; | ||
| const ioService = (0, task_io_service_1.getTaskIOService)(); | ||
| const hasInputSubscribers = ioService.hasTaskInputSubscribers(); | ||
| for (let i = 0; i < tasksToHash.length; i++) { | ||
@@ -50,3 +49,3 @@ tasksToHash[i].hash = hashes[i].value; | ||
| // Notify TaskIOService of hash inputs | ||
| if (hasInputSubscribers && hashes[i].inputs) { | ||
| if (hashes[i].inputs) { | ||
| ioService.notifyTaskInputs(tasksToHash[i].id, hashes[i].inputs); | ||
@@ -84,5 +83,4 @@ } | ||
| // Notify TaskIOService of hash inputs | ||
| const ioService = (0, task_io_service_1.getTaskIOService)(); | ||
| if (ioService.hasTaskInputSubscribers() && inputs) { | ||
| ioService.notifyTaskInputs(task.id, inputs); | ||
| if (inputs) { | ||
| (0, task_io_service_1.getTaskIOService)().notifyTaskInputs(task.id, inputs); | ||
| } | ||
@@ -121,3 +119,2 @@ if (taskDetails?.recordTaskDetails) { | ||
| const ioService = (0, task_io_service_1.getTaskIOService)(); | ||
| const hasInputSubscribers = ioService.hasTaskInputSubscribers(); | ||
| const customHasherPromises = tasksWithCustomHashers.map(async (task) => { | ||
@@ -137,3 +134,3 @@ const customHasher = (0, utils_1.getCustomHasher)(task, projectGraph); | ||
| // Notify TaskIOService of hash inputs | ||
| if (hasInputSubscribers && inputs) { | ||
| if (inputs) { | ||
| ioService.notifyTaskInputs(task.id, inputs); | ||
@@ -152,3 +149,3 @@ } | ||
| // Notify TaskIOService of hash inputs | ||
| if (hasInputSubscribers && hashes[i].inputs) { | ||
| if (hashes[i].inputs) { | ||
| ioService.notifyTaskInputs(tasksWithoutCustomHashers[i].id, hashes[i].inputs); | ||
@@ -155,0 +152,0 @@ } |
@@ -1,1 +0,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;AAKnB,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;IAajB,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;CAc1B"} | ||
| {"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"} |
@@ -7,3 +7,2 @@ "use strict"; | ||
| const typescript_1 = require("../plugins/js/utils/typescript"); | ||
| const task_io_service_1 = require("../tasks-runner/task-io-service"); | ||
| const fileutils_1 = require("../utils/fileutils"); | ||
@@ -30,4 +29,3 @@ class NativeTaskHasherImpl { | ||
| const plans = this.planner.getPlansReference([task.id], taskGraph); | ||
| const collectInputs = (0, task_io_service_1.getTaskIOService)().hasTaskInputSubscribers(); | ||
| const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd(), collectInputs); | ||
| const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd()); | ||
| return hashes[task.id]; | ||
@@ -37,4 +35,3 @@ } | ||
| const plans = this.planner.getPlansReference(tasks.map((t) => t.id), taskGraph); | ||
| const collectInputs = (0, task_io_service_1.getTaskIOService)().hasTaskInputSubscribers(); | ||
| const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd(), collectInputs); | ||
| const hashes = this.hasher.hashPlans(plans, env, cwd ?? process.cwd()); | ||
| return tasks.map((t) => hashes[t.id]); | ||
@@ -41,0 +38,0 @@ } |
| import { Tree } from '../../generators/tree'; | ||
| export default function addClaudeWorktreesToGitIgnore(tree: Tree): void; | ||
| export default function addClaudeWorktreesToGitIgnore(tree: Tree): Promise<void>; | ||
| //# sourceMappingURL=add-claude-worktrees-to-git-ignore.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"add-claude-worktrees-to-git-ignore.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,CAAC,OAAO,UAAU,6BAA6B,CAAC,IAAI,EAAE,IAAI,QAS/D"} | ||
| {"version":3,"file":"add-claude-worktrees-to-git-ignore.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,wBAA8B,6BAA6B,CAAC,IAAI,EAAE,IAAI,iBAWrE"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = addClaudeWorktreesToGitIgnore; | ||
| const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available"); | ||
| const ignore_1 = require("../../utils/ignore"); | ||
| function addClaudeWorktreesToGitIgnore(tree) { | ||
| async function addClaudeWorktreesToGitIgnore(tree) { | ||
| if (!tree.exists('.gitignore')) { | ||
@@ -14,2 +15,3 @@ return; | ||
| (0, ignore_1.addEntryToGitIgnore)(tree, '.gitignore', '.claude/worktrees'); | ||
| await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree); | ||
| } |
| import { Tree } from '../../generators/tree'; | ||
| export default function addPolygraphToGitIgnore(tree: Tree): void; | ||
| export default function addPolygraphToGitIgnore(tree: Tree): Promise<void>; | ||
| //# sourceMappingURL=add-polygraph-to-git-ignore.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"add-polygraph-to-git-ignore.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,IAAI,EAAE,IAAI,QASzD"} | ||
| {"version":3,"file":"add-polygraph-to-git-ignore.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/migrations/update-22-7-0/add-polygraph-to-git-ignore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,wBAA8B,uBAAuB,CAAC,IAAI,EAAE,IAAI,iBAW/D"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = addPolygraphToGitIgnore; | ||
| const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available"); | ||
| const ignore_1 = require("../../utils/ignore"); | ||
| function addPolygraphToGitIgnore(tree) { | ||
| async function addPolygraphToGitIgnore(tree) { | ||
| if (!tree.exists('.gitignore')) { | ||
@@ -14,2 +15,3 @@ return; | ||
| (0, ignore_1.addEntryToGitIgnore)(tree, '.gitignore', '.nx/polygraph'); | ||
| await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree); | ||
| } |
@@ -171,3 +171,3 @@ /* auto-generated by NAPI-RS */ | ||
| 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) | ||
| hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string>, cwd: string, collectTaskInputs?: boolean | undefined | null): NapiDashMap<string, HashDetails> | ||
| hashPlans(hashPlans: ExternalObject<Record<string, Array<HashInstruction>>>, jsEnv: Record<string, string>, cwd: string): NapiDashMap<string, HashDetails> | ||
| } | ||
@@ -174,0 +174,0 @@ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"update-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/nx-cloud/update-manager.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAwBrE,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,GAAG,EAAE,MAAM;CAGxB;AACD,qBAAa,6BAA8B,SAAQ,KAAK;;CAIvD;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,kBAAkB,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACxD,cAAc,EAAE,MAAM,aAAa,CAAC;CACrC;AACD,wBAAsB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA2FpE;AAED,wBAAgB,+BAA+B,WAgB9C"} | ||
| {"version":3,"file":"update-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/nx-cloud/update-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAwBrE,qBAAa,8BAA+B,SAAQ,KAAK;gBAC3C,GAAG,EAAE,MAAM;CAGxB;AACD,qBAAa,6BAA8B,SAAQ,KAAK;;CAIvD;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,kBAAkB,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACxD,cAAc,EAAE,MAAM,aAAa,CAAC;CACrC;AACD,wBAAsB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA2FpE;AAED,wBAAgB,+BAA+B,WA4B9C"} |
@@ -9,2 +9,3 @@ "use strict"; | ||
| const path_1 = require("path"); | ||
| const os_1 = require("os"); | ||
| const axios_1 = require("./utilities/axios"); | ||
@@ -91,2 +92,13 @@ const debug_logger_1 = require("./debug-logger"); | ||
| function getBundleInstallDefaultLocation() { | ||
| // When not in an Nx workspace (no nx.json), avoid creating a .nx folder | ||
| // in the current directory. Instead, use a temp directory unique to the | ||
| // NX_CLOUD_API URL so different cloud instances don't conflict. | ||
| if (!(0, fs_1.existsSync)((0, path_1.join)(workspace_root_1.workspaceRoot, 'nx.json'))) { | ||
| const apiUrl = process.env.NX_CLOUD_API || 'https://cloud.nx.app'; | ||
| const apiHash = (0, crypto_1.createHash)('sha256') | ||
| .update(apiUrl) | ||
| .digest('hex') | ||
| .slice(0, 16); | ||
| return (0, path_1.join)((0, os_1.tmpdir)(), 'nx-cloud-client', apiHash); | ||
| } | ||
| const legacyPath = (0, path_1.join)(workspace_root_1.workspaceRoot, 'node_modules', '.cache', 'nx', 'cloud'); | ||
@@ -93,0 +105,0 @@ // this legacy path is used when the nx-cloud package is installed. |
@@ -0,1 +1,3 @@ | ||
| import { ProjectGraph } from '../config/project-graph'; | ||
| import { TaskGraph } from '../config/task-graph'; | ||
| /** | ||
@@ -34,11 +36,13 @@ * Maps taskId -> PID. Note that this only Returns | ||
| * Output files are reported when tasks are stored to cache. | ||
| * | ||
| * Data is only stored when subscribers are registered. Without subscribers, | ||
| * notifications are no-ops to avoid unbounded memory growth in long-lived | ||
| * processes (e.g. the Nx daemon). | ||
| */ | ||
| declare class TaskIOService { | ||
| protected taskToPids: Map<string, number>; | ||
| protected taskToInputs: Map<string, TaskInputInfo>; | ||
| protected taskToOutputs: Map<string, string[]>; | ||
| private pidCallbacks; | ||
| private taskInputCallbacks; | ||
| private taskOutputsCallbacks; | ||
| protected projectGraph: ProjectGraph | null; | ||
| protected taskGraph: TaskGraph | null; | ||
| constructor(projectGraph?: ProjectGraph, taskGraph?: TaskGraph); | ||
| /** | ||
@@ -50,7 +54,2 @@ * Subscribe to task PID updates. | ||
| /** | ||
| * Returns true if any callbacks are registered for task input notifications. | ||
| * Used to avoid expensive input collection in the hasher when nobody is listening. | ||
| */ | ||
| hasTaskInputSubscribers(): boolean; | ||
| /** | ||
| * Subscribe to hash inputs as they are computed. | ||
@@ -89,4 +88,5 @@ * Called when a task's hash inputs become available. | ||
| * Get or create the singleton TaskIOService instance. | ||
| * Optionally provide projectGraph and taskGraph to initialize with context. | ||
| */ | ||
| export declare function getTaskIOService(): TaskIOService; | ||
| export declare function getTaskIOService(projectGraph?: ProjectGraph, taskGraph?: TaskGraph): TaskIOService; | ||
| /** | ||
@@ -93,0 +93,0 @@ * Register a task process start with both IO and metrics services. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"task-io-service.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-io-service.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEtE;;;;;;;;;GASG;AACH,cAAM,aAAa;IAEjB,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,oBAAoB,CAA6B;IAEzD;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIpD;;;OAGG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIxD;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI3D;;;OAGG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,GACA,IAAI;IAeP;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAe1D;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAS7C;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAG1E"} | ||
| {"version":3,"file":"task-io-service.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-io-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEtE;;;;;GAKG;AACH,cAAM,aAAa;IAEjB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACtD,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IAC/D,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAa;IAG3D,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,oBAAoB,CAA6B;IAGzD,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IACnD,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAEjC,YAAY,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,SAAS;IAS9D;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYpD;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IASxD;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAY3D;;;OAGG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,GACA,IAAI;IAgBP;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAiB1D;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;CAU7C;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,CAAC,EAAE,YAAY,EAC3B,SAAS,CAAC,EAAE,SAAS,GACpB,aAAa,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAG1E"} |
@@ -11,9 +11,9 @@ "use strict"; | ||
| * Output files are reported when tasks are stored to cache. | ||
| * | ||
| * Data is only stored when subscribers are registered. Without subscribers, | ||
| * notifications are no-ops to avoid unbounded memory growth in long-lived | ||
| * processes (e.g. the Nx daemon). | ||
| */ | ||
| class TaskIOService { | ||
| constructor() { | ||
| constructor(projectGraph, taskGraph) { | ||
| // Used to call subscribers that were late to the party | ||
| this.taskToPids = new Map(); | ||
| this.taskToInputs = new Map(); | ||
| this.taskToOutputs = new Map(); | ||
| // Subscription state | ||
@@ -23,2 +23,11 @@ this.pidCallbacks = []; | ||
| this.taskOutputsCallbacks = []; | ||
| // Project graph and task graph for resolving task information | ||
| this.projectGraph = null; | ||
| this.taskGraph = null; | ||
| if (projectGraph) { | ||
| this.projectGraph = projectGraph; | ||
| } | ||
| if (taskGraph) { | ||
| this.taskGraph = taskGraph; | ||
| } | ||
| } | ||
@@ -31,11 +40,11 @@ /** | ||
| this.pidCallbacks.push(callback); | ||
| // Emit current state to new subscriber | ||
| for (const [taskId, pid] of this.taskToPids) { | ||
| callback({ | ||
| taskId, | ||
| pid, | ||
| }); | ||
| } | ||
| } | ||
| /** | ||
| * Returns true if any callbacks are registered for task input notifications. | ||
| * Used to avoid expensive input collection in the hasher when nobody is listening. | ||
| */ | ||
| hasTaskInputSubscribers() { | ||
| return this.taskInputCallbacks.length > 0; | ||
| } | ||
| /** | ||
| * Subscribe to hash inputs as they are computed. | ||
@@ -46,2 +55,6 @@ * Called when a task's hash inputs become available. | ||
| this.taskInputCallbacks.push(callback); | ||
| // Emit current state to new subscriber | ||
| for (const [, taskInputInfo] of this.taskToInputs) { | ||
| callback(taskInputInfo); | ||
| } | ||
| } | ||
@@ -54,2 +67,9 @@ /** | ||
| this.taskOutputsCallbacks.push(callback); | ||
| // Emit current state to new subscriber | ||
| for (const [task, outputs] of this.taskToOutputs) { | ||
| callback({ | ||
| taskId: task, | ||
| outputs: outputs, | ||
| }); | ||
| } | ||
| } | ||
@@ -65,2 +85,3 @@ /** | ||
| }; | ||
| this.taskToInputs.set(taskId, taskInputInfo); | ||
| for (const cb of this.taskInputCallbacks) { | ||
@@ -80,2 +101,3 @@ try { | ||
| notifyTaskOutputs(taskId, outputs) { | ||
| this.taskToOutputs.set(taskId, outputs); | ||
| const update = { | ||
@@ -99,2 +121,3 @@ taskId, | ||
| notifyPidUpdate(update) { | ||
| this.taskToPids.set(update.taskId, update.pid); | ||
| for (const cb of this.pidCallbacks) { | ||
@@ -114,6 +137,7 @@ try { | ||
| * Get or create the singleton TaskIOService instance. | ||
| * Optionally provide projectGraph and taskGraph to initialize with context. | ||
| */ | ||
| function getTaskIOService() { | ||
| function getTaskIOService(projectGraph, taskGraph) { | ||
| if (!instance) { | ||
| instance = new TaskIOService(); | ||
| instance = new TaskIOService(projectGraph, taskGraph); | ||
| } | ||
@@ -120,0 +144,0 @@ return instance; |
@@ -45,3 +45,3 @@ import { NxJsonConfiguration } from '../config/nx-json'; | ||
| private discreteTaskExitHandled; | ||
| private cleanupPromise; | ||
| private cleanupDone; | ||
| constructor(hasher: TaskHasher, initiatingProject: string | undefined, initiatingTasks: Task[], projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, options: NxArgs & DefaultTasksRunnerOptions, bail: boolean, daemon: DaemonClient, outputStyle: string, taskGraphForHashing?: TaskGraph); | ||
@@ -94,6 +94,5 @@ init(): Promise<void>; | ||
| private recordOutputsHash; | ||
| private handleContinuousTaskExit; | ||
| private registerContinuousTaskExitHandler; | ||
| private completeContinuousTask; | ||
| private cleanup; | ||
| private performCleanup; | ||
| private setupSignalHandlers; | ||
@@ -100,0 +99,0 @@ private cleanUpUnneededContinuousTasks; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"task-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/tasks-runner/task-orchestrator.ts"],"names":[],"mappings":"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"} |
@@ -67,3 +67,3 @@ "use strict"; | ||
| this.discreteTaskExitHandled = new Map(); | ||
| this.cleanupPromise = null; | ||
| this.cleanupDone = false; | ||
| } | ||
@@ -148,13 +148,9 @@ async init() { | ||
| if (this.initializingTaskIds.has(task.id)) { | ||
| // Initiating tasks must block this thread until the task exits. | ||
| // This is the only onExit callback so we can await it before | ||
| // calling res(). The one in startContinuousTask is skipped for | ||
| // initiating tasks — exitCallbacks.forEach doesn't await async | ||
| // callbacks, so a second callback would create a floating promise | ||
| // that may not resolve before run() returns. | ||
| const ownsRunningTasksService = this.runningContinuousTasks.get(task.id)?.ownsRunningTasksService ?? | ||
| true; | ||
| await new Promise((res) => { | ||
| runningTask.onExit(async (code) => { | ||
| await this.handleContinuousTaskExit(code, task, groupId, ownsRunningTasksService); | ||
| runningTask.onExit((code) => { | ||
| if (!this.tuiEnabled) { | ||
| if (code > 128) { | ||
| process.exit(code); | ||
| } | ||
| } | ||
| res(); | ||
@@ -618,8 +614,3 @@ }); | ||
| }); | ||
| // Initiating tasks complete inline in executeNextBatchOfTasksUsingTaskSchedule | ||
| if (!this.initializingTaskIds.has(task.id)) { | ||
| runningTask.onExit(async (code) => { | ||
| await this.handleContinuousTaskExit(code, task, groupId, false); | ||
| }); | ||
| } | ||
| this.registerContinuousTaskExitHandler(runningTask, task, groupId, false); | ||
| // task is already running by another process, we schedule the next tasks | ||
@@ -650,8 +641,3 @@ // and release the threads | ||
| }); | ||
| // Initiating tasks complete inline in executeNextBatchOfTasksUsingTaskSchedule | ||
| if (!this.initializingTaskIds.has(task.id)) { | ||
| childProcess.onExit(async (code) => { | ||
| await this.handleContinuousTaskExit(code, task, groupId, true); | ||
| }); | ||
| } | ||
| this.registerContinuousTaskExitHandler(childProcess, task, groupId, true); | ||
| await this.scheduleNextTasksAndReleaseThreads(); | ||
@@ -842,16 +828,18 @@ return childProcess; | ||
| // endregion utils | ||
| async handleContinuousTaskExit(code, task, groupId, ownsRunningTasksService) { | ||
| // If cleanup already completed this task, nothing left to do | ||
| if (this.completedTasks[task.id] !== undefined) { | ||
| return; | ||
| } | ||
| const stoppingReason = this.runningContinuousTasks.get(task.id)?.stoppingReason; | ||
| if (stoppingReason || exit_codes_1.EXPECTED_TERMINATION_SIGNALS.has(code)) { | ||
| const reason = stoppingReason === 'fulfilled' ? 'fulfilled' : 'interrupted'; | ||
| await this.completeContinuousTask(task, groupId, ownsRunningTasksService, reason); | ||
| } | ||
| else { | ||
| console.error(`Task "${task.id}" is continuous but exited with code ${code}`); | ||
| await this.completeContinuousTask(task, groupId, ownsRunningTasksService, 'crashed'); | ||
| } | ||
| registerContinuousTaskExitHandler(runningTask, task, groupId, ownsRunningTasksService) { | ||
| runningTask.onExit(async (code) => { | ||
| // If cleanup already completed this task, nothing left to do | ||
| if (this.completedTasks[task.id] !== undefined) { | ||
| return; | ||
| } | ||
| const stoppingReason = this.runningContinuousTasks.get(task.id)?.stoppingReason; | ||
| if (stoppingReason || exit_codes_1.EXPECTED_TERMINATION_SIGNALS.has(code)) { | ||
| const reason = stoppingReason === 'fulfilled' ? 'fulfilled' : 'interrupted'; | ||
| await this.completeContinuousTask(task, groupId, ownsRunningTasksService, reason); | ||
| } | ||
| else { | ||
| console.error(`Task "${task.id}" is continuous but exited with code ${code}`); | ||
| await this.completeContinuousTask(task, groupId, ownsRunningTasksService, 'crashed'); | ||
| } | ||
| }); | ||
| } | ||
@@ -883,9 +871,6 @@ async completeContinuousTask(task, groupId, ownsRunningTasksService, reason) { | ||
| async cleanup() { | ||
| if (this.cleanupPromise) { | ||
| return this.cleanupPromise; | ||
| if (this.cleanupDone) { | ||
| return; | ||
| } | ||
| this.cleanupPromise = this.performCleanup(); | ||
| return this.cleanupPromise; | ||
| } | ||
| async performCleanup() { | ||
| this.cleanupDone = true; | ||
| // Mark all running tasks for intentional stop | ||
@@ -940,14 +925,2 @@ const reason = this.stopRequested ? 'interrupted' : 'fulfilled'; | ||
| this.stopRequested = true; | ||
| if (!this.tuiEnabled) { | ||
| // Silence output immediately — pnpm (and similar wrappers) may | ||
| // exit before nx finishes cleanup, returning the shell prompt. | ||
| // Any output after that point would appear after the prompt. | ||
| const noop = (_chunk, _encoding, callback) => { | ||
| if (callback) | ||
| callback(); | ||
| return true; | ||
| }; | ||
| process.stdout.write = noop; | ||
| process.stderr.write = noop; | ||
| } | ||
| this.cleanup().finally(() => { | ||
@@ -963,3 +936,2 @@ if (this.resolveStopPromise) { | ||
| process.once('SIGTERM', () => { | ||
| this.stopRequested = true; | ||
| this.cleanup().finally(() => { | ||
@@ -972,3 +944,2 @@ if (this.resolveStopPromise) { | ||
| process.once('SIGHUP', () => { | ||
| this.stopRequested = true; | ||
| this.cleanup().finally(() => { | ||
@@ -975,0 +946,0 @@ if (this.resolveStopPromise) { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Network access
Supply chain riskThis module accesses the network.
Found 2 instances in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 140 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 2 instances in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 3 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 140 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
14934941
0.01%1596
0.19%80095
0.04%678
-0.88%