@vltpkg/graph 0.0.0-29 → 0.0.0-30
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/esm/browser.d.ts +8 -4
- package/dist/esm/browser.d.ts.map +1 -1
- package/dist/esm/browser.js +6 -2
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/dependencies.d.ts +1 -2
- package/dist/esm/dependencies.d.ts.map +1 -1
- package/dist/esm/dependencies.js.map +1 -1
- package/dist/esm/diff.d.ts.map +1 -1
- package/dist/esm/diff.js +2 -1
- package/dist/esm/diff.js.map +1 -1
- package/dist/esm/edge.d.ts +1 -2
- package/dist/esm/edge.d.ts.map +1 -1
- package/dist/esm/edge.js.map +1 -1
- package/dist/esm/graph.d.ts +2 -3
- package/dist/esm/graph.d.ts.map +1 -1
- package/dist/esm/graph.js +19 -0
- package/dist/esm/graph.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockfile/load-edges.d.ts +1 -2
- package/dist/esm/lockfile/load-edges.d.ts.map +1 -1
- package/dist/esm/lockfile/load-edges.js.map +1 -1
- package/dist/esm/lockfile/load-nodes.d.ts +3 -2
- package/dist/esm/lockfile/load-nodes.d.ts.map +1 -1
- package/dist/esm/lockfile/load-nodes.js +9 -2
- package/dist/esm/lockfile/load-nodes.js.map +1 -1
- package/dist/esm/lockfile/load.d.ts.map +1 -1
- package/dist/esm/lockfile/load.js +1 -1
- package/dist/esm/lockfile/load.js.map +1 -1
- package/dist/esm/lockfile/save.d.ts.map +1 -1
- package/dist/esm/lockfile/save.js +4 -0
- package/dist/esm/lockfile/save.js.map +1 -1
- package/dist/esm/lockfile/types.d.ts +11 -2
- package/dist/esm/lockfile/types.d.ts.map +1 -1
- package/dist/esm/lockfile/types.js.map +1 -1
- package/dist/esm/node.d.ts +23 -2
- package/dist/esm/node.d.ts.map +1 -1
- package/dist/esm/node.js +17 -0
- package/dist/esm/node.js.map +1 -1
- package/dist/esm/reify/add-nodes.d.ts.map +1 -1
- package/dist/esm/reify/add-nodes.js +4 -2
- package/dist/esm/reify/add-nodes.js.map +1 -1
- package/dist/esm/reify/index.js +7 -2
- package/dist/esm/reify/index.js.map +1 -1
- package/dist/esm/resolve-save-type.d.ts +1 -2
- package/dist/esm/resolve-save-type.d.ts.map +1 -1
- package/dist/esm/resolve-save-type.js.map +1 -1
- package/dist/esm/stringify-node.d.ts +1 -1
- package/dist/esm/stringify-node.d.ts.map +1 -1
- package/dist/esm/stringify-node.js.map +1 -1
- package/dist/esm/transfer-data/load.d.ts +44 -0
- package/dist/esm/transfer-data/load.d.ts.map +1 -0
- package/dist/esm/transfer-data/load.js +176 -0
- package/dist/esm/transfer-data/load.js.map +1 -0
- package/dist/esm/virtual-root.d.ts +16 -0
- package/dist/esm/virtual-root.d.ts.map +1 -0
- package/dist/esm/virtual-root.js +78 -0
- package/dist/esm/virtual-root.js.map +1 -0
- package/dist/esm/visualization/human-readable-output.d.ts +1 -1
- package/dist/esm/visualization/human-readable-output.d.ts.map +1 -1
- package/dist/esm/visualization/human-readable-output.js +16 -3
- package/dist/esm/visualization/human-readable-output.js.map +1 -1
- package/dist/esm/visualization/json-output.d.ts +3 -3
- package/dist/esm/visualization/json-output.d.ts.map +1 -1
- package/dist/esm/visualization/json-output.js +34 -13
- package/dist/esm/visualization/json-output.js.map +1 -1
- package/dist/esm/visualization/mermaid-output.d.ts +1 -1
- package/dist/esm/visualization/mermaid-output.d.ts.map +1 -1
- package/dist/esm/visualization/mermaid-output.js.map +1 -1
- package/dist/esm/visualization/object-like-output.d.ts +1 -1
- package/dist/esm/visualization/object-like-output.d.ts.map +1 -1
- package/dist/esm/visualization/object-like-output.js.map +1 -1
- package/package.json +20 -19
- package/dist/esm/types.d.ts +0 -51
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Returns a JSON string representation of the graph.
|
|
3
3
|
*/
|
|
4
|
-
export function jsonOutput({ edges,
|
|
4
|
+
export function jsonOutput({ edges, importers }) {
|
|
5
5
|
const res = [];
|
|
6
|
-
|
|
7
|
-
for (const node of nodes) {
|
|
8
|
-
if (node.importer) {
|
|
9
|
-
res.push({
|
|
10
|
-
/* c8 ignore next - name can't be missing but ts won't know */
|
|
11
|
-
name: node.name || node.id,
|
|
12
|
-
to: node,
|
|
13
|
-
overridden: false,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
}
|
|
6
|
+
const seenIds = new Set();
|
|
17
7
|
// Collects edge & it's linked nodes as json output items
|
|
18
|
-
|
|
8
|
+
const orderedEdges = [...edges].sort((a, b) => {
|
|
9
|
+
const aIsWorkspace = a.spec.type === 'workspace';
|
|
10
|
+
const bIsWorkspace = b.spec.type === 'workspace';
|
|
11
|
+
if (aIsWorkspace && !bIsWorkspace)
|
|
12
|
+
return -1;
|
|
13
|
+
/* c8 ignore next */
|
|
14
|
+
if (!aIsWorkspace && bIsWorkspace)
|
|
15
|
+
return 1;
|
|
16
|
+
return 0; // preserve original order otherwise
|
|
17
|
+
});
|
|
18
|
+
for (const edge of orderedEdges) {
|
|
19
|
+
if (edge.to)
|
|
20
|
+
seenIds.add(edge.to.id);
|
|
19
21
|
res.push({
|
|
20
22
|
name: edge.name,
|
|
21
23
|
fromID: edge.from.id,
|
|
@@ -25,6 +27,25 @@ export function jsonOutput({ edges, nodes }) {
|
|
|
25
27
|
overridden: edge.spec.overridden,
|
|
26
28
|
});
|
|
27
29
|
}
|
|
30
|
+
// Collects included importer nodes json output items
|
|
31
|
+
/* c8 ignore next 3 */
|
|
32
|
+
const orderedImporters = [...importers].sort((a, b) => {
|
|
33
|
+
if (!a.name)
|
|
34
|
+
return 1;
|
|
35
|
+
if (!b.name)
|
|
36
|
+
return -1;
|
|
37
|
+
return a.name.localeCompare(b.name);
|
|
38
|
+
});
|
|
39
|
+
for (const node of orderedImporters) {
|
|
40
|
+
if (seenIds.has(node.id))
|
|
41
|
+
continue;
|
|
42
|
+
res.unshift({
|
|
43
|
+
/* c8 ignore next - name can't be missing but ts won't know */
|
|
44
|
+
name: node.name || node.id,
|
|
45
|
+
to: node,
|
|
46
|
+
overridden: false,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
28
49
|
return res;
|
|
29
50
|
}
|
|
30
51
|
//# sourceMappingURL=json-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../../src/visualization/json-output.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../../src/visualization/json-output.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAmB;IAC9D,MAAM,GAAG,GAAqB,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAS,CAAA;IAEhC,yDAAyD;IACzD,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAA;QAChD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAA;QAChD,IAAI,YAAY,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC,CAAA;QAC5C,oBAAoB;QACpB,IAAI,CAAC,YAAY,IAAI,YAAY;YAAE,OAAO,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA,CAAC,oCAAoC;IAC/C,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACpC,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;SACjC,CAAC,CAAA;IACJ,CAAC;IAED,qDAAqD;IACrD,sBAAsB;IACtB,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,CAAC,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;QACrB,IAAI,CAAC,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAQ;QAClC,GAAG,CAAC,OAAO,CAAC;YACV,8DAA8D;YAC9D,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YAC1B,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["import type { DepID } from '@vltpkg/dep-id'\nimport type { EdgeLike, NodeLike } from '@vltpkg/types'\n\n/**\n * A JSON output item describes a package that is present in the install\n * graph. It represents an edge plus it's linking Node.\n */\nexport type JSONOutputItem = {\n /**\n * The name of the package.\n */\n name: string\n /**\n * A reference to the id of the Node that this package is linked from.\n */\n fromID?: DepID\n /**\n * The dependency spec definition for this package.\n */\n spec?: string\n /**\n * The package type.\n */\n type?: EdgeLike['type']\n /**\n * A representation of the package object that fulfills this dependency.\n */\n to?: NodeLike\n /**\n * Whether this edge was overridden by a graph modifier.\n */\n overridden: boolean\n}\n\nexport type JSONOutputGraph = {\n edges: EdgeLike[]\n importers: Set<NodeLike>\n}\n\n/**\n * Returns a JSON string representation of the graph.\n */\nexport function jsonOutput({ edges, importers }: JSONOutputGraph) {\n const res: JSONOutputItem[] = []\n const seenIds = new Set<DepID>()\n\n // Collects edge & it's linked nodes as json output items\n const orderedEdges = [...edges].sort((a, b) => {\n const aIsWorkspace = a.spec.type === 'workspace'\n const bIsWorkspace = b.spec.type === 'workspace'\n if (aIsWorkspace && !bIsWorkspace) return -1\n /* c8 ignore next */\n if (!aIsWorkspace && bIsWorkspace) return 1\n return 0 // preserve original order otherwise\n })\n for (const edge of orderedEdges) {\n if (edge.to) seenIds.add(edge.to.id)\n res.push({\n name: edge.name,\n fromID: edge.from.id,\n spec: String(edge.spec),\n type: edge.type,\n to: edge.to,\n overridden: edge.spec.overridden,\n })\n }\n\n // Collects included importer nodes json output items\n /* c8 ignore next 3 */\n const orderedImporters = [...importers].sort((a, b) => {\n if (!a.name) return 1\n if (!b.name) return -1\n return a.name.localeCompare(b.name)\n })\n for (const node of orderedImporters) {\n if (seenIds.has(node.id)) continue\n res.unshift({\n /* c8 ignore next - name can't be missing but ts won't know */\n name: node.name || node.id,\n to: node,\n overridden: false,\n })\n }\n\n return res\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-output.d.ts","sourceRoot":"","sources":["../../../src/visualization/mermaid-output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mermaid-output.d.ts","sourceRoot":"","sources":["../../../src/visualization/mermaid-output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB,CAAA;AASD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA0BrD;AA+ED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,UA+CpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-output.js","sourceRoot":"","sources":["../../../src/visualization/mermaid-output.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DepID } from '@vltpkg/dep-id'\nimport { Edge } from '../edge.ts'\nimport { Node } from '../node.ts'\nimport type { EdgeLike, NodeLike } from '
|
|
1
|
+
{"version":3,"file":"mermaid-output.js","sourceRoot":"","sources":["../../../src/visualization/mermaid-output.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DepID } from '@vltpkg/dep-id'\nimport { Edge } from '../edge.ts'\nimport { Node } from '../node.ts'\nimport type { EdgeLike, NodeLike } from '@vltpkg/types'\n\nexport type MermaidOutputGraph = {\n edges: EdgeLike[]\n importers: Set<NodeLike>\n nodes: NodeLike[]\n}\n\ntype TraverseItem = {\n self: EdgeLike | NodeLike\n parent: EdgeLike | NodeLike | undefined\n}\n\nlet missingCount = 0\n\n/**\n * Generates a short identifier for a given index following the pattern:\n * 0 -> a, 1 -> b, ..., 25 -> z, 26 -> A, ..., 51 -> Z, 52 -> aa, 53 -> ab, etc.\n * This implements a bijective base-52 numbering system where a-z = 0-25, A-Z = 26-51\n */\nexport function generateShortId(index: number): string {\n const base = 52\n\n // Helper function to convert a digit (0-51) to character\n const digitToChar = (digit: number): string => {\n if (digit < 26) {\n // a-z (0-25)\n return String.fromCharCode(97 + digit)\n } else {\n // A-Z (26-51)\n return String.fromCharCode(65 + (digit - 26))\n }\n }\n\n // Bijective base-52 conversion\n let result = ''\n let num = index + 1 // Convert to 1-based for bijective base\n\n while (num > 0) {\n num-- // Adjust for 0-based indexing in each position\n const remainder = num % base\n result = digitToChar(remainder) + result\n num = Math.floor(num / base)\n }\n\n return result\n}\n\n/**\n * Creates a mapping from DepID to short identifier\n */\nfunction createDepIdMapping(\n importers: Set<NodeLike>,\n): Map<DepID, string> {\n const mapping = new Map<DepID, string>()\n const uniqueDepIds = new Set<DepID>()\n\n // Collect all unique DepIDs from nodes & importers\n const [importer] = importers\n if (importer) {\n for (const node of importer.graph.nodes.values()) {\n uniqueDepIds.add(node.id)\n }\n }\n\n // Create mapping for each unique DepID\n let index = 0\n for (const depId of uniqueDepIds) {\n mapping.set(depId, generateShortId(index++))\n }\n\n return mapping\n}\n\nconst nodeLabel = (node: NodeLike) =>\n `\"${String(node).replaceAll('@', '#64;')}\"`\n\nfunction parseNode(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\n depIdMapping: Map<DepID, string>,\n node: NodeLike,\n) {\n if (seenNodes.has(node.id) || !includedItems.get(node)) {\n return ''\n }\n seenNodes.add(node.id)\n const edges: string = [...node.edgesOut.values()]\n .map(e => parseEdge(seenNodes, includedItems, depIdMapping, e))\n .filter(Boolean)\n .join('\\n')\n const shortId = depIdMapping.get(node.id)\n return `${shortId}(${nodeLabel(node)})${edges.length ? '\\n' : ''}${edges}`\n}\n\nfunction parseEdge(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\n depIdMapping: Map<DepID, string>,\n edge: EdgeLike,\n) {\n if (!includedItems.get(edge)) {\n return ''\n }\n\n const fromShortId = depIdMapping.get(edge.from.id)\n const edgeType = edge.type === 'prod' ? '' : ` (${edge.type})`\n const edgeResult =\n `${fromShortId}(${nodeLabel(edge.from)})` +\n ` -->|\"${String(edge.spec).replaceAll('@', '#64;')}${edgeType}\"| `\n\n const missingLabel =\n edge.type.endsWith('ptional') ? 'Missing Optional' : 'Missing'\n if (!edge.to) {\n return edgeResult + `missing-${missingCount++}(${missingLabel})\\n`\n }\n\n const toShortId = depIdMapping.get(edge.to.id)\n return (\n edgeResult +\n `${toShortId}(${nodeLabel(edge.to)})\\n` +\n parseNode(seenNodes, includedItems, depIdMapping, edge.to)\n )\n}\n\n/**\n * Returns a mermaid string representation of the graph.\n */\nexport function mermaidOutput({\n edges,\n importers,\n nodes,\n}: MermaidOutputGraph) {\n const seen = new Set<EdgeLike | NodeLike>()\n const includedItems = new Map<EdgeLike | NodeLike, boolean>()\n const traverse = new Set<TraverseItem>(\n [...importers].map(i => ({ self: i, parent: undefined })),\n )\n\n for (const item of traverse) {\n if (seen.has(item.self)) continue\n seen.add(item.self)\n\n if (item.self instanceof Edge) {\n if (edges.includes(item.self)) {\n includedItems.set(item.self, true)\n }\n if (item.self.to) {\n traverse.add({ self: item.self.to, parent: item.self })\n }\n }\n\n if (item.self instanceof Node) {\n if (nodes.includes(item.self)) {\n includedItems.set(item.self, true)\n }\n for (const edge of item.self.edgesOut.values()) {\n traverse.add({ self: edge, parent: item.self })\n }\n }\n }\n\n for (const item of [...traverse].reverse()) {\n if (includedItems.has(item.self) && item.parent) {\n includedItems.set(item.parent, true)\n }\n }\n\n // Create DepID to short identifier mapping\n const depIdMapping = createDepIdMapping(importers)\n\n return (\n 'flowchart TD\\n' +\n [...importers]\n .map(i =>\n parseNode(new Set<DepID>(), includedItems, depIdMapping, i),\n )\n .join('\\n')\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-like-output.d.ts","sourceRoot":"","sources":["../../../src/visualization/object-like-output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"object-like-output.d.ts","sourceRoot":"","sources":["../../../src/visualization/object-like-output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,SAAS,EAAY,MAAM,eAAe,CAAA;AA8DlE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAOhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-like-output.js","sourceRoot":"","sources":["../../../src/visualization/object-like-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from 'node:util'\nimport type { EdgeLike, GraphLike, NodeLike } from '
|
|
1
|
+
{"version":3,"file":"object-like-output.js","sourceRoot":"","sources":["../../../src/visualization/object-like-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from 'node:util'\nimport type { EdgeLike, GraphLike, NodeLike } from '@vltpkg/types'\n\nconst addInspect = (o: unknown, fn: () => string) =>\n ((o as { [K in typeof inspect.custom]: () => string })[\n inspect.custom\n ] = fn)\n\nfunction parseNode(\n seenNodes: Set<NodeLike>,\n graph: GraphLike,\n node: NodeLike,\n) {\n addInspect(node, () => {\n const res =\n 'Node ' +\n inspect(\n seenNodes.has(node) ?\n { ref: node.id }\n : {\n id: node.id,\n location: node.location,\n ...(node.importer ? { importer: true } : null),\n ...(node.dev ? { dev: true } : null),\n ...(node.optional ? { optional: true } : null),\n ...(node.resolved ? { resolved: node.resolved } : null),\n ...(node.integrity ?\n { integrity: node.integrity }\n : null),\n ...(node.edgesOut.size ?\n {\n edgesOut: [...node.edgesOut.values()].map(i => {\n seenNodes.add(node)\n return parseEdge(seenNodes, graph, i)\n }),\n }\n : (seenNodes.add(node), null)),\n },\n { depth: Infinity },\n )\n return res\n })\n return node\n}\n\nfunction parseEdge(\n seenNodes: Set<NodeLike>,\n graph: GraphLike,\n edge: EdgeLike,\n) {\n addInspect(edge, () => {\n const missingNode = `[missing package]: <${edge.name}@${edge.spec.bareSpec}>`\n const toLabel: string =\n edge.to ?\n inspect(parseNode(seenNodes, graph, edge.to), {\n depth: Infinity,\n })\n : missingNode\n return `Edge spec(${String(edge.spec)}) -${edge.type}-> to: ${toLabel}`\n })\n return edge\n}\n\nexport function objectLikeOutput(graph: GraphLike) {\n const seenNodes = new Set<NodeLike>()\n const importers = [...graph.importers]\n return inspect(\n importers.map(i => parseNode(seenNodes, graph, i)),\n { depth: Infinity },\n )\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vltpkg/graph",
|
|
3
3
|
"description": "A library that helps understanding & expressing what happens on an install",
|
|
4
|
-
"version": "0.0.0-
|
|
4
|
+
"version": "0.0.0-30",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/vltpkg/vltpkg.git",
|
|
@@ -24,23 +24,24 @@
|
|
|
24
24
|
"graph-run": "^1.1.0",
|
|
25
25
|
"path-scurry": "^2.0.0",
|
|
26
26
|
"promise-call-limit": "^3.0.2",
|
|
27
|
-
"@vltpkg/cmd-shim": "0.0.0-
|
|
28
|
-
"@vltpkg/dep-id": "0.0.0-
|
|
29
|
-
"@vltpkg/dss-breadcrumb": "0.0.0-
|
|
30
|
-
"@vltpkg/error-cause": "0.0.0-
|
|
31
|
-
"@vltpkg/
|
|
32
|
-
"@vltpkg/output": "0.0.0-
|
|
33
|
-
"@vltpkg/
|
|
34
|
-
"@vltpkg/package-info": "0.0.0-
|
|
35
|
-
"@vltpkg/package-json": "0.0.0-
|
|
36
|
-
"@vltpkg/
|
|
37
|
-
"@vltpkg/
|
|
38
|
-
"@vltpkg/
|
|
39
|
-
"@vltpkg/
|
|
40
|
-
"@vltpkg/
|
|
41
|
-
"@vltpkg/
|
|
42
|
-
"@vltpkg/
|
|
43
|
-
"@vltpkg/
|
|
27
|
+
"@vltpkg/cmd-shim": "0.0.0-30",
|
|
28
|
+
"@vltpkg/dep-id": "0.0.0-30",
|
|
29
|
+
"@vltpkg/dss-breadcrumb": "0.0.0-30",
|
|
30
|
+
"@vltpkg/error-cause": "0.0.0-30",
|
|
31
|
+
"@vltpkg/init": "0.0.0-30",
|
|
32
|
+
"@vltpkg/output": "0.0.0-30",
|
|
33
|
+
"@vltpkg/fast-split": "0.0.0-30",
|
|
34
|
+
"@vltpkg/package-info": "0.0.0-30",
|
|
35
|
+
"@vltpkg/package-json": "0.0.0-30",
|
|
36
|
+
"@vltpkg/pick-manifest": "0.0.0-30",
|
|
37
|
+
"@vltpkg/rollback-remove": "0.0.0-30",
|
|
38
|
+
"@vltpkg/run": "0.0.0-30",
|
|
39
|
+
"@vltpkg/satisfies": "0.0.0-30",
|
|
40
|
+
"@vltpkg/security-archive": "0.0.0-30",
|
|
41
|
+
"@vltpkg/spec": "0.0.0-30",
|
|
42
|
+
"@vltpkg/types": "0.0.0-30",
|
|
43
|
+
"@vltpkg/vlt-json": "0.0.0-30",
|
|
44
|
+
"@vltpkg/workspaces": "0.0.0-30"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@eslint/js": "^9.34.0",
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
"typedoc": "~0.27.9",
|
|
54
55
|
"typescript": "5.7.3",
|
|
55
56
|
"typescript-eslint": "^8.40.0",
|
|
56
|
-
"@vltpkg/vlt-json": "0.0.0-
|
|
57
|
+
"@vltpkg/vlt-json": "0.0.0-30"
|
|
57
58
|
},
|
|
58
59
|
"license": "BSD-2-Clause-Patent",
|
|
59
60
|
"engines": {
|
package/dist/esm/types.d.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { DepID } from '@vltpkg/dep-id';
|
|
2
|
-
import type { NormalizedManifest, DependencyTypeShort } from '@vltpkg/types';
|
|
3
|
-
import type { Spec, SpecLikeBase } from '@vltpkg/spec';
|
|
4
|
-
export type EdgeLike = {
|
|
5
|
-
name: string;
|
|
6
|
-
from: NodeLike;
|
|
7
|
-
spec: SpecLikeBase;
|
|
8
|
-
to?: NodeLike;
|
|
9
|
-
type: DependencyTypeShort;
|
|
10
|
-
optional?: boolean;
|
|
11
|
-
peer?: boolean;
|
|
12
|
-
};
|
|
13
|
-
export type GraphLike = {
|
|
14
|
-
importers: Set<NodeLike>;
|
|
15
|
-
mainImporter: NodeLike;
|
|
16
|
-
projectRoot: string;
|
|
17
|
-
nodes: Map<DepID, NodeLike>;
|
|
18
|
-
nodesByName: Map<string, Set<NodeLike>>;
|
|
19
|
-
edges: Set<EdgeLike>;
|
|
20
|
-
addEdge: (type: DependencyTypeShort, spec: Spec, from: NodeLike, to?: NodeLike) => EdgeLike;
|
|
21
|
-
addNode: (id?: DepID, manifest?: NormalizedManifest, spec?: Spec, name?: string, version?: string) => NodeLike;
|
|
22
|
-
};
|
|
23
|
-
export type NodeLike = {
|
|
24
|
-
id: DepID;
|
|
25
|
-
confused: boolean;
|
|
26
|
-
edgesIn: Set<EdgeLike>;
|
|
27
|
-
edgesOut: Map<string, EdgeLike>;
|
|
28
|
-
location?: string;
|
|
29
|
-
manifest?: NormalizedManifest | null;
|
|
30
|
-
rawManifest?: NormalizedManifest | null;
|
|
31
|
-
name?: string | null;
|
|
32
|
-
version?: string | null;
|
|
33
|
-
integrity?: string | null;
|
|
34
|
-
resolved?: string | null;
|
|
35
|
-
importer: boolean;
|
|
36
|
-
graph: GraphLike;
|
|
37
|
-
mainImporter: boolean;
|
|
38
|
-
projectRoot: string;
|
|
39
|
-
dev: boolean;
|
|
40
|
-
optional: boolean;
|
|
41
|
-
modifier?: string | undefined;
|
|
42
|
-
registry?: string;
|
|
43
|
-
toJSON: () => Pick<NodeLike, 'id' | 'name' | 'version' | 'location' | 'importer' | 'manifest' | 'projectRoot' | 'integrity' | 'resolved' | 'dev' | 'optional' | 'confused'> & {
|
|
44
|
-
rawManifest?: NodeLike['manifest'];
|
|
45
|
-
};
|
|
46
|
-
toString(): string;
|
|
47
|
-
setResolved(): void;
|
|
48
|
-
setConfusedManifest(fixed: NormalizedManifest, confused?: NormalizedManifest): void;
|
|
49
|
-
maybeSetConfusedManifest(spec: Spec, confused?: NormalizedManifest): void;
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/esm/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
DELETED
package/dist/esm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { DepID } from '@vltpkg/dep-id'\nimport type {\n NormalizedManifest,\n DependencyTypeShort,\n} from '@vltpkg/types'\nimport type { Spec, SpecLikeBase } from '@vltpkg/spec'\n\nexport type EdgeLike = {\n name: string\n from: NodeLike\n spec: SpecLikeBase\n to?: NodeLike\n type: DependencyTypeShort\n optional?: boolean\n peer?: boolean\n}\n\nexport type GraphLike = {\n importers: Set<NodeLike>\n mainImporter: NodeLike\n projectRoot: string\n nodes: Map<DepID, NodeLike>\n nodesByName: Map<string, Set<NodeLike>>\n edges: Set<EdgeLike>\n addEdge: (\n type: DependencyTypeShort,\n spec: Spec,\n from: NodeLike,\n to?: NodeLike,\n ) => EdgeLike\n addNode: (\n id?: DepID,\n manifest?: NormalizedManifest,\n spec?: Spec,\n name?: string,\n version?: string,\n ) => NodeLike\n}\n\nexport type NodeLike = {\n id: DepID\n confused: boolean\n edgesIn: Set<EdgeLike>\n edgesOut: Map<string, EdgeLike>\n location?: string\n manifest?: NormalizedManifest | null\n rawManifest?: NormalizedManifest | null\n name?: string | null\n version?: string | null\n integrity?: string | null\n resolved?: string | null\n importer: boolean\n graph: GraphLike\n mainImporter: boolean\n projectRoot: string\n dev: boolean\n optional: boolean\n modifier?: string | undefined\n registry?: string\n toJSON: () => Pick<\n NodeLike,\n | 'id'\n | 'name'\n | 'version'\n | 'location'\n | 'importer'\n | 'manifest'\n | 'projectRoot'\n | 'integrity'\n | 'resolved'\n | 'dev'\n | 'optional'\n | 'confused'\n > & {\n rawManifest?: NodeLike['manifest']\n }\n toString(): string\n setResolved(): void\n setConfusedManifest(\n fixed: NormalizedManifest,\n confused?: NormalizedManifest,\n ): void\n maybeSetConfusedManifest(\n spec: Spec,\n confused?: NormalizedManifest,\n ): void\n}\n"]}
|