nx 23.2.0-rc.0 → 23.2.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -135,6 +135,7 @@ export type { PackageManagerCommands } from './utils/package-manager';
135
135
  export { deriveGroupNameFromTarget } from './utils/plugins/atomizer-utils';
136
136
  export { findInstalledPlugins } from './utils/plugins/installed-plugins';
137
137
  export { findAllProjectNodeDependencies, getSourceDirOfDependentProjects, } from './utils/project-graph-utils';
138
+ export { quoteShellArg } from './utils/shell-quoting';
138
139
  export type { SyncGeneratorResult } from './utils/sync-generators';
139
140
  export { SyncError } from './utils/sync-generators';
140
141
  export { nxVersion } from './utils/versions';
@@ -3,7 +3,7 @@ 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
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
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.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;
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;
7
7
  const tslib_1 = require("tslib");
8
8
  /**
9
9
  * Note to developers: STOP! These are nx internals, not part of the public
@@ -312,6 +312,8 @@ Object.defineProperty(exports, "findInstalledPlugins", { enumerable: true, get:
312
312
  var project_graph_utils_1 = require("./utils/project-graph-utils");
313
313
  Object.defineProperty(exports, "findAllProjectNodeDependencies", { enumerable: true, get: function () { return project_graph_utils_1.findAllProjectNodeDependencies; } });
314
314
  Object.defineProperty(exports, "getSourceDirOfDependentProjects", { enumerable: true, get: function () { return project_graph_utils_1.getSourceDirOfDependentProjects; } });
315
+ var shell_quoting_1 = require("./utils/shell-quoting");
316
+ Object.defineProperty(exports, "quoteShellArg", { enumerable: true, get: function () { return shell_quoting_1.quoteShellArg; } });
315
317
  var sync_generators_1 = require("./utils/sync-generators");
316
318
  Object.defineProperty(exports, "SyncError", { enumerable: true, get: function () { return sync_generators_1.SyncError; } });
317
319
  var versions_1 = require("./utils/versions");
Binary file
@@ -35,8 +35,11 @@ function getNodes(data) {
35
35
  const nodes = new Map();
36
36
  if (data.lockfileVersion > 1) {
37
37
  Object.entries(data.packages).forEach(([path, snapshot]) => {
38
- // skip workspaces packages
39
- if (path === '' || !path.includes('node_modules') || snapshot.link) {
38
+ // skip workspaces and snapshots bundled into their parent package
39
+ if (path === '' ||
40
+ !path.includes('node_modules') ||
41
+ snapshot.link ||
42
+ snapshot.inBundle) {
40
43
  return;
41
44
  }
42
45
  const packageName = path.split('node_modules/').pop();
@@ -527,6 +530,10 @@ function buildV3Index(packages) {
527
530
  return index;
528
531
  const marker = 'node_modules/';
529
532
  for (const key of Object.keys(packages)) {
533
+ const snapshot = packages[key];
534
+ // Bundled snapshots are not independently installable package candidates.
535
+ if (snapshot.inBundle)
536
+ continue;
530
537
  const i = key.lastIndexOf(marker);
531
538
  if (i === -1)
532
539
  continue; // root "" / workspace paths never matched endsWith
@@ -534,7 +541,7 @@ function buildV3Index(packages) {
534
541
  let bucket = index.get(name);
535
542
  if (!bucket)
536
543
  index.set(name, (bucket = []));
537
- bucket.push(packages[key]);
544
+ bucket.push(snapshot);
538
545
  }
539
546
  return index;
540
547
  }
@@ -372,11 +372,7 @@ async function startPluginWorker(name) {
372
372
  ...process.env,
373
373
  ...(isWorkerTypescript
374
374
  ? {
375
- TS_NODE_PROJECT: path.join(__dirname, '../../../../tsconfig.lib.json'),
376
- TS_NODE_COMPILER_OPTIONS: JSON.stringify({
377
- moduleResolution: 'node',
378
- module: 'commonjs',
379
- }),
375
+ SWC_NODE_PROJECT: path.join(__dirname, '../../../../tsconfig.lib.json'),
380
376
  }
381
377
  : {}),
382
378
  };
@@ -392,7 +388,9 @@ async function startPluginWorker(name) {
392
388
  // Spawn the worker with the same resolve conditions Nx uses for plugin
393
389
  // entries so the plugin's transitive workspace imports resolve to source.
394
390
  ...(0, typescript_1.getPluginResolveConditionNodeArgs)(),
395
- ...(isWorkerTypescript ? ['--require', 'ts-node/register'] : []),
391
+ // swc transpiles without type-checking: ~7x faster to boot, and this is
392
+ // paid once per worker spawn.
393
+ ...(isWorkerTypescript ? ['--require', '@swc-node/register'] : []),
396
394
  workerPath,
397
395
  ipcPath,
398
396
  name,
@@ -175,19 +175,22 @@ function getPackageManagerCommand(packageManager = detectPackageManager(), root
175
175
  };
176
176
  },
177
177
  pnpm: () => {
178
- let modernPnpm, includeDoubleDashBeforeArgs, allowRegistryConfigKey;
178
+ let modernPnpm, includeDoubleDashBeforeArgs, configForm, scopedForm;
179
179
  try {
180
180
  const pnpmVersion = getPackageManagerVersion('pnpm', root);
181
181
  modernPnpm = (0, semver_1.gte)(pnpmVersion, '6.13.0');
182
182
  includeDoubleDashBeforeArgs = (0, semver_1.lt)(pnpmVersion, '7.0.0');
183
- // Support for --@scope:registry was added in pnpm v10.5.0 and backported to v9.15.7.
184
- // Versions >=10.0.0 and <10.5.0 do NOT support this CLI option.
185
- allowRegistryConfigKey = (0, semver_1.satisfies)(pnpmVersion, '>=9.15.7 <10.0.0 || >=10.5.0');
183
+ configForm = (0, semver_1.gte)(pnpmVersion, '11.0.0');
184
+ // Support for --@scope:registry was added in pnpm v10.5.0 and
185
+ // backported to v9.15.7. Starting with pnpm 11, the equivalent
186
+ // option is --config.@scope:registry.
187
+ scopedForm = (0, semver_1.satisfies)(pnpmVersion, '>=9.15.7 <10.0.0 || >=10.5.0 <11.0.0');
186
188
  }
187
189
  catch {
188
190
  modernPnpm = true;
189
191
  includeDoubleDashBeforeArgs = true;
190
- allowRegistryConfigKey = false;
192
+ configForm = false;
193
+ scopedForm = false;
191
194
  }
192
195
  const isPnpmWorkspace = (0, fs_1.existsSync)((0, path_1.join)(root, 'pnpm-workspace.yaml'));
193
196
  return {
@@ -211,7 +214,11 @@ function getPackageManagerCommand(packageManager = detectPackageManager(), root
211
214
  list: 'pnpm ls --depth 100',
212
215
  why: 'pnpm why',
213
216
  getRegistryUrl: 'pnpm config get registry',
214
- publish: (packageRoot, registry, registryConfigKey, tag) => `pnpm publish "${packageRoot}" --json --"${allowRegistryConfigKey ? registryConfigKey : 'registry'}=${registry}" --tag=${tag} --no-git-checks`,
217
+ publish: (packageRoot, registry, registryConfigKey, tag) => `pnpm publish "${packageRoot}" --json --"${configForm
218
+ ? `config.${registryConfigKey}`
219
+ : scopedForm
220
+ ? registryConfigKey
221
+ : 'registry'}=${registry}" --tag=${tag} --no-git-checks`,
215
222
  ignoreScriptsFlag: '--ignore-scripts',
216
223
  };
217
224
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "23.2.0-rc.0",
3
+ "version": "23.2.0-rc.2",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
@@ -185,16 +185,16 @@
185
185
  }
186
186
  },
187
187
  "optionalDependencies": {
188
- "@nx/nx-darwin-arm64": "23.2.0-rc.0",
189
- "@nx/nx-darwin-x64": "23.2.0-rc.0",
190
- "@nx/nx-freebsd-x64": "23.2.0-rc.0",
191
- "@nx/nx-linux-arm-gnueabihf": "23.2.0-rc.0",
192
- "@nx/nx-linux-arm64-gnu": "23.2.0-rc.0",
193
- "@nx/nx-linux-arm64-musl": "23.2.0-rc.0",
194
- "@nx/nx-linux-x64-gnu": "23.2.0-rc.0",
195
- "@nx/nx-linux-x64-musl": "23.2.0-rc.0",
196
- "@nx/nx-win32-arm64-msvc": "23.2.0-rc.0",
197
- "@nx/nx-win32-x64-msvc": "23.2.0-rc.0"
188
+ "@nx/nx-darwin-arm64": "23.2.0-rc.2",
189
+ "@nx/nx-darwin-x64": "23.2.0-rc.2",
190
+ "@nx/nx-freebsd-x64": "23.2.0-rc.2",
191
+ "@nx/nx-linux-arm-gnueabihf": "23.2.0-rc.2",
192
+ "@nx/nx-linux-arm64-gnu": "23.2.0-rc.2",
193
+ "@nx/nx-linux-arm64-musl": "23.2.0-rc.2",
194
+ "@nx/nx-linux-x64-gnu": "23.2.0-rc.2",
195
+ "@nx/nx-linux-x64-musl": "23.2.0-rc.2",
196
+ "@nx/nx-win32-arm64-msvc": "23.2.0-rc.2",
197
+ "@nx/nx-win32-x64-msvc": "23.2.0-rc.2"
198
198
  },
199
199
  "nx-migrations": {
200
200
  "migrations": "./migrations.json",