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

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 (177) 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 +130 -73
  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 +67 -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 +7 -2
  23. package/dist/esm/edge.d.ts.map +1 -1
  24. package/dist/esm/edge.js +8 -0
  25. package/dist/esm/edge.js.map +1 -1
  26. package/dist/esm/graph.d.ts +20 -10
  27. package/dist/esm/graph.d.ts.map +1 -1
  28. package/dist/esm/graph.js +124 -21
  29. package/dist/esm/graph.js.map +1 -1
  30. package/dist/esm/ideal/add-nodes.d.ts +17 -2
  31. package/dist/esm/ideal/add-nodes.d.ts.map +1 -1
  32. package/dist/esm/ideal/add-nodes.js +9 -2
  33. package/dist/esm/ideal/add-nodes.js.map +1 -1
  34. package/dist/esm/ideal/append-nodes.d.ts +11 -1
  35. package/dist/esm/ideal/append-nodes.d.ts.map +1 -1
  36. package/dist/esm/ideal/append-nodes.js +177 -31
  37. package/dist/esm/ideal/append-nodes.js.map +1 -1
  38. package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts.map +1 -1
  39. package/dist/esm/ideal/build-ideal-from-starting-graph.js +9 -5
  40. package/dist/esm/ideal/build-ideal-from-starting-graph.js.map +1 -1
  41. package/dist/esm/ideal/build.d.ts +9 -0
  42. package/dist/esm/ideal/build.d.ts.map +1 -1
  43. package/dist/esm/ideal/build.js +4 -1
  44. package/dist/esm/ideal/build.js.map +1 -1
  45. package/dist/esm/ideal/get-importer-specs.d.ts +3 -2
  46. package/dist/esm/ideal/get-importer-specs.d.ts.map +1 -1
  47. package/dist/esm/ideal/get-importer-specs.js +7 -5
  48. package/dist/esm/ideal/get-importer-specs.js.map +1 -1
  49. package/dist/esm/index.d.ts +8 -4
  50. package/dist/esm/index.d.ts.map +1 -1
  51. package/dist/esm/index.js +4 -1
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/install.d.ts +8 -3
  54. package/dist/esm/install.d.ts.map +1 -1
  55. package/dist/esm/install.js +167 -20
  56. package/dist/esm/install.js.map +1 -1
  57. package/dist/esm/lockfile/load-edges.d.ts +8 -1
  58. package/dist/esm/lockfile/load-edges.d.ts.map +1 -1
  59. package/dist/esm/lockfile/load-edges.js +79 -15
  60. package/dist/esm/lockfile/load-edges.js.map +1 -1
  61. package/dist/esm/lockfile/load-nodes.d.ts +3 -2
  62. package/dist/esm/lockfile/load-nodes.d.ts.map +1 -1
  63. package/dist/esm/lockfile/load-nodes.js +77 -12
  64. package/dist/esm/lockfile/load-nodes.js.map +1 -1
  65. package/dist/esm/lockfile/load.d.ts +22 -5
  66. package/dist/esm/lockfile/load.d.ts.map +1 -1
  67. package/dist/esm/lockfile/load.js +55 -22
  68. package/dist/esm/lockfile/load.js.map +1 -1
  69. package/dist/esm/lockfile/save.d.ts +16 -3
  70. package/dist/esm/lockfile/save.d.ts.map +1 -1
  71. package/dist/esm/lockfile/save.js +61 -16
  72. package/dist/esm/lockfile/save.js.map +1 -1
  73. package/dist/esm/lockfile/types.d.ts +34 -4
  74. package/dist/esm/lockfile/types.d.ts.map +1 -1
  75. package/dist/esm/lockfile/types.js +31 -0
  76. package/dist/esm/lockfile/types.js.map +1 -1
  77. package/dist/esm/modifiers.d.ts +189 -0
  78. package/dist/esm/modifiers.d.ts.map +1 -0
  79. package/dist/esm/modifiers.js +330 -0
  80. package/dist/esm/modifiers.js.map +1 -0
  81. package/dist/esm/node.d.ts +77 -6
  82. package/dist/esm/node.d.ts.map +1 -1
  83. package/dist/esm/node.js +98 -5
  84. package/dist/esm/node.js.map +1 -1
  85. package/dist/esm/reify/add-edge.d.ts +1 -2
  86. package/dist/esm/reify/add-edge.d.ts.map +1 -1
  87. package/dist/esm/reify/add-edge.js +29 -18
  88. package/dist/esm/reify/add-edge.js.map +1 -1
  89. package/dist/esm/reify/add-edges.d.ts +1 -2
  90. package/dist/esm/reify/add-edges.d.ts.map +1 -1
  91. package/dist/esm/reify/add-edges.js +2 -3
  92. package/dist/esm/reify/add-edges.js.map +1 -1
  93. package/dist/esm/reify/add-nodes.d.ts.map +1 -1
  94. package/dist/esm/reify/add-nodes.js +4 -27
  95. package/dist/esm/reify/add-nodes.js.map +1 -1
  96. package/dist/esm/reify/bin-chmod.d.ts +11 -0
  97. package/dist/esm/reify/bin-chmod.d.ts.map +1 -0
  98. package/dist/esm/reify/bin-chmod.js +39 -0
  99. package/dist/esm/reify/bin-chmod.js.map +1 -0
  100. package/dist/esm/reify/build.d.ts +10 -1
  101. package/dist/esm/reify/build.d.ts.map +1 -1
  102. package/dist/esm/reify/build.js +36 -23
  103. package/dist/esm/reify/build.js.map +1 -1
  104. package/dist/esm/reify/calculate-save-value.d.ts +3 -0
  105. package/dist/esm/reify/calculate-save-value.d.ts.map +1 -0
  106. package/dist/esm/reify/calculate-save-value.js +45 -0
  107. package/dist/esm/reify/calculate-save-value.js.map +1 -0
  108. package/dist/esm/reify/check-needed-build.d.ts +25 -0
  109. package/dist/esm/reify/check-needed-build.d.ts.map +1 -0
  110. package/dist/esm/reify/check-needed-build.js +50 -0
  111. package/dist/esm/reify/check-needed-build.js.map +1 -0
  112. package/dist/esm/reify/delete-edge.d.ts.map +1 -1
  113. package/dist/esm/reify/delete-edge.js +3 -4
  114. package/dist/esm/reify/delete-edge.js.map +1 -1
  115. package/dist/esm/reify/extract-node.d.ts +24 -0
  116. package/dist/esm/reify/extract-node.d.ts.map +1 -0
  117. package/dist/esm/reify/extract-node.js +76 -0
  118. package/dist/esm/reify/extract-node.js.map +1 -0
  119. package/dist/esm/reify/index.d.ts +18 -1
  120. package/dist/esm/reify/index.d.ts.map +1 -1
  121. package/dist/esm/reify/index.js +84 -14
  122. package/dist/esm/reify/index.js.map +1 -1
  123. package/dist/esm/reify/internal-hoist.d.ts +9 -0
  124. package/dist/esm/reify/internal-hoist.d.ts.map +1 -0
  125. package/dist/esm/reify/internal-hoist.js +134 -0
  126. package/dist/esm/reify/internal-hoist.js.map +1 -0
  127. package/dist/esm/reify/update-importers-package-json.d.ts.map +1 -1
  128. package/dist/esm/reify/update-importers-package-json.js +15 -9
  129. package/dist/esm/reify/update-importers-package-json.js.map +1 -1
  130. package/dist/esm/remove-optional-subgraph.js +1 -1
  131. package/dist/esm/remove-optional-subgraph.js.map +1 -1
  132. package/dist/esm/resolve-save-type.d.ts +1 -2
  133. package/dist/esm/resolve-save-type.d.ts.map +1 -1
  134. package/dist/esm/resolve-save-type.js.map +1 -1
  135. package/dist/esm/stringify-node.d.ts +1 -1
  136. package/dist/esm/stringify-node.d.ts.map +1 -1
  137. package/dist/esm/stringify-node.js.map +1 -1
  138. package/dist/esm/transfer-data/load.d.ts +44 -0
  139. package/dist/esm/transfer-data/load.d.ts.map +1 -0
  140. package/dist/esm/transfer-data/load.js +176 -0
  141. package/dist/esm/transfer-data/load.js.map +1 -0
  142. package/dist/esm/uninstall.d.ts +5 -4
  143. package/dist/esm/uninstall.d.ts.map +1 -1
  144. package/dist/esm/uninstall.js +51 -19
  145. package/dist/esm/uninstall.js.map +1 -1
  146. package/dist/esm/update.d.ts +13 -0
  147. package/dist/esm/update.d.ts.map +1 -0
  148. package/dist/esm/update.js +63 -0
  149. package/dist/esm/update.js.map +1 -0
  150. package/dist/esm/virtual-root.d.ts +16 -0
  151. package/dist/esm/virtual-root.d.ts.map +1 -0
  152. package/dist/esm/virtual-root.js +79 -0
  153. package/dist/esm/virtual-root.js.map +1 -0
  154. package/dist/esm/visualization/human-readable-output.d.ts +4 -5
  155. package/dist/esm/visualization/human-readable-output.d.ts.map +1 -1
  156. package/dist/esm/visualization/human-readable-output.js +41 -18
  157. package/dist/esm/visualization/human-readable-output.js.map +1 -1
  158. package/dist/esm/visualization/json-output.d.ts +7 -3
  159. package/dist/esm/visualization/json-output.d.ts.map +1 -1
  160. package/dist/esm/visualization/json-output.js +35 -12
  161. package/dist/esm/visualization/json-output.js.map +1 -1
  162. package/dist/esm/visualization/mermaid-output.d.ts +7 -1
  163. package/dist/esm/visualization/mermaid-output.d.ts.map +1 -1
  164. package/dist/esm/visualization/mermaid-output.js +64 -9
  165. package/dist/esm/visualization/mermaid-output.js.map +1 -1
  166. package/dist/esm/visualization/object-like-output.d.ts +1 -1
  167. package/dist/esm/visualization/object-like-output.d.ts.map +1 -1
  168. package/dist/esm/visualization/object-like-output.js.map +1 -1
  169. package/package.json +30 -24
  170. package/dist/esm/reify/bin-paths.d.ts +0 -4
  171. package/dist/esm/reify/bin-paths.d.ts.map +0 -1
  172. package/dist/esm/reify/bin-paths.js +0 -23
  173. package/dist/esm/reify/bin-paths.js.map +0 -1
  174. package/dist/esm/types.d.ts +0 -42
  175. package/dist/esm/types.d.ts.map +0 -1
  176. package/dist/esm/types.js +0 -2
  177. package/dist/esm/types.js.map +0 -1
@@ -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"]}