@vltpkg/graph 0.0.0-9 → 1.0.0-rc.10

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 (203) hide show
  1. package/README.md +136 -1
  2. package/dist/esm/actual/load.d.ts +49 -3
  3. package/dist/esm/actual/load.d.ts.map +1 -1
  4. package/dist/esm/actual/load.js +146 -74
  5. package/dist/esm/actual/load.js.map +1 -1
  6. package/dist/esm/browser.d.ts +8 -4
  7. package/dist/esm/browser.d.ts.map +1 -1
  8. package/dist/esm/browser.js +6 -2
  9. package/dist/esm/browser.js.map +1 -1
  10. package/dist/esm/build.d.ts +29 -0
  11. package/dist/esm/build.d.ts.map +1 -0
  12. package/dist/esm/build.js +79 -0
  13. package/dist/esm/build.js.map +1 -0
  14. package/dist/esm/dependencies.d.ts +10 -3
  15. package/dist/esm/dependencies.d.ts.map +1 -1
  16. package/dist/esm/dependencies.js +63 -0
  17. package/dist/esm/dependencies.js.map +1 -1
  18. package/dist/esm/diff.d.ts +69 -0
  19. package/dist/esm/diff.d.ts.map +1 -1
  20. package/dist/esm/diff.js +25 -0
  21. package/dist/esm/diff.js.map +1 -1
  22. package/dist/esm/edge.d.ts +8 -2
  23. package/dist/esm/edge.d.ts.map +1 -1
  24. package/dist/esm/edge.js +12 -0
  25. package/dist/esm/edge.js.map +1 -1
  26. package/dist/esm/fixup-added-names.d.ts +16 -0
  27. package/dist/esm/fixup-added-names.d.ts.map +1 -0
  28. package/dist/esm/fixup-added-names.js +31 -0
  29. package/dist/esm/fixup-added-names.js.map +1 -0
  30. package/dist/esm/graph.d.ts +34 -10
  31. package/dist/esm/graph.d.ts.map +1 -1
  32. package/dist/esm/graph.js +150 -24
  33. package/dist/esm/graph.js.map +1 -1
  34. package/dist/esm/ideal/append-nodes.d.ts +12 -1
  35. package/dist/esm/ideal/append-nodes.d.ts.map +1 -1
  36. package/dist/esm/ideal/append-nodes.js +303 -53
  37. package/dist/esm/ideal/append-nodes.js.map +1 -1
  38. package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts +4 -4
  39. package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts.map +1 -1
  40. package/dist/esm/ideal/build-ideal-from-starting-graph.js +35 -16
  41. package/dist/esm/ideal/build-ideal-from-starting-graph.js.map +1 -1
  42. package/dist/esm/ideal/build.d.ts +9 -0
  43. package/dist/esm/ideal/build.d.ts.map +1 -1
  44. package/dist/esm/ideal/build.js +31 -1
  45. package/dist/esm/ideal/build.js.map +1 -1
  46. package/dist/esm/ideal/get-importer-specs.d.ts +11 -3
  47. package/dist/esm/ideal/get-importer-specs.d.ts.map +1 -1
  48. package/dist/esm/ideal/get-importer-specs.js +86 -9
  49. package/dist/esm/ideal/get-importer-specs.js.map +1 -1
  50. package/dist/esm/ideal/get-ordered-dependencies.d.ts +10 -0
  51. package/dist/esm/ideal/get-ordered-dependencies.d.ts.map +1 -0
  52. package/dist/esm/ideal/get-ordered-dependencies.js +42 -0
  53. package/dist/esm/ideal/get-ordered-dependencies.js.map +1 -0
  54. package/dist/esm/ideal/peers.d.ts +71 -0
  55. package/dist/esm/ideal/peers.d.ts.map +1 -0
  56. package/dist/esm/ideal/peers.js +318 -0
  57. package/dist/esm/ideal/peers.js.map +1 -0
  58. package/dist/esm/ideal/refresh-ideal-graph.d.ts +48 -0
  59. package/dist/esm/ideal/refresh-ideal-graph.d.ts.map +1 -0
  60. package/dist/esm/ideal/refresh-ideal-graph.js +79 -0
  61. package/dist/esm/ideal/refresh-ideal-graph.js.map +1 -0
  62. package/dist/esm/ideal/types.d.ts +78 -1
  63. package/dist/esm/ideal/types.d.ts.map +1 -1
  64. package/dist/esm/ideal/types.js.map +1 -1
  65. package/dist/esm/index.d.ts +9 -4
  66. package/dist/esm/index.d.ts.map +1 -1
  67. package/dist/esm/index.js +5 -1
  68. package/dist/esm/index.js.map +1 -1
  69. package/dist/esm/install.d.ts +10 -4
  70. package/dist/esm/install.d.ts.map +1 -1
  71. package/dist/esm/install.js +191 -20
  72. package/dist/esm/install.js.map +1 -1
  73. package/dist/esm/lockfile/load-edges.d.ts +8 -1
  74. package/dist/esm/lockfile/load-edges.d.ts.map +1 -1
  75. package/dist/esm/lockfile/load-edges.js +80 -15
  76. package/dist/esm/lockfile/load-edges.js.map +1 -1
  77. package/dist/esm/lockfile/load-nodes.d.ts +3 -2
  78. package/dist/esm/lockfile/load-nodes.d.ts.map +1 -1
  79. package/dist/esm/lockfile/load-nodes.js +85 -13
  80. package/dist/esm/lockfile/load-nodes.js.map +1 -1
  81. package/dist/esm/lockfile/load.d.ts +18 -5
  82. package/dist/esm/lockfile/load.d.ts.map +1 -1
  83. package/dist/esm/lockfile/load.js +28 -20
  84. package/dist/esm/lockfile/load.js.map +1 -1
  85. package/dist/esm/lockfile/save.d.ts +16 -3
  86. package/dist/esm/lockfile/save.d.ts.map +1 -1
  87. package/dist/esm/lockfile/save.js +64 -17
  88. package/dist/esm/lockfile/save.js.map +1 -1
  89. package/dist/esm/lockfile/types.d.ts +34 -4
  90. package/dist/esm/lockfile/types.d.ts.map +1 -1
  91. package/dist/esm/lockfile/types.js +31 -0
  92. package/dist/esm/lockfile/types.js.map +1 -1
  93. package/dist/esm/modifiers.d.ts +189 -0
  94. package/dist/esm/modifiers.d.ts.map +1 -0
  95. package/dist/esm/modifiers.js +330 -0
  96. package/dist/esm/modifiers.js.map +1 -0
  97. package/dist/esm/node.d.ts +91 -6
  98. package/dist/esm/node.d.ts.map +1 -1
  99. package/dist/esm/node.js +119 -5
  100. package/dist/esm/node.js.map +1 -1
  101. package/dist/esm/reify/add-edge.d.ts +1 -2
  102. package/dist/esm/reify/add-edge.d.ts.map +1 -1
  103. package/dist/esm/reify/add-edge.js +29 -18
  104. package/dist/esm/reify/add-edge.js.map +1 -1
  105. package/dist/esm/reify/add-edges.d.ts +1 -2
  106. package/dist/esm/reify/add-edges.d.ts.map +1 -1
  107. package/dist/esm/reify/add-edges.js +3 -3
  108. package/dist/esm/reify/add-edges.js.map +1 -1
  109. package/dist/esm/reify/add-nodes.d.ts.map +1 -1
  110. package/dist/esm/reify/add-nodes.js +4 -27
  111. package/dist/esm/reify/add-nodes.js.map +1 -1
  112. package/dist/esm/reify/bin-chmod.d.ts +11 -0
  113. package/dist/esm/reify/bin-chmod.d.ts.map +1 -0
  114. package/dist/esm/reify/bin-chmod.js +39 -0
  115. package/dist/esm/reify/bin-chmod.js.map +1 -0
  116. package/dist/esm/reify/build.d.ts +10 -1
  117. package/dist/esm/reify/build.d.ts.map +1 -1
  118. package/dist/esm/reify/build.js +36 -23
  119. package/dist/esm/reify/build.js.map +1 -1
  120. package/dist/esm/reify/calculate-save-value.d.ts +3 -0
  121. package/dist/esm/reify/calculate-save-value.d.ts.map +1 -0
  122. package/dist/esm/reify/calculate-save-value.js +45 -0
  123. package/dist/esm/reify/calculate-save-value.js.map +1 -0
  124. package/dist/esm/reify/check-needed-build.d.ts +25 -0
  125. package/dist/esm/reify/check-needed-build.d.ts.map +1 -0
  126. package/dist/esm/reify/check-needed-build.js +50 -0
  127. package/dist/esm/reify/check-needed-build.js.map +1 -0
  128. package/dist/esm/reify/delete-edge.d.ts.map +1 -1
  129. package/dist/esm/reify/delete-edge.js +3 -4
  130. package/dist/esm/reify/delete-edge.js.map +1 -1
  131. package/dist/esm/reify/extract-node.d.ts +24 -0
  132. package/dist/esm/reify/extract-node.d.ts.map +1 -0
  133. package/dist/esm/reify/extract-node.js +84 -0
  134. package/dist/esm/reify/extract-node.js.map +1 -0
  135. package/dist/esm/reify/index.d.ts +18 -1
  136. package/dist/esm/reify/index.d.ts.map +1 -1
  137. package/dist/esm/reify/index.js +85 -15
  138. package/dist/esm/reify/index.js.map +1 -1
  139. package/dist/esm/reify/internal-hoist.d.ts +9 -0
  140. package/dist/esm/reify/internal-hoist.d.ts.map +1 -0
  141. package/dist/esm/reify/internal-hoist.js +134 -0
  142. package/dist/esm/reify/internal-hoist.js.map +1 -0
  143. package/dist/esm/reify/update-importers-package-json.d.ts +1 -1
  144. package/dist/esm/reify/update-importers-package-json.d.ts.map +1 -1
  145. package/dist/esm/reify/update-importers-package-json.js +33 -24
  146. package/dist/esm/reify/update-importers-package-json.js.map +1 -1
  147. package/dist/esm/remove-optional-subgraph.js +1 -1
  148. package/dist/esm/remove-optional-subgraph.js.map +1 -1
  149. package/dist/esm/resolve-save-type.d.ts +1 -2
  150. package/dist/esm/resolve-save-type.d.ts.map +1 -1
  151. package/dist/esm/resolve-save-type.js.map +1 -1
  152. package/dist/esm/stringify-node.d.ts +1 -1
  153. package/dist/esm/stringify-node.d.ts.map +1 -1
  154. package/dist/esm/stringify-node.js +10 -1
  155. package/dist/esm/stringify-node.js.map +1 -1
  156. package/dist/esm/transfer-data/load.d.ts +44 -0
  157. package/dist/esm/transfer-data/load.d.ts.map +1 -0
  158. package/dist/esm/transfer-data/load.js +176 -0
  159. package/dist/esm/transfer-data/load.js.map +1 -0
  160. package/dist/esm/uninstall.d.ts +5 -4
  161. package/dist/esm/uninstall.d.ts.map +1 -1
  162. package/dist/esm/uninstall.js +61 -19
  163. package/dist/esm/uninstall.js.map +1 -1
  164. package/dist/esm/update.d.ts +13 -0
  165. package/dist/esm/update.d.ts.map +1 -0
  166. package/dist/esm/update.js +73 -0
  167. package/dist/esm/update.js.map +1 -0
  168. package/dist/esm/virtual-root.d.ts +16 -0
  169. package/dist/esm/virtual-root.d.ts.map +1 -0
  170. package/dist/esm/virtual-root.js +79 -0
  171. package/dist/esm/virtual-root.js.map +1 -0
  172. package/dist/esm/visualization/human-readable-output.d.ts +4 -5
  173. package/dist/esm/visualization/human-readable-output.d.ts.map +1 -1
  174. package/dist/esm/visualization/human-readable-output.js +47 -19
  175. package/dist/esm/visualization/human-readable-output.js.map +1 -1
  176. package/dist/esm/visualization/json-output.d.ts +7 -2
  177. package/dist/esm/visualization/json-output.d.ts.map +1 -1
  178. package/dist/esm/visualization/json-output.js +35 -12
  179. package/dist/esm/visualization/json-output.js.map +1 -1
  180. package/dist/esm/visualization/mermaid-output.d.ts +7 -1
  181. package/dist/esm/visualization/mermaid-output.d.ts.map +1 -1
  182. package/dist/esm/visualization/mermaid-output.js +110 -14
  183. package/dist/esm/visualization/mermaid-output.js.map +1 -1
  184. package/dist/esm/visualization/object-like-output.d.ts +1 -1
  185. package/dist/esm/visualization/object-like-output.d.ts.map +1 -1
  186. package/dist/esm/visualization/object-like-output.js.map +1 -1
  187. package/package.json +35 -29
  188. package/dist/esm/ideal/add-nodes.d.ts +0 -19
  189. package/dist/esm/ideal/add-nodes.d.ts.map +0 -1
  190. package/dist/esm/ideal/add-nodes.js +0 -32
  191. package/dist/esm/ideal/add-nodes.js.map +0 -1
  192. package/dist/esm/ideal/remove-nodes.d.ts +0 -7
  193. package/dist/esm/ideal/remove-nodes.d.ts.map +0 -1
  194. package/dist/esm/ideal/remove-nodes.js +0 -19
  195. package/dist/esm/ideal/remove-nodes.js.map +0 -1
  196. package/dist/esm/reify/bin-paths.d.ts +0 -4
  197. package/dist/esm/reify/bin-paths.d.ts.map +0 -1
  198. package/dist/esm/reify/bin-paths.js +0 -23
  199. package/dist/esm/reify/bin-paths.js.map +0 -1
  200. package/dist/esm/types.d.ts +0 -42
  201. package/dist/esm/types.d.ts.map +0 -1
  202. package/dist/esm/types.js +0 -2
  203. package/dist/esm/types.js.map +0 -1
@@ -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 '../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"]}
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,12 +1,13 @@
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-9",
4
+ "version": "1.0.0-rc.10",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
8
8
  "directory": "src/graph"
9
9
  },
10
+ "author": "vlt technology inc. <support@vlt.sh> (http://vlt.sh)",
10
11
  "tshy": {
11
12
  "selfLink": false,
12
13
  "liveDev": true,
@@ -20,41 +21,45 @@
20
21
  }
21
22
  },
22
23
  "dependencies": {
23
- "graph-run": "^1.0.4",
24
- "path-scurry": "^2.0.0",
24
+ "graph-run": "^1.1.0",
25
+ "path-scurry": "^2.0.1",
25
26
  "promise-call-limit": "^3.0.2",
26
- "@vltpkg/cmd-shim": "0.0.0-9",
27
- "@vltpkg/dep-id": "0.0.0-9",
28
- "@vltpkg/error-cause": "0.0.0-9",
29
- "@vltpkg/fast-split": "0.0.0-9",
30
- "@vltpkg/output": "0.0.0-9",
31
- "@vltpkg/package-info": "0.0.0-9",
32
- "@vltpkg/package-json": "0.0.0-9",
33
- "@vltpkg/pick-manifest": "0.0.0-9",
34
- "@vltpkg/rollback-remove": "0.0.0-9",
35
- "@vltpkg/run": "0.0.0-9",
36
- "@vltpkg/satisfies": "0.0.0-9",
37
- "@vltpkg/spec": "0.0.0-9",
38
- "@vltpkg/workspaces": "0.0.0-9",
39
- "@vltpkg/types": "0.0.0-9"
27
+ "@vltpkg/dep-id": "1.0.0-rc.10",
28
+ "@vltpkg/dss-breadcrumb": "1.0.0-rc.10",
29
+ "@vltpkg/cmd-shim": "1.0.0-rc.10",
30
+ "@vltpkg/error-cause": "1.0.0-rc.10",
31
+ "@vltpkg/fast-split": "1.0.0-rc.10",
32
+ "@vltpkg/init": "1.0.0-rc.10",
33
+ "@vltpkg/package-info": "1.0.0-rc.10",
34
+ "@vltpkg/package-json": "1.0.0-rc.10",
35
+ "@vltpkg/pick-manifest": "1.0.0-rc.10",
36
+ "@vltpkg/query": "1.0.0-rc.10",
37
+ "@vltpkg/output": "1.0.0-rc.10",
38
+ "@vltpkg/satisfies": "1.0.0-rc.10",
39
+ "@vltpkg/security-archive": "1.0.0-rc.10",
40
+ "@vltpkg/run": "1.0.0-rc.10",
41
+ "@vltpkg/types": "1.0.0-rc.10",
42
+ "@vltpkg/rollback-remove": "1.0.0-rc.10",
43
+ "@vltpkg/spec": "1.0.0-rc.10",
44
+ "@vltpkg/vlt-json": "1.0.0-rc.10",
45
+ "@vltpkg/workspaces": "1.0.0-rc.10"
40
46
  },
41
47
  "devDependencies": {
42
- "@eslint/js": "^9.20.0",
43
- "@types/eslint__js": "^8.42.3",
44
- "@types/node": "^22.13.1",
45
- "chalk": "^5.3.0",
46
- "eslint": "^9.20.0",
47
- "prettier": "^3.4.2",
48
- "tap": "^21.1.0",
49
- "tar": "^7.4.3",
50
- "tshy": "^3.0.2",
51
- "typedoc": "0.27.6",
48
+ "@eslint/js": "^9.39.1",
49
+ "@types/node": "^22.19.2",
50
+ "eslint": "^9.39.1",
51
+ "prettier": "^3.7.4",
52
+ "tap": "^21.5.0",
53
+ "tar": "^7.5.2",
54
+ "tshy": "^3.1.0",
55
+ "typedoc": "~0.27.9",
52
56
  "typescript": "5.7.3",
53
- "typescript-eslint": "^8.23.0"
57
+ "typescript-eslint": "^8.49.0",
58
+ "@vltpkg/vlt-json": "1.0.0-rc.10"
54
59
  },
55
60
  "license": "BSD-2-Clause-Patent",
56
61
  "engines": {
57
- "node": ">=22"
62
+ "node": ">=22.9.0"
58
63
  },
59
64
  "tap": {
60
65
  "extends": "../../tap-config.yaml"
@@ -88,6 +93,7 @@
88
93
  "snap": "tap",
89
94
  "test": "tap",
90
95
  "posttest": "tsc --noEmit",
96
+ "tshy": "tshy",
91
97
  "typecheck": "tsc --noEmit"
92
98
  }
93
99
  }
@@ -1,19 +0,0 @@
1
- import type { PackageInfoClient } from '@vltpkg/package-info';
2
- import type { SpecOptions } from '@vltpkg/spec';
3
- import type { PathScurry } from 'path-scurry';
4
- import type { BuildIdealAddOptions, BuildIdealFromGraphOptions } from './types.ts';
5
- export type AddNodesOptions = BuildIdealAddOptions & BuildIdealFromGraphOptions & SpecOptions & {
6
- /**
7
- * A {@link PathScurry} instance based on the `projectRoot` path
8
- */
9
- scurry: PathScurry;
10
- /**
11
- * A {@link PackageInfoClient} instance to read manifest info from.
12
- */
13
- packageInfo: PackageInfoClient;
14
- };
15
- /**
16
- * Add new nodes in the given `graph` for dependencies specified at `add`.
17
- */
18
- export declare const addNodes: ({ add, graph, packageInfo, scurry, ...specOptions }: AddNodesOptions) => Promise<void>;
19
- //# sourceMappingURL=add-nodes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodes.d.ts","sourceRoot":"","sources":["../../../src/ideal/add-nodes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AAGnB,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAChD,0BAA0B,GAC1B,WAAW,GAAG;IACZ;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,WAAW,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,wDAMlB,eAAe,kBAkCjB,CAAA"}
@@ -1,32 +0,0 @@
1
- import { error } from '@vltpkg/error-cause';
2
- import { appendNodes } from "./append-nodes.js";
3
- import { resolveSaveType } from "../resolve-save-type.js";
4
- /**
5
- * Add new nodes in the given `graph` for dependencies specified at `add`.
6
- */
7
- export const addNodes = async ({ add, graph, packageInfo, scurry, ...specOptions }) => {
8
- const seen = new Set();
9
- // iterates on the list of dependencies per importer updating
10
- // the graph using metadata fetch from the registry manifest files
11
- for (const [depID, dependencies] of add) {
12
- const importer = graph.nodes.get(depID);
13
- if (!importer) {
14
- throw error('Could not find importer', { found: depID });
15
- }
16
- // Removes any edges and nodes that are currently part of the
17
- // graph but are also in the list of dependencies to be installed
18
- const deps = [...dependencies.values()];
19
- for (const dep of deps) {
20
- const { spec } = dep;
21
- const existingEdge = importer.edgesOut.get(spec.name);
22
- dep.type = resolveSaveType(importer, spec.name, dep.type);
23
- const node = existingEdge?.to;
24
- if (node)
25
- graph.removeNode(node);
26
- }
27
- // Add new nodes for packages defined in the dependencies list fetching
28
- // metadata from the registry manifests and updating the graph
29
- await appendNodes(dependencies, packageInfo, graph, importer, deps, scurry, specOptions, seen);
30
- }
31
- };
32
- //# sourceMappingURL=add-nodes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-nodes.js","sourceRoot":"","sources":["../../../src/ideal/add-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAgBzD;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,GAAG,EACH,KAAK,EACL,WAAW,EACX,MAAM,EACN,GAAG,WAAW,EACE,EAAE,EAAE;IACpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAS,CAAA;IAC7B,6DAA6D;IAC7D,kEAAkE;IAClE,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,6DAA6D;QAC7D,iEAAiE;QACjE,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,IAAI,GAAG,YAAY,EAAE,EAAE,CAAA;YAC7B,IAAI,IAAI;gBAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QAED,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,WAAW,CACf,YAAY,EACZ,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,WAAW,EACX,IAAI,CACL,CAAA;IACH,CAAC;AACH,CAAC,CAAA","sourcesContent":["import type { DepID } from '@vltpkg/dep-id'\nimport { error } from '@vltpkg/error-cause'\nimport type { PackageInfoClient } from '@vltpkg/package-info'\nimport type { SpecOptions } from '@vltpkg/spec'\nimport type { PathScurry } from 'path-scurry'\nimport { appendNodes } from './append-nodes.ts'\nimport type {\n BuildIdealAddOptions,\n BuildIdealFromGraphOptions,\n} from './types.ts'\nimport { resolveSaveType } from '../resolve-save-type.ts'\n\nexport type AddNodesOptions = BuildIdealAddOptions &\n BuildIdealFromGraphOptions &\n SpecOptions & {\n /**\n * A {@link PathScurry} instance based on the `projectRoot` path\n */\n scurry: PathScurry\n\n /**\n * A {@link PackageInfoClient} instance to read manifest info from.\n */\n packageInfo: PackageInfoClient\n }\n\n/**\n * Add new nodes in the given `graph` for dependencies specified at `add`.\n */\nexport const addNodes = async ({\n add,\n graph,\n packageInfo,\n scurry,\n ...specOptions\n}: AddNodesOptions) => {\n const seen = new Set<DepID>()\n // iterates on the list of dependencies per importer updating\n // the graph using metadata fetch from the registry manifest files\n for (const [depID, dependencies] of add) {\n const importer = graph.nodes.get(depID)\n if (!importer) {\n throw error('Could not find importer', { found: depID })\n }\n\n // Removes any edges and nodes that are currently part of the\n // graph but are also in the list of dependencies to be installed\n const deps = [...dependencies.values()]\n for (const dep of deps) {\n const { spec } = dep\n const existingEdge = importer.edgesOut.get(spec.name)\n dep.type = resolveSaveType(importer, spec.name, dep.type)\n const node = existingEdge?.to\n if (node) graph.removeNode(node)\n }\n\n // Add new nodes for packages defined in the dependencies list fetching\n // metadata from the registry manifests and updating the graph\n await appendNodes(\n dependencies,\n packageInfo,\n graph,\n importer,\n deps,\n scurry,\n specOptions,\n seen,\n )\n }\n}\n"]}
@@ -1,7 +0,0 @@
1
- import type { BuildIdealFromGraphOptions, BuildIdealRemoveOptions } from './types.ts';
2
- export type RemoveNodesOptions = BuildIdealFromGraphOptions & BuildIdealRemoveOptions;
3
- /**
4
- * Remove nodes from the current `graph`.
5
- */
6
- export declare const removeNodes: ({ graph, remove, }: RemoveNodesOptions) => void;
7
- //# sourceMappingURL=remove-nodes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-nodes.d.ts","sourceRoot":"","sources":["../../../src/ideal/remove-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAGnB,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,GACzD,uBAAuB,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,WAAW,uBAGrB,kBAAkB,SAapB,CAAA"}
@@ -1,19 +0,0 @@
1
- import { error } from '@vltpkg/error-cause';
2
- /**
3
- * Remove nodes from the current `graph`.
4
- */
5
- export const removeNodes = ({ graph, remove, }) => {
6
- for (const [depID, names] of remove) {
7
- const importer = graph.nodes.get(depID);
8
- if (!importer) {
9
- throw error('Could not find importer', { found: depID });
10
- }
11
- // Removes any edges / nodes pointing to the specified name
12
- for (const name of names) {
13
- const node = importer.edgesOut.get(name)?.to;
14
- if (node)
15
- graph.removeNode(node);
16
- }
17
- }
18
- };
19
- //# sourceMappingURL=remove-nodes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-nodes.js","sourceRoot":"","sources":["../../../src/ideal/remove-nodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAK3C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,MAAM,GACa,EAAE,EAAE;IACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,2DAA2D;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;YAC5C,IAAI,IAAI;gBAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;AACH,CAAC,CAAA","sourcesContent":["import type {\n BuildIdealFromGraphOptions,\n BuildIdealRemoveOptions,\n} from './types.ts'\nimport { error } from '@vltpkg/error-cause'\n\nexport type RemoveNodesOptions = BuildIdealFromGraphOptions &\n BuildIdealRemoveOptions\n\n/**\n * Remove nodes from the current `graph`.\n */\nexport const removeNodes = ({\n graph,\n remove,\n}: RemoveNodesOptions) => {\n for (const [depID, names] of remove) {\n const importer = graph.nodes.get(depID)\n if (!importer) {\n throw error('Could not find importer', { found: depID })\n }\n\n // Removes any edges / nodes pointing to the specified name\n for (const name of names) {\n const node = importer.edgesOut.get(name)?.to\n if (node) graph.removeNode(node)\n }\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { Manifest } from '@vltpkg/types';
2
- /** get the bin scripts for a package */
3
- export declare const binPaths: (manifest: Manifest) => Record<string, string>;
4
- //# sourceMappingURL=bin-paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin-paths.d.ts","sourceRoot":"","sources":["../../../src/reify/bin-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAU7C,wCAAwC;AACxC,eAAO,MAAM,QAAQ,aACT,QAAQ,KACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAYvB,CAAA"}
@@ -1,23 +0,0 @@
1
- const parseScope = (scoped) => {
2
- if (scoped.startsWith('@')) {
3
- const [scope, name, ...rest] = scoped.split('/');
4
- if (scope && name && rest.length === 0)
5
- return [scope, name];
6
- }
7
- return [undefined, scoped];
8
- };
9
- /** get the bin scripts for a package */
10
- export const binPaths = (manifest) => {
11
- const { name, bin } = manifest;
12
- if (bin) {
13
- if (name && typeof bin === 'string') {
14
- const [_scope, pkg] = parseScope(name);
15
- return { [pkg]: bin };
16
- }
17
- else if (typeof bin === 'object') {
18
- return bin;
19
- }
20
- }
21
- return {};
22
- };
23
- //# sourceMappingURL=bin-paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin-paths.js","sourceRoot":"","sources":["../../../src/reify/bin-paths.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAG,CAAC,MAAc,EAAgC,EAAE;IAClE,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,QAAkB,EACM,EAAE;IAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAA;IAE9B,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YACtC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;QACvB,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA","sourcesContent":["import type { Manifest } from '@vltpkg/types'\n\nconst parseScope = (scoped: string): [string | undefined, string] => {\n if (scoped.startsWith('@')) {\n const [scope, name, ...rest] = scoped.split('/')\n if (scope && name && rest.length === 0) return [scope, name]\n }\n return [undefined, scoped]\n}\n\n/** get the bin scripts for a package */\nexport const binPaths = (\n manifest: Manifest,\n): Record<string, string> => {\n const { name, bin } = manifest\n\n if (bin) {\n if (name && typeof bin === 'string') {\n const [_scope, pkg] = parseScope(name)\n return { [pkg]: bin }\n } else if (typeof bin === 'object') {\n return bin\n }\n }\n return {}\n}\n"]}
@@ -1,42 +0,0 @@
1
- import type { DepID } from '@vltpkg/dep-id';
2
- import type { Manifest, 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
- edges: Set<EdgeLike>;
19
- addEdge: (type: DependencyTypeShort, spec: Spec, from: NodeLike, to?: NodeLike) => EdgeLike;
20
- addNode: (id?: DepID, manifest?: Manifest, spec?: Spec, name?: string, version?: string) => NodeLike;
21
- };
22
- export type NodeLike = {
23
- id: DepID;
24
- edgesIn: Set<EdgeLike>;
25
- edgesOut: Map<string, EdgeLike>;
26
- location?: string;
27
- manifest?: Manifest | null;
28
- name?: string | null;
29
- version?: string | null;
30
- integrity?: string | null;
31
- resolved?: string | null;
32
- importer: boolean;
33
- graph: GraphLike;
34
- mainImporter: boolean;
35
- projectRoot: string;
36
- dev: boolean;
37
- optional: boolean;
38
- toJSON: () => Pick<NodeLike, 'id' | 'name' | 'version' | 'location' | 'importer' | 'manifest' | 'projectRoot' | 'integrity' | 'resolved' | 'dev' | 'optional'>;
39
- toString(): string;
40
- setResolved(): void;
41
- };
42
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEtD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;IAClB,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxB,YAAY,EAAE,QAAQ,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC3B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpB,OAAO,EAAE,CACP,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,EACd,EAAE,CAAC,EAAE,QAAQ,KACV,QAAQ,CAAA;IACb,OAAO,EAAE,CACP,EAAE,CAAC,EAAE,KAAK,EACV,QAAQ,CAAC,EAAE,QAAQ,EACnB,IAAI,CAAC,EAAE,IAAI,EACX,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,KACb,QAAQ,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,KAAK,CAAA;IACT,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAChB,QAAQ,EACN,IAAI,GACJ,MAAM,GACN,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,KAAK,GACL,UAAU,CACb,CAAA;IACD,QAAQ,IAAI,MAAM,CAAA;IAClB,WAAW,IAAI,IAAI,CAAA;CACpB,CAAA"}
package/dist/esm/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -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 { Manifest, DependencyTypeShort } 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 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?: Manifest,\n spec?: Spec,\n name?: string,\n version?: string,\n ) => NodeLike\n}\n\nexport type NodeLike = {\n id: DepID\n edgesIn: Set<EdgeLike>\n edgesOut: Map<string, EdgeLike>\n location?: string\n manifest?: Manifest | 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 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 >\n toString(): string\n setResolved(): void\n}\n"]}