foresthouse 1.0.0-dev.20 → 1.0.0-dev.21
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/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as printReactUsageTree, c as printPackageDependencyTree, f as analyzeReactUsage, g as analyzePackageDependencies, h as analyzePackageDependencyDiff, i as graphToSerializablePackageTree, m as isSourceCodeFile, n as graphToSerializableTree, o as printDependencyTree, p as analyzeDependencies, r as diffGraphToSerializablePackageTree, s as printPackageDependencyDiffTree, t as graphToSerializableReactTree } from "./react-
|
|
2
|
+
import { a as printReactUsageTree, c as printPackageDependencyTree, f as analyzeReactUsage, g as analyzePackageDependencies, h as analyzePackageDependencyDiff, i as graphToSerializablePackageTree, m as isSourceCodeFile, n as graphToSerializableTree, o as printDependencyTree, p as analyzeDependencies, r as diffGraphToSerializablePackageTree, s as printPackageDependencyDiffTree, t as graphToSerializableReactTree } from "./react-DWxB8qZ6.mjs";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
package/dist/index.d.mts
CHANGED
|
@@ -5,6 +5,8 @@ type PackageDependencyChangeKind = 'added' | 'removed' | 'changed' | 'unchanged'
|
|
|
5
5
|
interface PackageDependencyDiffState {
|
|
6
6
|
readonly target: string;
|
|
7
7
|
readonly specifier?: string;
|
|
8
|
+
readonly resolvedVersion?: string;
|
|
9
|
+
readonly peerContext?: string;
|
|
8
10
|
}
|
|
9
11
|
interface BasePackageDependencyDiffDependency {
|
|
10
12
|
readonly name: string;
|
|
@@ -14,6 +16,9 @@ interface BasePackageDependencyDiffDependency {
|
|
|
14
16
|
}
|
|
15
17
|
interface ExternalPackageDependencyDiff extends BasePackageDependencyDiffDependency {
|
|
16
18
|
readonly kind: 'external';
|
|
19
|
+
readonly specifierChanged: boolean;
|
|
20
|
+
readonly resolvedVersionChanged: boolean;
|
|
21
|
+
readonly peerContextChanged: boolean;
|
|
17
22
|
}
|
|
18
23
|
interface WorkspacePackageDependencyDiff extends BasePackageDependencyDiffDependency {
|
|
19
24
|
readonly kind: 'workspace';
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/package-dependency-change-kind.ts","../src/types/package-dependency-diff-dependency.ts","../src/types/package-dependency-diff-node.ts","../src/types/package-dependency-diff-graph.ts","../src/analyzers/deps/diff.ts","../src/types/package-manifest-dependency.ts","../src/types/package-dependency-node.ts","../src/types/package-dependency-graph.ts","../src/analyzers/deps/index.ts","../src/types/analyze-options.ts","../src/types/dependency-kind.ts","../src/types/reference-kind.ts","../src/types/dependency-edge.ts","../src/types/source-module-node.ts","../src/types/dependency-graph.ts","../src/analyzers/import/index.ts","../src/types/react-usage-location.ts","../src/types/react-usage-entry.ts","../src/types/react-symbol-kind.ts","../src/types/react-usage-edge-kind.ts","../src/types/react-usage-edge.ts","../src/types/react-usage-node.ts","../src/types/react-usage-graph.ts","../src/analyzers/react/index.ts","../src/types/react-usage-filter.ts","../src/analyzers/react/queries.ts","../src/types/color-mode.ts","../src/types/print-package-tree-options.ts","../src/output/ascii/deps.ts","../src/types/print-tree-options.ts","../src/output/ascii/import.ts","../src/types/print-react-tree-options.ts","../src/output/ascii/react.ts","../src/output/json/deps.ts","../src/output/json/import.ts","../src/output/json/react.ts"],"mappings":";KAAY,2BAAA;;;UCGK,0BAAA;EAAA,SACN,MAAA;EAAA,SACA,SAAA;AAAA;AAAA,UAGD,mCAAA;EAAA,SACC,IAAA;EAAA,SACA,MAAA,EAAQ,2BAAA;EAAA,SACR,MAAA,GAAS,0BAAA;EAAA,SACT,KAAA,GAAQ,0BAAA;AAAA;AAAA,UAGF,6BAAA,SACP,mCAAA;EAAA,SACC,IAAA;AAAA;AAAA,UAGM,8BAAA,SACP,mCAAA;EAAA,SACC,IAAA;EAAA,SACA,IAAA,EAAM,yBAAA;AAAA;AAAA,KAGL,+BAAA,GACR,6BAAA,GACA,8BAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/package-dependency-change-kind.ts","../src/types/package-dependency-diff-dependency.ts","../src/types/package-dependency-diff-node.ts","../src/types/package-dependency-diff-graph.ts","../src/analyzers/deps/diff.ts","../src/types/package-manifest-dependency.ts","../src/types/package-dependency-node.ts","../src/types/package-dependency-graph.ts","../src/analyzers/deps/index.ts","../src/types/analyze-options.ts","../src/types/dependency-kind.ts","../src/types/reference-kind.ts","../src/types/dependency-edge.ts","../src/types/source-module-node.ts","../src/types/dependency-graph.ts","../src/analyzers/import/index.ts","../src/types/react-usage-location.ts","../src/types/react-usage-entry.ts","../src/types/react-symbol-kind.ts","../src/types/react-usage-edge-kind.ts","../src/types/react-usage-edge.ts","../src/types/react-usage-node.ts","../src/types/react-usage-graph.ts","../src/analyzers/react/index.ts","../src/types/react-usage-filter.ts","../src/analyzers/react/queries.ts","../src/types/color-mode.ts","../src/types/print-package-tree-options.ts","../src/output/ascii/deps.ts","../src/types/print-tree-options.ts","../src/output/ascii/import.ts","../src/types/print-react-tree-options.ts","../src/output/ascii/react.ts","../src/output/json/deps.ts","../src/output/json/import.ts","../src/output/json/react.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as printReactUsageTree, c as printPackageDependencyTree, d as getReactUsageRoots, f as analyzeReactUsage, g as analyzePackageDependencies, h as analyzePackageDependencyDiff, i as graphToSerializablePackageTree, l as getFilteredUsages, n as graphToSerializableTree, o as printDependencyTree, p as analyzeDependencies, r as diffGraphToSerializablePackageTree, s as printPackageDependencyDiffTree, t as graphToSerializableReactTree, u as getReactUsageEntries } from "./react-
|
|
1
|
+
import { a as printReactUsageTree, c as printPackageDependencyTree, d as getReactUsageRoots, f as analyzeReactUsage, g as analyzePackageDependencies, h as analyzePackageDependencyDiff, i as graphToSerializablePackageTree, l as getFilteredUsages, n as graphToSerializableTree, o as printDependencyTree, p as analyzeDependencies, r as diffGraphToSerializablePackageTree, s as printPackageDependencyDiffTree, t as graphToSerializableReactTree, u as getReactUsageEntries } from "./react-DWxB8qZ6.mjs";
|
|
2
2
|
export { analyzeDependencies, analyzePackageDependencies, analyzePackageDependencyDiff, analyzeReactUsage, diffGraphToSerializablePackageTree, getFilteredUsages, getReactUsageEntries, getReactUsageRoots, graphToSerializablePackageTree, graphToSerializableReactTree, graphToSerializableTree, printDependencyTree, printPackageDependencyDiffTree, printPackageDependencyTree, printReactUsageTree };
|
|
@@ -257,7 +257,111 @@ function isRecord(value) {
|
|
|
257
257
|
return typeof value === "object" && value !== null;
|
|
258
258
|
}
|
|
259
259
|
//#endregion
|
|
260
|
+
//#region src/analyzers/deps/pnpm-lock.ts
|
|
261
|
+
const PNPM_LOCKFILE$1 = "pnpm-lock.yaml";
|
|
262
|
+
const DEPENDENCY_SECTIONS = new Set(["dependencies", "optionalDependencies"]);
|
|
263
|
+
function loadPnpmLockImporterResolutions(repositoryRoot) {
|
|
264
|
+
const lockfilePath = path.join(repositoryRoot, PNPM_LOCKFILE$1);
|
|
265
|
+
if (!fs.existsSync(lockfilePath)) return;
|
|
266
|
+
return parsePnpmLockImporterResolutions(fs.readFileSync(lockfilePath, "utf8"));
|
|
267
|
+
}
|
|
268
|
+
function parsePnpmLockImporterResolutions(source) {
|
|
269
|
+
const importers = /* @__PURE__ */ new Map();
|
|
270
|
+
const lines = source.split(/\r?\n/u);
|
|
271
|
+
let inImporters = false;
|
|
272
|
+
let currentImporter;
|
|
273
|
+
let currentSection;
|
|
274
|
+
let currentDependencyName;
|
|
275
|
+
lines.forEach((line) => {
|
|
276
|
+
const trimmedLine = line.trim();
|
|
277
|
+
if (trimmedLine.length === 0 || trimmedLine.startsWith("#")) return;
|
|
278
|
+
const indentation = line.length - line.trimStart().length;
|
|
279
|
+
if (indentation === 0) {
|
|
280
|
+
if (trimmedLine === "importers:") {
|
|
281
|
+
inImporters = true;
|
|
282
|
+
currentImporter = void 0;
|
|
283
|
+
currentSection = void 0;
|
|
284
|
+
currentDependencyName = void 0;
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
inImporters = false;
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (!inImporters) return;
|
|
291
|
+
if (indentation === 2 && trimmedLine.endsWith(":")) {
|
|
292
|
+
currentImporter = parseYamlScalar(trimmedLine.slice(0, -1));
|
|
293
|
+
currentSection = void 0;
|
|
294
|
+
currentDependencyName = void 0;
|
|
295
|
+
if (!importers.has(currentImporter)) importers.set(currentImporter, /* @__PURE__ */ new Map());
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
if (currentImporter === void 0) return;
|
|
299
|
+
if (indentation === 4 && trimmedLine.endsWith(":")) {
|
|
300
|
+
const sectionName = parseYamlScalar(trimmedLine.slice(0, -1));
|
|
301
|
+
currentSection = DEPENDENCY_SECTIONS.has(sectionName) ? sectionName : void 0;
|
|
302
|
+
currentDependencyName = void 0;
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (currentSection === void 0) return;
|
|
306
|
+
if (indentation === 6) {
|
|
307
|
+
if (trimmedLine.endsWith(":")) {
|
|
308
|
+
currentDependencyName = parseYamlScalar(trimmedLine.slice(0, -1));
|
|
309
|
+
upsertDependency(importers, currentImporter, currentDependencyName, {});
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const pair = splitYamlKeyValue(trimmedLine);
|
|
313
|
+
if (pair === void 0) return;
|
|
314
|
+
currentDependencyName = void 0;
|
|
315
|
+
upsertDependency(importers, currentImporter, parseYamlScalar(pair.key), { ...parsePnpmVersion(parseYamlScalar(pair.value)) });
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (indentation === 8 && currentDependencyName !== void 0) {
|
|
319
|
+
const pair = splitYamlKeyValue(trimmedLine);
|
|
320
|
+
if (pair === void 0) return;
|
|
321
|
+
if (pair.key === "specifier") {
|
|
322
|
+
upsertDependency(importers, currentImporter, currentDependencyName, { specifier: parseYamlScalar(pair.value) });
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
if (pair.key === "version") upsertDependency(importers, currentImporter, currentDependencyName, { ...parsePnpmVersion(parseYamlScalar(pair.value)) });
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
return importers;
|
|
329
|
+
}
|
|
330
|
+
function upsertDependency(importers, importerPath, dependencyName, nextValue) {
|
|
331
|
+
const importer = importers.get(importerPath);
|
|
332
|
+
if (importer === void 0) return;
|
|
333
|
+
importer.set(dependencyName, {
|
|
334
|
+
...importer.get(dependencyName),
|
|
335
|
+
...nextValue
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
function splitYamlKeyValue(line) {
|
|
339
|
+
const separatorIndex = line.indexOf(":");
|
|
340
|
+
if (separatorIndex <= 0) return;
|
|
341
|
+
return {
|
|
342
|
+
key: line.slice(0, separatorIndex).trim(),
|
|
343
|
+
value: line.slice(separatorIndex + 1).trim()
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
function parseYamlScalar(value) {
|
|
347
|
+
if (value.length >= 2) {
|
|
348
|
+
const firstCharacter = value[0];
|
|
349
|
+
const lastCharacter = value[value.length - 1];
|
|
350
|
+
if (firstCharacter === "\"" && lastCharacter === "\"" || firstCharacter === "'" && lastCharacter === "'") return value.slice(1, -1);
|
|
351
|
+
}
|
|
352
|
+
return value;
|
|
353
|
+
}
|
|
354
|
+
function parsePnpmVersion(value) {
|
|
355
|
+
const firstParenthesisIndex = value.indexOf("(");
|
|
356
|
+
if (firstParenthesisIndex < 0) return { version: value };
|
|
357
|
+
return {
|
|
358
|
+
version: value.slice(0, firstParenthesisIndex),
|
|
359
|
+
peerSuffix: value.slice(firstParenthesisIndex)
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
//#endregion
|
|
260
363
|
//#region src/analyzers/deps/diff.ts
|
|
364
|
+
const PNPM_LOCKFILE = "pnpm-lock.yaml";
|
|
261
365
|
const PNPM_WORKSPACE_FILE = "pnpm-workspace.yaml";
|
|
262
366
|
function analyzePackageDependencyDiff(directory, diff) {
|
|
263
367
|
const resolvedInputPath = path.resolve(process.cwd(), directory);
|
|
@@ -398,7 +502,7 @@ function ensureSnapshotDirectory(snapshotRoot, filePath) {
|
|
|
398
502
|
}
|
|
399
503
|
function isManifestSnapshotFile(filePath) {
|
|
400
504
|
const fileName = path.posix.basename(filePath);
|
|
401
|
-
return fileName === "package.json" || fileName === PNPM_WORKSPACE_FILE;
|
|
505
|
+
return fileName === "package.json" || fileName === PNPM_LOCKFILE || fileName === PNPM_WORKSPACE_FILE;
|
|
402
506
|
}
|
|
403
507
|
function resolveSnapshotInputPath(snapshotRoot, inputPathWithinRepository) {
|
|
404
508
|
if (inputPathWithinRepository === "") return snapshotRoot;
|
|
@@ -414,12 +518,14 @@ function tryAnalyzePackageGraph(inputPath) {
|
|
|
414
518
|
}
|
|
415
519
|
}
|
|
416
520
|
function toComparableGraph(graph) {
|
|
521
|
+
const pnpmLockResolutions = loadPnpmLockImporterResolutions(graph.repositoryRoot);
|
|
417
522
|
const nodes = /* @__PURE__ */ new Map();
|
|
418
523
|
graph.nodes.forEach((node, packageDir) => {
|
|
419
524
|
const packagePath = toDisplayPath(packageDir, graph.repositoryRoot);
|
|
525
|
+
const packageLockResolutions = pnpmLockResolutions?.get(packagePath);
|
|
420
526
|
const dependenciesByKey = /* @__PURE__ */ new Map();
|
|
421
527
|
node.dependencies.forEach((dependency) => {
|
|
422
|
-
dependenciesByKey.set(createDependencyKey(dependency), toComparableDependency(dependency, graph.repositoryRoot));
|
|
528
|
+
dependenciesByKey.set(createDependencyKey(dependency), toComparableDependency(dependency, graph.repositoryRoot, packageLockResolutions?.get(dependency.name)));
|
|
423
529
|
});
|
|
424
530
|
nodes.set(packagePath, {
|
|
425
531
|
path: packagePath,
|
|
@@ -435,13 +541,19 @@ function toComparableGraph(graph) {
|
|
|
435
541
|
function createDependencyKey(dependency) {
|
|
436
542
|
return `${dependency.kind}:${dependency.name}`;
|
|
437
543
|
}
|
|
438
|
-
function toComparableDependency(dependency, repositoryRoot) {
|
|
439
|
-
if (dependency.kind === "external")
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
544
|
+
function toComparableDependency(dependency, repositoryRoot, lockResolution) {
|
|
545
|
+
if (dependency.kind === "external") {
|
|
546
|
+
const resolvedVersion = resolveResolvedVersion(lockResolution);
|
|
547
|
+
const peerContext = resolvePeerContext(lockResolution);
|
|
548
|
+
return {
|
|
549
|
+
kind: "external",
|
|
550
|
+
key: createDependencyKey(dependency),
|
|
551
|
+
name: dependency.name,
|
|
552
|
+
specifier: dependency.specifier,
|
|
553
|
+
...resolvedVersion === void 0 ? {} : { resolvedVersion },
|
|
554
|
+
...peerContext === void 0 ? {} : { peerContext }
|
|
555
|
+
};
|
|
556
|
+
}
|
|
445
557
|
return {
|
|
446
558
|
kind: "workspace",
|
|
447
559
|
key: createDependencyKey(dependency),
|
|
@@ -450,6 +562,16 @@ function toComparableDependency(dependency, repositoryRoot) {
|
|
|
450
562
|
targetPath: toDisplayPath(dependency.target, repositoryRoot)
|
|
451
563
|
};
|
|
452
564
|
}
|
|
565
|
+
function resolveResolvedVersion(lockResolution) {
|
|
566
|
+
if (lockResolution === void 0) return;
|
|
567
|
+
const version = lockResolution.version?.trim();
|
|
568
|
+
if (version === void 0 || version.length === 0 || version.startsWith("link:") || version.startsWith("file:") || version.startsWith("workspace:")) return;
|
|
569
|
+
return version;
|
|
570
|
+
}
|
|
571
|
+
function resolvePeerContext(lockResolution) {
|
|
572
|
+
const peerSuffix = lockResolution?.peerSuffix?.trim();
|
|
573
|
+
return peerSuffix === void 0 || peerSuffix.length === 0 ? void 0 : peerSuffix;
|
|
574
|
+
}
|
|
453
575
|
function diffPackageNode(location, beforeGraph, afterGraph, changedPackagePaths, ancestry) {
|
|
454
576
|
const nodeKey = `${location.beforePath ?? ""}->${location.afterPath ?? ""}`;
|
|
455
577
|
const beforeNode = location.beforePath === void 0 ? void 0 : beforeGraph?.nodes.get(location.beforePath);
|
|
@@ -525,23 +647,37 @@ function diffDependency(beforeDependency, afterDependency, beforeGraph, afterGra
|
|
|
525
647
|
kind: "external",
|
|
526
648
|
name: dependency.name,
|
|
527
649
|
change,
|
|
650
|
+
specifierChanged: didExternalSpecifierChange(beforeDependency, afterDependency),
|
|
651
|
+
resolvedVersionChanged: didExternalResolvedVersionChange(beforeDependency, afterDependency),
|
|
652
|
+
peerContextChanged: didExternalPeerContextChange(beforeDependency, afterDependency),
|
|
528
653
|
...beforeDependency === void 0 ? {} : { before: toDiffState(beforeDependency) },
|
|
529
654
|
...afterDependency === void 0 ? {} : { after: toDiffState(afterDependency) }
|
|
530
655
|
};
|
|
531
656
|
}
|
|
657
|
+
function didExternalSpecifierChange(beforeDependency, afterDependency) {
|
|
658
|
+
return beforeDependency?.kind === "external" && afterDependency?.kind === "external" && beforeDependency.specifier !== afterDependency.specifier;
|
|
659
|
+
}
|
|
660
|
+
function didExternalResolvedVersionChange(beforeDependency, afterDependency) {
|
|
661
|
+
return beforeDependency?.kind === "external" && afterDependency?.kind === "external" && beforeDependency.resolvedVersion !== afterDependency.resolvedVersion;
|
|
662
|
+
}
|
|
663
|
+
function didExternalPeerContextChange(beforeDependency, afterDependency) {
|
|
664
|
+
return beforeDependency?.kind === "external" && afterDependency?.kind === "external" && beforeDependency.peerContext !== afterDependency.peerContext;
|
|
665
|
+
}
|
|
532
666
|
function resolveDependencyChange(beforeDependency, afterDependency) {
|
|
533
667
|
if (beforeDependency === void 0 && afterDependency !== void 0) return "added";
|
|
534
668
|
if (beforeDependency !== void 0 && afterDependency === void 0) return "removed";
|
|
535
669
|
if (beforeDependency === void 0 || afterDependency === void 0) return "unchanged";
|
|
536
670
|
if (beforeDependency.kind !== afterDependency.kind) return "changed";
|
|
537
|
-
if (beforeDependency.kind === "external" && afterDependency.kind === "external") return beforeDependency.specifier === afterDependency.specifier ? "unchanged" : "changed";
|
|
671
|
+
if (beforeDependency.kind === "external" && afterDependency.kind === "external") return beforeDependency.specifier === afterDependency.specifier && beforeDependency.resolvedVersion === afterDependency.resolvedVersion && beforeDependency.peerContext === afterDependency.peerContext ? "unchanged" : "changed";
|
|
538
672
|
if (beforeDependency.kind === "workspace" && afterDependency.kind === "workspace") return beforeDependency.specifier === afterDependency.specifier && beforeDependency.targetPath === afterDependency.targetPath ? "unchanged" : "changed";
|
|
539
673
|
return "changed";
|
|
540
674
|
}
|
|
541
675
|
function toDiffState(dependency) {
|
|
542
676
|
if (dependency.kind === "external") return {
|
|
543
677
|
target: `${dependency.name}@${dependency.specifier}`,
|
|
544
|
-
specifier: dependency.specifier
|
|
678
|
+
specifier: dependency.specifier,
|
|
679
|
+
...dependency.resolvedVersion === void 0 ? {} : { resolvedVersion: dependency.resolvedVersion },
|
|
680
|
+
...dependency.peerContext === void 0 ? {} : { peerContext: dependency.peerContext }
|
|
545
681
|
};
|
|
546
682
|
return dependency.specifier === void 0 ? { target: dependency.targetPath } : {
|
|
547
683
|
target: dependency.targetPath,
|
|
@@ -1979,9 +2115,16 @@ function formatDiffDependencyLabel(dependency) {
|
|
|
1979
2115
|
return formatWorkspaceDiffLabel(dependency);
|
|
1980
2116
|
}
|
|
1981
2117
|
function formatExternalDiffLabel(dependency) {
|
|
2118
|
+
const beforeResolution = dependency.before?.resolvedVersion;
|
|
2119
|
+
const afterResolution = dependency.after?.resolvedVersion;
|
|
1982
2120
|
if (dependency.change !== "changed") return dependency.after?.target ?? dependency.before?.target ?? dependency.name;
|
|
1983
2121
|
const previousSpecifier = dependency.before?.specifier ?? "none";
|
|
1984
2122
|
const nextSpecifier = dependency.after?.specifier ?? "none";
|
|
2123
|
+
if (dependency.resolvedVersionChanged) {
|
|
2124
|
+
const resolutionLabel = formatVersionChange(beforeResolution, afterResolution);
|
|
2125
|
+
return previousSpecifier === nextSpecifier ? `${dependency.name}@${nextSpecifier} (${resolutionLabel})` : `${dependency.name}@${previousSpecifier} -> ${nextSpecifier} (${resolutionLabel})`;
|
|
2126
|
+
}
|
|
2127
|
+
if (previousSpecifier === nextSpecifier) return `${dependency.name}@${nextSpecifier}`;
|
|
1985
2128
|
return `${dependency.name}@${previousSpecifier} -> ${nextSpecifier}`;
|
|
1986
2129
|
}
|
|
1987
2130
|
function formatWorkspaceDiffLabel(dependency) {
|
|
@@ -2005,6 +2148,9 @@ function formatWorkspaceState(state, fallbackTarget) {
|
|
|
2005
2148
|
if (state?.specifier === void 0) return target;
|
|
2006
2149
|
return `${target} (${state.specifier})`;
|
|
2007
2150
|
}
|
|
2151
|
+
function formatVersionChange(beforeResolvedVersion, afterResolvedVersion) {
|
|
2152
|
+
return `${beforeResolvedVersion ?? "none"} -> ${afterResolvedVersion ?? "none"}`;
|
|
2153
|
+
}
|
|
2008
2154
|
function toMarker(change) {
|
|
2009
2155
|
if (change === "added") return "+";
|
|
2010
2156
|
if (change === "removed") return "-";
|
|
@@ -2199,13 +2345,22 @@ function serializePackageDiffDependency(dependency) {
|
|
|
2199
2345
|
kind: dependency.kind,
|
|
2200
2346
|
name: dependency.name,
|
|
2201
2347
|
change: dependency.change,
|
|
2348
|
+
...dependency.kind === "external" ? {
|
|
2349
|
+
specifierChanged: dependency.specifierChanged,
|
|
2350
|
+
resolvedVersionChanged: dependency.resolvedVersionChanged,
|
|
2351
|
+
peerContextChanged: dependency.peerContextChanged
|
|
2352
|
+
} : {},
|
|
2202
2353
|
...dependency.before === void 0 ? {} : {
|
|
2203
2354
|
beforeTarget: dependency.before.target,
|
|
2204
|
-
...dependency.before.specifier === void 0 ? {} : { beforeSpecifier: dependency.before.specifier }
|
|
2355
|
+
...dependency.before.specifier === void 0 ? {} : { beforeSpecifier: dependency.before.specifier },
|
|
2356
|
+
...dependency.before.resolvedVersion === void 0 ? {} : { beforeResolvedVersion: dependency.before.resolvedVersion },
|
|
2357
|
+
...dependency.before.peerContext === void 0 ? {} : { beforePeerContext: dependency.before.peerContext }
|
|
2205
2358
|
},
|
|
2206
2359
|
...dependency.after === void 0 ? {} : {
|
|
2207
2360
|
afterTarget: dependency.after.target,
|
|
2208
|
-
...dependency.after.specifier === void 0 ? {} : { afterSpecifier: dependency.after.specifier }
|
|
2361
|
+
...dependency.after.specifier === void 0 ? {} : { afterSpecifier: dependency.after.specifier },
|
|
2362
|
+
...dependency.after.resolvedVersion === void 0 ? {} : { afterResolvedVersion: dependency.after.resolvedVersion },
|
|
2363
|
+
...dependency.after.peerContext === void 0 ? {} : { afterPeerContext: dependency.after.peerContext }
|
|
2209
2364
|
},
|
|
2210
2365
|
...dependency.before === void 0 ? {} : { before: dependency.before },
|
|
2211
2366
|
...dependency.after === void 0 ? {} : { after: dependency.after },
|
|
@@ -2326,4 +2481,4 @@ function formatReactNodeFilePath(filePath, kind, cwd) {
|
|
|
2326
2481
|
//#endregion
|
|
2327
2482
|
export { printReactUsageTree as a, printPackageDependencyTree as c, getReactUsageRoots as d, analyzeReactUsage as f, analyzePackageDependencies as g, analyzePackageDependencyDiff as h, graphToSerializablePackageTree as i, getFilteredUsages as l, isSourceCodeFile as m, graphToSerializableTree as n, printDependencyTree as o, analyzeDependencies as p, diffGraphToSerializablePackageTree as r, printPackageDependencyDiffTree as s, graphToSerializableReactTree as t, getReactUsageEntries as u };
|
|
2328
2483
|
|
|
2329
|
-
//# sourceMappingURL=react-
|
|
2484
|
+
//# sourceMappingURL=react-DWxB8qZ6.mjs.map
|