@nx/js 23.3.0-pr.37068.f95e11e → 23.3.0-pr.37224.268062c

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
@@ -12,7 +12,7 @@
12
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
- [![Nx Sandboxing](https://staging.nx.app/workspaces/62d013ea0852fe0a2df74438/sandbox-badge.svg)](https://nx.dev/docs/features/ci-features/sandboxing)
15
+ [![Hours saved](https://img.shields.io/endpoint?url=https%3A%2F%2Fstaging.nx.app%2Fnx-cloud%2Fbadge%2F62d013ea0852fe0a2df74438%2Fhours-saved.json)](https://nx.dev/nx-cloud)
16
16
 
17
17
  </div>
18
18
 
@@ -0,0 +1 @@
1
+ export type { InspectType, NodeExecutorOptions, } from './src/executors/node/schema';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -15,7 +15,7 @@ export { getNeededCompilerOptionOverrides } from './src/utils/typescript/configu
15
15
  export { compileTypeScript, type TypeScriptCompilationOptions, } from './src/utils/typescript/compilation';
16
16
  export { calculateProjectBuildableDependencies, calculateProjectDependencies, computeCompilerOptionsPaths, createTmpTsConfig, type DependentBuildableProjectNode, } from './src/utils/buildable-libs-utils';
17
17
  export { addSwcConfig, addSwcTestConfig } from './src/utils/swc/add-swc-config';
18
- export { addSwcDependencies, addSwcRegisterDependencies, } from './src/utils/swc/add-swc-dependencies';
18
+ export { acknowledgeSwcBuildScripts, addSwcDependencies, addSwcRegisterDependencies, } from './src/utils/swc/add-swc-dependencies';
19
19
  export { type AssetGlob } from './src/utils/assets/assets';
20
20
  export { CopyAssetsHandler } from './src/utils/assets/copy-assets-handler';
21
21
  export { sortPackageJsonFields } from './src/utils/package-json/sort-fields';
package/dist/internal.js CHANGED
@@ -5,8 +5,8 @@
5
5
  // internal consumers and may change without semver protection. Consider it
6
6
  // the @nx/js equivalent of `@nx/devkit/internal`.
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.normalizeLinterOption = exports.isValidPackageJsonBuildConfig = exports.addBuildAndWatchDepsTargets = exports.findNpmDependencies = exports.getProjectPackageManagerWorkspaceStateWarningTask = exports.getProjectPackageManagerWorkspaceState = exports.getNpmScope = exports.sortPackageJsonFields = exports.CopyAssetsHandler = exports.addSwcRegisterDependencies = exports.addSwcDependencies = exports.addSwcTestConfig = exports.addSwcConfig = exports.createTmpTsConfig = exports.computeCompilerOptionsPaths = exports.calculateProjectDependencies = exports.calculateProjectBuildableDependencies = exports.compileTypeScript = exports.getNeededCompilerOptionOverrides = exports.isTypescriptVersionAtLeast = exports.getTsConfigModuleResolution = exports.getRangeMinimum = exports.ensureTypescript = exports.createTreeParseConfigHost = exports.getTsConfigBaseOptions = exports.updateTsconfigFiles = exports.shouldConfigureTsSolutionSetup = exports.isUsingTsSolutionSetup = exports.getProjectType = exports.getProjectSourceRoot = exports.getDefinedCustomConditionName = exports.findRuntimeTsConfigName = exports.assertNotUsingTsSolutionSetup = exports.addProjectToTsSolutionWorkspace = exports.TS_SOLUTION_SETUP_TSCONFIG_INPUT = exports.addPnpmDeployOutputCacheInputs = exports.shouldIncludePnpmMajorRuntimeInput = exports.pnpmInstallSettingsInputsForInferredTarget = exports.PNPM_MAJOR_RUNTIME_INPUT = exports.PNPM_INSTALL_SETTINGS_INPUTS = exports.isEsmProject = exports.walkTsconfigExtendsChain = exports.findProjectsNpmDependencies = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.requireWithTsconfigFallback = exports.registerTsConfigPaths = exports.registerTsProject = exports.loadTsFile = exports.forceRegisterEsmLoader = void 0;
9
- exports.typesNodeVersion = exports.tsLibVersion = exports.swcNodeVersion = exports.swcHelpersVersion = exports.swcCoreVersion = exports.swcCliVersion = exports.prettierVersion = exports.esbuildVersion = exports.nxVersion = exports.releaseTasks = exports.addReleaseConfigForTsSolution = exports.addReleaseConfigForNonTsSolution = exports.addLocalRegistryScripts = exports.stripGlobToBaseDir = exports.getImportPath = exports.createGlobPatternsForDependencies = exports.addLintingToProject = exports.detectLinters = exports.normalizeUnitTestRunnerOption = void 0;
8
+ exports.isValidPackageJsonBuildConfig = exports.addBuildAndWatchDepsTargets = exports.findNpmDependencies = exports.getProjectPackageManagerWorkspaceStateWarningTask = exports.getProjectPackageManagerWorkspaceState = exports.getNpmScope = exports.sortPackageJsonFields = exports.CopyAssetsHandler = exports.addSwcRegisterDependencies = exports.addSwcDependencies = exports.acknowledgeSwcBuildScripts = exports.addSwcTestConfig = exports.addSwcConfig = exports.createTmpTsConfig = exports.computeCompilerOptionsPaths = exports.calculateProjectDependencies = exports.calculateProjectBuildableDependencies = exports.compileTypeScript = exports.getNeededCompilerOptionOverrides = exports.isTypescriptVersionAtLeast = exports.getTsConfigModuleResolution = exports.getRangeMinimum = exports.ensureTypescript = exports.createTreeParseConfigHost = exports.getTsConfigBaseOptions = exports.updateTsconfigFiles = exports.shouldConfigureTsSolutionSetup = exports.isUsingTsSolutionSetup = exports.getProjectType = exports.getProjectSourceRoot = exports.getDefinedCustomConditionName = exports.findRuntimeTsConfigName = exports.assertNotUsingTsSolutionSetup = exports.addProjectToTsSolutionWorkspace = exports.TS_SOLUTION_SETUP_TSCONFIG_INPUT = exports.addPnpmDeployOutputCacheInputs = exports.shouldIncludePnpmMajorRuntimeInput = exports.pnpmInstallSettingsInputsForInferredTarget = exports.PNPM_MAJOR_RUNTIME_INPUT = exports.PNPM_INSTALL_SETTINGS_INPUTS = exports.isEsmProject = exports.walkTsconfigExtendsChain = exports.findProjectsNpmDependencies = exports.isBuiltinModuleImport = exports.TargetProjectLocator = exports.requireWithTsconfigFallback = exports.registerTsConfigPaths = exports.registerTsProject = exports.loadTsFile = exports.forceRegisterEsmLoader = void 0;
9
+ exports.typesNodeVersion = exports.tsLibVersion = exports.swcNodeVersion = exports.swcHelpersVersion = exports.swcCoreVersion = exports.swcCliVersion = exports.prettierVersion = exports.esbuildVersion = exports.nxVersion = exports.releaseTasks = exports.addReleaseConfigForTsSolution = exports.addReleaseConfigForNonTsSolution = exports.addLocalRegistryScripts = exports.stripGlobToBaseDir = exports.getImportPath = exports.createGlobPatternsForDependencies = exports.addLintingToProject = exports.detectLinters = exports.normalizeUnitTestRunnerOption = exports.normalizeLinterOption = void 0;
10
10
  // Re-exports of nx-source internals.
11
11
  var internal_1 = require("@nx/devkit/internal");
12
12
  Object.defineProperty(exports, "forceRegisterEsmLoader", { enumerable: true, get: function () { return internal_1.forceRegisterEsmLoader; } });
@@ -75,6 +75,7 @@ var add_swc_config_1 = require("./src/utils/swc/add-swc-config");
75
75
  Object.defineProperty(exports, "addSwcConfig", { enumerable: true, get: function () { return add_swc_config_1.addSwcConfig; } });
76
76
  Object.defineProperty(exports, "addSwcTestConfig", { enumerable: true, get: function () { return add_swc_config_1.addSwcTestConfig; } });
77
77
  var add_swc_dependencies_1 = require("./src/utils/swc/add-swc-dependencies");
78
+ Object.defineProperty(exports, "acknowledgeSwcBuildScripts", { enumerable: true, get: function () { return add_swc_dependencies_1.acknowledgeSwcBuildScripts; } });
78
79
  Object.defineProperty(exports, "addSwcDependencies", { enumerable: true, get: function () { return add_swc_dependencies_1.addSwcDependencies; } });
79
80
  Object.defineProperty(exports, "addSwcRegisterDependencies", { enumerable: true, get: function () { return add_swc_dependencies_1.addSwcRegisterDependencies; } });
80
81
  var copy_assets_handler_1 = require("./src/utils/assets/copy-assets-handler");
@@ -39,6 +39,19 @@ function isAlreadyPublishedPublishError(stdoutData, stderr = '', stdout = '') {
39
39
  (error?.code === 'E409' &&
40
40
  errorMessage.includes('this package is already present')));
41
41
  }
42
+ function isNpmViewNotFoundError(err) {
43
+ if (err.code === 'ENOBUFS' || err.signal) {
44
+ return false;
45
+ }
46
+ try {
47
+ const errorCode = JSON.parse(err.stdout?.toString() || '{}').error?.code;
48
+ if (errorCode) {
49
+ return errorCode === 'E404';
50
+ }
51
+ }
52
+ catch { }
53
+ return /(?:^|\n)npm (?:ERR!|error) code E404(?:\n|$)/i.test(err.stderr?.toString() || '');
54
+ }
42
55
  async function runExecutor(options, context) {
43
56
  const pm = (0, devkit_1.detectPackageManager)();
44
57
  // Check if npm is installed (needed for dist-tag management and as fallback for view command)
@@ -146,10 +159,11 @@ Please update the local dependency on "${depName}" to be a valid semantic versio
146
159
  }, warnFn);
147
160
  // Use bun info when bun is the package manager, otherwise use npm view
148
161
  // (npm view works across npm/pnpm/yarn environments and is the established default)
162
+ const npmViewDistTagField = `dist-tags[${tag}]`;
149
163
  const npmViewCommandSegments = pm === 'bun'
150
164
  ? ['bun info', packageName, `--json --"${registryConfigKey}=${registry}"`]
151
165
  : [
152
- `npm view ${packageName} versions dist-tags --json --"${registryConfigKey}=${registry}"`,
166
+ `npm view ${packageName}@${packageJson.version} name version "${npmViewDistTagField}" --json --"${registryConfigKey}=${registry}"`,
153
167
  ];
154
168
  const npmDistTagAddCommandSegments = [
155
169
  `npm dist-tag add ${packageName}@${packageJson.version} ${tag} --"${registryConfigKey}=${registry}"`,
@@ -172,22 +186,46 @@ Please update the local dependency on "${depName}" to be a valid semantic versio
172
186
  windowsHide: true,
173
187
  });
174
188
  // `npm view`/`bun info` can exit 0 with empty stdout when the package exists in the registry but has
175
- // no published versions or dist-tags yet (e.g. GitHub packages). Treat empty output the samme as
189
+ // no published versions or dist-tags yet (e.g. GitHub packages). Treat empty output the same as
176
190
  // package not existing yet and continue to the publish step.
177
- const resultJson = JSON.parse(result.toString().trim() || '{}');
178
- const distTags = resultJson['dist-tags'] || {};
179
- if (distTags[tag] === currentVersion) {
191
+ const output = result.toString().trim();
192
+ let distTagVersion;
193
+ let versionExists;
194
+ if (!output) {
195
+ versionExists = false;
196
+ }
197
+ else {
198
+ const resultJson = JSON.parse(output);
199
+ if (pm === 'bun') {
200
+ distTagVersion = resultJson['dist-tags']?.[tag];
201
+ versionExists = (Array.isArray(resultJson.versions)
202
+ ? resultJson.versions
203
+ : [resultJson.versions]).includes(currentVersion);
204
+ }
205
+ else {
206
+ const metadataEntries = Array.isArray(resultJson)
207
+ ? resultJson
208
+ : [resultJson];
209
+ const currentVersionMetadata = metadataEntries.find((metadata) => metadata?.name === packageName &&
210
+ metadata?.version === currentVersion);
211
+ if (!currentVersionMetadata) {
212
+ console.error(`Something unexpected went wrong when checking for existing dist-tags. The registry returned metadata that did not match ${packageName}@${currentVersion}.`);
213
+ return {
214
+ success: false,
215
+ };
216
+ }
217
+ distTagVersion = currentVersionMetadata[npmViewDistTagField];
218
+ versionExists = true;
219
+ }
220
+ }
221
+ if (distTagVersion === currentVersion) {
180
222
  console.warn(`Skipped ${packageTxt} because v${currentVersion} already exists in ${registry} with tag "${tag}"`);
181
223
  return {
182
224
  success: true,
183
225
  };
184
226
  }
185
227
  if (isNpmInstalled) {
186
- // If only one version of a package exists in the registry, versions will be a string instead of an array.
187
- const versions = Array.isArray(resultJson.versions)
188
- ? resultJson.versions
189
- : [resultJson.versions];
190
- if (versions.includes(currentVersion)) {
228
+ if (versionExists) {
191
229
  try {
192
230
  if (!isDryRun) {
193
231
  (0, child_process_1.execSync)(npmDistTagAddCommandSegments.join(' '), {
@@ -248,35 +286,15 @@ Please update the local dependency on "${depName}" to be a valid semantic versio
248
286
  }
249
287
  }
250
288
  catch (err) {
251
- try {
252
- const stdoutData = JSON.parse(err.stdout?.toString() || '{}');
253
- // If the error is that the package doesn't exist, then we can ignore it because we will be publishing it for the first time in the next step
254
- if (!(stdoutData.error?.code?.includes('E404') &&
255
- stdoutData.error?.summary?.toLowerCase().includes('not found')) &&
256
- !(err.stderr?.toString().includes('E404') &&
257
- err.stderr?.toString().toLowerCase().includes('not found')) &&
258
- // bun uses plain '404' instead of 'E404'
259
- !(err.stderr?.toString().includes('404') &&
260
- err.stderr?.toString().toLowerCase().includes('not found'))) {
261
- console.error(`Something unexpected went wrong when checking for existing dist-tags.\n`, err);
262
- return {
263
- success: false,
264
- };
265
- }
266
- }
267
- catch {
268
- // JSON parse failed entirely — check stderr/stdout for plain 404
269
- const stderrStr = err.stderr?.toString() || '';
270
- const stdoutStr = err.stdout?.toString() || '';
271
- if (!((stderrStr.includes('404') &&
272
- stderrStr.toLowerCase().includes('not found')) ||
273
- (stdoutStr.includes('404') &&
274
- stdoutStr.toLowerCase().includes('not found')))) {
275
- console.error(`Something unexpected went wrong when checking for existing dist-tags.\n`, err);
276
- return {
277
- success: false,
278
- };
279
- }
289
+ const isNotFound = pm === 'bun'
290
+ ? [err.stderr?.toString(), err.stdout?.toString()].some((output) => output?.includes('404') &&
291
+ output.toLowerCase().includes('not found'))
292
+ : isNpmViewNotFoundError(err);
293
+ if (!isNotFound) {
294
+ console.error(`Something unexpected went wrong when checking for existing dist-tags.\n`, err);
295
+ return {
296
+ success: false,
297
+ };
280
298
  }
281
299
  }
282
300
  }
@@ -28,7 +28,7 @@ function processTasksAndPopulateTsConfigTaskInfoMap(tsConfigTaskInfoMap, tasksOp
28
28
  tsConfigTaskInfoMap[tsConfigPath] = taskInfo;
29
29
  taskTsConfigCache.add(taskName);
30
30
  }
31
- processTasksAndPopulateTsConfigTaskInfoMap(tsConfigTaskInfoMap, tasksOptions, context, context.taskGraph.dependencies[taskName], taskInMemoryTsConfigMap);
31
+ processTasksAndPopulateTsConfigTaskInfoMap(tsConfigTaskInfoMap, tasksOptions, context, context.taskGraph.dependencies[taskName].map((edge) => edge.id), taskInMemoryTsConfigMap);
32
32
  }
33
33
  }
34
34
  function createTaskInfo(taskName, taskOptions, context, tsConfig) {
@@ -48,7 +48,9 @@ function generateTaskProjectTsConfig(task, tasksOptions, context, taskInMemoryTs
48
48
  }
49
49
  function getDependencyTasksInOtherProjects(task, project, context) {
50
50
  const implicitDependencies = new Set(context.projectGraph.nodes[project].data.implicitDependencies ?? []);
51
- return context.taskGraph.dependencies[task].filter((t) => {
51
+ return context.taskGraph.dependencies[task]
52
+ .map((edge) => edge.id)
53
+ .filter((t) => {
52
54
  const { project: dependencyProject } = (0, devkit_1.parseTargetString)(t, context);
53
55
  // Tasks for implicit dependencies are skipped since incremental builds only apply to explicit dependencies
54
56
  return (t !== task &&
@@ -665,6 +665,11 @@ async function normalizeOptions(tree, options) {
665
665
  }
666
666
  function addProjectDependencies(tree, options) {
667
667
  if (options.bundler == 'esbuild') {
668
+ // esbuild's install script only validates the prebuilt binary that ships as
669
+ // an optional dependency.
670
+ (0, internal_1.acknowledgeBuildScripts)(tree, (0, devkit_1.detectPackageManager)(tree.root), {
671
+ esbuild: false,
672
+ });
668
673
  return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
669
674
  '@nx/esbuild': versions_1.nxVersion,
670
675
  '@types/node': versions_1.typesNodeVersion,
@@ -684,6 +689,7 @@ function addProjectDependencies(tree, options) {
684
689
  return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { tslib: versions_1.tsLibVersion, '@types/node': versions_1.typesNodeVersion }, undefined, true);
685
690
  }
686
691
  else if (options.bundler === 'swc') {
692
+ (0, add_swc_dependencies_1.acknowledgeSwcBuildScripts)(tree);
687
693
  const { dependencies, devDependencies } = (0, add_swc_dependencies_1.getSwcDependencies)();
688
694
  return (0, devkit_1.addDependenciesToPackageJson)(tree, { ...dependencies }, { ...devDependencies, '@types/node': versions_1.typesNodeVersion }, undefined, true);
689
695
  }
@@ -80,7 +80,7 @@ function createConfigContext(configFilePath, workspaceRoot, projectContext) {
80
80
  };
81
81
  }
82
82
  function getConfigContext(configPath, workspaceRoot, cache) {
83
- const absolutePath = configPath.startsWith('/') || configPath.startsWith(workspaceRoot)
83
+ const absolutePath = (0, node_path_1.isAbsolute)(configPath)
84
84
  ? (0, node_path_1.normalize)(configPath)
85
85
  : (0, node_path_1.join)(workspaceRoot, configPath);
86
86
  let context = cache.configContexts.get(absolutePath);
@@ -21,6 +21,7 @@ export default class JsVersionActions extends VersionActions {
21
21
  updateProjectVersion(tree: Tree, newVersion: string): Promise<string[]>;
22
22
  updateProjectDependencies(tree: Tree, projectGraph: ProjectGraph, dependenciesToUpdate: Record<string, string>, resolveVersionForDependency?: ResolveVersionForDependency): Promise<string[]>;
23
23
  private getLocalDependencyProjectLookup;
24
+ private shouldPreserveUnconfiguredPrivateDevDependency;
24
25
  private resolveLocalDependencySpecifier;
25
26
  private applyVersionPrefix;
26
27
  private updateManifestValues;
@@ -223,6 +223,9 @@ class JsVersionActions extends release_1.VersionActions {
223
223
  version = await this.resolveLocalDependencySpecifier(dependencyName, currentVersion, targetProject, resolveVersion);
224
224
  }
225
225
  catch (error) {
226
+ if (this.shouldPreserveUnconfiguredPrivateDevDependency(tree, json, depType, dependencyName, targetProject, error)) {
227
+ continue;
228
+ }
226
229
  const message = error instanceof Error ? error.message : String(error);
227
230
  throw new Error(`Unable to replace local dependency protocol "${currentVersion}" for "${dependencyName}" in manifest "${manifestToUpdate.manifestPath}". ${message}`);
228
231
  }
@@ -277,11 +280,36 @@ class JsVersionActions extends release_1.VersionActions {
277
280
  if (!packageName) {
278
281
  continue;
279
282
  }
280
- lookup.set(packageName, { projectName });
283
+ lookup.set(packageName, {
284
+ projectName,
285
+ projectRoot: node.data.root,
286
+ });
281
287
  }
282
288
  localDependencyProjectsByGraph.set(projectGraph, lookup);
283
289
  return lookup;
284
290
  }
291
+ shouldPreserveUnconfiguredPrivateDevDependency(tree, manifest, dependencyType, dependencyName, targetProject, error) {
292
+ if (dependencyType !== 'devDependencies' ||
293
+ error?.code !==
294
+ 'NX_RELEASE_PROJECT_NOT_CONFIGURED' ||
295
+ [
296
+ manifest.dependencies,
297
+ manifest.peerDependencies,
298
+ manifest.optionalDependencies,
299
+ ].some((dependencies) => dependencies?.[dependencyName] !== undefined)) {
300
+ return false;
301
+ }
302
+ const targetManifestPath = (0, node_path_1.join)(targetProject.projectRoot, 'package.json');
303
+ if (!tree.exists(targetManifestPath)) {
304
+ return false;
305
+ }
306
+ try {
307
+ return (0, devkit_1.readJson)(tree, targetManifestPath).private === true;
308
+ }
309
+ catch {
310
+ return false;
311
+ }
312
+ }
285
313
  async resolveLocalDependencySpecifier(dependencyName, versionSpecifier, targetProject, resolveVersion) {
286
314
  if (versionSpecifier.startsWith('file:')) {
287
315
  const resolvedVersion = await resolveVersion(targetProject.projectName);
@@ -206,7 +206,7 @@ function collectNpmDependencies(projectName, projectGraph, dependentTasks, colle
206
206
  return dependencies;
207
207
  }
208
208
  function collectDependentTasks(project, task, taskGraph, projectGraph, shallow, areTopLevelDeps = true, dependentTasks = new Map()) {
209
- for (const depTask of taskGraph.dependencies[task] ?? []) {
209
+ for (const { id: depTask } of taskGraph.dependencies[task] ?? []) {
210
210
  if (dependentTasks.has(depTask)) {
211
211
  if (!dependentTasks.get(depTask).isTopLevel && areTopLevelDeps) {
212
212
  dependentTasks.get(depTask).isTopLevel = true;
@@ -1,4 +1,5 @@
1
1
  import { Tree } from '@nx/devkit';
2
+ export declare function acknowledgeSwcBuildScripts(tree: Tree): void;
2
3
  export declare function getSwcDependencies(): {
3
4
  dependencies: Record<string, string>;
4
5
  devDependencies: Record<string, string>;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.acknowledgeSwcBuildScripts = acknowledgeSwcBuildScripts;
3
4
  exports.getSwcDependencies = getSwcDependencies;
4
5
  exports.addSwcDependencies = addSwcDependencies;
5
6
  exports.addSwcRegisterDependencies = addSwcRegisterDependencies;
@@ -9,6 +10,9 @@ const versions_1 = require("../versions");
9
10
  // @swc/core's postinstall only installs a wasm fallback for platforms not
10
11
  // covered by its prebuilt optional dependencies, so skip it.
11
12
  const swcAllowBuilds = { '@swc/core': false };
13
+ function acknowledgeSwcBuildScripts(tree) {
14
+ (0, internal_1.acknowledgeBuildScripts)(tree, (0, devkit_1.detectPackageManager)(tree.root), swcAllowBuilds);
15
+ }
12
16
  function getSwcDependencies() {
13
17
  const dependencies = {
14
18
  '@swc/helpers': versions_1.swcHelpersVersion,
@@ -21,10 +25,10 @@ function getSwcDependencies() {
21
25
  }
22
26
  function addSwcDependencies(tree) {
23
27
  const { dependencies, devDependencies } = getSwcDependencies();
24
- (0, internal_1.acknowledgeBuildScripts)(tree, (0, devkit_1.detectPackageManager)(tree.root), swcAllowBuilds);
28
+ acknowledgeSwcBuildScripts(tree);
25
29
  return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies, undefined, true);
26
30
  }
27
31
  function addSwcRegisterDependencies(tree) {
28
- (0, internal_1.acknowledgeBuildScripts)(tree, (0, devkit_1.detectPackageManager)(tree.root), swcAllowBuilds);
32
+ acknowledgeSwcBuildScripts(tree);
29
33
  return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@swc-node/register': versions_1.swcNodeVersion, '@swc/core': versions_1.swcCoreVersion }, undefined, true);
30
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/js",
3
- "version": "23.3.0-pr.37068.f95e11e",
3
+ "version": "23.3.0-pr.37224.268062c",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "files": [
@@ -30,6 +30,9 @@
30
30
  "types": "./dist/src/index.d.ts",
31
31
  "typesVersions": {
32
32
  "*": {
33
+ "executors": [
34
+ "dist/executors.d.ts"
35
+ ],
33
36
  "babel": [
34
37
  "dist/babel.d.ts"
35
38
  ],
@@ -78,6 +81,11 @@
78
81
  "./migrations.json": "./migrations.json",
79
82
  "./generators.json": "./generators.json",
80
83
  "./executors.json": "./executors.json",
84
+ "./executors": {
85
+ "@nx/nx-source": "./executors.ts",
86
+ "types": "./dist/executors.d.ts",
87
+ "default": "./dist/executors.js"
88
+ },
81
89
  "./babel": {
82
90
  "@nx/nx-source": "./babel.ts",
83
91
  "types": "./dist/babel.d.ts",
@@ -130,6 +138,8 @@
130
138
  "@babel/preset-env": "^7.23.2",
131
139
  "@babel/preset-typescript": "^7.22.5",
132
140
  "@babel/runtime": "^7.22.6",
141
+ "@nx/devkit": "23.3.0-pr.37224.268062c",
142
+ "@nx/workspace": "23.3.0-pr.37224.268062c",
133
143
  "@zkochan/js-yaml": "0.0.7",
134
144
  "babel-plugin-const-enum": "^1.0.1",
135
145
  "babel-plugin-macros": "^3.1.0",
@@ -146,19 +156,17 @@
146
156
  "semver": "^7.6.3",
147
157
  "source-map-support": "0.5.19",
148
158
  "tinyglobby": "^0.2.12",
149
- "tslib": "^2.3.0",
150
- "@nx/devkit": "23.3.0-pr.37068.f95e11e",
151
- "@nx/workspace": "23.3.0-pr.37068.f95e11e"
159
+ "tslib": "^2.3.0"
152
160
  },
153
161
  "devDependencies": {
154
- "@nx/jest": "23.3.0-pr.37068.f95e11e",
155
- "@nx/esbuild": "23.3.0-pr.37068.f95e11e",
156
- "@nx/eslint": "23.3.0-pr.37068.f95e11e",
157
- "@nx/oxlint": "23.3.0-pr.37068.f95e11e",
158
- "@nx/rollup": "23.3.0-pr.37068.f95e11e",
159
- "@nx/vite": "23.3.0-pr.37068.f95e11e",
160
- "@nx/vitest": "23.3.0-pr.37068.f95e11e",
161
- "nx": "23.3.0-pr.37068.f95e11e"
162
+ "@nx/esbuild": "23.3.0-pr.37224.268062c",
163
+ "@nx/eslint": "23.3.0-pr.37224.268062c",
164
+ "@nx/jest": "23.3.0-pr.37224.268062c",
165
+ "@nx/oxlint": "23.3.0-pr.37224.268062c",
166
+ "@nx/rollup": "23.3.0-pr.37224.268062c",
167
+ "@nx/vite": "23.3.0-pr.37224.268062c",
168
+ "@nx/vitest": "23.3.0-pr.37224.268062c",
169
+ "nx": "23.3.0-pr.37224.268062c"
162
170
  },
163
171
  "peerDependencies": {
164
172
  "@swc/cli": ">=0.6.0 <0.9.0",
@@ -0,0 +1,18 @@
1
+ <p style="text-align: center;">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-dark.svg">
4
+ <img alt="Nx - Smart Monorepos · Fast Builds" src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-light.svg" width="100%">
5
+ </picture>
6
+ </p>
7
+
8
+ {{links}}
9
+
10
+ <hr>
11
+
12
+ # Nx: Smart Monorepos · Fast Builds
13
+
14
+ Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
15
+
16
+ This package is a [JavaScript/TypeScript plugin for Nx](https://nx.dev/js/overview).
17
+
18
+ {{content}}