nx 23.2.0-beta.10 → 23.2.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  <div style="text-align: center;">
9
9
 
10
- [![License](https://img.shields.io/npm/l/@nx/workspace.svg?style=flat-square)]()
10
+ [![License](https://img.shields.io/npm/l/@nx/workspace.svg?style=flat-square)](<>)
11
11
  [![NPM Version](https://badge.fury.io/js/nx.svg)](https://www.npmjs.com/package/nx)
12
- [![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)]()
12
+ [![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](<>)
13
13
  [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
14
14
  [![Join us on the Official Nx Discord Server](https://img.shields.io/discord/1143497901675401286?label=discord)](https://go.nx.dev/community)
15
15
  [![Nx Sandboxing](https://staging.nx.app/workspaces/62d013ea0852fe0a2df74438/sandbox-badge.svg)](https://nx.dev/docs/features/ci-features/sandboxing)
@@ -83,6 +83,7 @@ export { hashFile } from './hasher/file-hasher';
83
83
  export { filterUsingGlobPatterns, getTargetInputs } from './hasher/task-hasher';
84
84
  export type { JsonInput } from './native';
85
85
  export { killProcessTreeGraceful } from './native';
86
+ export { killChildOnHostExit } from './utils/kill-child-on-host-exit';
86
87
  export { connectToNxCloud } from './nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud';
87
88
  export type { NxCloudOnBoardingStatus } from './nx-cloud/models/onboarding-status';
88
89
  export { createNxCloudOnboardingURLForWelcomeApp, getNxCloudAppOnBoardingUrl, } from './nx-cloud/utilities/onboarding';
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.oxfmtConfigFiles = exports.formatFilesWithOxfmt = exports.detectFormatterInTree = exports.detectFormatter = exports.prettierConfigFiles = 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.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.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 = 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 = 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 = void 0;
5
- 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 = 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 = 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.combineGlobPatterns = exports.getLatestCommitSha = exports.readFileIfExisting = exports.isRelativePath = exports.fileExists = exports.directoryExists = exports.createDirectory = exports.deduceDefaultBase = exports.codeFrameColumns = exports.runNxSync = void 0;
4
+ exports.registerTsConfigPaths = exports.getWorkspacePackagesFromGraph = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.findProjectsNpmDependencies = exports.createPackageJson = exports.getLockFileName = exports.generatePrunedDeployOutput = exports.createLockFile = 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 = void 0;
5
+ 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 = 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 = 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.combineGlobPatterns = exports.getLatestCommitSha = exports.readFileIfExisting = exports.isRelativePath = exports.fileExists = exports.directoryExists = exports.createDirectory = exports.deduceDefaultBase = exports.codeFrameColumns = exports.runNxSync = exports.workspaceDataDirectory = 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
@@ -170,6 +170,8 @@ Object.defineProperty(exports, "filterUsingGlobPatterns", { enumerable: true, ge
170
170
  Object.defineProperty(exports, "getTargetInputs", { enumerable: true, get: function () { return task_hasher_1.getTargetInputs; } });
171
171
  var native_1 = require("./native");
172
172
  Object.defineProperty(exports, "killProcessTreeGraceful", { enumerable: true, get: function () { return native_1.killProcessTreeGraceful; } });
173
+ var kill_child_on_host_exit_1 = require("./utils/kill-child-on-host-exit");
174
+ Object.defineProperty(exports, "killChildOnHostExit", { enumerable: true, get: function () { return kill_child_on_host_exit_1.killChildOnHostExit; } });
173
175
  var connect_to_nx_cloud_1 = require("./nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud");
174
176
  Object.defineProperty(exports, "connectToNxCloud", { enumerable: true, get: function () { return connect_to_nx_cloud_1.connectToNxCloud; } });
175
177
  var onboarding_1 = require("./nx-cloud/utilities/onboarding");
Binary file
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Checks if `@nx/js` is installed by attempting to resolve its `package.json`.
3
3
  *
4
- * Lives in its own module so unit tests can `jest.doMock` it without having to
4
+ * Lives in its own module so unit tests can mock it without having to
5
5
  * intercept Node's resolver at the global level. The previous in-`package-json`
6
6
  * definition was unreachable to mocks because callers in the same module
7
7
  * referenced it via the local lexical binding rather than `module.exports`.
@@ -5,7 +5,7 @@ const installation_directory_1 = require("./installation-directory");
5
5
  /**
6
6
  * Checks if `@nx/js` is installed by attempting to resolve its `package.json`.
7
7
  *
8
- * Lives in its own module so unit tests can `jest.doMock` it without having to
8
+ * Lives in its own module so unit tests can mock it without having to
9
9
  * intercept Node's resolver at the global level. The previous in-`package-json`
10
10
  * definition was unreachable to mocks because callers in the same module
11
11
  * referenced it via the local lexical binding rather than `module.exports`.
@@ -0,0 +1,7 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ /**
3
+ * Kill `cp` (and its descendants) when this process exits, unless it has
4
+ * already exited on its own.
5
+ */
6
+ export declare function killChildOnHostExit(cp: ChildProcess): void;
7
+ export declare function killTrackedChildren(): void;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.killChildOnHostExit = killChildOnHostExit;
4
+ exports.killTrackedChildren = killTrackedChildren;
5
+ const native_1 = require("../native");
6
+ // Children spawned by this process that must not outlive it. Plugin workers
7
+ // are torn down with `process.exit`, which leaves spawned build tools (gradle,
8
+ // maven, ...) orphaned and still holding their project locks.
9
+ const trackedChildren = new Set();
10
+ let exitHookRegistered = false;
11
+ /**
12
+ * Kill `cp` (and its descendants) when this process exits, unless it has
13
+ * already exited on its own.
14
+ */
15
+ function killChildOnHostExit(cp) {
16
+ if (!cp.pid)
17
+ return;
18
+ trackedChildren.add(cp.pid);
19
+ const untrack = () => {
20
+ trackedChildren.delete(cp.pid);
21
+ // Whichever fires first, drop both — otherwise the other stays registered
22
+ // on a child that is already gone.
23
+ cp.off('exit', untrack);
24
+ cp.off('error', untrack);
25
+ };
26
+ cp.once('exit', untrack);
27
+ cp.once('error', untrack);
28
+ if (!exitHookRegistered) {
29
+ exitHookRegistered = true;
30
+ process.once('exit', killTrackedChildren);
31
+ }
32
+ }
33
+ function killTrackedChildren() {
34
+ for (const pid of trackedChildren) {
35
+ try {
36
+ // 'exit' handlers must be synchronous, so no graceful variant here.
37
+ (0, native_1.killProcessTree)(pid, 'SIGTERM');
38
+ }
39
+ catch { }
40
+ }
41
+ trackedChildren.clear();
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "23.2.0-beta.10",
3
+ "version": "23.2.0-beta.11",
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-beta.10",
189
- "@nx/nx-darwin-x64": "23.2.0-beta.10",
190
- "@nx/nx-freebsd-x64": "23.2.0-beta.10",
191
- "@nx/nx-linux-arm-gnueabihf": "23.2.0-beta.10",
192
- "@nx/nx-linux-arm64-gnu": "23.2.0-beta.10",
193
- "@nx/nx-linux-arm64-musl": "23.2.0-beta.10",
194
- "@nx/nx-linux-x64-gnu": "23.2.0-beta.10",
195
- "@nx/nx-linux-x64-musl": "23.2.0-beta.10",
196
- "@nx/nx-win32-arm64-msvc": "23.2.0-beta.10",
197
- "@nx/nx-win32-x64-msvc": "23.2.0-beta.10"
188
+ "@nx/nx-darwin-arm64": "23.2.0-beta.11",
189
+ "@nx/nx-darwin-x64": "23.2.0-beta.11",
190
+ "@nx/nx-freebsd-x64": "23.2.0-beta.11",
191
+ "@nx/nx-linux-arm-gnueabihf": "23.2.0-beta.11",
192
+ "@nx/nx-linux-arm64-gnu": "23.2.0-beta.11",
193
+ "@nx/nx-linux-arm64-musl": "23.2.0-beta.11",
194
+ "@nx/nx-linux-x64-gnu": "23.2.0-beta.11",
195
+ "@nx/nx-linux-x64-musl": "23.2.0-beta.11",
196
+ "@nx/nx-win32-arm64-msvc": "23.2.0-beta.11",
197
+ "@nx/nx-win32-x64-msvc": "23.2.0-beta.11"
198
198
  },
199
199
  "nx-migrations": {
200
200
  "migrations": "./migrations.json",