@vltpkg/graph 0.0.0-0.1730724342581 → 0.0.0-11

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.
Files changed (164) hide show
  1. package/README.md +13 -12
  2. package/dist/esm/actual/load.d.ts +6 -6
  3. package/dist/esm/actual/load.d.ts.map +1 -1
  4. package/dist/esm/actual/load.js +8 -4
  5. package/dist/esm/actual/load.js.map +1 -1
  6. package/dist/esm/browser.d.ts +8 -6
  7. package/dist/esm/browser.d.ts.map +1 -1
  8. package/dist/esm/browser.js +8 -6
  9. package/dist/esm/browser.js.map +1 -1
  10. package/dist/esm/dependencies.d.ts +19 -29
  11. package/dist/esm/dependencies.d.ts.map +1 -1
  12. package/dist/esm/dependencies.js +4 -31
  13. package/dist/esm/dependencies.js.map +1 -1
  14. package/dist/esm/diff.d.ts +4 -4
  15. package/dist/esm/diff.d.ts.map +1 -1
  16. package/dist/esm/diff.js.map +1 -1
  17. package/dist/esm/edge.d.ts +5 -5
  18. package/dist/esm/edge.d.ts.map +1 -1
  19. package/dist/esm/edge.js +1 -1
  20. package/dist/esm/edge.js.map +1 -1
  21. package/dist/esm/graph.d.ts +12 -12
  22. package/dist/esm/graph.d.ts.map +1 -1
  23. package/dist/esm/graph.js +8 -6
  24. package/dist/esm/graph.js.map +1 -1
  25. package/dist/esm/ideal/add-nodes.d.ts +4 -4
  26. package/dist/esm/ideal/add-nodes.d.ts.map +1 -1
  27. package/dist/esm/ideal/add-nodes.js +8 -4
  28. package/dist/esm/ideal/add-nodes.js.map +1 -1
  29. package/dist/esm/ideal/append-nodes.d.ts +8 -8
  30. package/dist/esm/ideal/append-nodes.d.ts.map +1 -1
  31. package/dist/esm/ideal/append-nodes.js +37 -15
  32. package/dist/esm/ideal/append-nodes.js.map +1 -1
  33. package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts +3 -3
  34. package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts.map +1 -1
  35. package/dist/esm/ideal/build-ideal-from-starting-graph.js +28 -5
  36. package/dist/esm/ideal/build-ideal-from-starting-graph.js.map +1 -1
  37. package/dist/esm/ideal/build.d.ts +4 -4
  38. package/dist/esm/ideal/build.d.ts.map +1 -1
  39. package/dist/esm/ideal/build.js +8 -4
  40. package/dist/esm/ideal/build.js.map +1 -1
  41. package/dist/esm/ideal/get-importer-specs.d.ts +2 -2
  42. package/dist/esm/ideal/get-importer-specs.d.ts.map +1 -1
  43. package/dist/esm/ideal/get-importer-specs.js +39 -11
  44. package/dist/esm/ideal/get-importer-specs.js.map +1 -1
  45. package/dist/esm/ideal/remove-nodes.d.ts +1 -1
  46. package/dist/esm/ideal/remove-nodes.d.ts.map +1 -1
  47. package/dist/esm/ideal/remove-nodes.js.map +1 -1
  48. package/dist/esm/ideal/remove-satisfied-specs.d.ts +1 -1
  49. package/dist/esm/ideal/remove-satisfied-specs.d.ts.map +1 -1
  50. package/dist/esm/ideal/remove-satisfied-specs.js.map +1 -1
  51. package/dist/esm/ideal/types.d.ts +3 -3
  52. package/dist/esm/ideal/types.d.ts.map +1 -1
  53. package/dist/esm/ideal/types.js.map +1 -1
  54. package/dist/esm/index.d.ts +25 -22
  55. package/dist/esm/index.d.ts.map +1 -1
  56. package/dist/esm/index.js +20 -17
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/install.d.ts +11 -0
  59. package/dist/esm/install.d.ts.map +1 -0
  60. package/dist/esm/install.js +26 -0
  61. package/dist/esm/install.js.map +1 -0
  62. package/dist/esm/lockfile/load-edges.d.ts +3 -3
  63. package/dist/esm/lockfile/load-edges.d.ts.map +1 -1
  64. package/dist/esm/lockfile/load-edges.js +2 -1
  65. package/dist/esm/lockfile/load-edges.js.map +1 -1
  66. package/dist/esm/lockfile/load-nodes.d.ts +2 -2
  67. package/dist/esm/lockfile/load-nodes.d.ts.map +1 -1
  68. package/dist/esm/lockfile/load-nodes.js +7 -2
  69. package/dist/esm/lockfile/load-nodes.js.map +1 -1
  70. package/dist/esm/lockfile/load.d.ts +5 -5
  71. package/dist/esm/lockfile/load.d.ts.map +1 -1
  72. package/dist/esm/lockfile/load.js +6 -4
  73. package/dist/esm/lockfile/load.js.map +1 -1
  74. package/dist/esm/lockfile/save.d.ts +5 -5
  75. package/dist/esm/lockfile/save.d.ts.map +1 -1
  76. package/dist/esm/lockfile/save.js +6 -3
  77. package/dist/esm/lockfile/save.js.map +1 -1
  78. package/dist/esm/lockfile/types.d.ts +5 -5
  79. package/dist/esm/lockfile/types.d.ts.map +1 -1
  80. package/dist/esm/lockfile/types.js.map +1 -1
  81. package/dist/esm/node.d.ts +34 -15
  82. package/dist/esm/node.d.ts.map +1 -1
  83. package/dist/esm/node.js +57 -17
  84. package/dist/esm/node.js.map +1 -1
  85. package/dist/esm/reify/add-edge.d.ts +4 -4
  86. package/dist/esm/reify/add-edge.d.ts.map +1 -1
  87. package/dist/esm/reify/add-edge.js +22 -11
  88. package/dist/esm/reify/add-edge.js.map +1 -1
  89. package/dist/esm/reify/add-edges.d.ts +4 -4
  90. package/dist/esm/reify/add-edges.d.ts.map +1 -1
  91. package/dist/esm/reify/add-edges.js +2 -2
  92. package/dist/esm/reify/add-edges.js.map +1 -1
  93. package/dist/esm/reify/add-nodes.d.ts +5 -5
  94. package/dist/esm/reify/add-nodes.d.ts.map +1 -1
  95. package/dist/esm/reify/add-nodes.js +10 -7
  96. package/dist/esm/reify/add-nodes.js.map +1 -1
  97. package/dist/esm/reify/bin-paths.d.ts +1 -1
  98. package/dist/esm/reify/bin-paths.d.ts.map +1 -1
  99. package/dist/esm/reify/bin-paths.js.map +1 -1
  100. package/dist/esm/reify/build.d.ts +3 -3
  101. package/dist/esm/reify/build.d.ts.map +1 -1
  102. package/dist/esm/reify/build.js +9 -9
  103. package/dist/esm/reify/build.js.map +1 -1
  104. package/dist/esm/reify/delete-edge.d.ts +3 -3
  105. package/dist/esm/reify/delete-edge.d.ts.map +1 -1
  106. package/dist/esm/reify/delete-edge.js +3 -3
  107. package/dist/esm/reify/delete-edge.js.map +1 -1
  108. package/dist/esm/reify/delete-edges.d.ts +3 -3
  109. package/dist/esm/reify/delete-edges.d.ts.map +1 -1
  110. package/dist/esm/reify/delete-edges.js +1 -1
  111. package/dist/esm/reify/delete-edges.js.map +1 -1
  112. package/dist/esm/reify/delete-nodes.d.ts +3 -3
  113. package/dist/esm/reify/delete-nodes.d.ts.map +1 -1
  114. package/dist/esm/reify/delete-nodes.js +4 -0
  115. package/dist/esm/reify/delete-nodes.js.map +1 -1
  116. package/dist/esm/reify/index.d.ts +6 -5
  117. package/dist/esm/reify/index.d.ts.map +1 -1
  118. package/dist/esm/reify/index.js +25 -19
  119. package/dist/esm/reify/index.js.map +1 -1
  120. package/dist/esm/reify/optional-fail.d.ts +2 -2
  121. package/dist/esm/reify/optional-fail.d.ts.map +1 -1
  122. package/dist/esm/reify/optional-fail.js +1 -1
  123. package/dist/esm/reify/optional-fail.js.map +1 -1
  124. package/dist/esm/reify/rollback.d.ts +2 -2
  125. package/dist/esm/reify/rollback.d.ts.map +1 -1
  126. package/dist/esm/reify/rollback.js +1 -1
  127. package/dist/esm/reify/rollback.js.map +1 -1
  128. package/dist/esm/reify/update-importers-package-json.d.ts +3 -3
  129. package/dist/esm/reify/update-importers-package-json.d.ts.map +1 -1
  130. package/dist/esm/reify/update-importers-package-json.js +25 -6
  131. package/dist/esm/reify/update-importers-package-json.js.map +1 -1
  132. package/dist/esm/remove-optional-subgraph.d.ts +2 -2
  133. package/dist/esm/remove-optional-subgraph.d.ts.map +1 -1
  134. package/dist/esm/remove-optional-subgraph.js.map +1 -1
  135. package/dist/esm/resolve-save-type.d.ts +7 -0
  136. package/dist/esm/resolve-save-type.d.ts.map +1 -0
  137. package/dist/esm/resolve-save-type.js +5 -0
  138. package/dist/esm/resolve-save-type.js.map +1 -0
  139. package/dist/esm/stringify-node.d.ts +1 -1
  140. package/dist/esm/stringify-node.d.ts.map +1 -1
  141. package/dist/esm/stringify-node.js.map +1 -1
  142. package/dist/esm/types.d.ts +13 -4
  143. package/dist/esm/types.d.ts.map +1 -1
  144. package/dist/esm/types.js.map +1 -1
  145. package/dist/esm/uninstall.d.ts +11 -0
  146. package/dist/esm/uninstall.d.ts.map +1 -0
  147. package/dist/esm/uninstall.js +26 -0
  148. package/dist/esm/uninstall.js.map +1 -0
  149. package/dist/esm/visualization/human-readable-output.d.ts +7 -7
  150. package/dist/esm/visualization/human-readable-output.d.ts.map +1 -1
  151. package/dist/esm/visualization/human-readable-output.js +35 -21
  152. package/dist/esm/visualization/human-readable-output.js.map +1 -1
  153. package/dist/esm/visualization/json-output.d.ts +4 -4
  154. package/dist/esm/visualization/json-output.d.ts.map +1 -1
  155. package/dist/esm/visualization/json-output.js +1 -1
  156. package/dist/esm/visualization/json-output.js.map +1 -1
  157. package/dist/esm/visualization/mermaid-output.d.ts +3 -3
  158. package/dist/esm/visualization/mermaid-output.d.ts.map +1 -1
  159. package/dist/esm/visualization/mermaid-output.js +2 -2
  160. package/dist/esm/visualization/mermaid-output.js.map +1 -1
  161. package/dist/esm/visualization/object-like-output.d.ts +1 -1
  162. package/dist/esm/visualization/object-like-output.d.ts.map +1 -1
  163. package/dist/esm/visualization/object-like-output.js.map +1 -1
  164. package/package.json +34 -28
@@ -1,5 +1,5 @@
1
- import { Edge } from '../edge.js';
2
- import { Node } from '../node.js';
1
+ import { Edge } from "../edge.js";
2
+ import { Node } from "../node.js";
3
3
  let missingCount = 0;
4
4
  const nodeLabel = (node) => `"${String(node).replaceAll('@', '#64;')}"`;
5
5
  function parseNode(seenNodes, includedItems, node) {
@@ -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.js'\nimport { Node } from '../node.js'\nimport { type EdgeLike, type NodeLike } from '../types.js'\n\nexport type MermaidOutputOptions = {\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\nconst nodeLabel = (node: NodeLike) =>\n `\"${String(node).replaceAll('@', '#64;')}\"`\n\nfunction parseNode(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\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, e))\n .filter(Boolean)\n .join('\\n')\n return `${encodeURIComponent(node.id)}(${nodeLabel(node)})${edges.length ? '\\n' : ''}${edges}`\n}\n\nfunction parseEdge(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\n edge: EdgeLike,\n) {\n if (!includedItems.get(edge)) {\n return ''\n }\n\n const edgeResult =\n `${encodeURIComponent(edge.from.id)}(${nodeLabel(edge.from)})` +\n ` -->|\"${String(edge.spec).replaceAll('@', '#64;')} (${edge.type})\"| `\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 return (\n edgeResult +\n `${encodeURIComponent(edge.to.id)}(${nodeLabel(edge.to)})\\n` +\n parseNode(seenNodes, includedItems, 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}: MermaidOutputOptions) {\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 return (\n 'flowchart TD\\n' +\n [...importers]\n .map(i => parseNode(new Set<DepID>(), includedItems, i))\n .join('\\n')\n )\n}\n"]}
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 '../types.ts'\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\nconst nodeLabel = (node: NodeLike) =>\n `\"${String(node).replaceAll('@', '#64;')}\"`\n\nfunction parseNode(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\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, e))\n .filter(Boolean)\n .join('\\n')\n return `${encodeURIComponent(node.id)}(${nodeLabel(node)})${edges.length ? '\\n' : ''}${edges}`\n}\n\nfunction parseEdge(\n seenNodes: Set<DepID>,\n includedItems: Map<EdgeLike | NodeLike, boolean>,\n edge: EdgeLike,\n) {\n if (!includedItems.get(edge)) {\n return ''\n }\n\n const edgeResult =\n `${encodeURIComponent(edge.from.id)}(${nodeLabel(edge.from)})` +\n ` -->|\"${String(edge.spec).replaceAll('@', '#64;')} (${edge.type})\"| `\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 return (\n edgeResult +\n `${encodeURIComponent(edge.to.id)}(${nodeLabel(edge.to)})\\n` +\n parseNode(seenNodes, includedItems, 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 return (\n 'flowchart TD\\n' +\n [...importers]\n .map(i => parseNode(new Set<DepID>(), includedItems, i))\n .join('\\n')\n )\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type GraphLike } from '../types.js';
1
+ import type { GraphLike } from '../types.ts';
2
2
  export declare function objectLikeOutput(graph: GraphLike): string;
3
3
  //# sourceMappingURL=object-like-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-like-output.d.ts","sourceRoot":"","sources":["../../../src/visualization/object-like-output.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,aAAa,CAAA;AA8DpB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAOhD"}
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,aAAa,CAAA;AA8DhE,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 {\n type EdgeLike,\n type GraphLike,\n type NodeLike,\n} from '../types.js'\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"]}
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 '../types.ts'\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,9 +1,15 @@
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-0.1730724342581",
4
+ "version": "0.0.0-11",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/vltpkg/vltpkg.git",
8
+ "directory": "src/graph"
9
+ },
5
10
  "tshy": {
6
11
  "selfLink": false,
12
+ "liveDev": true,
7
13
  "dialects": [
8
14
  "esm"
9
15
  ],
@@ -17,37 +23,36 @@
17
23
  "graph-run": "^1.0.4",
18
24
  "path-scurry": "^2.0.0",
19
25
  "promise-call-limit": "^3.0.2",
20
- "@vltpkg/dep-id": "0.0.0-0.1730724342581",
21
- "@vltpkg/error-cause": "0.0.0-0.1730724342581",
22
- "@vltpkg/fast-split": "0.0.0-0.1730724342581",
23
- "@vltpkg/package-info": "0.0.0-0.1730724342581",
24
- "@vltpkg/pick-manifest": "0.0.0-0.1730724342581",
25
- "@vltpkg/registry-client": "0.0.0-0.1730724342581",
26
- "@vltpkg/rollback-remove": "0.0.0-0.1730724342581",
27
- "@vltpkg/run": "0.0.0-0.1730724342581",
28
- "@vltpkg/satisfies": "0.0.0-0.1730724342581",
29
- "@vltpkg/semver": "0.0.0-0.1730724342581",
30
- "@vltpkg/spec": "0.0.0-0.1730724342581",
31
- "@vltpkg/types": "0.0.0-0.1730724342581",
32
- "@vltpkg/package-json": "0.0.0-0.1730724342581",
33
- "@vltpkg/workspaces": "0.0.0-0.1730724342581"
26
+ "@vltpkg/cmd-shim": "0.0.0-11",
27
+ "@vltpkg/error-cause": "0.0.0-11",
28
+ "@vltpkg/dep-id": "0.0.0-11",
29
+ "@vltpkg/fast-split": "0.0.0-11",
30
+ "@vltpkg/output": "0.0.0-11",
31
+ "@vltpkg/package-info": "0.0.0-11",
32
+ "@vltpkg/package-json": "0.0.0-11",
33
+ "@vltpkg/rollback-remove": "0.0.0-11",
34
+ "@vltpkg/pick-manifest": "0.0.0-11",
35
+ "@vltpkg/run": "0.0.0-11",
36
+ "@vltpkg/satisfies": "0.0.0-11",
37
+ "@vltpkg/types": "0.0.0-11",
38
+ "@vltpkg/spec": "0.0.0-11",
39
+ "@vltpkg/workspaces": "0.0.0-11"
34
40
  },
35
41
  "devDependencies": {
36
- "@eslint/js": "^9.8.0",
37
- "@types/eslint__js": "^8.42.3",
38
- "@types/node": "^22.4.1",
39
- "chalk": "^5.3.0",
40
- "eslint": "^9.8.0",
41
- "prettier": "^3.3.2",
42
- "tap": "^21.0.1",
42
+ "@eslint/js": "^9.25.1",
43
+ "@types/node": "^22.15.3",
44
+ "eslint": "^9.25.1",
45
+ "prettier": "^3.5.3",
46
+ "tap": "^21.1.0",
43
47
  "tar": "^7.4.3",
44
48
  "tshy": "^3.0.2",
45
- "typescript": "^5.5.4",
46
- "typescript-eslint": "^8.0.1"
49
+ "typedoc": "~0.27.9",
50
+ "typescript": "5.7.3",
51
+ "typescript-eslint": "^8.31.1"
47
52
  },
48
53
  "license": "BSD-2-Clause-Patent",
49
54
  "engines": {
50
- "node": "20 || >=22"
55
+ "node": ">=22"
51
56
  },
52
57
  "tap": {
53
58
  "extends": "../../tap-config.yaml"
@@ -78,9 +83,10 @@
78
83
  "format:check": "prettier --check . --ignore-path ../../.prettierignore --cache",
79
84
  "lint": "eslint . --fix",
80
85
  "lint:check": "eslint .",
81
- "presnap": "tshy",
82
86
  "snap": "tap",
83
- "pretest": "tshy",
84
- "test": "tap"
87
+ "test": "tap",
88
+ "posttest": "tsc --noEmit",
89
+ "tshy": "tshy",
90
+ "typecheck": "tsc --noEmit"
85
91
  }
86
92
  }