UNPKG

1.78 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): PkgInfo[][];
62 directDepsLeadingTo(pkg: Pkg): PkgInfo[];
63 countPathsToRoot(pkg: Pkg): number;
64 equals(other: DepGraph, options?: {
65 compareRoot?: boolean;
66 }): boolean;
67}
68export interface DepGraphInternal extends DepGraph {
69 readonly rootNodeId: string;
70 getNode(nodeId: string): NodeInfo;
71 getNodePkg(nodeId: string): PkgInfo;
72 getPkgNodeIds(pkg: Pkg): string[];
73 getNodeDepsNodeIds(nodeId: string): string[];
74 getNodeParentsNodeIds(nodeId: string): string[];
75 hasCycles(): boolean;
76}