nx 23.3.0-beta.7 → 23.3.0-beta.9

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.
Files changed (138) hide show
  1. package/README.md +1 -1
  2. package/dist/nx-cloud-internals.d.ts +1 -1
  3. package/dist/nx-cloud-internals.js +4 -4
  4. package/dist/src/command-line/affected/affected.js +20 -1
  5. package/dist/src/command-line/affected/command-object.js +1 -1
  6. package/dist/src/command-line/migrate/agentic/master/run-master-session.d.ts +6 -2
  7. package/dist/src/command-line/migrate/agentic/master/run-master-session.js +88 -14
  8. package/dist/src/command-line/migrate/command-object.d.ts +1 -0
  9. package/dist/src/command-line/migrate/command-object.js +6 -1
  10. package/dist/src/command-line/migrate/migrate-analytics.d.ts +34 -9
  11. package/dist/src/command-line/migrate/migrate-analytics.js +71 -10
  12. package/dist/src/command-line/migrate/migrate-config.d.ts +5 -2
  13. package/dist/src/command-line/migrate/migrate-config.js +19 -11
  14. package/dist/src/command-line/migrate/migrate.d.ts +2 -0
  15. package/dist/src/command-line/migrate/migrate.js +152 -45
  16. package/dist/src/command-line/migrate/resolve-package-version.js +2 -19
  17. package/dist/src/command-line/migrate/run/broker.d.ts +14 -2
  18. package/dist/src/command-line/migrate/run/broker.js +95 -34
  19. package/dist/src/command-line/migrate/run/existing-run-report.d.ts +55 -0
  20. package/dist/src/command-line/migrate/run/existing-run-report.js +225 -0
  21. package/dist/src/command-line/migrate/run/give-up.d.ts +41 -0
  22. package/dist/src/command-line/migrate/run/give-up.js +148 -0
  23. package/dist/src/command-line/migrate/run/index.d.ts +6 -4
  24. package/dist/src/command-line/migrate/run/index.js +15 -2
  25. package/dist/src/command-line/migrate/run/issues.d.ts +14 -0
  26. package/dist/src/command-line/migrate/run/issues.js +59 -0
  27. package/dist/src/command-line/migrate/run/orchestrator.d.ts +40 -1
  28. package/dist/src/command-line/migrate/run/orchestrator.js +509 -160
  29. package/dist/src/command-line/migrate/run/run-id.d.ts +0 -8
  30. package/dist/src/command-line/migrate/run/run-id.js +0 -30
  31. package/dist/src/command-line/migrate/run/run-state.d.ts +11 -9
  32. package/dist/src/command-line/migrate/run/run-state.js +25 -12
  33. package/dist/src/command-line/migrate/run/runbook.js +9 -4
  34. package/dist/src/command-line/migrate/run/state-lock.d.ts +31 -0
  35. package/dist/src/command-line/migrate/run/state-lock.js +126 -0
  36. package/dist/src/command-line/migrate/run/state-machine.d.ts +15 -0
  37. package/dist/src/command-line/migrate/run/state-machine.js +137 -10
  38. package/dist/src/command-line/migrate/run/util.d.ts +1 -0
  39. package/dist/src/command-line/migrate/run/util.js +21 -0
  40. package/dist/src/command-line/migrate/run/worker.js +3 -0
  41. package/dist/src/command-line/migrate/step-actions.d.ts +1 -1
  42. package/dist/src/command-line/migrate/step-actions.js +7 -1
  43. package/dist/src/command-line/migrate/text.d.ts +6 -0
  44. package/dist/src/command-line/migrate/text.js +25 -0
  45. package/dist/src/command-line/release/utils/release-graph.js +1 -1
  46. package/dist/src/command-line/release/utils/remote-release-clients/github.js +2 -5
  47. package/dist/src/command-line/release/utils/remote-release-clients/remote-release-client.d.ts +2 -2
  48. package/dist/src/command-line/release/utils/remote-release-clients/remote-release-client.js +4 -5
  49. package/dist/src/command-line/release/version/version-actions.d.ts +3 -0
  50. package/dist/src/command-line/reset/reset.js +10 -4
  51. package/dist/src/command-line/show/command-object.js +1 -1
  52. package/dist/src/command-line/show/projects.js +22 -0
  53. package/dist/src/command-line/yargs-utils/shared-options.d.ts +4 -0
  54. package/dist/src/command-line/yargs-utils/shared-options.js +16 -0
  55. package/dist/src/config/task-graph.d.ts +1 -1
  56. package/dist/src/config/workspace-json-project-json.d.ts +4 -4
  57. package/dist/src/daemon/client/client.d.ts +3 -3
  58. package/dist/src/daemon/client/client.js +4 -4
  59. package/dist/src/daemon/message-types/select-affected-tasks.d.ts +3 -0
  60. package/dist/src/daemon/message-types/ultracache-configuration-version.d.ts +8 -0
  61. package/dist/src/daemon/server/handle-hash-tasks.d.ts +2 -2
  62. package/dist/src/daemon/server/handle-hash-tasks.js +3 -3
  63. package/dist/src/daemon/server/handle-select-affected-tasks.js +5 -2
  64. package/dist/src/daemon/server/ultracache-configuration-state.d.ts +7 -0
  65. package/dist/src/daemon/server/{io-snapshots-state.js → ultracache-configuration-state.js} +5 -4
  66. package/dist/src/devkit-internals.d.ts +3 -1
  67. package/dist/src/devkit-internals.js +8 -3
  68. package/dist/src/hasher/create-task-hasher.d.ts +3 -3
  69. package/dist/src/hasher/create-task-hasher.js +6 -6
  70. package/dist/src/hasher/hash-task.d.ts +2 -2
  71. package/dist/src/hasher/hash-task.js +6 -5
  72. package/dist/src/hasher/native-task-hasher-impl.d.ts +7 -7
  73. package/dist/src/hasher/native-task-hasher-impl.js +19 -19
  74. package/dist/src/hasher/task-hasher.d.ts +14 -14
  75. package/dist/src/hasher/task-hasher.js +13 -13
  76. package/dist/src/native/index.d.ts +151 -102
  77. package/dist/src/native/native-bindings.js +4 -5
  78. package/dist/src/native/nx.wasm32-wasi.debug.wasm +0 -0
  79. package/dist/src/native/nx.wasm32-wasi.wasm +0 -0
  80. package/dist/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +15 -8
  81. package/dist/src/nx-cloud/update-manager.d.ts +3 -3
  82. package/dist/src/nx-cloud/update-manager.js +19 -13
  83. package/dist/src/nx-cloud/utilities/client.d.ts +1 -1
  84. package/dist/src/nx-cloud/utilities/client.js +1 -1
  85. package/dist/src/nx-cloud/utilities/is-workspace-claimed.js +2 -1
  86. package/dist/src/nx-cloud/utilities/nx-cloud-http-client.d.ts +5 -0
  87. package/dist/src/nx-cloud/utilities/nx-cloud-http-client.js +16 -0
  88. package/dist/src/nx-cloud/utilities/url-shorten.js +17 -10
  89. package/dist/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +22 -18
  90. package/dist/src/plugins/js/utils/register.js +11 -3
  91. package/dist/src/project-graph/affected/affected-reasons.d.ts +116 -0
  92. package/dist/src/project-graph/affected/affected-reasons.js +459 -0
  93. package/dist/src/project-graph/affected/affected-tasks.d.ts +23 -10
  94. package/dist/src/project-graph/affected/affected-tasks.js +203 -31
  95. package/dist/src/project-graph/affected/print-explanation.d.ts +11 -0
  96. package/dist/src/project-graph/affected/print-explanation.js +44 -0
  97. package/dist/src/tasks-runner/default-tasks-runner.js +1 -1
  98. package/dist/src/tasks-runner/init-tasks-runner.d.ts +5 -5
  99. package/dist/src/tasks-runner/init-tasks-runner.js +8 -15
  100. package/dist/src/tasks-runner/run-command.d.ts +7 -7
  101. package/dist/src/tasks-runner/run-command.js +19 -23
  102. package/dist/src/tasks-runner/task-orchestrator.d.ts +7 -3
  103. package/dist/src/tasks-runner/task-orchestrator.js +9 -8
  104. package/dist/src/tasks-runner/tasks-runner.d.ts +2 -0
  105. package/dist/src/ultracache/config.d.ts +21 -0
  106. package/dist/src/ultracache/config.js +29 -0
  107. package/dist/src/ultracache/fetch.d.ts +21 -0
  108. package/dist/src/{io-snapshots → ultracache}/fetch.js +9 -9
  109. package/dist/src/ultracache/overrides.d.ts +17 -0
  110. package/dist/src/{io-snapshots → ultracache}/overrides.js +14 -13
  111. package/dist/src/ultracache/report.d.ts +13 -0
  112. package/dist/src/{io-snapshots → ultracache}/report.js +15 -21
  113. package/dist/src/ultracache/store.d.ts +40 -0
  114. package/dist/src/{io-snapshots → ultracache}/store.js +45 -45
  115. package/dist/src/utils/ab-testing.js +11 -12
  116. package/dist/src/utils/command-line-utils.d.ts +1 -0
  117. package/dist/src/utils/create-cli-options.d.ts +6 -0
  118. package/dist/src/utils/create-cli-options.js +29 -0
  119. package/dist/src/utils/db-connection.d.ts +1 -0
  120. package/dist/src/utils/db-connection.js +1 -0
  121. package/dist/src/utils/git-utils.d.ts +7 -0
  122. package/dist/src/utils/git-utils.js +21 -9
  123. package/dist/src/utils/http-client.d.ts +27 -0
  124. package/dist/src/utils/http-client.js +193 -0
  125. package/package.json +12 -38
  126. package/dist/src/daemon/message-types/io-snapshot-version.d.ts +0 -5
  127. package/dist/src/daemon/server/io-snapshots-state.d.ts +0 -7
  128. package/dist/src/io-snapshots/config.d.ts +0 -23
  129. package/dist/src/io-snapshots/config.js +0 -32
  130. package/dist/src/io-snapshots/fetch.d.ts +0 -21
  131. package/dist/src/io-snapshots/outputs.d.ts +0 -12
  132. package/dist/src/io-snapshots/outputs.js +0 -33
  133. package/dist/src/io-snapshots/overrides.d.ts +0 -17
  134. package/dist/src/io-snapshots/report.d.ts +0 -13
  135. package/dist/src/io-snapshots/store.d.ts +0 -37
  136. package/dist/src/nx-cloud/utilities/axios.d.ts +0 -4
  137. package/dist/src/nx-cloud/utilities/axios.js +0 -17
  138. /package/dist/src/daemon/message-types/{io-snapshot-version.js → ultracache-configuration-version.js} +0 -0
@@ -211,7 +211,7 @@ class DaemonClient {
211
211
  async getAllFileData() {
212
212
  return await this.sendToDaemonViaQueue({ type: 'REQUEST_FILE_DATA' });
213
213
  }
214
- hashTasks(runnerOptions, tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ioSnapshots) {
214
+ hashTasks(runnerOptions, tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ultracacheConfigurationsVersion) {
215
215
  return this.sendToDaemonViaQueue({
216
216
  type: 'HASH_TASKS',
217
217
  runnerOptions,
@@ -221,10 +221,10 @@ class DaemonClient {
221
221
  collectInputs,
222
222
  // An External cannot cross the socket: the version names the stored set
223
223
  // to hash from. Absent means native hashing.
224
- ioSnapshots,
224
+ ultracacheConfigurationsVersion,
225
225
  });
226
226
  }
227
- hashTasksUpfront(runnerOptions, tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ioSnapshots) {
227
+ hashTasksUpfront(runnerOptions, tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ultracacheConfigurationsVersion) {
228
228
  return this.sendToDaemonViaQueue({
229
229
  type: 'HASH_TASKS_UPFRONT',
230
230
  runnerOptions,
@@ -232,7 +232,7 @@ class DaemonClient {
232
232
  ...withoutTaskResults(tasks, taskGraph),
233
233
  cwd,
234
234
  collectInputs,
235
- ioSnapshots,
235
+ ultracacheConfigurationsVersion,
236
236
  });
237
237
  }
238
238
  async registerFileWatcher(config, callback) {
@@ -2,6 +2,7 @@ import type { ProjectGraph } from '../../config/project-graph';
2
2
  import type { TaskGraph } from '../../config/task-graph';
3
3
  import type { TaskSelection } from '../../tasks-runner/run-command';
4
4
  import type { AffectedTasksRequest } from '../../project-graph/affected/affected-tasks';
5
+ import type { InternedExplanation } from '../../project-graph/affected/affected-reasons';
5
6
  export declare const SELECT_AFFECTED_TASKS: 'SELECT_AFFECTED_TASKS';
6
7
  export type HandleSelectAffectedTasksMessage = {
7
8
  type: typeof SELECT_AFFECTED_TASKS;
@@ -14,5 +15,7 @@ export type SelectAffectedTasksResponse = {
14
15
  taskGraph: TaskGraph;
15
16
  /** Without a planning context: the plans stay in the daemon. */
16
17
  taskSelection: TaskSelection;
18
+ /** Interned, so it stays small on the wire; the client hydrates it. */
19
+ explanation?: InternedExplanation;
17
20
  };
18
21
  export declare function isHandleSelectAffectedTasksMessage(message: unknown): message is HandleSelectAffectedTasksMessage;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * One stored version of a commit's Ultracache configurations: what crosses
3
+ * the socket in place of the handle.
4
+ */
5
+ export interface UltracacheConfigurationVersion {
6
+ commit: string;
7
+ fetchedAt: number;
8
+ }
@@ -1,5 +1,5 @@
1
1
  import { Task, TaskGraph } from '../../config/task-graph';
2
- import type { IoSnapshotVersion } from '../message-types/io-snapshot-version';
2
+ import type { UltracacheConfigurationVersion } from '../message-types/ultracache-configuration-version';
3
3
  interface HashTasksPayload {
4
4
  runnerOptions: any;
5
5
  tasks: Task[];
@@ -7,7 +7,7 @@ interface HashTasksPayload {
7
7
  perTaskEnvs: Record<string, NodeJS.ProcessEnv>;
8
8
  cwd: string;
9
9
  collectInputs?: boolean;
10
- ioSnapshots?: IoSnapshotVersion;
10
+ ultracacheConfigurationsVersion?: UltracacheConfigurationVersion;
11
11
  }
12
12
  export declare function handleHashTasks(payload: HashTasksPayload): Promise<{
13
13
  response: import("../../hasher/task-hasher").Hash[];
@@ -5,7 +5,7 @@ exports.handleHashTasksUpfront = handleHashTasksUpfront;
5
5
  const project_graph_incremental_recomputation_1 = require("./project-graph-incremental-recomputation");
6
6
  const task_hasher_1 = require("../../hasher/task-hasher");
7
7
  const configuration_1 = require("../../config/configuration");
8
- const io_snapshots_state_1 = require("./io-snapshots-state");
8
+ const ultracache_configuration_state_1 = require("./ultracache-configuration-state");
9
9
  const planning_context_1 = require("./planning-context");
10
10
  /**
11
11
  * We use this not to recreated hasher for every hash operation
@@ -27,7 +27,7 @@ async function getHasher(runnerOptions) {
27
27
  }
28
28
  async function handleHashTasks(payload) {
29
29
  const hasher = await getHasher(payload.runnerOptions);
30
- const response = await hasher.hashTasks(payload.tasks, payload.taskGraph, payload.perTaskEnvs, payload.cwd, payload.collectInputs, (0, io_snapshots_state_1.getIoSnapshotsForVersion)(payload.ioSnapshots));
30
+ const response = await hasher.hashTasks(payload.tasks, payload.taskGraph, payload.perTaskEnvs, payload.cwd, payload.collectInputs, (0, ultracache_configuration_state_1.getUltracacheConfigurationsForVersion)(payload.ultracacheConfigurationsVersion));
31
31
  return {
32
32
  response,
33
33
  description: 'handleHashTasks',
@@ -35,7 +35,7 @@ async function handleHashTasks(payload) {
35
35
  }
36
36
  async function handleHashTasksUpfront(payload) {
37
37
  const hasher = await getHasher(payload.runnerOptions);
38
- const response = await hasher.hashTasksUpfront(payload.tasks, payload.taskGraph, payload.perTaskEnvs, payload.cwd, payload.collectInputs, (0, io_snapshots_state_1.getIoSnapshotsForVersion)(payload.ioSnapshots));
38
+ const response = await hasher.hashTasksUpfront(payload.tasks, payload.taskGraph, payload.perTaskEnvs, payload.cwd, payload.collectInputs, (0, ultracache_configuration_state_1.getUltracacheConfigurationsForVersion)(payload.ultracacheConfigurationsVersion));
39
39
  return {
40
40
  response,
41
41
  description: 'handleHashTasksUpfront',
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleSelectAffectedTasks = handleSelectAffectedTasks;
4
4
  const configuration_1 = require("../../config/configuration");
5
5
  const affected_tasks_1 = require("../../project-graph/affected/affected-tasks");
6
- const io_snapshots_state_1 = require("./io-snapshots-state");
6
+ const ultracache_configuration_state_1 = require("./ultracache-configuration-state");
7
7
  const planning_context_1 = require("./planning-context");
8
8
  const project_graph_incremental_recomputation_1 = require("./project-graph-incremental-recomputation");
9
9
  async function handleSelectAffectedTasks(request) {
@@ -12,12 +12,15 @@ async function handleSelectAffectedTasks(request) {
12
12
  throw error;
13
13
  }
14
14
  const nxJson = (0, configuration_1.readNxJson)();
15
- const selection = await (0, affected_tasks_1.selectAffectedTasks)(projectGraph, nxJson, (0, planning_context_1.planningContextFor)(projectGraph, nxJson), request, { ioSnapshots: (0, io_snapshots_state_1.getIoSnapshotsForVersion)(request.ioSnapshots) });
15
+ const selection = await (0, affected_tasks_1.selectAffectedTasks)(projectGraph, nxJson, (0, planning_context_1.planningContextFor)(projectGraph, nxJson), request, {
16
+ ultracacheConfigurations: (0, ultracache_configuration_state_1.getUltracacheConfigurationsForVersion)(request.ultracacheConfigurationsVersion),
17
+ });
16
18
  const response = {
17
19
  projectGraph,
18
20
  affectedTaskIds: [...selection.affectedTaskIds],
19
21
  taskGraph: selection.taskGraph,
20
22
  taskSelection: selection.taskSelection,
23
+ explanation: selection.explanation,
21
24
  };
22
25
  return { response, description: 'handleSelectAffectedTasks' };
23
26
  }
@@ -0,0 +1,7 @@
1
+ import type { UltracacheConfigurations } from '../../native';
2
+ import type { UltracacheConfigurationVersion } from '../message-types/ultracache-configuration-version';
3
+ /**
4
+ * Exactly the version the client hashes from, never a newer import for the
5
+ * same commit. `undefined` when it is not stored, e.g. after `nx reset`.
6
+ */
7
+ export declare function getUltracacheConfigurationsForVersion(version: UltracacheConfigurationVersion | undefined): UltracacheConfigurations | undefined;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIoSnapshotsForVersion = getIoSnapshotsForVersion;
4
- const store_1 = require("../../io-snapshots/store");
3
+ exports.getUltracacheConfigurationsForVersion = getUltracacheConfigurationsForVersion;
4
+ const store_1 = require("../../ultracache/store");
5
5
  // One handle at a time: entries read for a request serve the next one while
6
6
  // the version holds, and another version replaces it, so nothing accumulates
7
7
  // over a long-lived daemon.
@@ -10,7 +10,7 @@ let remembered;
10
10
  * Exactly the version the client hashes from, never a newer import for the
11
11
  * same commit. `undefined` when it is not stored, e.g. after `nx reset`.
12
12
  */
13
- function getIoSnapshotsForVersion(version) {
13
+ function getUltracacheConfigurationsForVersion(version) {
14
14
  if (!version) {
15
15
  return undefined;
16
16
  }
@@ -26,7 +26,8 @@ function getIoSnapshotsForVersion(version) {
26
26
  }
27
27
  function readStored({ commit, fetchedAt, }) {
28
28
  try {
29
- return (0, store_1.getIoSnapshotStore)().getVersion(commit, fetchedAt) ?? undefined;
29
+ return ((0, store_1.getUltracacheConfigurationStore)().getVersion(commit, fetchedAt) ??
30
+ undefined);
30
31
  }
31
32
  catch {
32
33
  // An unusable database hashes natively rather than failing the request.
@@ -47,6 +47,8 @@ export { getEnvFilesForTask, getGraphTimeDotEnvForTask, } from './tasks-runner/t
47
47
  export { getEnvPathsForTask } from './tasks-runner/task-env-paths';
48
48
  export { hashDaemonClientEnv, getDaemonClientEnvGeneration, getAppliedDaemonClientEnv, applyDaemonEnvFromClient, } from './daemon/client/daemon-environment';
49
49
  export { isCI } from './utils/is-ci';
50
+ export { createCliOptions } from './utils/create-cli-options';
51
+ export { createOverrides } from './utils/command-line-utils';
50
52
  export { isUsingPrettierInTree, prettierConfigFiles, } from './utils/formatters/prettier';
51
53
  export { detectFormatter, detectFormatterInTree } from './utils/formatters';
52
54
  export type { FormatterType } from './utils/formatters';
@@ -85,7 +87,7 @@ export { getRelativeProjectJsonSchemaPath } from './generators/utils/project-con
85
87
  export { hashFile } from './hasher/file-hasher';
86
88
  export { filterUsingGlobPatterns, getTargetInputs } from './hasher/task-hasher';
87
89
  export type { JsonInput } from './native';
88
- export { killProcessTreeGraceful } from './native';
90
+ export { isAiAgent, killProcessTreeGraceful } from './native';
89
91
  export { killChildOnHostExit } from './utils/kill-child-on-host-exit';
90
92
  export { connectToNxCloud } from './nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud';
91
93
  export type { NxCloudOnBoardingStatus } from './nx-cloud/models/onboarding-status';
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDaemonClientEnvGeneration = exports.hashDaemonClientEnv = exports.getEnvPathsForTask = exports.getGraphTimeDotEnvForTask = exports.getEnvFilesForTask = exports.interpolate = exports.requireWithTsconfigFallback = exports.isTsEsmNamedExportLinkageError = exports.isRequireInEsmScopeError = exports.forceRegisterEsmLoader = exports.loadTsFile = exports.registerTsProject = exports.LoadedNxPlugin = exports.retrieveProjectConfigurations = exports.findProjectForPath = exports.createProjectRootMappings = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashMultiGlobWithWorkspaceContext = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.installPackageToTmpAsync = exports.installPackageToTmp = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.confirmationPrompt = exports.textPrompt = exports.multiselectPrompt = exports.selectPrompt = exports.splitTarget = exports.createPrettierIgnoreChecker = exports.createOxfmtIgnoreChecker = exports.createGitIgnoreChecker = exports.readTargetDefaultsForTarget = exports.createTargetDefaultsResults = exports.findMatchingProjects = exports.findMatchingConfigFiles = exports.readProjectConfigurationsFromRootMap = exports.findMatchingTargetNames = exports.resolveCommandSyntacticSugar = exports.mergeTargetConfigurations = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.parseExecutor = exports.getExecutorInformation = exports.parseVersionFromPackageManagerField = exports.createTempNpmDirectory = void 0;
4
- exports.createNxCloudOnboardingURL = exports.getNxCloudAppOnBoardingUrl = exports.createNxCloudOnboardingURLForWelcomeApp = exports.connectToNxCloud = exports.killChildOnHostExit = exports.killProcessTreeGraceful = exports.getTargetInputs = exports.filterUsingGlobPatterns = exports.hashFile = exports.getRelativeProjectJsonSchemaPath = exports.FsTree = exports.LARGE_BUFFER = exports.daemonClient = exports.isProjectGraphProjectNode = exports.isProjectGraphExternalNode = exports.fileDataDepType = exports.fileDataDepTarget = exports.BatchFunctionRunner = exports.getGeneratorInformation = exports.setupAiAgentsGenerator = exports.toOldFormat = exports.toNewFormat = exports.runCommandsExecutor = exports.acknowledgeBuildScripts = exports.getCatalogDependenciesFromPackageJson = exports.getCatalogManager = exports.checkFilesAreOutputs = exports.checkFilesAreInputs = exports.PromptResolutionError = exports.resolvePrompt = exports.SchemaResolutionError = exports.ImplementationResolutionError = exports.resolveSchema = exports.resolveImplementation = exports.emitPluginWorkerLog = exports.safeWriteFileCache = exports.PluginCache = exports.handleImport = exports.signalToCode = exports.globalSpinner = exports.readYamlFile = exports.oxfmtConfigFiles = exports.formatFilesWithOxfmt = exports.detectFormatterInTree = exports.detectFormatter = exports.prettierConfigFiles = exports.isUsingPrettierInTree = exports.isCI = exports.applyDaemonEnvFromClient = exports.getAppliedDaemonClientEnv = void 0;
5
- exports.normalizeDependencyConfigDefinition = exports.isCacheableTask = exports.getUnparsedOverrideArgs = exports.getTargetConfigurationForTask = exports.getSerializedArgsForTask = exports.getPrintableCommandArgsForTask = exports.getOutputs = exports.getExecutorNameForTask = exports.getExecutorForTask = exports.getDependencyConfigs = exports.getCustomHasher = exports.getCliPath = exports.expandWildcardTargetConfiguration = exports.expandInitiatingTasksThroughNoop = exports.expandDependencyConfigSyntaxSugar = exports.createTaskId = exports.calculateReverseDeps = exports.createRunManyDynamicOutputRenderer = exports.CompositeLifeCycle = exports.RemoteCacheV2 = exports.Cache = exports.readCachedProjectConfiguration = exports.preventRecursionInGraphConstruction = exports.handleProjectGraphError = exports.createProjectGraphAndSourceMapsAsync = exports.buildProjectGraphAndSourceMapsWithoutDaemon = exports.isNpmProject = exports.readFileMapCache = exports.readPackageJson = exports.isWholeFileChange = exports.isLockFileChange = exports.isDeletedFileChange = exports.defaultFileRead = exports.calculateFileChanges = exports.WholeFileChange = exports.TEN_MEGABYTES = exports.LockFileChange = exports.DeletedFileChange = exports.buildPackageJsonWorkspacesMatcher = exports.buildPackageJsonPatterns = exports.getGlobPatternsFromPackageManagerWorkspaces = exports.registerTsConfigPaths = exports.getWorkspacePackagesFromGraph = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.findProjectsNpmDependencies = exports.createPackageJson = exports.getLockFileName = exports.generatePrunedDeployOutput = exports.createLockFile = void 0;
6
- exports.safeSpawn = exports.safeExecFileSync = exports.workspaceRootInner = exports.setWorkspaceRoot = exports.setupWorkspaceContext = exports.resetWorkspaceContext = exports.globWithWorkspaceContext = exports.getFilesInDirectoryUsingContext = exports.nxVersion = exports.SyncError = exports.quoteShellArg = exports.getSourceDirOfDependentProjects = exports.findAllProjectNodeDependencies = exports.findInstalledPlugins = exports.deriveGroupNameFromTarget = exports.warnUnshippableLocalPathSpec = exports.relocatePrunedLocalPathSpec = exports.movePeerDependencyToDependencies = exports.dropEmptyPeerDependencySections = exports.readNxMigrateConfig = exports.isNxCloudUsed = exports.getNxCloudUrl = exports.orange = exports.NX_PREFIX = exports.getNxRequirePaths = exports.isGlobPattern = exports.combineGlobPatterns = exports.getLatestCommitSha = exports.readFileIfExisting = exports.isRelativePath = exports.fileExists = exports.directoryExists = exports.createDirectory = exports.deduceDefaultBase = exports.codeFrameColumns = exports.runNxSync = exports.workspaceDataDirectory = exports.getLastValueFromAsyncIterableIterator = exports.validateOutputs = exports.unparse = exports.transformLegacyOutputs = exports.shouldStreamOutput = exports.removeTasksFromTaskGraph = exports.readProjectAndTargetFromTargetString = exports.normalizeTargetDependencyWithStringProjects = exports.normalizeDependencyConfigProjects = void 0;
4
+ exports.connectToNxCloud = exports.killChildOnHostExit = exports.killProcessTreeGraceful = exports.isAiAgent = exports.getTargetInputs = exports.filterUsingGlobPatterns = exports.hashFile = exports.getRelativeProjectJsonSchemaPath = exports.FsTree = exports.LARGE_BUFFER = exports.daemonClient = exports.isProjectGraphProjectNode = exports.isProjectGraphExternalNode = exports.fileDataDepType = exports.fileDataDepTarget = exports.BatchFunctionRunner = exports.getGeneratorInformation = exports.setupAiAgentsGenerator = exports.toOldFormat = exports.toNewFormat = exports.runCommandsExecutor = exports.acknowledgeBuildScripts = exports.getCatalogDependenciesFromPackageJson = exports.getCatalogManager = exports.checkFilesAreOutputs = exports.checkFilesAreInputs = exports.PromptResolutionError = exports.resolvePrompt = exports.SchemaResolutionError = exports.ImplementationResolutionError = exports.resolveSchema = exports.resolveImplementation = exports.emitPluginWorkerLog = exports.safeWriteFileCache = exports.PluginCache = exports.handleImport = exports.signalToCode = exports.globalSpinner = exports.readYamlFile = exports.oxfmtConfigFiles = exports.formatFilesWithOxfmt = exports.detectFormatterInTree = exports.detectFormatter = exports.prettierConfigFiles = exports.isUsingPrettierInTree = exports.createOverrides = exports.createCliOptions = exports.isCI = exports.applyDaemonEnvFromClient = exports.getAppliedDaemonClientEnv = void 0;
5
+ exports.getTargetConfigurationForTask = exports.getSerializedArgsForTask = exports.getPrintableCommandArgsForTask = exports.getOutputs = exports.getExecutorNameForTask = exports.getExecutorForTask = exports.getDependencyConfigs = exports.getCustomHasher = exports.getCliPath = exports.expandWildcardTargetConfiguration = exports.expandInitiatingTasksThroughNoop = exports.expandDependencyConfigSyntaxSugar = exports.createTaskId = exports.calculateReverseDeps = exports.createRunManyDynamicOutputRenderer = exports.CompositeLifeCycle = exports.RemoteCacheV2 = exports.Cache = exports.readCachedProjectConfiguration = exports.preventRecursionInGraphConstruction = exports.handleProjectGraphError = exports.createProjectGraphAndSourceMapsAsync = exports.buildProjectGraphAndSourceMapsWithoutDaemon = exports.isNpmProject = exports.readFileMapCache = exports.readPackageJson = exports.isWholeFileChange = exports.isLockFileChange = exports.isDeletedFileChange = exports.defaultFileRead = exports.calculateFileChanges = exports.WholeFileChange = exports.TEN_MEGABYTES = exports.LockFileChange = exports.DeletedFileChange = exports.buildPackageJsonWorkspacesMatcher = exports.buildPackageJsonPatterns = exports.getGlobPatternsFromPackageManagerWorkspaces = exports.registerTsConfigPaths = exports.getWorkspacePackagesFromGraph = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.findProjectsNpmDependencies = exports.createPackageJson = exports.getLockFileName = exports.generatePrunedDeployOutput = exports.createLockFile = exports.createNxCloudOnboardingURL = exports.getNxCloudAppOnBoardingUrl = exports.createNxCloudOnboardingURLForWelcomeApp = void 0;
6
+ exports.safeSpawn = exports.safeExecFileSync = exports.workspaceRootInner = exports.setWorkspaceRoot = exports.setupWorkspaceContext = exports.resetWorkspaceContext = exports.globWithWorkspaceContext = exports.getFilesInDirectoryUsingContext = exports.nxVersion = exports.SyncError = exports.quoteShellArg = exports.getSourceDirOfDependentProjects = exports.findAllProjectNodeDependencies = exports.findInstalledPlugins = exports.deriveGroupNameFromTarget = exports.warnUnshippableLocalPathSpec = exports.relocatePrunedLocalPathSpec = exports.movePeerDependencyToDependencies = exports.dropEmptyPeerDependencySections = exports.readNxMigrateConfig = exports.isNxCloudUsed = exports.getNxCloudUrl = exports.orange = exports.NX_PREFIX = exports.getNxRequirePaths = exports.isGlobPattern = exports.combineGlobPatterns = exports.getLatestCommitSha = exports.readFileIfExisting = exports.isRelativePath = exports.fileExists = exports.directoryExists = exports.createDirectory = exports.deduceDefaultBase = exports.codeFrameColumns = exports.runNxSync = exports.workspaceDataDirectory = exports.getLastValueFromAsyncIterableIterator = exports.validateOutputs = exports.unparse = exports.transformLegacyOutputs = exports.shouldStreamOutput = exports.removeTasksFromTaskGraph = exports.readProjectAndTargetFromTargetString = exports.normalizeTargetDependencyWithStringProjects = exports.normalizeDependencyConfigProjects = exports.normalizeDependencyConfigDefinition = exports.isCacheableTask = exports.getUnparsedOverrideArgs = void 0;
7
7
  const tslib_1 = require("tslib");
8
8
  /**
9
9
  * Note to developers: STOP! These are nx internals, not part of the public
@@ -112,6 +112,10 @@ Object.defineProperty(exports, "getAppliedDaemonClientEnv", { enumerable: true,
112
112
  Object.defineProperty(exports, "applyDaemonEnvFromClient", { enumerable: true, get: function () { return daemon_environment_1.applyDaemonEnvFromClient; } });
113
113
  var is_ci_1 = require("./utils/is-ci");
114
114
  Object.defineProperty(exports, "isCI", { enumerable: true, get: function () { return is_ci_1.isCI; } });
115
+ var create_cli_options_1 = require("./utils/create-cli-options");
116
+ Object.defineProperty(exports, "createCliOptions", { enumerable: true, get: function () { return create_cli_options_1.createCliOptions; } });
117
+ var command_line_utils_1 = require("./utils/command-line-utils");
118
+ Object.defineProperty(exports, "createOverrides", { enumerable: true, get: function () { return command_line_utils_1.createOverrides; } });
115
119
  var prettier_1 = require("./utils/formatters/prettier");
116
120
  Object.defineProperty(exports, "isUsingPrettierInTree", { enumerable: true, get: function () { return prettier_1.isUsingPrettierInTree; } });
117
121
  Object.defineProperty(exports, "prettierConfigFiles", { enumerable: true, get: function () { return prettier_1.prettierConfigFiles; } });
@@ -181,6 +185,7 @@ var task_hasher_1 = require("./hasher/task-hasher");
181
185
  Object.defineProperty(exports, "filterUsingGlobPatterns", { enumerable: true, get: function () { return task_hasher_1.filterUsingGlobPatterns; } });
182
186
  Object.defineProperty(exports, "getTargetInputs", { enumerable: true, get: function () { return task_hasher_1.getTargetInputs; } });
183
187
  var native_1 = require("./native");
188
+ Object.defineProperty(exports, "isAiAgent", { enumerable: true, get: function () { return native_1.isAiAgent; } });
184
189
  Object.defineProperty(exports, "killProcessTreeGraceful", { enumerable: true, get: function () { return native_1.killProcessTreeGraceful; } });
185
190
  var kill_child_on_host_exit_1 = require("./utils/kill-child-on-host-exit");
186
191
  Object.defineProperty(exports, "killChildOnHostExit", { enumerable: true, get: function () { return kill_child_on_host_exit_1.killChildOnHostExit; } });
@@ -1,11 +1,11 @@
1
1
  import { NxJsonConfiguration } from '../config/nx-json';
2
2
  import { ProjectGraph } from '../config/project-graph';
3
- import type { IoSnapshots } from '../native';
3
+ import type { UltracacheConfigurations } from '../native';
4
4
  import type { TaskPlanningContext } from './task-planning-context';
5
5
  import { TaskHasher } from './task-hasher';
6
6
  /**
7
- * `ioSnapshots` is this run's set (see `loadIoSnapshotsForRun`); undefined
7
+ * `ultracacheConfigurations` is this run's set (see `loadUltracacheConfigurationsForRun`); undefined
8
8
  * hashes natively. The daemon gets its version, so it hashes from the same
9
9
  * set even after a newer one is imported for the commit.
10
10
  */
11
- export declare function createTaskHasher(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, runnerOptions?: any, ioSnapshots?: IoSnapshots, planningContext?: TaskPlanningContext): TaskHasher;
11
+ export declare function createTaskHasher(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, runnerOptions?: any, ultracacheConfigurations?: UltracacheConfigurations, planningContext?: TaskPlanningContext): TaskHasher;
@@ -5,21 +5,21 @@ const client_1 = require("../daemon/client/client");
5
5
  const build_project_graph_1 = require("../project-graph/build-project-graph");
6
6
  const task_hasher_1 = require("./task-hasher");
7
7
  /**
8
- * `ioSnapshots` is this run's set (see `loadIoSnapshotsForRun`); undefined
8
+ * `ultracacheConfigurations` is this run's set (see `loadUltracacheConfigurationsForRun`); undefined
9
9
  * hashes natively. The daemon gets its version, so it hashes from the same
10
10
  * set even after a newer one is imported for the commit.
11
11
  */
12
- function createTaskHasher(projectGraph, nxJson, runnerOptions, ioSnapshots, planningContext) {
12
+ function createTaskHasher(projectGraph, nxJson, runnerOptions, ultracacheConfigurations, planningContext) {
13
13
  if (client_1.daemonClient.enabled()) {
14
- return new task_hasher_1.DaemonBasedTaskHasher(client_1.daemonClient, runnerOptions, ioSnapshots
14
+ return new task_hasher_1.DaemonBasedTaskHasher(client_1.daemonClient, runnerOptions, ultracacheConfigurations
15
15
  ? {
16
- commit: ioSnapshots.commit,
17
- fetchedAt: ioSnapshots.resolution.fetchedAt,
16
+ commit: ultracacheConfigurations.commit,
17
+ fetchedAt: ultracacheConfigurations.resolution.fetchedAt,
18
18
  }
19
19
  : undefined);
20
20
  }
21
21
  else {
22
22
  const { rustReferences } = (0, build_project_graph_1.getFileMap)();
23
- return new task_hasher_1.InProcessTaskHasher(projectGraph, nxJson, rustReferences, runnerOptions, planningContext, ioSnapshots);
23
+ return new task_hasher_1.InProcessTaskHasher(projectGraph, nxJson, rustReferences, runnerOptions, planningContext, ultracacheConfigurations);
24
24
  }
25
25
  }
@@ -1,10 +1,10 @@
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 { type IoSnapshots, TaskDetails } from '../native';
4
+ import { type UltracacheConfigurations, TaskDetails } from '../native';
5
5
  import { TaskHasher } from './task-hasher';
6
6
  export declare function getTaskDetails(): TaskDetails | null;
7
- export declare function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, tasksDetails: TaskDetails | null, ioSnapshots?: IoSnapshots): Promise<void>;
7
+ export declare function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, nxJson: NxJsonConfiguration, tasksDetails: TaskDetails | null, ultracacheConfigurations?: UltracacheConfigurations): Promise<Set<string>>;
8
8
  export declare function hashTask(hasher: TaskHasher, projectGraph: ProjectGraph, taskGraph: TaskGraph, task: Task, env: NodeJS.ProcessEnv, taskDetails: TaskDetails | null): Promise<void>;
9
9
  /**
10
10
  * Batch-hash `tasks`. `perTaskEnvs` must contain an entry keyed by
@@ -23,13 +23,13 @@ function getTaskDetails() {
23
23
  }
24
24
  return taskDetails;
25
25
  }
26
- async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGraph, taskGraph, nxJson, tasksDetails, ioSnapshots) {
26
+ async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGraph, taskGraph, nxJson, tasksDetails, ultracacheConfigurations) {
27
27
  performance.mark('hashMultipleTasks:start');
28
28
  const projects = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph).projects;
29
- // A snapshot can make a task depend on producer outputs its declared
29
+ // An Ultracache configuration can make a task depend on producer outputs its declared
30
30
  // inputs never mentioned; those hash after their producers too.
31
- const deferredBySnapshot = ioSnapshots
32
- ? new Set((0, native_1.getIoSnapshotDeferredTaskIds)(ioSnapshots, taskGraph))
31
+ const deferredByConfiguration = ultracacheConfigurations
32
+ ? new Set((0, native_1.getUltracacheDeferredTaskIds)(ultracacheConfigurations, taskGraph))
33
33
  : null;
34
34
  const tasks = Object.values(taskGraph.tasks);
35
35
  const tasksWithHashers = await Promise.all(tasks.map(async (task) => {
@@ -42,7 +42,7 @@ async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGrap
42
42
  // a continuous server, which only planning reveals.
43
43
  const candidates = tasksWithHashers
44
44
  .filter(({ task, customHasher }) => !customHasher &&
45
- !deferredBySnapshot?.has(task.id) &&
45
+ !deferredByConfiguration?.has(task.id) &&
46
46
  !readsDependencyOutputs(task, taskGraph, projectGraph, nxJson))
47
47
  .map((t) => t.task);
48
48
  const perTaskEnvs = {};
@@ -72,6 +72,7 @@ async function hashTasksThatDoNotDependOnOutputsOfOtherTasks(hasher, projectGrap
72
72
  }
73
73
  performance.mark('hashMultipleTasks:end');
74
74
  performance.measure('hashMultipleTasks', 'hashMultipleTasks:start', 'hashMultipleTasks:end');
75
+ return new Set(tasks.filter((t) => !(t.id in hashes)).map((t) => t.id));
75
76
  }
76
77
  function readsDependencyOutputs(task, taskGraph, projectGraph, nxJson) {
77
78
  return (taskGraph.dependencies[task.id]?.length > 0 &&
@@ -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, IoSnapshots, ProjectGraph as NativeProjectGraph, NxWorkspaceFilesExternals, TaskHasher } from '../native';
4
+ import { ExternalObject, FileData, HasherOptions, HashPlanner, UltracacheConfigurations, ProjectGraph as NativeProjectGraph, NxWorkspaceFilesExternals, TaskHasher } from '../native';
5
5
  import type { IgnoredIndexReader } from '../native';
6
6
  import type { TaskPlanningContext } from './task-planning-context';
7
7
  import { PartialHash, TaskHasherImpl } from './task-hasher';
@@ -22,13 +22,13 @@ export declare class NativeTaskHasherImpl implements TaskHasherImpl {
22
22
  constructor(workspaceRoot: string, nxJson: NxJsonConfiguration, projectGraph: ProjectGraph, externals: NxWorkspaceFilesExternals, options: {
23
23
  selectivelyHashTsConfig: boolean;
24
24
  }, planningContext?: TaskPlanningContext);
25
- hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<PartialHash>;
26
- hashTasks(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<PartialHash[]>;
25
+ hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<PartialHash>;
26
+ hashTasks(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<PartialHash[]>;
27
27
  /**
28
- * Plans through the native planner. With a snapshot set, the tasks JS resolves as
29
- * custom-hashed or opted out ride along so the planner's eligibility walk
30
- * withholds their snapshots.
28
+ * Plans through the native planner. With Ultracache configurations, the
29
+ * tasks JS resolves as custom-hashed or opted out ride along so the
30
+ * planner's eligibility walk withholds their entries.
31
31
  */
32
32
  private plan;
33
- hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<Record<string, PartialHash>>;
33
+ hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<Record<string, PartialHash>>;
34
34
  }
@@ -6,7 +6,7 @@ const transform_objects_1 = require("../native/transform-objects");
6
6
  const typescript_1 = require("../plugins/js/utils/typescript");
7
7
  const task_io_service_1 = require("../tasks-runner/task-io-service");
8
8
  const fileutils_1 = require("../utils/fileutils");
9
- const overrides_1 = require("../io-snapshots/overrides");
9
+ const overrides_1 = require("../ultracache/overrides");
10
10
  class NativeTaskHasherImpl {
11
11
  constructor(workspaceRoot, nxJson, projectGraph, externals, options, planningContext) {
12
12
  this.projectGraph = projectGraph;
@@ -36,11 +36,11 @@ class NativeTaskHasherImpl {
36
36
  planningContext?.planner ?? new native_1.HashPlanner(nxJson, this.projectGraphRef);
37
37
  this.hasher = new native_1.TaskHasher(workspaceRoot, this.projectGraphRef, this.projectFileMapRef, this.allWorkspaceFilesRef, Buffer.from(JSON.stringify(tsconfig)), paths, rootTsConfigPath, options, this.ignoredIndexRef);
38
38
  }
39
- async hashTask(task, taskGraph, env, cwd, collectInputs, ioSnapshots) {
40
- const hashes = await this.hashTasks([task], taskGraph, { [task.id]: env }, cwd, collectInputs, ioSnapshots);
39
+ async hashTask(task, taskGraph, env, cwd, collectInputs, ultracacheConfigurations) {
40
+ const hashes = await this.hashTasks([task], taskGraph, { [task.id]: env }, cwd, collectInputs, ultracacheConfigurations);
41
41
  return hashes[0];
42
42
  }
43
- async hashTasks(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ioSnapshots) {
43
+ async hashTasks(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ultracacheConfigurations) {
44
44
  const envs = perTaskEnvs;
45
45
  const shouldCollectInputs = collectInputs ?? (0, task_io_service_1.getTaskIOService)().hasTaskInputSubscribers();
46
46
  const resolvedCwd = cwd ?? process.cwd();
@@ -49,31 +49,31 @@ class NativeTaskHasherImpl {
49
49
  if (this.upfrontPlans &&
50
50
  unplanned.some((id) => this.upfrontPlans.taskIds.has(id)) &&
51
51
  this.upfrontPlans.fingerprint ===
52
- taskGraphFingerprint(taskGraph, ioSnapshots)) {
52
+ taskGraphFingerprint(taskGraph, ultracacheConfigurations)) {
53
53
  Object.assign(hashes, this.hasher.hashPlansFor(this.upfrontPlans.plans, unplanned, envs, resolvedCwd, shouldCollectInputs));
54
54
  unplanned = unplanned.filter((id) => !(id in hashes));
55
55
  }
56
56
  if (unplanned.length > 0) {
57
- const plans = this.plan(unplanned, taskGraph, ioSnapshots);
57
+ const plans = this.plan(unplanned, taskGraph, ultracacheConfigurations);
58
58
  Object.assign(hashes, this.hasher.hashPlans(plans, envs, resolvedCwd, shouldCollectInputs));
59
59
  }
60
60
  return tasks.map((t) => hashes[t.id]);
61
61
  }
62
62
  /**
63
- * Plans through the native planner. With a snapshot set, the tasks JS resolves as
64
- * custom-hashed or opted out ride along so the planner's eligibility walk
65
- * withholds their snapshots.
63
+ * Plans through the native planner. With Ultracache configurations, the
64
+ * tasks JS resolves as custom-hashed or opted out ride along so the
65
+ * planner's eligibility walk withholds their entries.
66
66
  */
67
- plan(taskIds, taskGraph, ioSnapshots) {
68
- if (!ioSnapshots) {
67
+ plan(taskIds, taskGraph, ultracacheConfigurations) {
68
+ if (!ultracacheConfigurations) {
69
69
  return this.planner.getPlansReference(taskIds, taskGraph);
70
70
  }
71
- return this.planner.getPlansReference(taskIds, taskGraph, ioSnapshots, (0, overrides_1.ioSnapshotEligibilityOptions)(this.projectGraph, taskGraph));
71
+ return this.planner.getPlansReference(taskIds, taskGraph, ultracacheConfigurations, (0, overrides_1.ultracacheEligibilityOptions)(this.projectGraph, taskGraph));
72
72
  }
73
- async hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ioSnapshots) {
74
- const plans = this.plan(tasks.map((t) => t.id), taskGraph, ioSnapshots);
73
+ async hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ultracacheConfigurations) {
74
+ const plans = this.plan(tasks.map((t) => t.id), taskGraph, ultracacheConfigurations);
75
75
  this.upfrontPlans = {
76
- fingerprint: taskGraphFingerprint(taskGraph, ioSnapshots),
76
+ fingerprint: taskGraphFingerprint(taskGraph, ultracacheConfigurations),
77
77
  taskIds: new Set(tasks.map((t) => t.id)),
78
78
  plans,
79
79
  };
@@ -84,16 +84,16 @@ class NativeTaskHasherImpl {
84
84
  exports.NativeTaskHasherImpl = NativeTaskHasherImpl;
85
85
  /**
86
86
  * Everything the planner reads from a task graph: each task's target and
87
- * outputs, and the graph's edges, plus the snapshot set the plans were
87
+ * outputs, and the graph's edges, plus the Ultracache configurations the plans were
88
88
  * built against. The project graph and nx.json are fixed for the life of a
89
89
  * hasher, so equal fingerprints mean equal plans. A run's
90
90
  * results (hash, timings) are left out so hashing one task does not
91
91
  * invalidate the plans of the rest.
92
92
  */
93
- function taskGraphFingerprint(taskGraph, ioSnapshots) {
93
+ function taskGraphFingerprint(taskGraph, ultracacheConfigurations) {
94
94
  const parts = [
95
- ioSnapshots
96
- ? `${ioSnapshots.commit}@${ioSnapshots.resolution.fetchedAt}`
95
+ ultracacheConfigurations
96
+ ? `${ultracacheConfigurations.commit}@${ultracacheConfigurations.resolution.fetchedAt}`
97
97
  : '',
98
98
  ];
99
99
  for (const id of Object.keys(taskGraph.tasks).sort()) {
@@ -2,10 +2,10 @@ import { FileData, ProjectGraph, ProjectGraphProjectNode } from '../config/proje
2
2
  import { NxJsonConfiguration } from '../config/nx-json';
3
3
  import { Task, TaskGraph } from '../config/task-graph';
4
4
  import { DaemonClient } from '../daemon/client/client';
5
- import type { IoSnapshotVersion } from '../daemon/message-types/io-snapshot-version';
5
+ import type { UltracacheConfigurationVersion } from '../daemon/message-types/ultracache-configuration-version';
6
6
  import { InputDefinition } from '../config/workspace-json-project-json';
7
7
  import type { TaskPlanningContext } from './task-planning-context';
8
- import { HashInputs, IoSnapshots, NxWorkspaceFilesExternals } from '../native';
8
+ import { HashInputs, UltracacheConfigurations, NxWorkspaceFilesExternals } from '../native';
9
9
  export { HashInputs };
10
10
  /**
11
11
  * A data structure returned by the default hasher.
@@ -76,16 +76,16 @@ export interface TaskHasherImpl {
76
76
  * single shared env should construct `{ [task.id]: env }` for every
77
77
  * task.
78
78
  */
79
- hashTasks(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<PartialHash[]>;
80
- hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<PartialHash>;
81
- hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<Record<string, PartialHash>>;
79
+ hashTasks(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<PartialHash[]>;
80
+ hashTask(task: Task, taskGraph: TaskGraph, env: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<PartialHash>;
81
+ hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<Record<string, PartialHash>>;
82
82
  }
83
83
  export type Hasher = TaskHasher;
84
84
  export declare class DaemonBasedTaskHasher implements TaskHasher {
85
85
  private readonly daemonClient;
86
86
  private readonly runnerOptions;
87
- private readonly ioSnapshots?;
88
- constructor(daemonClient: DaemonClient, runnerOptions: any, ioSnapshots?: IoSnapshotVersion);
87
+ private readonly ultracacheConfigurationsVersion?;
88
+ constructor(daemonClient: DaemonClient, runnerOptions: any, ultracacheConfigurationsVersion?: UltracacheConfigurationVersion);
89
89
  hashTasks(tasks: Task[], taskGraph: TaskGraph, envOrPerTaskEnvs: NodeJS.ProcessEnv | Record<string, NodeJS.ProcessEnv>): Promise<Hash[]>;
90
90
  hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>): Promise<Record<string, Hash>>;
91
91
  hashTask(task: Task, taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv): Promise<Hash>;
@@ -96,15 +96,15 @@ export declare class InProcessTaskHasher implements TaskHasher {
96
96
  private readonly externalRustReferences;
97
97
  private readonly options;
98
98
  private readonly planningContext?;
99
- /** This run's snapshot set; the daemon passes one per request instead. */
100
- private readonly ioSnapshots?;
99
+ /** This run's Ultracache configurations; the daemon passes them per request instead. */
100
+ private readonly ultracacheConfigurations?;
101
101
  private taskHasher;
102
102
  constructor(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, externalRustReferences: NxWorkspaceFilesExternals | null, options: any, planningContext?: TaskPlanningContext,
103
- /** This run's snapshot set; the daemon passes one per request instead. */
104
- ioSnapshots?: IoSnapshots);
105
- hashTasks(tasks: Task[], taskGraph: TaskGraph, envOrPerTaskEnvs: NodeJS.ProcessEnv | Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<Hash[]>;
106
- hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<Record<string, Hash>>;
107
- hashTask(task: Task, taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ioSnapshots?: IoSnapshots): Promise<Hash>;
103
+ /** This run's Ultracache configurations; the daemon passes them per request instead. */
104
+ ultracacheConfigurations?: UltracacheConfigurations);
105
+ hashTasks(tasks: Task[], taskGraph: TaskGraph, envOrPerTaskEnvs: NodeJS.ProcessEnv | Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<Hash[]>;
106
+ hashTasksUpfront(tasks: Task[], taskGraph: TaskGraph, perTaskEnvs: Record<string, NodeJS.ProcessEnv>, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<Record<string, Hash>>;
107
+ hashTask(task: Task, taskGraph?: TaskGraph, env?: NodeJS.ProcessEnv, cwd?: string, collectInputs?: boolean, ultracacheConfigurations?: UltracacheConfigurations): Promise<Hash>;
108
108
  private createHashDetails;
109
109
  private hashCommand;
110
110
  }
@@ -44,18 +44,18 @@ function normalizePerTaskEnvs(tasks, arg) {
44
44
  return arg;
45
45
  }
46
46
  class DaemonBasedTaskHasher {
47
- constructor(daemonClient, runnerOptions, ioSnapshots) {
47
+ constructor(daemonClient, runnerOptions, ultracacheConfigurationsVersion) {
48
48
  this.daemonClient = daemonClient;
49
49
  this.runnerOptions = runnerOptions;
50
- this.ioSnapshots = ioSnapshots;
50
+ this.ultracacheConfigurationsVersion = ultracacheConfigurationsVersion;
51
51
  }
52
52
  async hashTasks(tasks, taskGraph, envOrPerTaskEnvs) {
53
53
  const collectInputs = (0, task_io_service_1.getTaskIOService)().hasTaskInputSubscribers();
54
- return this.daemonClient.hashTasks(this.runnerOptions, tasks, taskGraph, normalizePerTaskEnvs(tasks, envOrPerTaskEnvs), process.cwd(), collectInputs, this.ioSnapshots);
54
+ return this.daemonClient.hashTasks(this.runnerOptions, tasks, taskGraph, normalizePerTaskEnvs(tasks, envOrPerTaskEnvs), process.cwd(), collectInputs, this.ultracacheConfigurationsVersion);
55
55
  }
56
56
  async hashTasksUpfront(tasks, taskGraph, perTaskEnvs) {
57
57
  const collectInputs = (0, task_io_service_1.getTaskIOService)().hasTaskInputSubscribers();
58
- return this.daemonClient.hashTasksUpfront(this.runnerOptions, tasks, taskGraph, perTaskEnvs, process.cwd(), collectInputs, this.ioSnapshots);
58
+ return this.daemonClient.hashTasksUpfront(this.runnerOptions, tasks, taskGraph, perTaskEnvs, process.cwd(), collectInputs, this.ultracacheConfigurationsVersion);
59
59
  }
60
60
  async hashTask(task, taskGraph, env) {
61
61
  return (await this.hashTasks([task], taskGraph, {
@@ -66,24 +66,24 @@ class DaemonBasedTaskHasher {
66
66
  exports.DaemonBasedTaskHasher = DaemonBasedTaskHasher;
67
67
  class InProcessTaskHasher {
68
68
  constructor(projectGraph, nxJson, externalRustReferences, options, planningContext,
69
- /** This run's snapshot set; the daemon passes one per request instead. */
70
- ioSnapshots) {
69
+ /** This run's Ultracache configurations; the daemon passes them per request instead. */
70
+ ultracacheConfigurations) {
71
71
  this.projectGraph = projectGraph;
72
72
  this.nxJson = nxJson;
73
73
  this.externalRustReferences = externalRustReferences;
74
74
  this.options = options;
75
75
  this.planningContext = planningContext;
76
- this.ioSnapshots = ioSnapshots;
76
+ this.ultracacheConfigurations = ultracacheConfigurations;
77
77
  this.taskHasher = new native_task_hasher_impl_1.NativeTaskHasherImpl(workspace_root_1.workspaceRoot, this.nxJson, this.projectGraph, this.externalRustReferences, {
78
78
  selectivelyHashTsConfig: this.options?.selectivelyHashTsConfig ?? false,
79
79
  }, this.planningContext);
80
80
  }
81
- async hashTasks(tasks, taskGraph, envOrPerTaskEnvs, cwd, collectInputs, ioSnapshots) {
82
- const hashes = await this.taskHasher.hashTasks(tasks, taskGraph, normalizePerTaskEnvs(tasks, envOrPerTaskEnvs), cwd ?? process.cwd(), collectInputs, ioSnapshots ?? this.ioSnapshots);
81
+ async hashTasks(tasks, taskGraph, envOrPerTaskEnvs, cwd, collectInputs, ultracacheConfigurations) {
82
+ const hashes = await this.taskHasher.hashTasks(tasks, taskGraph, normalizePerTaskEnvs(tasks, envOrPerTaskEnvs), cwd ?? process.cwd(), collectInputs, ultracacheConfigurations ?? this.ultracacheConfigurations);
83
83
  return tasks.map((task, index) => this.createHashDetails(task, hashes[index]));
84
84
  }
85
- async hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ioSnapshots) {
86
- const hashes = await this.taskHasher.hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd ?? process.cwd(), collectInputs, ioSnapshots ?? this.ioSnapshots);
85
+ async hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd, collectInputs, ultracacheConfigurations) {
86
+ const hashes = await this.taskHasher.hashTasksUpfront(tasks, taskGraph, perTaskEnvs, cwd ?? process.cwd(), collectInputs, ultracacheConfigurations ?? this.ultracacheConfigurations);
87
87
  const result = {};
88
88
  for (const task of tasks) {
89
89
  if (hashes[task.id]) {
@@ -92,8 +92,8 @@ class InProcessTaskHasher {
92
92
  }
93
93
  return result;
94
94
  }
95
- async hashTask(task, taskGraph, env, cwd, collectInputs, ioSnapshots) {
96
- const res = await this.taskHasher.hashTask(task, taskGraph, env ?? process.env, cwd ?? process.cwd(), collectInputs, ioSnapshots ?? this.ioSnapshots);
95
+ async hashTask(task, taskGraph, env, cwd, collectInputs, ultracacheConfigurations) {
96
+ const res = await this.taskHasher.hashTask(task, taskGraph, env ?? process.env, cwd ?? process.cwd(), collectInputs, ultracacheConfigurations ?? this.ultracacheConfigurations);
97
97
  return this.createHashDetails(task, res);
98
98
  }
99
99
  createHashDetails(task, res) {