@pnpm/installing.deps-resolver 1100.1.4 → 1100.1.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 (2) hide show
  1. package/lib/resolvePeers.js +8 -1
  2. package/package.json +14 -14
@@ -361,8 +361,15 @@ async function resolvePeersOfNode(currentAlias, nodeId, parentParentPkgs, ctx) {
361
361
  };
362
362
  async function calculateDepPath(peerIds, pendingPeerNodes, cycles) {
363
363
  const cyclicPeerAliases = new Set();
364
+ const pendingPeerAliases = new Set(pendingPeerNodes.map(({ alias }) => alias));
364
365
  for (const cycle of cycles) {
365
- if (cycle.includes(currentAlias)) {
366
+ // A cycle has to be short-circuited at this level whenever any of
367
+ // its members is involved in the current resolution — either as
368
+ // currentAlias or among the pending peers we are about to await.
369
+ // When a cycle member hits the `findHit` cache instead of running
370
+ // its own calculateDepPath, only the awaiting siblings at this
371
+ // level can release the cached promise. See pnpm/pnpm#11999.
372
+ if (cycle.includes(currentAlias) || cycle.some((alias) => pendingPeerAliases.has(alias))) {
366
373
  for (const peerAlias of cycle) {
367
374
  cyclicPeerAliases.add(peerAlias);
368
375
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/installing.deps-resolver",
3
- "version": "1100.1.4",
3
+ "version": "1100.1.5",
4
4
  "description": "Resolves dependency graph of a package",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -41,29 +41,29 @@
41
41
  "validate-npm-package-name": "7.0.2",
42
42
  "version-selector-type": "^3.0.0",
43
43
  "@pnpm/catalogs.types": "1100.0.0",
44
- "@pnpm/constants": "1100.0.0",
45
44
  "@pnpm/config.version-policy": "1100.1.2",
46
- "@pnpm/core-loggers": "1100.1.2",
45
+ "@pnpm/catalogs.resolver": "1100.0.0",
46
+ "@pnpm/constants": "1100.0.0",
47
47
  "@pnpm/deps.graph-hasher": "1100.2.2",
48
48
  "@pnpm/deps.path": "1100.0.5",
49
+ "@pnpm/core-loggers": "1100.1.2",
49
50
  "@pnpm/deps.peer-range": "1100.0.1",
50
- "@pnpm/catalogs.resolver": "1100.0.0",
51
- "@pnpm/hooks.types": "1100.0.9",
52
51
  "@pnpm/fetching.pick-fetcher": "1100.0.9",
52
+ "@pnpm/error": "1100.0.0",
53
+ "@pnpm/hooks.types": "1100.0.9",
54
+ "@pnpm/lockfile.pruner": "1100.0.8",
53
55
  "@pnpm/lockfile.preferred-versions": "1100.0.12",
54
56
  "@pnpm/lockfile.types": "1100.0.8",
55
- "@pnpm/lockfile.utils": "1100.0.10",
56
57
  "@pnpm/patching.config": "1100.0.5",
57
- "@pnpm/lockfile.pruner": "1100.0.8",
58
- "@pnpm/pkg-manifest.reader": "1100.0.5",
59
- "@pnpm/resolving.npm-resolver": "1101.3.3",
60
- "@pnpm/error": "1100.0.0",
61
58
  "@pnpm/patching.types": "1100.0.0",
59
+ "@pnpm/lockfile.utils": "1100.0.10",
60
+ "@pnpm/pkg-manifest.reader": "1100.0.5",
61
+ "@pnpm/resolving.npm-resolver": "1101.4.0",
62
+ "@pnpm/pkg-manifest.utils": "1100.2.1",
62
63
  "@pnpm/resolving.resolver-base": "1100.3.1",
63
- "@pnpm/store.controller-types": "1100.1.2",
64
+ "@pnpm/types": "1101.2.0",
64
65
  "@pnpm/workspace.spec-parser": "1100.0.0",
65
- "@pnpm/pkg-manifest.utils": "1100.2.1",
66
- "@pnpm/types": "1101.2.0"
66
+ "@pnpm/store.controller-types": "1100.1.2"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "@pnpm/logger": "^1001.0.1"
@@ -74,7 +74,7 @@
74
74
  "@types/ramda": "0.31.1",
75
75
  "@types/semver": "7.7.1",
76
76
  "@types/validate-npm-package-name": "^4.0.2",
77
- "@pnpm/installing.deps-resolver": "1100.1.4",
77
+ "@pnpm/installing.deps-resolver": "1100.1.5",
78
78
  "@pnpm/logger": "1100.0.0"
79
79
  },
80
80
  "engines": {