@pnpm/deps.graph-builder 1002.3.13 → 1100.0.1
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/index.js +1 -17
- package/lib/iteratePkgsForVirtualStore.d.ts +7 -8
- package/lib/iteratePkgsForVirtualStore.js +37 -66
- package/lib/lockfileToDepGraph.d.ts +6 -5
- package/lib/lockfileToDepGraph.js +56 -66
- package/package.json +24 -23
- package/lib/index.js.map +0 -1
- package/lib/iteratePkgsForVirtualStore.js.map +0 -1
- package/lib/lockfileToDepGraph.js.map +0 -1
package/lib/index.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./lockfileToDepGraph.js"), exports);
|
|
1
|
+
export * from './lockfileToDepGraph.js';
|
|
18
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { type PkgMetaAndSnapshot } from '@pnpm/deps.graph-hasher';
|
|
2
|
+
import type { LockfileObject } from '@pnpm/lockfile.fs';
|
|
3
|
+
import type { AllowBuild } from '@pnpm/types';
|
|
4
4
|
interface PkgSnapshotWithLocation {
|
|
5
5
|
pkgMeta: PkgMetaAndSnapshot;
|
|
6
|
-
|
|
6
|
+
dirInVirtualStore: string;
|
|
7
7
|
}
|
|
8
8
|
export declare function iteratePkgsForVirtualStore(lockfile: LockfileObject, opts: {
|
|
9
|
+
allowBuild?: AllowBuild;
|
|
9
10
|
enableGlobalVirtualStore?: boolean;
|
|
10
11
|
virtualStoreDirMaxLength: number;
|
|
12
|
+
virtualStoreDir: string;
|
|
13
|
+
globalVirtualStoreDir: string;
|
|
11
14
|
}): IterableIterator<PkgSnapshotWithLocation>;
|
|
12
|
-
interface PkgMetaAndSnapshot extends PkgMeta {
|
|
13
|
-
pkgSnapshot: PackageSnapshot;
|
|
14
|
-
pkgIdWithPatchHash: PkgIdWithPatchHash;
|
|
15
|
-
}
|
|
16
15
|
export {};
|
|
@@ -1,81 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.iteratePkgsForVirtualStore = iteratePkgsForVirtualStore;
|
|
27
|
-
const calc_dep_state_1 = require("@pnpm/calc-dep-state");
|
|
28
|
-
const lockfile_utils_1 = require("@pnpm/lockfile.utils");
|
|
29
|
-
const dp = __importStar(require("@pnpm/dependency-path"));
|
|
30
|
-
function* iteratePkgsForVirtualStore(lockfile, opts) {
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { calcGraphNodeHash, iterateHashedGraphNodes, iteratePkgMeta, lockfileToDepGraph, } from '@pnpm/deps.graph-hasher';
|
|
3
|
+
import * as dp from '@pnpm/deps.path';
|
|
4
|
+
import { nameVerFromPkgSnapshot, } from '@pnpm/lockfile.utils';
|
|
5
|
+
export function* iteratePkgsForVirtualStore(lockfile, opts) {
|
|
31
6
|
if (opts.enableGlobalVirtualStore) {
|
|
32
|
-
for (const { hash, pkgMeta } of hashDependencyPaths(lockfile)) {
|
|
7
|
+
for (const { hash, pkgMeta } of hashDependencyPaths(lockfile, opts.allowBuild)) {
|
|
33
8
|
yield {
|
|
34
|
-
|
|
9
|
+
dirInVirtualStore: path.join(opts.globalVirtualStoreDir, hash),
|
|
35
10
|
pkgMeta,
|
|
36
11
|
};
|
|
37
12
|
}
|
|
38
13
|
}
|
|
39
14
|
else if (lockfile.packages) {
|
|
15
|
+
let graphNodeHashOpts;
|
|
40
16
|
for (const depPath in lockfile.packages) {
|
|
41
|
-
if (Object.hasOwn(lockfile.packages, depPath)) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
17
|
+
if (!Object.hasOwn(lockfile.packages, depPath)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const pkgSnapshot = lockfile.packages[depPath];
|
|
21
|
+
const { name, version } = nameVerFromPkgSnapshot(depPath, pkgSnapshot);
|
|
22
|
+
const pkgMeta = {
|
|
23
|
+
depPath: depPath,
|
|
24
|
+
pkgIdWithPatchHash: dp.getPkgIdWithPatchHash(depPath),
|
|
25
|
+
name,
|
|
26
|
+
version,
|
|
27
|
+
pkgSnapshot,
|
|
28
|
+
};
|
|
29
|
+
let dirInVirtualStore;
|
|
30
|
+
if (dp.isRuntimeDepPath(depPath)) {
|
|
31
|
+
graphNodeHashOpts ??= {
|
|
32
|
+
cache: {},
|
|
33
|
+
graph: lockfileToDepGraph(lockfile),
|
|
53
34
|
};
|
|
35
|
+
const hash = calcGraphNodeHash(graphNodeHashOpts, pkgMeta);
|
|
36
|
+
dirInVirtualStore = path.join(opts.globalVirtualStoreDir, hash);
|
|
54
37
|
}
|
|
38
|
+
else {
|
|
39
|
+
dirInVirtualStore = path.join(opts.virtualStoreDir, dp.depPathToFilename(depPath, opts.virtualStoreDirMaxLength));
|
|
40
|
+
}
|
|
41
|
+
yield {
|
|
42
|
+
dirInVirtualStore,
|
|
43
|
+
pkgMeta,
|
|
44
|
+
};
|
|
55
45
|
}
|
|
56
46
|
}
|
|
57
47
|
}
|
|
58
|
-
function hashDependencyPaths(lockfile) {
|
|
59
|
-
const graph =
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
function* iteratePkgMeta(lockfile, graph) {
|
|
63
|
-
if (lockfile.packages == null) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
for (const depPath in lockfile.packages) {
|
|
67
|
-
if (!Object.hasOwn(lockfile.packages, depPath)) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const pkgSnapshot = lockfile.packages[depPath];
|
|
71
|
-
const { name, version } = (0, lockfile_utils_1.nameVerFromPkgSnapshot)(depPath, pkgSnapshot);
|
|
72
|
-
yield {
|
|
73
|
-
name,
|
|
74
|
-
version,
|
|
75
|
-
depPath: depPath,
|
|
76
|
-
pkgIdWithPatchHash: graph[depPath].pkgIdWithPatchHash ?? dp.getPkgIdWithPatchHash(depPath),
|
|
77
|
-
pkgSnapshot,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
48
|
+
function hashDependencyPaths(lockfile, allowBuild) {
|
|
49
|
+
const graph = lockfileToDepGraph(lockfile);
|
|
50
|
+
return iterateHashedGraphNodes(graph, iteratePkgMeta(lockfile, graph), allowBuild);
|
|
80
51
|
}
|
|
81
52
|
//# sourceMappingURL=iteratePkgsForVirtualStore.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { IncludedDependencies } from '@pnpm/installing.modules-yaml';
|
|
2
|
+
import type { LockfileObject, LockfileResolution } from '@pnpm/lockfile.fs';
|
|
3
3
|
import { type PatchGroupRecord } from '@pnpm/patching.config';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
4
|
+
import type { PatchInfo } from '@pnpm/patching.types';
|
|
5
|
+
import type { PkgRequestFetchResult, StoreController } from '@pnpm/store.controller-types';
|
|
6
|
+
import type { AllowBuild, DepPath, PkgIdWithPatchHash, ProjectId, Registries, SupportedArchitectures } from '@pnpm/types';
|
|
7
7
|
export interface DependenciesGraphNode {
|
|
8
8
|
alias?: string;
|
|
9
9
|
hasBundledDependencies: boolean;
|
|
@@ -53,6 +53,7 @@ export interface LockfileToDepGraphOptions {
|
|
|
53
53
|
skipped: Set<DepPath>;
|
|
54
54
|
storeController: StoreController;
|
|
55
55
|
storeDir: string;
|
|
56
|
+
globalVirtualStoreDir: string;
|
|
56
57
|
virtualStoreDir: string;
|
|
57
58
|
supportedArchitectures?: SupportedArchitectures;
|
|
58
59
|
virtualStoreDirMaxLength: number;
|
|
@@ -1,45 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.lockfileToDepGraph = lockfileToDepGraph;
|
|
30
|
-
const path_1 = __importDefault(require("path"));
|
|
31
|
-
const constants_1 = require("@pnpm/constants");
|
|
32
|
-
const core_loggers_1 = require("@pnpm/core-loggers");
|
|
33
|
-
const lockfile_utils_1 = require("@pnpm/lockfile.utils");
|
|
34
|
-
const logger_1 = require("@pnpm/logger");
|
|
35
|
-
const package_is_installable_1 = require("@pnpm/package-is-installable");
|
|
36
|
-
const patching_config_1 = require("@pnpm/patching.config");
|
|
37
|
-
const dp = __importStar(require("@pnpm/dependency-path"));
|
|
38
|
-
const path_exists_1 = __importDefault(require("path-exists"));
|
|
39
|
-
const equals_1 = __importDefault(require("ramda/src/equals"));
|
|
40
|
-
const isEmpty_1 = __importDefault(require("ramda/src/isEmpty"));
|
|
41
|
-
const iteratePkgsForVirtualStore_js_1 = require("./iteratePkgsForVirtualStore.js");
|
|
42
|
-
const brokenModulesLogger = (0, logger_1.logger)('_broken_node_modules');
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { packageIsInstallable } from '@pnpm/config.package-is-installable';
|
|
4
|
+
import { WANTED_LOCKFILE } from '@pnpm/constants';
|
|
5
|
+
import { progressLogger, } from '@pnpm/core-loggers';
|
|
6
|
+
import * as dp from '@pnpm/deps.path';
|
|
7
|
+
import { packageIdFromSnapshot, pkgSnapshotToResolution, } from '@pnpm/lockfile.utils';
|
|
8
|
+
import { logger } from '@pnpm/logger';
|
|
9
|
+
import { getPatchInfo } from '@pnpm/patching.config';
|
|
10
|
+
import { pathExists } from 'path-exists';
|
|
11
|
+
import { equals, isEmpty } from 'ramda';
|
|
12
|
+
import { iteratePkgsForVirtualStore } from './iteratePkgsForVirtualStore.js';
|
|
13
|
+
const brokenModulesLogger = logger('_broken_node_modules');
|
|
43
14
|
/**
|
|
44
15
|
* Generate a dependency graph from lockfiles.
|
|
45
16
|
*
|
|
@@ -49,7 +20,7 @@ const brokenModulesLogger = (0, logger_1.logger)('_broken_node_modules');
|
|
|
49
20
|
* lockfile. This behavior can be configured with the `includeUnchangedDeps`
|
|
50
21
|
* option.
|
|
51
22
|
*/
|
|
52
|
-
async function lockfileToDepGraph(lockfile, currentLockfile, opts) {
|
|
23
|
+
export async function lockfileToDepGraph(lockfile, currentLockfile, opts) {
|
|
53
24
|
const { graph, locationByDepPath, injectionTargetsByDepPath, } = await buildGraphFromPackages(lockfile, currentLockfile, opts);
|
|
54
25
|
const _getChildrenPaths = getChildrenPaths.bind(null, {
|
|
55
26
|
force: opts.force,
|
|
@@ -91,10 +62,10 @@ async function buildGraphFromPackages(lockfile, currentLockfile, opts) {
|
|
|
91
62
|
const locationByDepPath = {};
|
|
92
63
|
// Only populated for directory deps (injected workspace packages)
|
|
93
64
|
const injectionTargetsByDepPath = new Map();
|
|
94
|
-
const _getPatchInfo =
|
|
65
|
+
const _getPatchInfo = getPatchInfo.bind(null, opts.patchedDependencies);
|
|
95
66
|
const promises = [];
|
|
96
|
-
const pkgSnapshotsWithLocations =
|
|
97
|
-
for (const {
|
|
67
|
+
const pkgSnapshotsWithLocations = iteratePkgsForVirtualStore(lockfile, opts);
|
|
68
|
+
for (const { dirInVirtualStore, pkgMeta } of pkgSnapshotsWithLocations) {
|
|
98
69
|
promises.push((async () => {
|
|
99
70
|
const { pkgIdWithPatchHash, name: pkgName, version: pkgVersion, depPath, pkgSnapshot } = pkgMeta;
|
|
100
71
|
if (opts.skipped.has(depPath))
|
|
@@ -107,8 +78,8 @@ async function buildGraphFromPackages(lockfile, currentLockfile, opts) {
|
|
|
107
78
|
os: pkgSnapshot.os,
|
|
108
79
|
libc: pkgSnapshot.libc,
|
|
109
80
|
};
|
|
110
|
-
const packageId =
|
|
111
|
-
if (!opts.force &&
|
|
81
|
+
const packageId = packageIdFromSnapshot(depPath, pkgSnapshot);
|
|
82
|
+
if (!opts.force && packageIsInstallable(packageId, pkg, {
|
|
112
83
|
engineStrict: opts.engineStrict,
|
|
113
84
|
lockfileDir: opts.lockfileDir,
|
|
114
85
|
nodeVersion: opts.nodeVersion,
|
|
@@ -120,7 +91,7 @@ async function buildGraphFromPackages(lockfile, currentLockfile, opts) {
|
|
|
120
91
|
}
|
|
121
92
|
const isDirectoryDep = 'directory' in pkgSnapshot.resolution && pkgSnapshot.resolution.directory != null;
|
|
122
93
|
if (isDirectoryDep && opts.ignoreLocalPackages) {
|
|
123
|
-
|
|
94
|
+
logger.info({
|
|
124
95
|
message: `Skipping local dependency ${pkgName}@${pkgVersion} (file: protocol)`,
|
|
125
96
|
prefix: opts.lockfileDir,
|
|
126
97
|
});
|
|
@@ -128,38 +99,57 @@ async function buildGraphFromPackages(lockfile, currentLockfile, opts) {
|
|
|
128
99
|
}
|
|
129
100
|
const depIsPresent = !isDirectoryDep &&
|
|
130
101
|
currentPackages[depPath] &&
|
|
131
|
-
(
|
|
102
|
+
equals(currentPackages[depPath].dependencies, pkgSnapshot.dependencies);
|
|
132
103
|
const depIntegrityIsUnchanged = isIntegrityEqual(pkgSnapshot.resolution, currentPackages[depPath]?.resolution);
|
|
133
|
-
const modules =
|
|
134
|
-
const dir =
|
|
104
|
+
const modules = path.join(dirInVirtualStore, 'node_modules');
|
|
105
|
+
const dir = path.join(modules, pkgName);
|
|
135
106
|
locationByDepPath[depPath] = dir;
|
|
136
107
|
// Track directory deps for injected workspace packages
|
|
137
108
|
if (isDirectoryDep) {
|
|
138
109
|
injectionTargetsByDepPath.set(depPath, [dir]);
|
|
139
110
|
}
|
|
111
|
+
// In GVS mode, packages that are allowed to build may have a .pnpm-needs-build
|
|
112
|
+
// marker indicating a previous build failed or was interrupted. When the
|
|
113
|
+
// marker is present, skip the fast path to force a re-fetch/re-import/re-build.
|
|
114
|
+
const mightNeedBuild = opts.enableGlobalVirtualStore &&
|
|
115
|
+
opts.allowBuild?.(pkgName, pkgVersion) === true;
|
|
140
116
|
let dirExists;
|
|
141
117
|
if (depIsPresent &&
|
|
142
118
|
depIntegrityIsUnchanged &&
|
|
143
|
-
(
|
|
144
|
-
(
|
|
119
|
+
isEmpty(currentPackages[depPath].optionalDependencies ?? {}) &&
|
|
120
|
+
isEmpty(pkgSnapshot.optionalDependencies ?? {}) &&
|
|
145
121
|
!opts.includeUnchangedDeps) {
|
|
146
|
-
dirExists = await (
|
|
147
|
-
if (dirExists)
|
|
148
|
-
|
|
149
|
-
|
|
122
|
+
dirExists = await pathExists(dir);
|
|
123
|
+
if (dirExists) {
|
|
124
|
+
if (!(mightNeedBuild && fs.existsSync(path.join(dir, '.pnpm-needs-build'))))
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
brokenModulesLogger.debug({ missing: dir });
|
|
129
|
+
}
|
|
150
130
|
}
|
|
151
131
|
let fetchResponse;
|
|
152
|
-
if (depIsPresent && depIntegrityIsUnchanged && (
|
|
153
|
-
if (dirExists ?? await (
|
|
154
|
-
|
|
132
|
+
if (depIsPresent && depIntegrityIsUnchanged && equals(currentPackages[depPath].optionalDependencies, pkgSnapshot.optionalDependencies)) {
|
|
133
|
+
if (dirExists ?? await pathExists(dir)) {
|
|
134
|
+
if (!(mightNeedBuild && fs.existsSync(path.join(dir, '.pnpm-needs-build')))) {
|
|
135
|
+
fetchResponse = {};
|
|
136
|
+
}
|
|
155
137
|
}
|
|
156
138
|
else {
|
|
157
139
|
brokenModulesLogger.debug({ missing: dir });
|
|
158
140
|
}
|
|
159
141
|
}
|
|
142
|
+
if (!fetchResponse && opts.enableGlobalVirtualStore && !isDirectoryDep
|
|
143
|
+
&& !opts.force) {
|
|
144
|
+
if (dirExists ?? await pathExists(dir)) {
|
|
145
|
+
if (!(mightNeedBuild && fs.existsSync(path.join(dir, '.pnpm-needs-build')))) {
|
|
146
|
+
fetchResponse = {};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
160
150
|
if (!fetchResponse) {
|
|
161
|
-
const resolution =
|
|
162
|
-
|
|
151
|
+
const resolution = pkgSnapshotToResolution(depPath, pkgSnapshot, opts.registries);
|
|
152
|
+
progressLogger.debug({ packageId, requester: opts.lockfileDir, status: 'resolved' });
|
|
163
153
|
try {
|
|
164
154
|
fetchResponse = await opts.storeController.fetchPackage({
|
|
165
155
|
allowBuild: opts.allowBuild,
|
|
@@ -204,7 +194,7 @@ function getChildrenPaths(ctx, allDeps, peerDeps, importerId) {
|
|
|
204
194
|
for (const [alias, ref] of Object.entries(allDeps)) {
|
|
205
195
|
const childDepPath = dp.refToRelative(ref, alias);
|
|
206
196
|
if (childDepPath === null) {
|
|
207
|
-
children[alias] =
|
|
197
|
+
children[alias] = path.resolve(ctx.lockfileDir, importerId, ref.slice(5));
|
|
208
198
|
continue;
|
|
209
199
|
}
|
|
210
200
|
const childRelDepPath = dp.refToRelative(ref, alias);
|
|
@@ -215,10 +205,10 @@ function getChildrenPaths(ctx, allDeps, peerDeps, importerId) {
|
|
|
215
205
|
children[alias] = ctx.graph[childRelDepPath].dir;
|
|
216
206
|
}
|
|
217
207
|
else if (ref.startsWith('file:')) {
|
|
218
|
-
children[alias] =
|
|
208
|
+
children[alias] = path.resolve(ctx.lockfileDir, ref.slice(5));
|
|
219
209
|
}
|
|
220
210
|
else if (!ctx.skipped.has(childRelDepPath) && ((peerDeps == null) || !peerDeps.has(alias))) {
|
|
221
|
-
throw new Error(`${childRelDepPath} not found in ${
|
|
211
|
+
throw new Error(`${childRelDepPath} not found in ${WANTED_LOCKFILE}`);
|
|
222
212
|
}
|
|
223
213
|
}
|
|
224
214
|
return children;
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/deps.graph-builder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1100.0.1",
|
|
4
4
|
"description": "A package for building a dependency graph from a lockfile",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pnpm",
|
|
7
|
-
"
|
|
7
|
+
"pnpm11"
|
|
8
8
|
],
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"funding": "https://opencollective.com/pnpm",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"bugs": {
|
|
14
14
|
"url": "https://github.com/pnpm/pnpm/issues"
|
|
15
15
|
},
|
|
16
|
-
"type": "
|
|
16
|
+
"type": "module",
|
|
17
17
|
"main": "lib/index.js",
|
|
18
18
|
"types": "lib/index.d.ts",
|
|
19
19
|
"exports": {
|
|
@@ -24,38 +24,39 @@
|
|
|
24
24
|
"!*.map"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"path-exists": "^
|
|
27
|
+
"path-exists": "^5.0.0",
|
|
28
28
|
"ramda": "npm:@pnpm/ramda@0.28.1",
|
|
29
|
-
"@pnpm/
|
|
30
|
-
"@pnpm/constants": "
|
|
31
|
-
"@pnpm/core-loggers": "
|
|
32
|
-
"@pnpm/
|
|
33
|
-
"@pnpm/
|
|
34
|
-
"@pnpm/
|
|
35
|
-
"@pnpm/
|
|
36
|
-
"@pnpm/lockfile.utils": "
|
|
37
|
-
"@pnpm/
|
|
38
|
-
"@pnpm/patching.types": "
|
|
39
|
-
"@pnpm/
|
|
40
|
-
"@pnpm/types": "
|
|
29
|
+
"@pnpm/config.package-is-installable": "1100.0.1",
|
|
30
|
+
"@pnpm/constants": "1100.0.0",
|
|
31
|
+
"@pnpm/core-loggers": "1100.0.1",
|
|
32
|
+
"@pnpm/deps.graph-hasher": "1100.0.1",
|
|
33
|
+
"@pnpm/hooks.types": "1100.0.1",
|
|
34
|
+
"@pnpm/deps.path": "1100.0.1",
|
|
35
|
+
"@pnpm/lockfile.fs": "1100.0.1",
|
|
36
|
+
"@pnpm/lockfile.utils": "1100.0.1",
|
|
37
|
+
"@pnpm/installing.modules-yaml": "1100.0.1",
|
|
38
|
+
"@pnpm/patching.types": "1100.0.0",
|
|
39
|
+
"@pnpm/types": "1101.0.0",
|
|
40
|
+
"@pnpm/store.controller-types": "1100.0.1",
|
|
41
|
+
"@pnpm/patching.config": "1100.0.1"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
|
-
"@pnpm/logger": "
|
|
44
|
+
"@pnpm/logger": ">=1001.0.0 <1002.0.0"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
|
-
"@types/ramda": "0.
|
|
47
|
-
"@pnpm/
|
|
48
|
-
"@pnpm/
|
|
47
|
+
"@types/ramda": "0.31.1",
|
|
48
|
+
"@pnpm/logger": "1100.0.0",
|
|
49
|
+
"@pnpm/deps.graph-builder": "1100.0.1"
|
|
49
50
|
},
|
|
50
51
|
"engines": {
|
|
51
|
-
"node": ">=
|
|
52
|
+
"node": ">=22.13"
|
|
52
53
|
},
|
|
53
54
|
"jest": {
|
|
54
55
|
"preset": "@pnpm/jest-config"
|
|
55
56
|
},
|
|
56
57
|
"scripts": {
|
|
57
58
|
"lint": "eslint \"src/**/*.ts\"",
|
|
58
|
-
"test": "
|
|
59
|
-
"compile": "
|
|
59
|
+
"test": "pn compile",
|
|
60
|
+
"compile": "tsgo --build && pn lint --fix"
|
|
60
61
|
}
|
|
61
62
|
}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAuC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iteratePkgsForVirtualStore.js","sourceRoot":"","sources":["../src/iteratePkgsForVirtualStore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,gEA6BC;AAjDD,yDAO6B;AAE7B,yDAE6B;AAE7B,0DAA2C;AAO3C,QAAgB,CAAC,CAAC,0BAA0B,CAAE,QAAwB,EAAE,IAGvE;IACC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM;gBACJ,qBAAqB,EAAE,IAAI;gBAC3B,OAAO;aACR,CAAA;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAkB,CAAC,CAAA;gBACzD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,uCAAsB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBACtE,MAAM;oBACJ,OAAO,EAAE;wBACP,OAAO,EAAE,OAAkB;wBAC3B,kBAAkB,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAkB,CAAC;wBAChE,IAAI;wBACJ,OAAO;wBACP,WAAW;qBACZ;oBACD,qBAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC;iBACpF,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAS,mBAAmB,CAAE,QAAwB;IACpD,MAAM,KAAK,GAAG,IAAA,mCAAkB,EAAC,QAAQ,CAAC,CAAA;IAC1C,OAAO,IAAA,wCAAuB,EAAC,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,QAAS,CAAC,CAAC,cAAc,CAAE,QAAwB,EAAE,KAAyB;IAC5E,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAM;IACR,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YAC/C,SAAQ;QACV,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAkB,CAAC,CAAA;QACzD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,uCAAsB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACtE,MAAM;YACJ,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,OAAkB;YAC3B,kBAAkB,EAAE,KAAK,CAAC,OAAkB,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,qBAAqB,CAAC,OAAkB,CAAC;YAChH,WAAW;SACZ,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lockfileToDepGraph.js","sourceRoot":"","sources":["../src/lockfileToDepGraph.ts"],"names":[],"mappings":"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"}
|