UNPKG

1.86 kBTypeScriptView Raw
1export interface Pkg {
2 name: string;
3 version?: string;
4}
5export interface PkgInfo {
6 name: string;
7 version?: string;
8}
9export interface VersionProvenance {
10 type: string;
11 location: string;
12 property?: {
13 name: string;
14 };
15}
16export interface NodeInfo {
17 versionProvenance?: VersionProvenance;
18 labels?: {
19 [key: string]: string | undefined;
20 scope?: 'dev' | 'prod';
21 pruned?: 'cyclic' | 'true';
22 };
23}
24export interface Node {
25 info: NodeInfo;
26}
27export interface GraphNode {
28 nodeId: string;
29 pkgId: string;
30 info?: NodeInfo;
31 deps: Array<{
32 nodeId: string;
33 }>;
34}
35export interface PkgManager {
36 name: string;
37 version?: string;
38 repositories?: Array<{
39 alias: string;
40 }>;
41}
42export interface DepGraphData {
43 schemaVersion: string;
44 pkgManager: PkgManager;
45 pkgs: Array<{
46 id: string;
47 info: PkgInfo;
48 }>;
49 graph: {
50 rootNodeId: string;
51 nodes: GraphNode[];
52 };
53}
54export interface DepGraph {
55 readonly pkgManager: PkgManager;
56 readonly rootPkg: PkgInfo;
57 getPkgs(): PkgInfo[];
58 getDepPkgs(): PkgInfo[];
59 getPkgNodes(pkg: Pkg): Node[];
60 toJSON(): DepGraphData;
61 pkgPathsToRoot(pkg: Pkg, opts?: {
62 limit?: number;
63 }): PkgInfo[][];
64 isTransitive(pkg: Pkg): boolean;
65 directDepsLeadingTo(pkg: Pkg): PkgInfo[];
66 countPathsToRoot(pkg: Pkg): number;
67 equals(other: DepGraph, options?: {
68 compareRoot?: boolean;
69 }): boolean;
70}
71export interface DepGraphInternal extends DepGraph {
72 readonly rootNodeId: string;
73 getNode(nodeId: string): NodeInfo;
74 getNodePkg(nodeId: string): PkgInfo;
75 getPkgNodeIds(pkg: Pkg): string[];
76 getNodeDepsNodeIds(nodeId: string): string[];
77 getNodeParentsNodeIds(nodeId: string): string[];
78 hasCycles(): boolean;
79}