@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.
- package/lib/resolvePeers.js +8 -1
- package/package.json +14 -14
package/lib/resolvePeers.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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/
|
|
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/
|
|
64
|
+
"@pnpm/types": "1101.2.0",
|
|
64
65
|
"@pnpm/workspace.spec-parser": "1100.0.0",
|
|
65
|
-
"@pnpm/
|
|
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.
|
|
77
|
+
"@pnpm/installing.deps-resolver": "1100.1.5",
|
|
78
78
|
"@pnpm/logger": "1100.0.0"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|