@pnpm/reviewing.dependencies-hierarchy 1001.2.7 → 1001.3.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.
@@ -0,0 +1,28 @@
1
+ export interface DependencyNode {
2
+ alias: string;
3
+ circular?: true;
4
+ deduped?: true;
5
+ /**
6
+ * When `deduped` is true, the number of transitive dependencies that were
7
+ * elided because this subtree was already expanded elsewhere in the tree.
8
+ */
9
+ dedupedDependenciesCount?: number;
10
+ /**
11
+ * Short hash of the peer dependency suffix in the depPath, used to
12
+ * distinguish deduped instances of the same package with different
13
+ * peer dependency resolutions.
14
+ */
15
+ peersSuffixHash?: string;
16
+ dependencies?: DependencyNode[];
17
+ dev?: boolean;
18
+ isPeer: boolean;
19
+ isSkipped: boolean;
20
+ isMissing: boolean;
21
+ name: string;
22
+ optional?: true;
23
+ path: string;
24
+ resolved?: string;
25
+ searched?: true;
26
+ version: string;
27
+ searchMessage?: string;
28
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DependencyNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyNode.js","sourceRoot":"","sources":["../src/DependencyNode.ts"],"names":[],"mappings":""}
@@ -57,16 +57,42 @@ async function buildDependenciesHierarchy(projectPaths, maybeOpts) {
57
57
  onlyProjects: maybeOpts.onlyProjects,
58
58
  registries,
59
59
  search: maybeOpts.search,
60
- showDedupedSearchMatches: maybeOpts.showDedupedSearchMatches,
60
+ showDedupedSearchMatches: maybeOpts.showDedupedSearchMatches ?? (maybeOpts.search != null),
61
61
  skipped: new Set(modules?.skipped ?? []),
62
62
  modulesDir,
63
63
  virtualStoreDir: modules?.virtualStoreDir,
64
64
  virtualStoreDirMaxLength: modules?.virtualStoreDirMaxLength ?? maybeOpts.virtualStoreDirMaxLength,
65
65
  };
66
+ // Build the dependency graph ONCE for all importers and share a single
67
+ // MaterializationCache so that identical subtrees are only materialized once.
68
+ const allRootIds = [];
69
+ for (const projectPath of projectPaths) {
70
+ const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
71
+ if (lockfileToUse.importers[importerId]) {
72
+ allRootIds.push({ type: 'importer', importerId });
73
+ }
74
+ }
75
+ const sharedGraph = (0, buildDependencyGraph_js_1.buildDependencyGraph)(allRootIds, {
76
+ currentPackages: lockfileToUse.packages ?? {},
77
+ importers: lockfileToUse.importers,
78
+ include: opts.include,
79
+ lockfileDir: opts.lockfileDir,
80
+ });
81
+ const sharedMaterializationCache = new Map();
82
+ const sharedDepTypes = (0, lockfile_detect_dep_types_1.detectDepTypes)(lockfileToUse);
83
+ const ctx = {
84
+ currentLockfile: lockfileToUse,
85
+ wantedLockfile,
86
+ ...opts,
87
+ graph: sharedGraph,
88
+ materializationCache: sharedMaterializationCache,
89
+ depTypes: sharedDepTypes,
90
+ };
91
+ const getHierarchy = dependenciesHierarchyForPackage.bind(null, ctx);
66
92
  const pairs = await Promise.all(projectPaths.map(async (projectPath) => {
67
93
  return [
68
94
  projectPath,
69
- await dependenciesHierarchyForPackage(projectPath, lockfileToUse, wantedLockfile, opts),
95
+ await getHierarchy(projectPath),
70
96
  ];
71
97
  }));
72
98
  for (const [projectPath, dependenciesHierarchy] of pairs) {
@@ -74,7 +100,8 @@ async function buildDependenciesHierarchy(projectPaths, maybeOpts) {
74
100
  }
75
101
  return result;
76
102
  }
77
- async function dependenciesHierarchyForPackage(projectPath, currentLockfile, wantedLockfile, opts) {
103
+ async function dependenciesHierarchyForPackage(opts, projectPath) {
104
+ const { currentLockfile, wantedLockfile, graph, materializationCache, depTypes } = opts;
78
105
  const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
79
106
  if (!currentLockfile.importers[importerId])
80
107
  return {};
@@ -82,40 +109,23 @@ async function dependenciesHierarchyForPackage(projectPath, currentLockfile, wan
82
109
  ? opts.modulesDir
83
110
  : path_1.default.join(projectPath, opts.modulesDir ?? 'node_modules');
84
111
  const savedDeps = getAllDirectDependencies(currentLockfile.importers[importerId]);
85
- const allDirectDeps = await (0, read_modules_dir_1.readModulesDir)(modulesDir) ?? [];
86
- const unsavedDeps = allDirectDeps.filter((directDep) => !savedDeps[directDep]);
87
- const depTypes = (0, lockfile_detect_dep_types_1.detectDepTypes)(currentLockfile);
112
+ // When searching, unsaved deps are irrelevant — they aren't in the lockfile
113
+ // graph and can't have dependency subtrees showing paths to the search target.
114
+ const unsavedDeps = opts.search
115
+ ? []
116
+ : ((await (0, read_modules_dir_1.readModulesDir)(modulesDir)) ?? []).filter((directDep) => !savedDeps[directDep]);
88
117
  const currentPackages = currentLockfile.packages ?? {};
89
118
  const wantedPackages = wantedLockfile?.packages ?? {};
90
119
  const getTreeOpts = {
120
+ ...opts,
91
121
  currentPackages,
92
- excludePeerDependencies: opts.excludePeerDependencies,
93
122
  importers: currentLockfile.importers,
94
- include: opts.include,
95
- depTypes,
96
- lockfileDir: opts.lockfileDir,
97
- onlyProjects: opts.onlyProjects,
98
123
  rewriteLinkVersionDir: projectPath,
99
124
  maxDepth: opts.depth,
100
- registries: opts.registries,
101
- search: opts.search,
102
- showDedupedSearchMatches: opts.showDedupedSearchMatches,
103
- skipped: opts.skipped,
104
125
  wantedPackages,
105
- virtualStoreDir: opts.virtualStoreDir,
106
- virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,
107
126
  modulesDir,
108
127
  };
109
128
  const parentId = { type: 'importer', importerId };
110
- // Build ONE shared graph and cache for the entire project, reused
111
- // across all dependency fields and top-level deps.
112
- const graph = (0, buildDependencyGraph_js_1.buildDependencyGraph)(parentId, {
113
- currentPackages,
114
- importers: currentLockfile.importers,
115
- include: opts.include,
116
- lockfileDir: opts.lockfileDir,
117
- });
118
- const materializationCache = new Map();
119
129
  const getChildrenTree = (nodeId, parentDir) => (0, getTree_js_1.getTree)({ ...getTreeOpts, parentDir, graph, materializationCache }, nodeId);
120
130
  const result = {};
121
131
  for (const dependenciesField of types_1.DEPENDENCIES_FIELDS.sort().filter(dependenciesField => opts.include[dependenciesField])) {
@@ -153,17 +163,30 @@ async function dependenciesHierarchyForPackage(projectPath, currentLockfile, wan
153
163
  if (opts.onlyProjects && nodeId?.type !== 'importer') {
154
164
  continue;
155
165
  }
156
- else if (nodeId == null) {
166
+ let treeResult;
167
+ if (nodeId == null) {
157
168
  if ((opts.search != null) && !searchMatch)
158
169
  continue;
159
170
  newEntry = packageInfo;
160
171
  }
161
172
  else {
162
- const dependencies = getChildrenTree(nodeId, packageInfo.path);
163
- if (dependencies.length > 0) {
173
+ treeResult = getChildrenTree(nodeId, packageInfo.path);
174
+ if (treeResult.deduped) {
175
+ // This subtree was already materialized for a previous importer.
176
+ const showDeduped = opts.search == null || Boolean(searchMatch) ||
177
+ Boolean(opts.showDedupedSearchMatches && treeResult.hasSearchMatch);
178
+ if (showDeduped) {
179
+ newEntry = packageInfo;
180
+ if (treeResult.count > 0) {
181
+ newEntry.deduped = true;
182
+ newEntry.dedupedDependenciesCount = treeResult.count;
183
+ }
184
+ }
185
+ }
186
+ else if (treeResult.nodes.length > 0) {
164
187
  newEntry = {
165
188
  ...packageInfo,
166
- dependencies,
189
+ dependencies: treeResult.nodes,
167
190
  };
168
191
  }
169
192
  else if ((opts.search == null) || searchMatch) {
@@ -177,49 +200,56 @@ async function dependenciesHierarchyForPackage(projectPath, currentLockfile, wan
177
200
  newEntry.searchMessage = searchMatch;
178
201
  }
179
202
  }
203
+ else if (newEntry.deduped && opts.showDedupedSearchMatches && treeResult?.hasSearchMatch) {
204
+ newEntry.searched = true;
205
+ if (treeResult.searchMessages.length > 0) {
206
+ newEntry.searchMessage = treeResult.searchMessages.join('\n');
207
+ }
208
+ }
180
209
  result[dependenciesField].push(newEntry);
181
210
  }
182
211
  }
183
212
  }
184
- await Promise.all(unsavedDeps.map(async (unsavedDep) => {
185
- let pkgPath = path_1.default.join(modulesDir, unsavedDep);
186
- let version;
187
- try {
188
- pkgPath = await (0, resolve_link_target_1.default)(pkgPath);
189
- version = `link:${(0, normalize_path_1.default)(path_1.default.relative(projectPath, pkgPath))}`;
190
- }
191
- catch {
192
- // if error happened. The package is not a link
193
- const pkg = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgPath);
194
- version = pkg?.version ?? 'undefined';
195
- }
196
- const pkg = {
197
- alias: unsavedDep,
198
- isMissing: false,
199
- isPeer: false,
200
- isSkipped: false,
201
- name: unsavedDep,
202
- path: pkgPath,
203
- version,
204
- };
205
- const searchMatch = opts.search?.({
206
- alias: pkg.alias,
207
- name: pkg.name,
208
- version: pkg.version,
209
- readManifest: () => (0, read_package_json_1.readPackageJsonFromDirSync)(pkgPath),
210
- });
211
- if ((opts.search != null) && !searchMatch)
212
- return;
213
- const newEntry = pkg;
214
- if (searchMatch) {
215
- newEntry.searched = true;
216
- if (typeof searchMatch === 'string') {
217
- newEntry.searchMessage = searchMatch;
213
+ if (unsavedDeps.length > 0)
214
+ await Promise.all(unsavedDeps.map(async (unsavedDep) => {
215
+ let pkgPath = path_1.default.join(modulesDir, unsavedDep);
216
+ let version;
217
+ try {
218
+ pkgPath = await (0, resolve_link_target_1.default)(pkgPath);
219
+ version = `link:${(0, normalize_path_1.default)(path_1.default.relative(projectPath, pkgPath))}`;
218
220
  }
219
- }
220
- result.unsavedDependencies = result.unsavedDependencies ?? [];
221
- result.unsavedDependencies.push(newEntry);
222
- }));
221
+ catch {
222
+ // if error happened. The package is not a link
223
+ const pkg = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgPath);
224
+ version = pkg?.version ?? 'undefined';
225
+ }
226
+ const pkg = {
227
+ alias: unsavedDep,
228
+ isMissing: false,
229
+ isPeer: false,
230
+ isSkipped: false,
231
+ name: unsavedDep,
232
+ path: pkgPath,
233
+ version,
234
+ };
235
+ const searchMatch = opts.search?.({
236
+ alias: pkg.alias,
237
+ name: pkg.name,
238
+ version: pkg.version,
239
+ readManifest: () => (0, read_package_json_1.readPackageJsonFromDirSync)(pkgPath),
240
+ });
241
+ if ((opts.search != null) && !searchMatch)
242
+ return;
243
+ const newEntry = pkg;
244
+ if (searchMatch) {
245
+ newEntry.searched = true;
246
+ if (typeof searchMatch === 'string') {
247
+ newEntry.searchMessage = searchMatch;
248
+ }
249
+ }
250
+ result.unsavedDependencies = result.unsavedDependencies ?? [];
251
+ result.unsavedDependencies.push(newEntry);
252
+ }));
223
253
  return result;
224
254
  }
225
255
  function getAllDirectDependencies(projectSnapshot) {
@@ -1 +1 @@
1
- {"version":3,"file":"buildDependenciesHierarchy.js","sourceRoot":"","sources":["../src/buildDependenciesHierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildDependenciesHierarchy.js","sourceRoot":"","sources":["../src/buildDependenciesHierarchy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type DependenciesField, type Finder, type Registries } from '@pnpm/types';
2
+ import { type DependencyNode } from './DependencyNode.js';
3
+ export interface DependenciesTree {
4
+ dependencies?: DependencyNode[];
5
+ devDependencies?: DependencyNode[];
6
+ optionalDependencies?: DependencyNode[];
7
+ unsavedDependencies?: DependencyNode[];
8
+ }
9
+ export declare function buildDependenciesTree(projectPaths: string[] | undefined, maybeOpts: {
10
+ depth: number;
11
+ excludePeerDependencies?: boolean;
12
+ include?: {
13
+ [dependenciesField in DependenciesField]: boolean;
14
+ };
15
+ registries?: Registries;
16
+ onlyProjects?: boolean;
17
+ search?: Finder;
18
+ showDedupedSearchMatches?: boolean;
19
+ lockfileDir: string;
20
+ checkWantedLockfileOnly?: boolean;
21
+ modulesDir?: string;
22
+ virtualStoreDirMaxLength: number;
23
+ }): Promise<{
24
+ [projectDir: string]: DependenciesTree;
25
+ }>;
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildDependenciesTree = buildDependenciesTree;
7
+ const path_1 = __importDefault(require("path"));
8
+ const lockfile_fs_1 = require("@pnpm/lockfile.fs");
9
+ const lockfile_detect_dep_types_1 = require("@pnpm/lockfile.detect-dep-types");
10
+ const modules_yaml_1 = require("@pnpm/modules-yaml");
11
+ const normalize_registries_1 = require("@pnpm/normalize-registries");
12
+ const read_modules_dir_1 = require("@pnpm/read-modules-dir");
13
+ const read_package_json_1 = require("@pnpm/read-package-json");
14
+ const types_1 = require("@pnpm/types");
15
+ const normalize_path_1 = __importDefault(require("normalize-path"));
16
+ const realpath_missing_1 = __importDefault(require("realpath-missing"));
17
+ const resolve_link_target_1 = __importDefault(require("resolve-link-target"));
18
+ const buildDependencyGraph_js_1 = require("./buildDependencyGraph.js");
19
+ const getTree_js_1 = require("./getTree.js");
20
+ async function buildDependenciesTree(projectPaths, maybeOpts) {
21
+ if (!maybeOpts?.lockfileDir) {
22
+ throw new TypeError('opts.lockfileDir is required');
23
+ }
24
+ const modulesDir = await (0, realpath_missing_1.default)(path_1.default.join(maybeOpts.lockfileDir, maybeOpts.modulesDir ?? 'node_modules'));
25
+ const modules = await (0, modules_yaml_1.readModulesManifest)(modulesDir);
26
+ const registries = (0, normalize_registries_1.normalizeRegistries)({
27
+ ...maybeOpts?.registries,
28
+ ...modules?.registries,
29
+ });
30
+ const internalPnpmDir = path_1.default.join(modulesDir, '.pnpm');
31
+ const currentLockfile = await (0, lockfile_fs_1.readCurrentLockfile)(internalPnpmDir, { ignoreIncompatible: false });
32
+ const wantedLockfile = await (0, lockfile_fs_1.readWantedLockfile)(maybeOpts.lockfileDir, { ignoreIncompatible: false });
33
+ if (projectPaths == null) {
34
+ projectPaths = Object.keys(wantedLockfile?.importers ?? {})
35
+ .map((id) => path_1.default.join(maybeOpts.lockfileDir, id));
36
+ }
37
+ const result = {};
38
+ const lockfileToUse = maybeOpts.checkWantedLockfileOnly ? wantedLockfile : currentLockfile;
39
+ if (!lockfileToUse) {
40
+ for (const projectPath of projectPaths) {
41
+ result[projectPath] = {};
42
+ }
43
+ return result;
44
+ }
45
+ const opts = {
46
+ depth: maybeOpts.depth || 0,
47
+ excludePeerDependencies: maybeOpts.excludePeerDependencies,
48
+ include: maybeOpts.include ?? {
49
+ dependencies: true,
50
+ devDependencies: true,
51
+ optionalDependencies: true,
52
+ },
53
+ lockfileDir: maybeOpts.lockfileDir,
54
+ checkWantedLockfileOnly: maybeOpts.checkWantedLockfileOnly,
55
+ onlyProjects: maybeOpts.onlyProjects,
56
+ registries,
57
+ search: maybeOpts.search,
58
+ showDedupedSearchMatches: maybeOpts.showDedupedSearchMatches ?? (maybeOpts.search != null),
59
+ skipped: new Set(modules?.skipped ?? []),
60
+ storeDir: modules?.storeDir,
61
+ modulesDir,
62
+ virtualStoreDir: modules?.virtualStoreDir,
63
+ virtualStoreDirMaxLength: modules?.virtualStoreDirMaxLength ?? maybeOpts.virtualStoreDirMaxLength,
64
+ };
65
+ // Build the dependency graph ONCE for all importers and share a single
66
+ // MaterializationCache so that identical subtrees are only materialized once.
67
+ const allRootIds = [];
68
+ for (const projectPath of projectPaths) {
69
+ const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
70
+ if (lockfileToUse.importers[importerId]) {
71
+ allRootIds.push({ type: 'importer', importerId });
72
+ }
73
+ }
74
+ const sharedGraph = (0, buildDependencyGraph_js_1.buildDependencyGraph)(allRootIds, {
75
+ currentPackages: lockfileToUse.packages ?? {},
76
+ importers: lockfileToUse.importers,
77
+ include: opts.include,
78
+ lockfileDir: opts.lockfileDir,
79
+ });
80
+ const sharedMaterializationCache = new Map();
81
+ const sharedDepTypes = (0, lockfile_detect_dep_types_1.detectDepTypes)(lockfileToUse);
82
+ const ctx = {
83
+ currentLockfile: lockfileToUse,
84
+ wantedLockfile,
85
+ ...opts,
86
+ graph: sharedGraph,
87
+ materializationCache: sharedMaterializationCache,
88
+ depTypes: sharedDepTypes,
89
+ };
90
+ const getHierarchy = dependenciesHierarchyForPackage.bind(null, ctx);
91
+ const pairs = await Promise.all(projectPaths.map(async (projectPath) => {
92
+ return [
93
+ projectPath,
94
+ await getHierarchy(projectPath),
95
+ ];
96
+ }));
97
+ for (const [projectPath, dependenciesHierarchy] of pairs) {
98
+ result[projectPath] = dependenciesHierarchy;
99
+ }
100
+ return result;
101
+ }
102
+ async function dependenciesHierarchyForPackage(opts, projectPath) {
103
+ const { currentLockfile, wantedLockfile } = opts;
104
+ const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
105
+ if (!currentLockfile.importers[importerId])
106
+ return {};
107
+ const modulesDir = opts.modulesDir && path_1.default.isAbsolute(opts.modulesDir)
108
+ ? opts.modulesDir
109
+ : path_1.default.join(projectPath, opts.modulesDir ?? 'node_modules');
110
+ const currentPackages = currentLockfile.packages ?? {};
111
+ const wantedPackages = wantedLockfile?.packages ?? {};
112
+ // Build a map from alias → dependency field for post-categorization.
113
+ const result = {};
114
+ const fieldMap = new Map();
115
+ for (const field of types_1.DEPENDENCIES_FIELDS.sort().filter(f => opts.include[f])) {
116
+ result[field] = [];
117
+ const fieldDeps = currentLockfile.importers[importerId][field] ?? {};
118
+ for (const alias in fieldDeps) {
119
+ fieldMap.set(alias, field);
120
+ }
121
+ }
122
+ const parentId = { type: 'importer', importerId };
123
+ // Materialize the tree rooted at this importer in a single getTree call.
124
+ // materializeChildren handles all dedup, search, and circular detection.
125
+ // The depth is incremented by 1 because the importer itself is one level;
126
+ // opts.depth controls how deep *below* the direct dependencies we go.
127
+ const nodes = (0, getTree_js_1.getTree)({
128
+ ...opts,
129
+ currentPackages,
130
+ importers: currentLockfile.importers,
131
+ rewriteLinkVersionDir: projectPath,
132
+ maxDepth: opts.depth + 1,
133
+ wantedPackages,
134
+ modulesDir,
135
+ }, parentId);
136
+ // Categorize the materialized nodes into their dependency fields.
137
+ for (const node of nodes) {
138
+ const field = fieldMap.get(node.alias);
139
+ if (field != null) {
140
+ result[field].push(node);
141
+ }
142
+ }
143
+ // Handle unsaved dependencies (packages in node_modules but not in lockfile).
144
+ // When searching, unsaved deps are irrelevant — they aren't in the lockfile
145
+ // graph and can't have dependency subtrees showing paths to the search target.
146
+ if (!opts.search) {
147
+ const savedDeps = getAllDirectDependencies(currentLockfile.importers[importerId]);
148
+ const unsavedDeps = ((await (0, read_modules_dir_1.readModulesDir)(modulesDir)) ?? []).filter((directDep) => !savedDeps[directDep]);
149
+ if (unsavedDeps.length > 0)
150
+ await Promise.all(unsavedDeps.map(async (unsavedDep) => {
151
+ let pkgPath = path_1.default.join(modulesDir, unsavedDep);
152
+ let version;
153
+ try {
154
+ pkgPath = await (0, resolve_link_target_1.default)(pkgPath);
155
+ version = `link:${(0, normalize_path_1.default)(path_1.default.relative(projectPath, pkgPath))}`;
156
+ }
157
+ catch {
158
+ // if error happened. The package is not a link
159
+ const pkg = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgPath);
160
+ version = pkg?.version ?? 'undefined';
161
+ }
162
+ const pkg = {
163
+ alias: unsavedDep,
164
+ isMissing: false,
165
+ isPeer: false,
166
+ isSkipped: false,
167
+ name: unsavedDep,
168
+ path: pkgPath,
169
+ version,
170
+ };
171
+ result.unsavedDependencies = result.unsavedDependencies ?? [];
172
+ result.unsavedDependencies.push(pkg);
173
+ }));
174
+ }
175
+ return result;
176
+ }
177
+ function getAllDirectDependencies(projectSnapshot) {
178
+ return {
179
+ ...projectSnapshot.dependencies,
180
+ ...projectSnapshot.devDependencies,
181
+ ...projectSnapshot.optionalDependencies,
182
+ };
183
+ }
184
+ //# sourceMappingURL=buildDependenciesTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDependenciesTree.js","sourceRoot":"","sources":["../src/buildDependenciesTree.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ interface DependencyGraphNode {
16
16
  export interface DependencyGraph {
17
17
  nodes: Map<string, DependencyGraphNode>;
18
18
  }
19
- export declare function buildDependencyGraph(rootId: TreeNodeId, opts: {
19
+ export declare function buildDependencyGraph(rootIds: TreeNodeId[], opts: {
20
20
  currentPackages: PackageSnapshots;
21
21
  importers: Record<string, ProjectSnapshot>;
22
22
  include: {
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildDependencyGraph = buildDependencyGraph;
4
4
  const getTreeNodeChildId_js_1 = require("./getTreeNodeChildId.js");
5
5
  const TreeNodeId_js_1 = require("./TreeNodeId.js");
6
- function buildDependencyGraph(rootId, opts) {
6
+ function buildDependencyGraph(rootIds, opts) {
7
7
  const graph = { nodes: new Map() };
8
- const queue = [rootId];
8
+ const queue = [...rootIds];
9
9
  let queueIdx = 0;
10
10
  const visited = new Set();
11
11
  while (queueIdx < queue.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"buildDependencyGraph.js","sourceRoot":"","sources":["../src/buildDependencyGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildDependencyGraph.js","sourceRoot":"","sources":["../src/buildDependencyGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type LockfileObject } from '@pnpm/lockfile.fs';
2
+ import { type DependenciesField, type DependencyManifest, type Finder, type Registries } from '@pnpm/types';
3
+ export interface DependentNode {
4
+ name: string;
5
+ displayName?: string;
6
+ version: string;
7
+ dependents?: DependentNode[];
8
+ circular?: true;
9
+ deduped?: true;
10
+ /** Short hash distinguishing peer-dep variants of the same name@version */
11
+ peersSuffixHash?: string;
12
+ /** For importer leaf nodes: which dep field */
13
+ depField?: DependenciesField;
14
+ }
15
+ export interface DependentsTree {
16
+ name: string;
17
+ displayName?: string;
18
+ version: string;
19
+ /** Resolved filesystem path to this package */
20
+ path?: string;
21
+ /** Short hash distinguishing peer-dep variants of the same name@version */
22
+ peersSuffixHash?: string;
23
+ /** Message returned by the finder function, if any */
24
+ searchMessage?: string;
25
+ dependents: DependentNode[];
26
+ }
27
+ export interface ImporterInfo {
28
+ name: string;
29
+ version: string;
30
+ }
31
+ export declare function buildDependentsTree(packages: string[], projectPaths: string[], opts: {
32
+ lockfileDir: string;
33
+ include?: {
34
+ [field in DependenciesField]?: boolean;
35
+ };
36
+ modulesDir?: string;
37
+ registries?: Registries;
38
+ finders?: Finder[];
39
+ importerInfoMap: Map<string, ImporterInfo>;
40
+ lockfile: LockfileObject;
41
+ nameFormatter?: (info: {
42
+ name: string;
43
+ version: string;
44
+ manifest: DependencyManifest;
45
+ }) => string | undefined;
46
+ }): Promise<DependentsTree[]>;