nx 23.2.0-beta.3 → 23.2.0-beta.5

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 (83) hide show
  1. package/dist/bin/nx.js +1 -0
  2. package/dist/src/command-line/affected/affected.js +1 -0
  3. package/dist/src/command-line/configure-ai-agents/configure-ai-agents.js +2 -2
  4. package/dist/src/command-line/init/init-v2.js +2 -2
  5. package/dist/src/command-line/migrate/agentic/definitions.js +2 -2
  6. package/dist/src/command-line/migrate/agentic/handoff-gitignore.d.ts +15 -19
  7. package/dist/src/command-line/migrate/agentic/handoff-gitignore.js +19 -31
  8. package/dist/src/command-line/migrate/agentic/handoff.d.ts +4 -6
  9. package/dist/src/command-line/migrate/agentic/handoff.js +9 -8
  10. package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.d.ts +7 -12
  11. package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.js +7 -0
  12. package/dist/src/command-line/migrate/agentic/run-step.d.ts +10 -0
  13. package/dist/src/command-line/migrate/agentic/select.d.ts +10 -2
  14. package/dist/src/command-line/migrate/agentic/select.js +10 -2
  15. package/dist/src/command-line/migrate/agentic/types.d.ts +17 -3
  16. package/dist/src/command-line/migrate/agentic/types.js +26 -0
  17. package/dist/src/command-line/migrate/command-object.d.ts +3 -0
  18. package/dist/src/command-line/migrate/command-object.js +6 -1
  19. package/dist/src/command-line/migrate/execute-migration.d.ts +14 -9
  20. package/dist/src/command-line/migrate/execute-migration.js +82 -18
  21. package/dist/src/command-line/migrate/migrate-analytics.d.ts +7 -0
  22. package/dist/src/command-line/migrate/migrate-analytics.js +14 -0
  23. package/dist/src/command-line/migrate/migrate-commits.d.ts +32 -8
  24. package/dist/src/command-line/migrate/migrate-commits.js +77 -9
  25. package/dist/src/command-line/migrate/migrate-config.d.ts +11 -12
  26. package/dist/src/command-line/migrate/migrate-config.js +14 -14
  27. package/dist/src/command-line/migrate/migrate-output.d.ts +45 -7
  28. package/dist/src/command-line/migrate/migrate-output.js +52 -8
  29. package/dist/src/command-line/migrate/migrate-ui-api.d.ts +2 -1
  30. package/dist/src/command-line/migrate/migrate-ui-api.js +16 -7
  31. package/dist/src/command-line/migrate/migrate.d.ts +17 -68
  32. package/dist/src/command-line/migrate/migrate.js +385 -220
  33. package/dist/src/command-line/migrate/migration-shape.d.ts +8 -0
  34. package/dist/src/command-line/migrate/run/index.d.ts +2 -0
  35. package/dist/src/command-line/migrate/run/index.js +5 -0
  36. package/dist/src/command-line/migrate/run/util.d.ts +1 -0
  37. package/dist/src/command-line/migrate/run/util.js +16 -0
  38. package/dist/src/command-line/migrate/run/worker.d.ts +15 -0
  39. package/dist/src/command-line/migrate/run/worker.js +419 -0
  40. package/dist/src/command-line/migrate/run-migration-process.js +6 -5
  41. package/dist/src/command-line/migrate/sort-migrations.d.ts +16 -0
  42. package/dist/src/command-line/migrate/sort-migrations.js +32 -0
  43. package/dist/src/command-line/migrate/version-skew-guard.d.ts +59 -0
  44. package/dist/src/command-line/migrate/version-skew-guard.js +156 -0
  45. package/dist/src/command-line/nx-cloud/start-nx-agents/command-object.d.ts +2 -0
  46. package/dist/src/command-line/nx-cloud/start-nx-agents/command-object.js +16 -0
  47. package/dist/src/command-line/nx-cloud/start-nx-agents/start-nx-agents.d.ts +4 -0
  48. package/dist/src/command-line/nx-cloud/start-nx-agents/start-nx-agents.js +13 -0
  49. package/dist/src/command-line/nx-commands.js +26 -24
  50. package/dist/src/command-line/release/changelog.js +5 -0
  51. package/dist/src/command-line/release/utils/git.js +1 -1
  52. package/dist/src/command-line/release/utils/release-graph.d.ts +1 -0
  53. package/dist/src/command-line/release/utils/release-graph.js +15 -3
  54. package/dist/src/command-line/release/version/version-actions.d.ts +8 -0
  55. package/dist/src/command-line/release/version/version-actions.js +8 -0
  56. package/dist/src/command-line/release/version.js +9 -5
  57. package/dist/src/config/misc-interfaces.d.ts +19 -7
  58. package/dist/src/core/graph/main.js +1 -1
  59. package/dist/src/daemon/server/latest-nx.js +5 -2
  60. package/dist/src/devkit-internals.d.ts +91 -2
  61. package/dist/src/devkit-internals.js +181 -3
  62. package/dist/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +5 -0
  63. package/dist/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +9 -2
  64. package/dist/src/native/nx.wasm32-wasi.debug.wasm +0 -0
  65. package/dist/src/native/nx.wasm32-wasi.wasm +0 -0
  66. package/dist/src/nx-cloud/utilities/get-cloud-options.js +5 -2
  67. package/dist/src/nx-cloud/utilities/onboarding.js +5 -2
  68. package/dist/src/nx-cloud/utilities/url-shorten.d.ts +1 -4
  69. package/dist/src/nx-cloud/utilities/url-shorten.js +9 -8
  70. package/dist/src/plugins/js/lock-file/pnpm-parser.js +4 -2
  71. package/dist/src/plugins/js/lock-file/project-graph-pruning.js +14 -8
  72. package/dist/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +2 -0
  73. package/dist/src/project-graph/affected/affected-project-graph-models.d.ts +1 -1
  74. package/dist/src/project-graph/affected/affected-project-graph.d.ts +1 -1
  75. package/dist/src/project-graph/affected/affected-project-graph.js +2 -2
  76. package/dist/src/project-graph/affected/locators/project-glob-changes.js +5 -2
  77. package/dist/src/tasks-runner/life-cycles/performance-report.d.ts +12 -0
  78. package/dist/src/tasks-runner/life-cycles/performance-report.js +62 -3
  79. package/dist/src/tasks-runner/run-command.js +4 -0
  80. package/dist/src/utils/assert-workspace-validity.js +7 -2
  81. package/dist/src/utils/child-process.js +2 -0
  82. package/dist/src/utils/package-json.js +11 -7
  83. package/package.json +13 -13
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLatestNxTmpPath = getLatestNxTmpPath;
4
4
  exports.cleanupLatestNx = cleanupLatestNx;
5
- const devkit_internals_1 = require("../../devkit-internals");
5
+ // Import from the defining module, not the devkit-internals barrel: the barrel
6
+ // eagerly pulls in the task-execution subsystem and instantiates a daemon
7
+ // client, all of which would stay resident for the daemon server's lifetime.
8
+ const package_json_1 = require("../../utils/package-json");
6
9
  const package_manager_1 = require("../../utils/package-manager");
7
10
  const provenance_1 = require("../../utils/provenance");
8
11
  const workspace_root_1 = require("../../utils/workspace-root");
@@ -28,7 +31,7 @@ async function getLatestNxTmpPath() {
28
31
  try {
29
32
  logger_1.serverLogger.log('[LATEST-NX]: Pulling latest Nx...');
30
33
  await (0, provenance_1.ensurePackageHasProvenance)('nx', 'latest');
31
- const result = await (0, devkit_internals_1.installPackageToTmpAsync)('nx', 'latest', (0, package_manager_1.detectPackageManager)(workspace_root_1.workspaceRoot));
34
+ const result = await (0, package_json_1.installPackageToTmpAsync)('nx', 'latest', (0, package_manager_1.detectPackageManager)(workspace_root_1.workspaceRoot));
32
35
  latestNxTmpPath = result.tempDir;
33
36
  cleanupFn = result.cleanup;
34
37
  logger_1.serverLogger.log('[LATEST-NX]: Successfully pulled latest Nx to', latestNxTmpPath);
@@ -1,7 +1,21 @@
1
1
  /**
2
- * Note to developers: STOP! These exports are available via requireNx in @nx/devkit.
2
+ * Note to developers: STOP! These are nx internals, not part of the public
3
+ * @nx/devkit API.
3
4
  *
4
- * These may not be available in certain version of Nx, so be sure to check them first.
5
+ * This barrel is NOT under @nx/devkit's version-tolerance contract. That contract
6
+ * (nx at the current major +/- 1, per devkit's peerDependencies) covers the public
7
+ * @nx/devkit API only. Two classes of consumer read this file, and the rules
8
+ * differ:
9
+ *
10
+ * 1. packages/devkit/src/ — devkit's own implementation. It ships to external
11
+ * plugins, so it *does* run under the +/- 1 tolerance (@nx/devkit@23 may be
12
+ * installed against nx@22) and must still guard: check at runtime, or only
13
+ * use symbols that have existed since the oldest supported nx major.
14
+ * 2. First-party plugins in this repo, via @nx/devkit/internal. They release in
15
+ * lockstep with nx, so they require an exactly matching nx version and need
16
+ * no guarding.
17
+ *
18
+ * See packages/devkit/CLAUDE.md.
5
19
  */
6
20
  export { createTempNpmDirectory } from './utils/package-manager';
7
21
  export { getExecutorInformation, parseExecutor, } from './command-line/run/executor-utils';
@@ -41,3 +55,78 @@ export { resolvePrompt, PromptResolutionError, } from './command-line/migrate/pr
41
55
  export { checkFilesAreInputs, checkFilesAreOutputs, } from './hasher/check-task-files';
42
56
  export { getCatalogManager, getCatalogDependenciesFromPackageJson, } from './utils/catalog';
43
57
  export { acknowledgeBuildScripts } from './utils/acknowledge-build-scripts';
58
+ export { default as runCommandsExecutor } from './executors/run-commands/run-commands.impl';
59
+ export type { TaskResult } from './config/misc-interfaces';
60
+ export { toNewFormat, toOldFormat } from './adapter/angular-json';
61
+ export { setupAiAgentsGenerator } from './ai/set-up-ai-agents/set-up-ai-agents';
62
+ export type { Agent } from './ai/utils';
63
+ export type { GeneratorInformation } from './command-line/generate/generator-utils';
64
+ export { getGeneratorInformation } from './command-line/generate/generator-utils';
65
+ export type { FinalConfigForProject } from './command-line/release/utils/release-graph';
66
+ export { BatchFunctionRunner } from './command-line/watch/watch';
67
+ export type { BatchExecutorTaskResult } from './config/misc-interfaces';
68
+ export type { NxReleaseVersionConfiguration } from './config/nx-json';
69
+ export type { FileDataDependency } from './config/project-graph';
70
+ export { fileDataDepTarget, fileDataDepType, isProjectGraphExternalNode, isProjectGraphProjectNode, } from './config/project-graph';
71
+ export type { InputDefinition } from './config/workspace-json-project-json';
72
+ export type { ChangedFile, UnregisterCallback } from './daemon/client/client';
73
+ export { daemonClient } from './daemon/client/client';
74
+ export type { RunCommandsOptions } from './executors/run-commands/run-commands.impl';
75
+ export { LARGE_BUFFER } from './executors/run-commands/run-commands.impl';
76
+ export { FsTree } from './generators/tree';
77
+ export { getRelativeProjectJsonSchemaPath } from './generators/utils/project-configuration';
78
+ export { hashFile } from './hasher/file-hasher';
79
+ export { filterUsingGlobPatterns, getTargetInputs } from './hasher/task-hasher';
80
+ export type { JsonInput } from './native';
81
+ export { killProcessTreeGraceful } from './native';
82
+ export { connectToNxCloud } from './nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud';
83
+ export type { NxCloudOnBoardingStatus } from './nx-cloud/models/onboarding-status';
84
+ export { createNxCloudOnboardingURLForWelcomeApp, getNxCloudAppOnBoardingUrl, } from './nx-cloud/utilities/onboarding';
85
+ export { createNxCloudOnboardingURL } from './nx-cloud/utilities/url-shorten';
86
+ export { createLockFile, getLockFileName, } from './plugins/js/lock-file/lock-file';
87
+ export { createPackageJson, findProjectsNpmDependencies, } from './plugins/js/package-json/create-package-json';
88
+ export { TargetProjectLocator, isBuiltinModuleImport, } from './plugins/js/project-graph/build-dependencies/target-project-locator';
89
+ export { getWorkspacePackagesFromGraph } from './plugins/js/utils/get-workspace-packages-from-graph';
90
+ export { registerTsConfigPaths } from './plugins/js/utils/register';
91
+ export { getGlobPatternsFromPackageManagerWorkspaces } from './plugins/package-json';
92
+ export type { Change, FileChange } from './project-graph/file-utils';
93
+ export { DeletedFileChange, LockFileChange, TEN_MEGABYTES, WholeFileChange, calculateFileChanges, defaultFileRead, isDeletedFileChange, isLockFileChange, isWholeFileChange, readPackageJson, } from './project-graph/file-utils';
94
+ export type { FileMapCache } from './project-graph/nx-deps-cache';
95
+ export { readFileMapCache } from './project-graph/nx-deps-cache';
96
+ export { isNpmProject } from './project-graph/operators';
97
+ export { buildProjectGraphAndSourceMapsWithoutDaemon, createProjectGraphAndSourceMapsAsync, handleProjectGraphError, preventRecursionInGraphConstruction, readCachedProjectConfiguration, } from './project-graph/project-graph';
98
+ export type { ProjectRootMappings } from './project-graph/utils/find-project-for-path';
99
+ export type { BatchResults } from './tasks-runner/batch/batch-messages';
100
+ export type { CachedResult, TaskWithCachedResult } from './tasks-runner/cache';
101
+ export { Cache } from './tasks-runner/cache';
102
+ export { RemoteCacheV2 } from './tasks-runner/default-tasks-runner';
103
+ export type { LifeCycle, TaskMetadata } from './tasks-runner/life-cycle';
104
+ export { CompositeLifeCycle } from './tasks-runner/life-cycle';
105
+ export { createRunManyDynamicOutputRenderer } from './tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle';
106
+ export type { TaskStatus, TasksRunner } from './tasks-runner/tasks-runner';
107
+ export type { DependsOnEntryLocation, NormalizedTargetDependencyConfig, } from './tasks-runner/utils';
108
+ export { calculateReverseDeps, createTaskId, expandDependencyConfigSyntaxSugar, expandInitiatingTasksThroughNoop, expandWildcardTargetConfiguration, getCliPath, getCustomHasher, getDependencyConfigs, getExecutorForTask, getExecutorNameForTask, getOutputs, getPrintableCommandArgsForTask, getSerializedArgsForTask, getTargetConfigurationForTask, getUnparsedOverrideArgs, isCacheableTask, normalizeDependencyConfigDefinition, normalizeDependencyConfigProjects, normalizeTargetDependencyWithStringProjects, readProjectAndTargetFromTargetString, removeTasksFromTaskGraph, shouldStreamOutput, transformLegacyOutputs, unparse, validateOutputs, } from './tasks-runner/utils';
109
+ export { getLastValueFromAsyncIterableIterator } from './utils/async-iterator';
110
+ export { workspaceDataDirectory } from './utils/cache-directory';
111
+ export { runNxSync } from './utils/child-process';
112
+ export { codeFrameColumns } from './utils/code-frames';
113
+ export { deduceDefaultBase } from './utils/default-base';
114
+ export { createDirectory, directoryExists, fileExists, isRelativePath, readFileIfExisting, } from './utils/fileutils';
115
+ export { getLatestCommitSha } from './utils/git-utils';
116
+ export { combineGlobPatterns } from './utils/globs';
117
+ export { getNxRequirePaths } from './utils/installation-directory';
118
+ export { NX_PREFIX } from './utils/logger';
119
+ export type { CLIErrorMessageConfig, CLINoteMessageConfig, CLISuccessMessageConfig, CLIWarnMessageConfig, } from './utils/output';
120
+ export { orange } from './utils/output';
121
+ export { getNxCloudUrl, isNxCloudUsed } from './utils/nx-cloud-utils';
122
+ export type { PackageJson, PackageJsonDependencySection, } from './utils/package-json';
123
+ export { readNxMigrateConfig } from './utils/package-json';
124
+ export type { PackageManagerCommands } from './utils/package-manager';
125
+ export { deriveGroupNameFromTarget } from './utils/plugins/atomizer-utils';
126
+ export { findInstalledPlugins } from './utils/plugins/installed-plugins';
127
+ export { findAllProjectNodeDependencies, getSourceDirOfDependentProjects, } from './utils/project-graph-utils';
128
+ export type { SyncGeneratorResult } from './utils/sync-generators';
129
+ export { SyncError } from './utils/sync-generators';
130
+ export { nxVersion } from './utils/versions';
131
+ export { getFilesInDirectoryUsingContext, globWithWorkspaceContext, resetWorkspaceContext, setupWorkspaceContext, } from './utils/workspace-context';
132
+ export { setWorkspaceRoot, workspaceRootInner } from './utils/workspace-root';
@@ -1,12 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  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.isUsingPrettierInTree = exports.isCI = exports.interpolate = exports.requireWithTsconfigFallback = 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.splitTarget = exports.getIgnoreObjectForTree = exports.readTargetDefaultsForTarget = exports.findMatchingProjects = exports.findMatchingConfigFiles = exports.readProjectConfigurationsFromRootMap = exports.mergeTargetConfigurations = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.parseExecutor = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
4
- exports.acknowledgeBuildScripts = exports.getCatalogDependenciesFromPackageJson = exports.getCatalogManager = void 0;
4
+ 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.getGlobPatternsFromPackageManagerWorkspaces = exports.registerTsConfigPaths = exports.getWorkspacePackagesFromGraph = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.findProjectsNpmDependencies = exports.createPackageJson = exports.getLockFileName = exports.createLockFile = exports.createNxCloudOnboardingURL = exports.getNxCloudAppOnBoardingUrl = exports.createNxCloudOnboardingURLForWelcomeApp = exports.connectToNxCloud = 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 = void 0;
5
+ exports.findInstalledPlugins = exports.deriveGroupNameFromTarget = exports.readNxMigrateConfig = exports.isNxCloudUsed = exports.getNxCloudUrl = exports.orange = exports.NX_PREFIX = exports.getNxRequirePaths = 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 = 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 = void 0;
6
+ exports.workspaceRootInner = exports.setWorkspaceRoot = exports.setupWorkspaceContext = exports.resetWorkspaceContext = exports.globWithWorkspaceContext = exports.getFilesInDirectoryUsingContext = exports.nxVersion = exports.SyncError = exports.getSourceDirOfDependentProjects = exports.findAllProjectNodeDependencies = void 0;
5
7
  const tslib_1 = require("tslib");
6
8
  /**
7
- * Note to developers: STOP! These exports are available via requireNx in @nx/devkit.
9
+ * Note to developers: STOP! These are nx internals, not part of the public
10
+ * @nx/devkit API.
8
11
  *
9
- * These may not be available in certain version of Nx, so be sure to check them first.
12
+ * This barrel is NOT under @nx/devkit's version-tolerance contract. That contract
13
+ * (nx at the current major +/- 1, per devkit's peerDependencies) covers the public
14
+ * @nx/devkit API only. Two classes of consumer read this file, and the rules
15
+ * differ:
16
+ *
17
+ * 1. packages/devkit/src/ — devkit's own implementation. It ships to external
18
+ * plugins, so it *does* run under the +/- 1 tolerance (@nx/devkit@23 may be
19
+ * installed against nx@22) and must still guard: check at runtime, or only
20
+ * use symbols that have existed since the oldest supported nx major.
21
+ * 2. First-party plugins in this repo, via @nx/devkit/internal. They release in
22
+ * lockstep with nx, so they require an exactly matching nx version and need
23
+ * no guarding.
24
+ *
25
+ * See packages/devkit/CLAUDE.md.
10
26
  */
11
27
  var package_manager_1 = require("./utils/package-manager");
12
28
  Object.defineProperty(exports, "createTempNpmDirectory", { enumerable: true, get: function () { return package_manager_1.createTempNpmDirectory; } });
@@ -99,3 +115,165 @@ Object.defineProperty(exports, "getCatalogManager", { enumerable: true, get: fun
99
115
  Object.defineProperty(exports, "getCatalogDependenciesFromPackageJson", { enumerable: true, get: function () { return catalog_1.getCatalogDependenciesFromPackageJson; } });
100
116
  var acknowledge_build_scripts_1 = require("./utils/acknowledge-build-scripts");
101
117
  Object.defineProperty(exports, "acknowledgeBuildScripts", { enumerable: true, get: function () { return acknowledge_build_scripts_1.acknowledgeBuildScripts; } });
118
+ // Exposed for first-party plugins in this repo (imported via @nx/devkit/internal).
119
+ var run_commands_impl_1 = require("./executors/run-commands/run-commands.impl");
120
+ Object.defineProperty(exports, "runCommandsExecutor", { enumerable: true, get: function () { return tslib_1.__importDefault(run_commands_impl_1).default; } });
121
+ var angular_json_1 = require("./adapter/angular-json");
122
+ Object.defineProperty(exports, "toNewFormat", { enumerable: true, get: function () { return angular_json_1.toNewFormat; } });
123
+ Object.defineProperty(exports, "toOldFormat", { enumerable: true, get: function () { return angular_json_1.toOldFormat; } });
124
+ var set_up_ai_agents_1 = require("./ai/set-up-ai-agents/set-up-ai-agents");
125
+ Object.defineProperty(exports, "setupAiAgentsGenerator", { enumerable: true, get: function () { return set_up_ai_agents_1.setupAiAgentsGenerator; } });
126
+ var generator_utils_1 = require("./command-line/generate/generator-utils");
127
+ Object.defineProperty(exports, "getGeneratorInformation", { enumerable: true, get: function () { return generator_utils_1.getGeneratorInformation; } });
128
+ var watch_1 = require("./command-line/watch/watch");
129
+ Object.defineProperty(exports, "BatchFunctionRunner", { enumerable: true, get: function () { return watch_1.BatchFunctionRunner; } });
130
+ var project_graph_1 = require("./config/project-graph");
131
+ Object.defineProperty(exports, "fileDataDepTarget", { enumerable: true, get: function () { return project_graph_1.fileDataDepTarget; } });
132
+ Object.defineProperty(exports, "fileDataDepType", { enumerable: true, get: function () { return project_graph_1.fileDataDepType; } });
133
+ Object.defineProperty(exports, "isProjectGraphExternalNode", { enumerable: true, get: function () { return project_graph_1.isProjectGraphExternalNode; } });
134
+ Object.defineProperty(exports, "isProjectGraphProjectNode", { enumerable: true, get: function () { return project_graph_1.isProjectGraphProjectNode; } });
135
+ var client_1 = require("./daemon/client/client");
136
+ Object.defineProperty(exports, "daemonClient", { enumerable: true, get: function () { return client_1.daemonClient; } });
137
+ var run_commands_impl_2 = require("./executors/run-commands/run-commands.impl");
138
+ Object.defineProperty(exports, "LARGE_BUFFER", { enumerable: true, get: function () { return run_commands_impl_2.LARGE_BUFFER; } });
139
+ var tree_1 = require("./generators/tree");
140
+ Object.defineProperty(exports, "FsTree", { enumerable: true, get: function () { return tree_1.FsTree; } });
141
+ var project_configuration_1 = require("./generators/utils/project-configuration");
142
+ Object.defineProperty(exports, "getRelativeProjectJsonSchemaPath", { enumerable: true, get: function () { return project_configuration_1.getRelativeProjectJsonSchemaPath; } });
143
+ var file_hasher_2 = require("./hasher/file-hasher");
144
+ Object.defineProperty(exports, "hashFile", { enumerable: true, get: function () { return file_hasher_2.hashFile; } });
145
+ var task_hasher_1 = require("./hasher/task-hasher");
146
+ Object.defineProperty(exports, "filterUsingGlobPatterns", { enumerable: true, get: function () { return task_hasher_1.filterUsingGlobPatterns; } });
147
+ Object.defineProperty(exports, "getTargetInputs", { enumerable: true, get: function () { return task_hasher_1.getTargetInputs; } });
148
+ var native_1 = require("./native");
149
+ Object.defineProperty(exports, "killProcessTreeGraceful", { enumerable: true, get: function () { return native_1.killProcessTreeGraceful; } });
150
+ var connect_to_nx_cloud_1 = require("./nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
151
+ Object.defineProperty(exports, "connectToNxCloud", { enumerable: true, get: function () { return connect_to_nx_cloud_1.connectToNxCloud; } });
152
+ var onboarding_1 = require("./nx-cloud/utilities/onboarding");
153
+ Object.defineProperty(exports, "createNxCloudOnboardingURLForWelcomeApp", { enumerable: true, get: function () { return onboarding_1.createNxCloudOnboardingURLForWelcomeApp; } });
154
+ Object.defineProperty(exports, "getNxCloudAppOnBoardingUrl", { enumerable: true, get: function () { return onboarding_1.getNxCloudAppOnBoardingUrl; } });
155
+ var url_shorten_1 = require("./nx-cloud/utilities/url-shorten");
156
+ Object.defineProperty(exports, "createNxCloudOnboardingURL", { enumerable: true, get: function () { return url_shorten_1.createNxCloudOnboardingURL; } });
157
+ var lock_file_1 = require("./plugins/js/lock-file/lock-file");
158
+ Object.defineProperty(exports, "createLockFile", { enumerable: true, get: function () { return lock_file_1.createLockFile; } });
159
+ Object.defineProperty(exports, "getLockFileName", { enumerable: true, get: function () { return lock_file_1.getLockFileName; } });
160
+ var create_package_json_1 = require("./plugins/js/package-json/create-package-json");
161
+ Object.defineProperty(exports, "createPackageJson", { enumerable: true, get: function () { return create_package_json_1.createPackageJson; } });
162
+ Object.defineProperty(exports, "findProjectsNpmDependencies", { enumerable: true, get: function () { return create_package_json_1.findProjectsNpmDependencies; } });
163
+ var target_project_locator_1 = require("./plugins/js/project-graph/build-dependencies/target-project-locator");
164
+ Object.defineProperty(exports, "TargetProjectLocator", { enumerable: true, get: function () { return target_project_locator_1.TargetProjectLocator; } });
165
+ Object.defineProperty(exports, "isBuiltinModuleImport", { enumerable: true, get: function () { return target_project_locator_1.isBuiltinModuleImport; } });
166
+ var get_workspace_packages_from_graph_1 = require("./plugins/js/utils/get-workspace-packages-from-graph");
167
+ Object.defineProperty(exports, "getWorkspacePackagesFromGraph", { enumerable: true, get: function () { return get_workspace_packages_from_graph_1.getWorkspacePackagesFromGraph; } });
168
+ var register_2 = require("./plugins/js/utils/register");
169
+ Object.defineProperty(exports, "registerTsConfigPaths", { enumerable: true, get: function () { return register_2.registerTsConfigPaths; } });
170
+ var package_json_2 = require("./plugins/package-json");
171
+ Object.defineProperty(exports, "getGlobPatternsFromPackageManagerWorkspaces", { enumerable: true, get: function () { return package_json_2.getGlobPatternsFromPackageManagerWorkspaces; } });
172
+ var file_utils_1 = require("./project-graph/file-utils");
173
+ Object.defineProperty(exports, "DeletedFileChange", { enumerable: true, get: function () { return file_utils_1.DeletedFileChange; } });
174
+ Object.defineProperty(exports, "LockFileChange", { enumerable: true, get: function () { return file_utils_1.LockFileChange; } });
175
+ Object.defineProperty(exports, "TEN_MEGABYTES", { enumerable: true, get: function () { return file_utils_1.TEN_MEGABYTES; } });
176
+ Object.defineProperty(exports, "WholeFileChange", { enumerable: true, get: function () { return file_utils_1.WholeFileChange; } });
177
+ Object.defineProperty(exports, "calculateFileChanges", { enumerable: true, get: function () { return file_utils_1.calculateFileChanges; } });
178
+ Object.defineProperty(exports, "defaultFileRead", { enumerable: true, get: function () { return file_utils_1.defaultFileRead; } });
179
+ Object.defineProperty(exports, "isDeletedFileChange", { enumerable: true, get: function () { return file_utils_1.isDeletedFileChange; } });
180
+ Object.defineProperty(exports, "isLockFileChange", { enumerable: true, get: function () { return file_utils_1.isLockFileChange; } });
181
+ Object.defineProperty(exports, "isWholeFileChange", { enumerable: true, get: function () { return file_utils_1.isWholeFileChange; } });
182
+ Object.defineProperty(exports, "readPackageJson", { enumerable: true, get: function () { return file_utils_1.readPackageJson; } });
183
+ var nx_deps_cache_1 = require("./project-graph/nx-deps-cache");
184
+ Object.defineProperty(exports, "readFileMapCache", { enumerable: true, get: function () { return nx_deps_cache_1.readFileMapCache; } });
185
+ var operators_1 = require("./project-graph/operators");
186
+ Object.defineProperty(exports, "isNpmProject", { enumerable: true, get: function () { return operators_1.isNpmProject; } });
187
+ var project_graph_2 = require("./project-graph/project-graph");
188
+ Object.defineProperty(exports, "buildProjectGraphAndSourceMapsWithoutDaemon", { enumerable: true, get: function () { return project_graph_2.buildProjectGraphAndSourceMapsWithoutDaemon; } });
189
+ Object.defineProperty(exports, "createProjectGraphAndSourceMapsAsync", { enumerable: true, get: function () { return project_graph_2.createProjectGraphAndSourceMapsAsync; } });
190
+ Object.defineProperty(exports, "handleProjectGraphError", { enumerable: true, get: function () { return project_graph_2.handleProjectGraphError; } });
191
+ Object.defineProperty(exports, "preventRecursionInGraphConstruction", { enumerable: true, get: function () { return project_graph_2.preventRecursionInGraphConstruction; } });
192
+ Object.defineProperty(exports, "readCachedProjectConfiguration", { enumerable: true, get: function () { return project_graph_2.readCachedProjectConfiguration; } });
193
+ var cache_1 = require("./tasks-runner/cache");
194
+ Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return cache_1.Cache; } });
195
+ var default_tasks_runner_1 = require("./tasks-runner/default-tasks-runner");
196
+ Object.defineProperty(exports, "RemoteCacheV2", { enumerable: true, get: function () { return default_tasks_runner_1.RemoteCacheV2; } });
197
+ var life_cycle_1 = require("./tasks-runner/life-cycle");
198
+ Object.defineProperty(exports, "CompositeLifeCycle", { enumerable: true, get: function () { return life_cycle_1.CompositeLifeCycle; } });
199
+ var dynamic_run_many_terminal_output_life_cycle_1 = require("./tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle");
200
+ Object.defineProperty(exports, "createRunManyDynamicOutputRenderer", { enumerable: true, get: function () { return dynamic_run_many_terminal_output_life_cycle_1.createRunManyDynamicOutputRenderer; } });
201
+ var utils_2 = require("./tasks-runner/utils");
202
+ Object.defineProperty(exports, "calculateReverseDeps", { enumerable: true, get: function () { return utils_2.calculateReverseDeps; } });
203
+ Object.defineProperty(exports, "createTaskId", { enumerable: true, get: function () { return utils_2.createTaskId; } });
204
+ Object.defineProperty(exports, "expandDependencyConfigSyntaxSugar", { enumerable: true, get: function () { return utils_2.expandDependencyConfigSyntaxSugar; } });
205
+ Object.defineProperty(exports, "expandInitiatingTasksThroughNoop", { enumerable: true, get: function () { return utils_2.expandInitiatingTasksThroughNoop; } });
206
+ Object.defineProperty(exports, "expandWildcardTargetConfiguration", { enumerable: true, get: function () { return utils_2.expandWildcardTargetConfiguration; } });
207
+ Object.defineProperty(exports, "getCliPath", { enumerable: true, get: function () { return utils_2.getCliPath; } });
208
+ Object.defineProperty(exports, "getCustomHasher", { enumerable: true, get: function () { return utils_2.getCustomHasher; } });
209
+ Object.defineProperty(exports, "getDependencyConfigs", { enumerable: true, get: function () { return utils_2.getDependencyConfigs; } });
210
+ Object.defineProperty(exports, "getExecutorForTask", { enumerable: true, get: function () { return utils_2.getExecutorForTask; } });
211
+ Object.defineProperty(exports, "getExecutorNameForTask", { enumerable: true, get: function () { return utils_2.getExecutorNameForTask; } });
212
+ Object.defineProperty(exports, "getOutputs", { enumerable: true, get: function () { return utils_2.getOutputs; } });
213
+ Object.defineProperty(exports, "getPrintableCommandArgsForTask", { enumerable: true, get: function () { return utils_2.getPrintableCommandArgsForTask; } });
214
+ Object.defineProperty(exports, "getSerializedArgsForTask", { enumerable: true, get: function () { return utils_2.getSerializedArgsForTask; } });
215
+ Object.defineProperty(exports, "getTargetConfigurationForTask", { enumerable: true, get: function () { return utils_2.getTargetConfigurationForTask; } });
216
+ Object.defineProperty(exports, "getUnparsedOverrideArgs", { enumerable: true, get: function () { return utils_2.getUnparsedOverrideArgs; } });
217
+ Object.defineProperty(exports, "isCacheableTask", { enumerable: true, get: function () { return utils_2.isCacheableTask; } });
218
+ Object.defineProperty(exports, "normalizeDependencyConfigDefinition", { enumerable: true, get: function () { return utils_2.normalizeDependencyConfigDefinition; } });
219
+ Object.defineProperty(exports, "normalizeDependencyConfigProjects", { enumerable: true, get: function () { return utils_2.normalizeDependencyConfigProjects; } });
220
+ Object.defineProperty(exports, "normalizeTargetDependencyWithStringProjects", { enumerable: true, get: function () { return utils_2.normalizeTargetDependencyWithStringProjects; } });
221
+ Object.defineProperty(exports, "readProjectAndTargetFromTargetString", { enumerable: true, get: function () { return utils_2.readProjectAndTargetFromTargetString; } });
222
+ Object.defineProperty(exports, "removeTasksFromTaskGraph", { enumerable: true, get: function () { return utils_2.removeTasksFromTaskGraph; } });
223
+ Object.defineProperty(exports, "shouldStreamOutput", { enumerable: true, get: function () { return utils_2.shouldStreamOutput; } });
224
+ Object.defineProperty(exports, "transformLegacyOutputs", { enumerable: true, get: function () { return utils_2.transformLegacyOutputs; } });
225
+ Object.defineProperty(exports, "unparse", { enumerable: true, get: function () { return utils_2.unparse; } });
226
+ Object.defineProperty(exports, "validateOutputs", { enumerable: true, get: function () { return utils_2.validateOutputs; } });
227
+ var async_iterator_1 = require("./utils/async-iterator");
228
+ Object.defineProperty(exports, "getLastValueFromAsyncIterableIterator", { enumerable: true, get: function () { return async_iterator_1.getLastValueFromAsyncIterableIterator; } });
229
+ var cache_directory_1 = require("./utils/cache-directory");
230
+ Object.defineProperty(exports, "workspaceDataDirectory", { enumerable: true, get: function () { return cache_directory_1.workspaceDataDirectory; } });
231
+ var child_process_1 = require("./utils/child-process");
232
+ Object.defineProperty(exports, "runNxSync", { enumerable: true, get: function () { return child_process_1.runNxSync; } });
233
+ var code_frames_1 = require("./utils/code-frames");
234
+ Object.defineProperty(exports, "codeFrameColumns", { enumerable: true, get: function () { return code_frames_1.codeFrameColumns; } });
235
+ var default_base_1 = require("./utils/default-base");
236
+ Object.defineProperty(exports, "deduceDefaultBase", { enumerable: true, get: function () { return default_base_1.deduceDefaultBase; } });
237
+ var fileutils_2 = require("./utils/fileutils");
238
+ Object.defineProperty(exports, "createDirectory", { enumerable: true, get: function () { return fileutils_2.createDirectory; } });
239
+ Object.defineProperty(exports, "directoryExists", { enumerable: true, get: function () { return fileutils_2.directoryExists; } });
240
+ Object.defineProperty(exports, "fileExists", { enumerable: true, get: function () { return fileutils_2.fileExists; } });
241
+ Object.defineProperty(exports, "isRelativePath", { enumerable: true, get: function () { return fileutils_2.isRelativePath; } });
242
+ Object.defineProperty(exports, "readFileIfExisting", { enumerable: true, get: function () { return fileutils_2.readFileIfExisting; } });
243
+ var git_utils_1 = require("./utils/git-utils");
244
+ Object.defineProperty(exports, "getLatestCommitSha", { enumerable: true, get: function () { return git_utils_1.getLatestCommitSha; } });
245
+ var globs_1 = require("./utils/globs");
246
+ Object.defineProperty(exports, "combineGlobPatterns", { enumerable: true, get: function () { return globs_1.combineGlobPatterns; } });
247
+ var installation_directory_1 = require("./utils/installation-directory");
248
+ Object.defineProperty(exports, "getNxRequirePaths", { enumerable: true, get: function () { return installation_directory_1.getNxRequirePaths; } });
249
+ var logger_2 = require("./utils/logger");
250
+ Object.defineProperty(exports, "NX_PREFIX", { enumerable: true, get: function () { return logger_2.NX_PREFIX; } });
251
+ var output_1 = require("./utils/output");
252
+ Object.defineProperty(exports, "orange", { enumerable: true, get: function () { return output_1.orange; } });
253
+ var nx_cloud_utils_1 = require("./utils/nx-cloud-utils");
254
+ Object.defineProperty(exports, "getNxCloudUrl", { enumerable: true, get: function () { return nx_cloud_utils_1.getNxCloudUrl; } });
255
+ Object.defineProperty(exports, "isNxCloudUsed", { enumerable: true, get: function () { return nx_cloud_utils_1.isNxCloudUsed; } });
256
+ var package_json_3 = require("./utils/package-json");
257
+ Object.defineProperty(exports, "readNxMigrateConfig", { enumerable: true, get: function () { return package_json_3.readNxMigrateConfig; } });
258
+ // Sourced from the leaf module rather than ./utils/plugins: the barrel index
259
+ // pulls output.ts and core-plugins.ts into the eager closure for a function that
260
+ // depends on neither.
261
+ var atomizer_utils_1 = require("./utils/plugins/atomizer-utils");
262
+ Object.defineProperty(exports, "deriveGroupNameFromTarget", { enumerable: true, get: function () { return atomizer_utils_1.deriveGroupNameFromTarget; } });
263
+ var installed_plugins_1 = require("./utils/plugins/installed-plugins");
264
+ Object.defineProperty(exports, "findInstalledPlugins", { enumerable: true, get: function () { return installed_plugins_1.findInstalledPlugins; } });
265
+ var project_graph_utils_1 = require("./utils/project-graph-utils");
266
+ Object.defineProperty(exports, "findAllProjectNodeDependencies", { enumerable: true, get: function () { return project_graph_utils_1.findAllProjectNodeDependencies; } });
267
+ Object.defineProperty(exports, "getSourceDirOfDependentProjects", { enumerable: true, get: function () { return project_graph_utils_1.getSourceDirOfDependentProjects; } });
268
+ var sync_generators_1 = require("./utils/sync-generators");
269
+ Object.defineProperty(exports, "SyncError", { enumerable: true, get: function () { return sync_generators_1.SyncError; } });
270
+ var versions_1 = require("./utils/versions");
271
+ Object.defineProperty(exports, "nxVersion", { enumerable: true, get: function () { return versions_1.nxVersion; } });
272
+ var workspace_context_2 = require("./utils/workspace-context");
273
+ Object.defineProperty(exports, "getFilesInDirectoryUsingContext", { enumerable: true, get: function () { return workspace_context_2.getFilesInDirectoryUsingContext; } });
274
+ Object.defineProperty(exports, "globWithWorkspaceContext", { enumerable: true, get: function () { return workspace_context_2.globWithWorkspaceContext; } });
275
+ Object.defineProperty(exports, "resetWorkspaceContext", { enumerable: true, get: function () { return workspace_context_2.resetWorkspaceContext; } });
276
+ Object.defineProperty(exports, "setupWorkspaceContext", { enumerable: true, get: function () { return workspace_context_2.setupWorkspaceContext; } });
277
+ var workspace_root_1 = require("./utils/workspace-root");
278
+ Object.defineProperty(exports, "setWorkspaceRoot", { enumerable: true, get: function () { return workspace_root_1.setWorkspaceRoot; } });
279
+ Object.defineProperty(exports, "workspaceRootInner", { enumerable: true, get: function () { return workspace_root_1.workspaceRootInner; } });
@@ -10,6 +10,11 @@ import type { Tree } from '../tree';
10
10
  */
11
11
  export declare function formatChangedFilesWithPrettierIfAvailable(tree: Tree, options?: {
12
12
  silent?: boolean;
13
+ /**
14
+ * Tree-relative paths to leave untouched. Both platform-native and
15
+ * forward-slash separators are accepted.
16
+ */
17
+ excludePaths?: Set<string>;
13
18
  }): Promise<void>;
14
19
  export declare function formatFilesWithPrettierIfAvailable(files: {
15
20
  path: string;
@@ -5,6 +5,7 @@ exports.formatFilesWithPrettierIfAvailable = formatFilesWithPrettierIfAvailable;
5
5
  const tslib_1 = require("tslib");
6
6
  const path = tslib_1.__importStar(require("path"));
7
7
  const is_using_prettier_1 = require("../../utils/is-using-prettier");
8
+ const path_1 = require("../../utils/path");
8
9
  const installation_directory_1 = require("../../utils/installation-directory");
9
10
  /**
10
11
  * Formats all the created or updated files using Prettier
@@ -19,7 +20,13 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
19
20
  if (process.env.NX_SKIP_FORMAT === 'true') {
20
21
  return;
21
22
  }
22
- const files = new Set(tree.listChanges().filter((file) => file.type !== 'DELETE'));
23
+ const excludedPaths = options?.excludePaths
24
+ ? new Set(Array.from(options.excludePaths, path_1.normalizePath))
25
+ : undefined;
26
+ const files = new Set(tree
27
+ .listChanges()
28
+ .filter((file) => file.type !== 'DELETE' &&
29
+ !excludedPaths?.has((0, path_1.normalizePath)(file.path))));
23
30
  const results = await formatFilesWithPrettierIfAvailable(Array.from(files), tree.root, options);
24
31
  for (const [path, content] of results) {
25
32
  tree.write(path, content);
@@ -28,7 +35,7 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
28
35
  async function formatFilesWithPrettierIfAvailable(files, root, options) {
29
36
  const results = new Map();
30
37
  // Check here as well for direct callers of this function
31
- if (process.env.NX_SKIP_FORMAT === 'true') {
38
+ if (process.env.NX_SKIP_FORMAT === 'true' || files.length === 0) {
32
39
  return results;
33
40
  }
34
41
  let prettier;
Binary file
@@ -5,12 +5,15 @@ exports.getCloudUrl = getCloudUrl;
5
5
  exports.removeTrailingSlash = removeTrailingSlash;
6
6
  exports.isNxCloudId = isNxCloudId;
7
7
  const nx_json_1 = require("../../config/nx-json");
8
- const run_command_1 = require("../../tasks-runner/run-command");
9
8
  const workspace_root_1 = require("../../utils/workspace-root");
10
9
  function getCloudOptions(directory = workspace_root_1.workspaceRoot) {
10
+ // Required lazily: this module is reachable from the @nx/devkit/internal
11
+ // barrel that plugin workers load, and run-command eagerly pulls in the whole
12
+ // task-execution subsystem.
13
+ const { getRunnerOptions, } = require('../../tasks-runner/run-command');
11
14
  const nxJson = (0, nx_json_1.readNxJson)(directory);
12
15
  // TODO: The default is not always cloud? But it's not handled at the moment
13
- return (0, run_command_1.getRunnerOptions)('default', nxJson, {}, true);
16
+ return getRunnerOptions('default', nxJson, {}, true);
14
17
  }
15
18
  function getCloudUrl() {
16
19
  return removeTrailingSlash(process.env.NX_CLOUD_API || process.env.NRWL_API || `https://cloud.nx.app`);
@@ -5,7 +5,6 @@ exports.getNxCloudAppOnBoardingUrl = getNxCloudAppOnBoardingUrl;
5
5
  exports.readNxCloudToken = readNxCloudToken;
6
6
  const is_workspace_claimed_1 = require("./is-workspace-claimed");
7
7
  const url_shorten_1 = require("./url-shorten");
8
- const run_command_1 = require("../../tasks-runner/run-command");
9
8
  const nx_json_1 = require("../../generators/utils/nx-json");
10
9
  async function createNxCloudOnboardingURLForWelcomeApp(tree, token) {
11
10
  token = token || readNxCloudToken(tree);
@@ -22,7 +21,11 @@ async function getNxCloudAppOnBoardingUrl(token) {
22
21
  return onboardingUrl;
23
22
  }
24
23
  function readNxCloudToken(tree) {
24
+ // Required lazily: this module is re-exported from the @nx/devkit/internal
25
+ // barrel that plugin workers load, and run-command eagerly pulls in the whole
26
+ // task-execution subsystem.
27
+ const { getRunnerOptions, } = require('../../tasks-runner/run-command');
25
28
  const nxJson = (0, nx_json_1.readNxJson)(tree);
26
- const { accessToken, nxCloudId } = (0, run_command_1.getRunnerOptions)('default', nxJson, {}, true);
29
+ const { accessToken, nxCloudId } = getRunnerOptions('default', nxJson, {}, true);
27
30
  return accessToken || nxCloudId;
28
31
  }
@@ -1,5 +1,2 @@
1
- /**
2
- * This is currently duplicated in Nx Console. Please let @MaxKless know if you make changes here.
3
- */
4
- export declare function createNxCloudOnboardingURL(onboardingSource: string, accessToken?: string, meta?: string, forceManual?: boolean, forceGithub?: boolean, directory?: string): Promise<string>;
1
+ export declare function createNxCloudOnboardingURL(onboardingSource: string, accessToken?: string, meta?: string, forceManual?: boolean, forceGithub?: boolean, directory?: string, signal?: AbortSignal): Promise<string>;
5
2
  export declare function getURLifShortenFailed(usesGithub: boolean, githubSlug: string | null, apiUrl: string, source: string, accessToken?: string): string;
@@ -5,13 +5,14 @@ exports.getURLifShortenFailed = getURLifShortenFailed;
5
5
  const logger_1 = require("../../utils/logger");
6
6
  const get_cloud_options_1 = require("./get-cloud-options");
7
7
  const git_utils_1 = require("../../utils/git-utils");
8
- /**
9
- * This is currently duplicated in Nx Console. Please let @MaxKless know if you make changes here.
10
- */
11
- async function createNxCloudOnboardingURL(onboardingSource, accessToken, meta, forceManual = false, forceGithub = false, directory) {
8
+ async function createNxCloudOnboardingURL(onboardingSource, accessToken, meta, forceManual = false, forceGithub = false, directory,
9
+ // Aborting tears down the in-flight request; without it a caller that stops
10
+ // waiting (see prefetchRemoteCacheOnboardingUrl) leaves the socket holding
11
+ // the event loop open, since axios has no default timeout.
12
+ signal) {
12
13
  const remoteInfo = (0, git_utils_1.getVcsRemoteInfo)(directory);
13
14
  const apiUrl = (0, get_cloud_options_1.getCloudUrl)();
14
- const installationSupportsGitHub = await getInstallationSupportsGitHub(apiUrl);
15
+ const installationSupportsGitHub = await getInstallationSupportsGitHub(apiUrl, signal);
15
16
  let usesGithub = false;
16
17
  if (forceGithub) {
17
18
  usesGithub = installationSupportsGitHub;
@@ -32,7 +33,7 @@ async function createNxCloudOnboardingURL(onboardingSource, accessToken, meta, f
32
33
  selectedRepositoryName: remoteInfo?.slug ?? null,
33
34
  repositoryDomain: remoteInfo?.domain ?? null,
34
35
  meta,
35
- });
36
+ }, { signal });
36
37
  if (!response?.data || response.data.message) {
37
38
  throw new Error(response?.data?.message ?? 'Failed to shorten Nx Cloud URL');
38
39
  }
@@ -66,9 +67,9 @@ function getURLifShortenFailed(usesGithub, githubSlug, apiUrl, source, accessTok
66
67
  }
67
68
  return `${apiUrl}/setup/connect-workspace/manual?accessToken=${accessToken}&source=${source}`;
68
69
  }
69
- async function getInstallationSupportsGitHub(apiUrl) {
70
+ async function getInstallationSupportsGitHub(apiUrl, signal) {
70
71
  try {
71
- const response = await require('axios').get(`${apiUrl}/nx-cloud/system/features`);
72
+ const response = await require('axios').get(`${apiUrl}/nx-cloud/system/features`, { signal });
72
73
  if (!response?.data || response.data.message) {
73
74
  throw new Error(response?.data?.message ?? 'Failed to shorten Nx Cloud URL');
74
75
  }
@@ -183,7 +183,8 @@ function getNodes(data, isV5) {
183
183
  }
184
184
  }
185
185
  const packageNames = new Set();
186
- for (const [key, snapshot] of Object.entries(data.packages)) {
186
+ // pnpm omits the packages block for workspace-only lockfiles (no external deps)
187
+ for (const [key, snapshot] of Object.entries(data.packages ?? {})) {
187
188
  let packageNameObj;
188
189
  const originalPackageName = extractNameFromKey(key, isV5);
189
190
  if (!originalPackageName) {
@@ -364,7 +365,8 @@ function getHoistedVersion(packageName, isV5, hoistedKeysByPackage) {
364
365
  }
365
366
  function getDependencies(data, keyMap, isV5, ctx) {
366
367
  const results = [];
367
- Object.keys(data.packages).forEach((key) => {
368
+ // pnpm omits the packages block for workspace-only lockfiles (no external deps)
369
+ Object.keys(data.packages ?? {}).forEach((key) => {
368
370
  const snapshot = data.packages[key];
369
371
  const nodes = keyMap.get(key);
370
372
  nodes.forEach((node) => {
@@ -177,17 +177,23 @@ function switchNodeToHoisted(node, builder, invBuilder) {
177
177
  const sources = Object.keys(builder.graph.dependencies).filter((name) => builder.graph.dependencies[name].some((d) => d.target === previousName));
178
178
  builder.removeNode(node.name);
179
179
  invBuilder.removeNode(node.name);
180
- // modify the node and re-add it
181
- node.name = `npm:${node.data.packageName}`;
182
- builder.addExternalNode(node);
183
- invBuilder.addExternalNode(node);
180
+ // Re-add under the hoisted name as a new object. The node is shared by
181
+ // reference with the caller's graph, so renaming it in place would leave that
182
+ // graph with a node keyed `npm:<pkg>@<version>` but named `npm:<pkg>`, and
183
+ // every later prune of the same graph would fail to resolve the edge.
184
+ const hoistedNode = {
185
+ ...node,
186
+ name: `npm:${node.data.packageName}`,
187
+ };
188
+ builder.addExternalNode(hoistedNode);
189
+ invBuilder.addExternalNode(hoistedNode);
184
190
  targets.forEach((target) => {
185
- builder.addStaticDependency(node.name, target);
186
- invBuilder.addStaticDependency(target, node.name);
191
+ builder.addStaticDependency(hoistedNode.name, target);
192
+ invBuilder.addStaticDependency(target, hoistedNode.name);
187
193
  });
188
194
  sources.forEach((source) => {
189
- builder.addStaticDependency(source, node.name);
190
- invBuilder.addStaticDependency(node.name, source);
195
+ builder.addStaticDependency(source, hoistedNode.name);
196
+ invBuilder.addStaticDependency(hoistedNode.name, source);
191
197
  });
192
198
  }
193
199
  // BFS to find the shortest path to a dependency specified in package.json
@@ -8,6 +8,7 @@ const semver_1 = require("semver");
8
8
  const find_project_for_path_1 = require("../../../../project-graph/utils/find-project-for-path");
9
9
  const fileutils_1 = require("../../../../utils/fileutils");
10
10
  const get_package_name_from_import_path_1 = require("../../../../utils/get-package-name-from-import-path");
11
+ const path_1 = require("../../../../utils/path");
11
12
  const workspace_root_1 = require("../../../../utils/workspace-root");
12
13
  const packages_1 = require("../../utils/packages");
13
14
  const resolve_relative_to_dir_1 = require("../../utils/resolve-relative-to-dir");
@@ -346,6 +347,7 @@ class TargetProjectLocator {
346
347
  }));
347
348
  }
348
349
  findProjectOfResolvedModule(resolvedModule) {
350
+ resolvedModule = (0, path_1.normalizePath)(resolvedModule);
349
351
  if (resolvedModule.startsWith('node_modules/') ||
350
352
  resolvedModule.includes('/node_modules/')) {
351
353
  return undefined;
@@ -7,5 +7,5 @@ export interface AffectedProjectGraphContext {
7
7
  touchedProjects: string[];
8
8
  }
9
9
  export interface TouchedProjectLocator<T extends Change = Change> {
10
- (fileChanges: FileChange<T>[], projectGraphNodes?: Record<string, ProjectGraphProjectNode>, nxJson?: NxJsonConfiguration<any>, packageJson?: any, projectGraph?: ProjectGraph): string[] | Promise<string[]>;
10
+ (fileChanges: FileChange<T>[], projectGraphNodes?: Record<string, ProjectGraphProjectNode>, nxJson?: NxJsonConfiguration<any>, packageJson?: any, projectGraph?: ProjectGraph, projectDeletionAffectsAllProjects?: boolean): string[] | Promise<string[]>;
11
11
  }
@@ -1,4 +1,4 @@
1
1
  import { FileChange } from '../file-utils';
2
2
  import { NxJsonConfiguration } from '../../config/nx-json';
3
3
  import { ProjectGraph } from '../../config/project-graph';
4
- export declare function filterAffected(graph: ProjectGraph, touchedFiles: FileChange[], nxJson?: NxJsonConfiguration, packageJson?: any): Promise<ProjectGraph>;
4
+ export declare function filterAffected(graph: ProjectGraph, touchedFiles: FileChange[], nxJson?: NxJsonConfiguration, packageJson?: any, projectDeletionAffectsAllProjects?: boolean): Promise<ProjectGraph>;
@@ -7,7 +7,7 @@ const touched_projects_1 = require("../../plugins/js/project-graph/affected/touc
7
7
  const operators_1 = require("../operators");
8
8
  const configuration_1 = require("../../config/configuration");
9
9
  const project_glob_changes_1 = require("./locators/project-glob-changes");
10
- async function filterAffected(graph, touchedFiles, nxJson = (0, configuration_1.readNxJson)(), packageJson = (0, file_utils_1.readPackageJson)()) {
10
+ async function filterAffected(graph, touchedFiles, nxJson = (0, configuration_1.readNxJson)(), packageJson = (0, file_utils_1.readPackageJson)(), projectDeletionAffectsAllProjects = true) {
11
11
  // Additional affected logic should be in this array.
12
12
  const touchedProjectLocators = [
13
13
  workspace_projects_1.getTouchedProjects,
@@ -18,7 +18,7 @@ async function filterAffected(graph, touchedFiles, nxJson = (0, configuration_1.
18
18
  const touchedProjects = [];
19
19
  for (const locator of touchedProjectLocators) {
20
20
  performance.mark(locator.name + ':start');
21
- const projects = await locator(touchedFiles, graph.nodes, nxJson, packageJson, graph);
21
+ const projects = await locator(touchedFiles, graph.nodes, nxJson, packageJson, graph, projectDeletionAffectsAllProjects);
22
22
  performance.mark(locator.name + ':end');
23
23
  performance.measure(locator.name, locator.name + ':start', locator.name + ':end');
24
24
  touchedProjects.push(...projects);