@pnpm/installing.deps-resolver 1100.0.8 → 1100.0.9
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/replaceVersionInBareSpecifier.d.ts +1 -1
- package/lib/replaceVersionInBareSpecifier.js +20 -2
- package/lib/resolveDependencies.d.ts +1 -0
- package/lib/resolveDependencies.js +2 -1
- package/lib/resolveDependencyTree.d.ts +1 -0
- package/lib/resolveDependencyTree.js +5 -0
- package/package.json +25 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function replaceVersionInBareSpecifier(bareSpecifier: string, version: string): string;
|
|
1
|
+
export declare function replaceVersionInBareSpecifier(bareSpecifier: string, version: string, namedRegistryPrefixes?: readonly string[]): string;
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
|
-
export function replaceVersionInBareSpecifier(bareSpecifier, version) {
|
|
2
|
+
export function replaceVersionInBareSpecifier(bareSpecifier, version, namedRegistryPrefixes = []) {
|
|
3
3
|
if (semver.validRange(bareSpecifier)) {
|
|
4
4
|
return version;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
let prefix;
|
|
7
|
+
if (bareSpecifier.startsWith('npm:')) {
|
|
8
|
+
prefix = 'npm:';
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
for (const candidate of namedRegistryPrefixes) {
|
|
12
|
+
if (bareSpecifier.startsWith(candidate)) {
|
|
13
|
+
prefix = candidate;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (prefix == null) {
|
|
7
19
|
return bareSpecifier;
|
|
8
20
|
}
|
|
21
|
+
// `<prefix>:<version_selector>` paired with a package alias — replace the
|
|
22
|
+
// whole body. Covers both `npm:^1.0.0` and named-registry forms like
|
|
23
|
+
// `gh:^1.0.0`, where the package name comes from the dependency alias.
|
|
24
|
+
if (semver.validRange(bareSpecifier.slice(prefix.length))) {
|
|
25
|
+
return `${prefix}${version}`;
|
|
26
|
+
}
|
|
9
27
|
const versionDelimiter = bareSpecifier.lastIndexOf('@');
|
|
10
28
|
if (versionDelimiter === -1 || bareSpecifier.indexOf('/') > versionDelimiter) {
|
|
11
29
|
return `${bareSpecifier}@${version}`;
|
|
@@ -99,6 +99,7 @@ export interface ResolutionContext {
|
|
|
99
99
|
nodeVersion?: string;
|
|
100
100
|
pnpmVersion: string;
|
|
101
101
|
registries: Registries;
|
|
102
|
+
namedRegistryPrefixes: readonly string[];
|
|
102
103
|
resolutionMode?: 'highest' | 'time-based' | 'lowest-direct';
|
|
103
104
|
virtualStoreDir: string;
|
|
104
105
|
virtualStoreDirMaxLength: number;
|
|
@@ -748,7 +748,7 @@ async function resolveDependency(wantedDependency, ctx, options) {
|
|
|
748
748
|
try {
|
|
749
749
|
const calcSpecifier = options.currentDepth === 0;
|
|
750
750
|
if (!options.update && currentPkg.version && currentPkg.pkgId?.endsWith(`@${currentPkg.version}`) && !calcSpecifier) {
|
|
751
|
-
wantedDependency.bareSpecifier = replaceVersionInBareSpecifier(wantedDependency.bareSpecifier, currentPkg.version);
|
|
751
|
+
wantedDependency.bareSpecifier = replaceVersionInBareSpecifier(wantedDependency.bareSpecifier, currentPkg.version, ctx.namedRegistryPrefixes);
|
|
752
752
|
}
|
|
753
753
|
pkgResponse = await ctx.storeController.requestPackage(wantedDependency, {
|
|
754
754
|
allowBuild: ctx.allowBuild,
|
|
@@ -1172,6 +1172,7 @@ const NON_EXOTIC_RESOLVED_VIA = new Set([
|
|
|
1172
1172
|
'github.com/oven-sh/bun',
|
|
1173
1173
|
'jsr-registry',
|
|
1174
1174
|
'local-filesystem',
|
|
1175
|
+
'named-registry',
|
|
1175
1176
|
'nodejs.org',
|
|
1176
1177
|
'npm-registry',
|
|
1177
1178
|
'workspace',
|
|
@@ -2,6 +2,7 @@ import { resolveFromCatalog } from '@pnpm/catalogs.resolver';
|
|
|
2
2
|
import { createPackageVersionPolicy } from '@pnpm/config.version-policy';
|
|
3
3
|
import { PnpmError } from '@pnpm/error';
|
|
4
4
|
import { globalWarn } from '@pnpm/logger';
|
|
5
|
+
import { BUILTIN_NAMED_REGISTRIES } from '@pnpm/resolving.npm-resolver';
|
|
5
6
|
import { partition } from 'ramda';
|
|
6
7
|
import { nextNodeId } from './nextNodeId.js';
|
|
7
8
|
import { parentIdsContainSequence } from './parentIdsContainSequence.js';
|
|
@@ -35,6 +36,10 @@ export async function resolveDependencyTree(importers, opts) {
|
|
|
35
36
|
preferWorkspacePackages: opts.preferWorkspacePackages,
|
|
36
37
|
readPackageHook: opts.hooks.readPackage,
|
|
37
38
|
registries: opts.registries,
|
|
39
|
+
namedRegistryPrefixes: Array.from(new Set([
|
|
40
|
+
...Object.keys(BUILTIN_NAMED_REGISTRIES),
|
|
41
|
+
...Object.keys(opts.namedRegistries ?? {}),
|
|
42
|
+
])).map((alias) => `${alias}:`),
|
|
38
43
|
resolvedPkgsById: {},
|
|
39
44
|
resolvePeersFromWorkspaceRoot: opts.resolvePeersFromWorkspaceRoot,
|
|
40
45
|
resolutionMode: opts.resolutionMode,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/installing.deps-resolver",
|
|
3
|
-
"version": "1100.0.
|
|
3
|
+
"version": "1100.0.9",
|
|
4
4
|
"description": "Resolves dependency graph of a package",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pnpm",
|
|
@@ -36,44 +36,44 @@
|
|
|
36
36
|
"ramda": "npm:@pnpm/ramda@0.28.1",
|
|
37
37
|
"rename-overwrite": "^7.0.1",
|
|
38
38
|
"safe-promise-defer": "^2.0.0",
|
|
39
|
-
"semver": "^7.7.
|
|
39
|
+
"semver": "^7.7.2",
|
|
40
40
|
"semver-range-intersect": "^0.3.1",
|
|
41
41
|
"version-selector-type": "^3.0.0",
|
|
42
|
-
"@pnpm/catalogs.resolver": "1100.0.0",
|
|
43
|
-
"@pnpm/config.version-policy": "1100.0.2",
|
|
44
42
|
"@pnpm/constants": "1100.0.0",
|
|
43
|
+
"@pnpm/config.version-policy": "1100.0.3",
|
|
44
|
+
"@pnpm/core-loggers": "1100.0.2",
|
|
45
|
+
"@pnpm/deps.graph-hasher": "1100.1.5",
|
|
46
|
+
"@pnpm/deps.path": "1100.0.3",
|
|
45
47
|
"@pnpm/catalogs.types": "1100.0.0",
|
|
46
|
-
"@pnpm/core-loggers": "1100.0.1",
|
|
47
|
-
"@pnpm/deps.path": "1100.0.2",
|
|
48
|
-
"@pnpm/deps.graph-hasher": "1100.1.4",
|
|
49
48
|
"@pnpm/error": "1100.0.0",
|
|
50
|
-
"@pnpm/
|
|
51
|
-
"@pnpm/
|
|
52
|
-
"@pnpm/
|
|
53
|
-
"@pnpm/lockfile.
|
|
54
|
-
"@pnpm/lockfile.
|
|
55
|
-
"@pnpm/lockfile.utils": "1100.0.
|
|
56
|
-
"@pnpm/
|
|
57
|
-
"@pnpm/
|
|
49
|
+
"@pnpm/fetching.pick-fetcher": "1100.0.6",
|
|
50
|
+
"@pnpm/catalogs.resolver": "1100.0.0",
|
|
51
|
+
"@pnpm/lockfile.pruner": "1100.0.5",
|
|
52
|
+
"@pnpm/lockfile.types": "1100.0.5",
|
|
53
|
+
"@pnpm/lockfile.preferred-versions": "1100.0.8",
|
|
54
|
+
"@pnpm/lockfile.utils": "1100.0.7",
|
|
55
|
+
"@pnpm/patching.config": "1100.0.3",
|
|
56
|
+
"@pnpm/hooks.types": "1100.0.6",
|
|
58
57
|
"@pnpm/patching.types": "1100.0.0",
|
|
59
|
-
"@pnpm/
|
|
60
|
-
"@pnpm/pkg-manifest.
|
|
61
|
-
"@pnpm/resolving.npm-resolver": "1101.0
|
|
62
|
-
"@pnpm/
|
|
63
|
-
"@pnpm/
|
|
64
|
-
"@pnpm/
|
|
65
|
-
"@pnpm/
|
|
58
|
+
"@pnpm/deps.peer-range": "1100.0.1",
|
|
59
|
+
"@pnpm/pkg-manifest.utils": "1100.1.2",
|
|
60
|
+
"@pnpm/resolving.npm-resolver": "1101.1.0",
|
|
61
|
+
"@pnpm/pkg-manifest.reader": "1100.0.3",
|
|
62
|
+
"@pnpm/types": "1101.1.0",
|
|
63
|
+
"@pnpm/workspace.spec-parser": "1100.0.0",
|
|
64
|
+
"@pnpm/store.controller-types": "1100.0.6",
|
|
65
|
+
"@pnpm/resolving.resolver-base": "1100.1.3"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"@pnpm/logger": "
|
|
68
|
+
"@pnpm/logger": ">=1001.0.0 <1002.0.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@jest/globals": "30.3.0",
|
|
72
72
|
"@types/normalize-path": "^3.0.2",
|
|
73
73
|
"@types/ramda": "0.31.1",
|
|
74
74
|
"@types/semver": "7.7.1",
|
|
75
|
-
"@pnpm/
|
|
76
|
-
"@pnpm/
|
|
75
|
+
"@pnpm/installing.deps-resolver": "1100.0.9",
|
|
76
|
+
"@pnpm/logger": "1100.0.0"
|
|
77
77
|
},
|
|
78
78
|
"engines": {
|
|
79
79
|
"node": ">=22.13"
|