@nx/js 20.1.0-beta.4 → 20.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/js",
3
- "version": "20.1.0-beta.4",
3
+ "version": "20.1.0-beta.5",
4
4
  "private": false,
5
5
  "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ",
6
6
  "repository": {
@@ -39,8 +39,8 @@
39
39
  "@babel/preset-env": "^7.23.2",
40
40
  "@babel/preset-typescript": "^7.22.5",
41
41
  "@babel/runtime": "^7.22.6",
42
- "@nx/devkit": "20.1.0-beta.4",
43
- "@nx/workspace": "20.1.0-beta.4",
42
+ "@nx/devkit": "20.1.0-beta.5",
43
+ "@nx/workspace": "20.1.0-beta.5",
44
44
  "@zkochan/js-yaml": "0.0.7",
45
45
  "babel-plugin-const-enum": "^1.0.1",
46
46
  "babel-plugin-macros": "^2.8.0",
@@ -492,7 +492,8 @@ To fix this you will either need to add a package.json file at that location, or
492
492
  const totalProjectsToUpdate = updateDependents === 'auto' &&
493
493
  options.releaseGroup.projectsRelationship === 'independent'
494
494
  ? allDependentProjects.length +
495
- transitiveLocalPackageDependents.length -
495
+ // Only count transitive dependents that aren't already direct dependents
496
+ transitiveLocalPackageDependents.filter((transitive) => !allDependentProjects.some((direct) => direct.source === transitive.source)).length -
496
497
  // There are two entries per circular dep
497
498
  circularDependencies.size / 2
498
499
  : dependentProjectsInCurrentBatch.length;
@@ -596,6 +597,25 @@ To fix this you will either need to add a package.json file at that location, or
596
597
  }
597
598
  }
598
599
  for (const transitiveDependentProject of transitiveLocalPackageDependents) {
600
+ const isAlreadyDirectDependent = allDependentProjects.some((dep) => dep.source === transitiveDependentProject.source);
601
+ if (isAlreadyDirectDependent) {
602
+ // Don't continue directly in this scenario - we still need to update the dependency version
603
+ // but we don't want to bump the project's own version as it will end up being double patched
604
+ const dependencyProjectName = transitiveDependentProject.target;
605
+ const dependencyPackageRoot = projectNameToPackageRootMap.get(dependencyProjectName);
606
+ if (!dependencyPackageRoot) {
607
+ throw new Error(`The project "${dependencyProjectName}" does not have a packageRoot available. Please report this issue on https://github.com/nrwl/nx`);
608
+ }
609
+ const dependencyPackageJsonPath = (0, devkit_1.joinPathFragments)(dependencyPackageRoot, 'package.json');
610
+ const dependencyPackageJson = (0, devkit_1.readJson)(tree, dependencyPackageJsonPath);
611
+ updateDependentProjectAndAddToVersionData({
612
+ dependentProject: transitiveDependentProject,
613
+ dependencyPackageName: dependencyPackageJson.name,
614
+ newDependencyVersion: dependencyPackageJson.version,
615
+ forceVersionBump: false, // Never bump version for direct dependents
616
+ });
617
+ continue;
618
+ }
599
619
  // Check if the transitive dependent originates from a circular dependency
600
620
  const isFromCircularDependency = circularDependencies.has(`${transitiveDependentProject.source}:${transitiveDependentProject.target}`);
601
621
  const dependencyProjectName = transitiveDependentProject.target;