@vltpkg/graph 1.0.0-rc.2 → 1.0.0-rc.22
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/README.md +101 -22
- package/package.json +51 -63
- package/dist/esm/actual/load.d.ts +0 -100
- package/dist/esm/actual/load.d.ts.map +0 -1
- package/dist/esm/actual/load.js +0 -304
- package/dist/esm/actual/load.js.map +0 -1
- package/dist/esm/browser.d.ts +0 -15
- package/dist/esm/browser.d.ts.map +0 -1
- package/dist/esm/browser.js +0 -17
- package/dist/esm/browser.js.map +0 -1
- package/dist/esm/build.d.ts +0 -29
- package/dist/esm/build.d.ts.map +0 -1
- package/dist/esm/build.js +0 -79
- package/dist/esm/build.js.map +0 -1
- package/dist/esm/dependencies.d.ts +0 -66
- package/dist/esm/dependencies.d.ts.map +0 -1
- package/dist/esm/dependencies.js +0 -112
- package/dist/esm/dependencies.js.map +0 -1
- package/dist/esm/diff.d.ts +0 -116
- package/dist/esm/diff.d.ts.map +0 -1
- package/dist/esm/diff.js +0 -148
- package/dist/esm/diff.js.map +0 -1
- package/dist/esm/edge.d.ts +0 -46
- package/dist/esm/edge.d.ts.map +0 -1
- package/dist/esm/edge.js +0 -74
- package/dist/esm/edge.js.map +0 -1
- package/dist/esm/graph.d.ts +0 -133
- package/dist/esm/graph.d.ts.map +0 -1
- package/dist/esm/graph.js +0 -407
- package/dist/esm/graph.js.map +0 -1
- package/dist/esm/ideal/add-nodes.d.ts +0 -34
- package/dist/esm/ideal/add-nodes.d.ts.map +0 -1
- package/dist/esm/ideal/add-nodes.js +0 -39
- package/dist/esm/ideal/add-nodes.js.map +0 -1
- package/dist/esm/ideal/append-nodes.d.ts +0 -19
- package/dist/esm/ideal/append-nodes.d.ts.map +0 -1
- package/dist/esm/ideal/append-nodes.js +0 -289
- package/dist/esm/ideal/append-nodes.js.map +0 -1
- package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts +0 -15
- package/dist/esm/ideal/build-ideal-from-starting-graph.d.ts.map +0 -1
- package/dist/esm/ideal/build-ideal-from-starting-graph.js +0 -55
- package/dist/esm/ideal/build-ideal-from-starting-graph.js.map +0 -1
- package/dist/esm/ideal/build.d.ts +0 -41
- package/dist/esm/ideal/build.d.ts.map +0 -1
- package/dist/esm/ideal/build.js +0 -48
- package/dist/esm/ideal/build.js.map +0 -1
- package/dist/esm/ideal/get-importer-specs.d.ts +0 -14
- package/dist/esm/ideal/get-importer-specs.d.ts.map +0 -1
- package/dist/esm/ideal/get-importer-specs.js +0 -106
- package/dist/esm/ideal/get-importer-specs.js.map +0 -1
- package/dist/esm/ideal/remove-nodes.d.ts +0 -7
- package/dist/esm/ideal/remove-nodes.d.ts.map +0 -1
- package/dist/esm/ideal/remove-nodes.js +0 -19
- package/dist/esm/ideal/remove-nodes.js.map +0 -1
- package/dist/esm/ideal/remove-satisfied-specs.d.ts +0 -8
- package/dist/esm/ideal/remove-satisfied-specs.d.ts.map +0 -1
- package/dist/esm/ideal/remove-satisfied-specs.js +0 -35
- package/dist/esm/ideal/remove-satisfied-specs.js.map +0 -1
- package/dist/esm/ideal/types.d.ts +0 -35
- package/dist/esm/ideal/types.d.ts.map +0 -1
- package/dist/esm/ideal/types.js +0 -2
- package/dist/esm/ideal/types.js.map +0 -1
- package/dist/esm/index.d.ts +0 -38
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -32
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/install.d.ts +0 -19
- package/dist/esm/install.d.ts.map +0 -1
- package/dist/esm/install.js +0 -173
- package/dist/esm/install.js.map +0 -1
- package/dist/esm/lockfile/load-edges.d.ts +0 -12
- package/dist/esm/lockfile/load-edges.d.ts.map +0 -1
- package/dist/esm/lockfile/load-edges.js +0 -105
- package/dist/esm/lockfile/load-edges.js.map +0 -1
- package/dist/esm/lockfile/load-nodes.d.ts +0 -5
- package/dist/esm/lockfile/load-nodes.d.ts.map +0 -1
- package/dist/esm/lockfile/load-nodes.js +0 -95
- package/dist/esm/lockfile/load-nodes.js.map +0 -1
- package/dist/esm/lockfile/load.d.ts +0 -50
- package/dist/esm/lockfile/load.d.ts.map +0 -1
- package/dist/esm/lockfile/load.js +0 -89
- package/dist/esm/lockfile/load.js.map +0 -1
- package/dist/esm/lockfile/save.d.ts +0 -31
- package/dist/esm/lockfile/save.d.ts.map +0 -1
- package/dist/esm/lockfile/save.js +0 -173
- package/dist/esm/lockfile/save.js.map +0 -1
- package/dist/esm/lockfile/types.d.ts +0 -89
- package/dist/esm/lockfile/types.d.ts.map +0 -1
- package/dist/esm/lockfile/types.js +0 -44
- package/dist/esm/lockfile/types.js.map +0 -1
- package/dist/esm/modifiers.d.ts +0 -189
- package/dist/esm/modifiers.d.ts.map +0 -1
- package/dist/esm/modifiers.js +0 -330
- package/dist/esm/modifiers.js.map +0 -1
- package/dist/esm/node.d.ts +0 -219
- package/dist/esm/node.d.ts.map +0 -1
- package/dist/esm/node.js +0 -368
- package/dist/esm/node.js.map +0 -1
- package/dist/esm/non-empty-list.d.ts +0 -3
- package/dist/esm/non-empty-list.d.ts.map +0 -1
- package/dist/esm/non-empty-list.js +0 -3
- package/dist/esm/non-empty-list.js.map +0 -1
- package/dist/esm/package.json +0 -3
- package/dist/esm/reify/add-edge.d.ts +0 -10
- package/dist/esm/reify/add-edge.d.ts.map +0 -1
- package/dist/esm/reify/add-edge.js +0 -65
- package/dist/esm/reify/add-edge.js.map +0 -1
- package/dist/esm/reify/add-edges.d.ts +0 -5
- package/dist/esm/reify/add-edges.d.ts.map +0 -1
- package/dist/esm/reify/add-edges.js +0 -12
- package/dist/esm/reify/add-edges.js.map +0 -1
- package/dist/esm/reify/add-nodes.d.ts +0 -7
- package/dist/esm/reify/add-nodes.d.ts.map +0 -1
- package/dist/esm/reify/add-nodes.js +0 -17
- package/dist/esm/reify/add-nodes.js.map +0 -1
- package/dist/esm/reify/bin-chmod.d.ts +0 -11
- package/dist/esm/reify/bin-chmod.d.ts.map +0 -1
- package/dist/esm/reify/bin-chmod.js +0 -39
- package/dist/esm/reify/bin-chmod.js.map +0 -1
- package/dist/esm/reify/build.d.ts +0 -14
- package/dist/esm/reify/build.d.ts.map +0 -1
- package/dist/esm/reify/build.js +0 -103
- package/dist/esm/reify/build.js.map +0 -1
- package/dist/esm/reify/calculate-save-value.d.ts +0 -3
- package/dist/esm/reify/calculate-save-value.d.ts.map +0 -1
- package/dist/esm/reify/calculate-save-value.js +0 -45
- package/dist/esm/reify/calculate-save-value.js.map +0 -1
- package/dist/esm/reify/check-needed-build.d.ts +0 -25
- package/dist/esm/reify/check-needed-build.d.ts.map +0 -1
- package/dist/esm/reify/check-needed-build.js +0 -50
- package/dist/esm/reify/check-needed-build.js.map +0 -1
- package/dist/esm/reify/delete-edge.d.ts +0 -5
- package/dist/esm/reify/delete-edge.d.ts.map +0 -1
- package/dist/esm/reify/delete-edge.js +0 -28
- package/dist/esm/reify/delete-edge.js.map +0 -1
- package/dist/esm/reify/delete-edges.d.ts +0 -5
- package/dist/esm/reify/delete-edges.d.ts.map +0 -1
- package/dist/esm/reify/delete-edges.js +0 -14
- package/dist/esm/reify/delete-edges.js.map +0 -1
- package/dist/esm/reify/delete-nodes.d.ts +0 -5
- package/dist/esm/reify/delete-nodes.d.ts.map +0 -1
- package/dist/esm/reify/delete-nodes.js +0 -16
- package/dist/esm/reify/delete-nodes.js.map +0 -1
- package/dist/esm/reify/extract-node.d.ts +0 -24
- package/dist/esm/reify/extract-node.d.ts.map +0 -1
- package/dist/esm/reify/extract-node.js +0 -76
- package/dist/esm/reify/extract-node.js.map +0 -1
- package/dist/esm/reify/index.d.ts +0 -34
- package/dist/esm/reify/index.d.ts.map +0 -1
- package/dist/esm/reify/index.js +0 -161
- package/dist/esm/reify/index.js.map +0 -1
- package/dist/esm/reify/internal-hoist.d.ts +0 -9
- package/dist/esm/reify/internal-hoist.d.ts.map +0 -1
- package/dist/esm/reify/internal-hoist.js +0 -134
- package/dist/esm/reify/internal-hoist.js.map +0 -1
- package/dist/esm/reify/optional-fail.d.ts +0 -16
- package/dist/esm/reify/optional-fail.d.ts.map +0 -1
- package/dist/esm/reify/optional-fail.js +0 -16
- package/dist/esm/reify/optional-fail.js.map +0 -1
- package/dist/esm/reify/rollback.d.ts +0 -5
- package/dist/esm/reify/rollback.d.ts.map +0 -1
- package/dist/esm/reify/rollback.js +0 -24
- package/dist/esm/reify/rollback.js.map +0 -1
- package/dist/esm/reify/update-importers-package-json.d.ts +0 -36
- package/dist/esm/reify/update-importers-package-json.d.ts.map +0 -1
- package/dist/esm/reify/update-importers-package-json.js +0 -120
- package/dist/esm/reify/update-importers-package-json.js.map +0 -1
- package/dist/esm/remove-optional-subgraph.d.ts +0 -34
- package/dist/esm/remove-optional-subgraph.d.ts.map +0 -1
- package/dist/esm/remove-optional-subgraph.js +0 -48
- package/dist/esm/remove-optional-subgraph.js.map +0 -1
- package/dist/esm/resolve-save-type.d.ts +0 -6
- package/dist/esm/resolve-save-type.d.ts.map +0 -1
- package/dist/esm/resolve-save-type.js +0 -5
- package/dist/esm/resolve-save-type.js.map +0 -1
- package/dist/esm/stringify-node.d.ts +0 -3
- package/dist/esm/stringify-node.d.ts.map +0 -1
- package/dist/esm/stringify-node.js +0 -24
- package/dist/esm/stringify-node.js.map +0 -1
- package/dist/esm/transfer-data/load.d.ts +0 -44
- package/dist/esm/transfer-data/load.d.ts.map +0 -1
- package/dist/esm/transfer-data/load.js +0 -176
- package/dist/esm/transfer-data/load.js.map +0 -1
- package/dist/esm/uninstall.d.ts +0 -15
- package/dist/esm/uninstall.d.ts.map +0 -1
- package/dist/esm/uninstall.js +0 -58
- package/dist/esm/uninstall.js.map +0 -1
- package/dist/esm/update.d.ts +0 -13
- package/dist/esm/update.d.ts.map +0 -1
- package/dist/esm/update.js +0 -63
- package/dist/esm/update.js.map +0 -1
- package/dist/esm/virtual-root.d.ts +0 -16
- package/dist/esm/virtual-root.d.ts.map +0 -1
- package/dist/esm/virtual-root.js +0 -79
- package/dist/esm/virtual-root.js.map +0 -1
- package/dist/esm/visualization/human-readable-output.d.ts +0 -27
- package/dist/esm/visualization/human-readable-output.d.ts.map +0 -1
- package/dist/esm/visualization/human-readable-output.js +0 -159
- package/dist/esm/visualization/human-readable-output.js.map +0 -1
- package/dist/esm/visualization/json-output.d.ts +0 -41
- package/dist/esm/visualization/json-output.d.ts.map +0 -1
- package/dist/esm/visualization/json-output.js +0 -51
- package/dist/esm/visualization/json-output.js.map +0 -1
- package/dist/esm/visualization/mermaid-output.d.ts +0 -17
- package/dist/esm/visualization/mermaid-output.d.ts.map +0 -1
- package/dist/esm/visualization/mermaid-output.js +0 -123
- package/dist/esm/visualization/mermaid-output.js.map +0 -1
- package/dist/esm/visualization/object-like-output.d.ts +0 -3
- package/dist/esm/visualization/object-like-output.d.ts.map +0 -1
- package/dist/esm/visualization/object-like-output.js +0 -48
- package/dist/esm/visualization/object-like-output.js.map +0 -1
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { Graph } from './graph.ts';
|
|
2
|
-
import type { Node } from './node.ts';
|
|
3
|
-
/**
|
|
4
|
-
* Remove the affected optional nodes starting from a given optional node
|
|
5
|
-
* that failed to resolve/install.
|
|
6
|
-
*
|
|
7
|
-
* Removing these dependents will frequently leave optional *dependencies*
|
|
8
|
-
* behind that are made unreachable from any project importer. For performance
|
|
9
|
-
* reasons, `graph.gc()` is not called automatically by this method, since
|
|
10
|
-
* multiple optional subgraphs may need to be removed in a single operation,
|
|
11
|
-
* and the mark-and-sweep garbage collection (a) can be excessively expensive,
|
|
12
|
-
* and (b) may need to communicate the set of garbage-collected nodes
|
|
13
|
-
* for cleanup (as in the case of optional node build failures during
|
|
14
|
-
* reification).
|
|
15
|
-
*/
|
|
16
|
-
export declare const removeOptionalSubgraph: (graph: Graph, startingNode: Node & {
|
|
17
|
-
optional: true;
|
|
18
|
-
}) => Set<Node>;
|
|
19
|
-
/**
|
|
20
|
-
* Given a starting node, this generator will walk back from the optional node
|
|
21
|
-
* to all of its optional dependents, emitting each one, and skipping any
|
|
22
|
-
* cycles.
|
|
23
|
-
*
|
|
24
|
-
* Note that when these are removed, it may create unreachable nodes in the
|
|
25
|
-
* graph! Be sure to call `graph.gc()` if these are removed.
|
|
26
|
-
*/
|
|
27
|
-
export declare function findOptionalSubgraph(node: Node & {
|
|
28
|
-
optional: true;
|
|
29
|
-
}, seen?: Set<Node & {
|
|
30
|
-
optional: true;
|
|
31
|
-
}>): Generator<Node & {
|
|
32
|
-
optional: true;
|
|
33
|
-
}, void>;
|
|
34
|
-
//# sourceMappingURL=remove-optional-subgraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove-optional-subgraph.d.ts","sourceRoot":"","sources":["../../src/remove-optional-subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,UAC1B,KAAK,gBACE,IAAI,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,cAQxC,CAAA;AAED;;;;;;;GAOG;AACH,wBAAiB,oBAAoB,CACnC,IAAI,EAAE,IAAI,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,EAC/B,IAAI;cAA8B,IAAI;EAAK,GAC1C,SAAS,CAAC,IAAI,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,EAAE,IAAI,CAAC,CAiB5C"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remove the affected optional nodes starting from a given optional node
|
|
3
|
-
* that failed to resolve/install.
|
|
4
|
-
*
|
|
5
|
-
* Removing these dependents will frequently leave optional *dependencies*
|
|
6
|
-
* behind that are made unreachable from any project importer. For performance
|
|
7
|
-
* reasons, `graph.gc()` is not called automatically by this method, since
|
|
8
|
-
* multiple optional subgraphs may need to be removed in a single operation,
|
|
9
|
-
* and the mark-and-sweep garbage collection (a) can be excessively expensive,
|
|
10
|
-
* and (b) may need to communicate the set of garbage-collected nodes
|
|
11
|
-
* for cleanup (as in the case of optional node build failures during
|
|
12
|
-
* reification).
|
|
13
|
-
*/
|
|
14
|
-
export const removeOptionalSubgraph = (graph, startingNode) => {
|
|
15
|
-
const removed = new Set();
|
|
16
|
-
for (const node of findOptionalSubgraph(startingNode)) {
|
|
17
|
-
graph.removeNode(node, undefined, true);
|
|
18
|
-
removed.add(node);
|
|
19
|
-
}
|
|
20
|
-
return removed;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Given a starting node, this generator will walk back from the optional node
|
|
24
|
-
* to all of its optional dependents, emitting each one, and skipping any
|
|
25
|
-
* cycles.
|
|
26
|
-
*
|
|
27
|
-
* Note that when these are removed, it may create unreachable nodes in the
|
|
28
|
-
* graph! Be sure to call `graph.gc()` if these are removed.
|
|
29
|
-
*/
|
|
30
|
-
export function* findOptionalSubgraph(node, seen = new Set()) {
|
|
31
|
-
// already visited, prevent looping
|
|
32
|
-
if (seen.has(node))
|
|
33
|
-
return;
|
|
34
|
-
// the node itself is part of the subgraph, of course
|
|
35
|
-
seen.add(node);
|
|
36
|
-
yield node;
|
|
37
|
-
// and any of its dependents that are also optional
|
|
38
|
-
for (const { from, optional } of node.edgesIn) {
|
|
39
|
-
// if it's an optional *edge*, we don't need to remove it, because it
|
|
40
|
-
// doesn't need the node anyway. But if the node is optional and the
|
|
41
|
-
// dep isn't, then we do need to remove it.
|
|
42
|
-
if (from.isOptional() && !optional) {
|
|
43
|
-
for (const dep of findOptionalSubgraph(from, seen))
|
|
44
|
-
yield dep;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=remove-optional-subgraph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remove-optional-subgraph.js","sourceRoot":"","sources":["../../src/remove-optional-subgraph.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAAY,EACZ,YAAuC,EACvC,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAA;IAC/B,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,SAAS,CAAC,CAAC,oBAAoB,CACnC,IAA+B,EAC/B,OAAO,IAAI,GAAG,EAA6B;IAE3C,mCAAmC;IACnC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAM;IAE1B,qDAAqD;IACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACd,MAAM,IAAI,CAAA;IAEV,mDAAmD;IACnD,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,qEAAqE;QACrE,oEAAoE;QACpE,2CAA2C;QAC3C,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,MAAM,GAAG,CAAA;QAC/D,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import type { Graph } from './graph.ts'\nimport type { Node } from './node.ts'\n\n/**\n * Remove the affected optional nodes starting from a given optional node\n * that failed to resolve/install.\n *\n * Removing these dependents will frequently leave optional *dependencies*\n * behind that are made unreachable from any project importer. For performance\n * reasons, `graph.gc()` is not called automatically by this method, since\n * multiple optional subgraphs may need to be removed in a single operation,\n * and the mark-and-sweep garbage collection (a) can be excessively expensive,\n * and (b) may need to communicate the set of garbage-collected nodes\n * for cleanup (as in the case of optional node build failures during\n * reification).\n */\nexport const removeOptionalSubgraph = (\n graph: Graph,\n startingNode: Node & { optional: true },\n) => {\n const removed = new Set<Node>()\n for (const node of findOptionalSubgraph(startingNode)) {\n graph.removeNode(node, undefined, true)\n removed.add(node)\n }\n return removed\n}\n\n/**\n * Given a starting node, this generator will walk back from the optional node\n * to all of its optional dependents, emitting each one, and skipping any\n * cycles.\n *\n * Note that when these are removed, it may create unreachable nodes in the\n * graph! Be sure to call `graph.gc()` if these are removed.\n */\nexport function* findOptionalSubgraph(\n node: Node & { optional: true },\n seen = new Set<Node & { optional: true }>(),\n): Generator<Node & { optional: true }, void> {\n // already visited, prevent looping\n if (seen.has(node)) return\n\n // the node itself is part of the subgraph, of course\n seen.add(node)\n yield node\n\n // and any of its dependents that are also optional\n for (const { from, optional } of node.edgesIn) {\n // if it's an optional *edge*, we don't need to remove it, because it\n // doesn't need the node anyway. But if the node is optional and the\n // dep isn't, then we do need to remove it.\n if (from.isOptional() && !optional) {\n for (const dep of findOptionalSubgraph(from, seen)) yield dep\n }\n }\n}\n"]}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { DependencySaveType, DependencyTypeShort, NodeLike } from '@vltpkg/types';
|
|
2
|
-
/**
|
|
3
|
-
* Resolve a {@link DependencySaveType} to a {@link DependencyTypeShort}
|
|
4
|
-
*/
|
|
5
|
-
export declare const resolveSaveType: (node: NodeLike, name: string, saveType: DependencySaveType) => DependencyTypeShort;
|
|
6
|
-
//# sourceMappingURL=resolve-save-type.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-save-type.d.ts","sourceRoot":"","sources":["../../src/resolve-save-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACT,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,eAAO,MAAM,eAAe,SACpB,QAAQ,QACR,MAAM,YACF,kBAAkB,KAC3B,mBAGA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-save-type.js","sourceRoot":"","sources":["../../src/resolve-save-type.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAc,EACd,IAAY,EACZ,QAA4B,EACP,EAAE,CACvB,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,CAC1C,CAAA","sourcesContent":["import type {\n DependencySaveType,\n DependencyTypeShort,\n NodeLike,\n} from '@vltpkg/types'\n\n/**\n * Resolve a {@link DependencySaveType} to a {@link DependencyTypeShort}\n */\nexport const resolveSaveType = (\n node: NodeLike,\n name: string,\n saveType: DependencySaveType,\n): DependencyTypeShort =>\n saveType !== 'implicit' ? saveType : (\n (node.edgesOut.get(name)?.type ?? 'prod')\n )\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify-node.d.ts","sourceRoot":"","sources":["../../src/stringify-node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,eAAO,MAAM,aAAa,UAAW,QAAQ,WAmB5C,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { splitDepID } from '@vltpkg/dep-id/browser';
|
|
2
|
-
export const stringifyNode = (node) => {
|
|
3
|
-
if (!node)
|
|
4
|
-
return '';
|
|
5
|
-
const version = node.version ? `@${node.version}` : '';
|
|
6
|
-
const [type, ref, nameVersion] = splitDepID(node.id);
|
|
7
|
-
if (type === 'registry') {
|
|
8
|
-
const prefix = ref ? `${ref}:` : 'npm:';
|
|
9
|
-
return `${prefix}${nameVersion}`;
|
|
10
|
-
}
|
|
11
|
-
else if (type === 'workspace') {
|
|
12
|
-
return `workspace:${node.name}`;
|
|
13
|
-
}
|
|
14
|
-
else if (type === 'file' && node.mainImporter) {
|
|
15
|
-
return `root:${node.name}`;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
// node.name getter will return the id if the package has no name
|
|
19
|
-
// property so here we check for that in order to return `type(ref)` only
|
|
20
|
-
const nameVersion = node.name !== node.id ? `:${node.name}${version}` : '';
|
|
21
|
-
return `${type}(${ref})${nameVersion}`;
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=stringify-node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stringify-node.js","sourceRoot":"","sources":["../../src/stringify-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAe,EAAE,EAAE;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEpD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA;QACvC,OAAO,GAAG,MAAM,GAAG,WAAW,EAAE,CAAA;IAClC,CAAC;SAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,aAAa,IAAI,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;SAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,yEAAyE;QACzE,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACxD,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,WAAW,EAAE,CAAA;IACxC,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { splitDepID } from '@vltpkg/dep-id/browser'\nimport type { NodeLike } from '@vltpkg/types'\n\nexport const stringifyNode = (node?: NodeLike) => {\n if (!node) return ''\n const version = node.version ? `@${node.version}` : ''\n const [type, ref, nameVersion] = splitDepID(node.id)\n\n if (type === 'registry') {\n const prefix = ref ? `${ref}:` : 'npm:'\n return `${prefix}${nameVersion}`\n } else if (type === 'workspace') {\n return `workspace:${node.name}`\n } else if (type === 'file' && node.mainImporter) {\n return `root:${node.name}`\n } else {\n // node.name getter will return the id if the package has no name\n // property so here we check for that in order to return `type(ref)` only\n const nameVersion =\n node.name !== node.id ? `:${node.name}${version}` : ''\n return `${type}(${ref})${nameVersion}`\n }\n}\n"]}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { SecurityArchive } from '@vltpkg/security-archive/browser';
|
|
2
|
-
import type { GraphLike, NormalizedManifest } from '@vltpkg/types';
|
|
3
|
-
import type { LockfileData } from '../lockfile/types.ts';
|
|
4
|
-
import type { SpecOptionsFilled } from '@vltpkg/spec/browser';
|
|
5
|
-
/**
|
|
6
|
-
* The returned object when loading a graph from a transfer data structure,
|
|
7
|
-
* including the graph itself, the spec options used to create it, and
|
|
8
|
-
* the security archive (if any).
|
|
9
|
-
*/
|
|
10
|
-
export type LoadResult = {
|
|
11
|
-
graph: GraphLike;
|
|
12
|
-
specOptions: SpecOptionsFilled;
|
|
13
|
-
securityArchive: SecurityArchive | undefined;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* A data structure defining a complete graph to be transfered, including
|
|
17
|
-
* extra information to the lockfile such as project info and importers.
|
|
18
|
-
*/
|
|
19
|
-
export type TransferData = {
|
|
20
|
-
importers: {
|
|
21
|
-
importer: boolean;
|
|
22
|
-
mainImporter: boolean;
|
|
23
|
-
id: string;
|
|
24
|
-
name: string;
|
|
25
|
-
version: string;
|
|
26
|
-
location: string;
|
|
27
|
-
manifest: NormalizedManifest;
|
|
28
|
-
projectRoot?: string;
|
|
29
|
-
integrity?: string;
|
|
30
|
-
resolved?: string;
|
|
31
|
-
dev?: boolean;
|
|
32
|
-
optional?: boolean;
|
|
33
|
-
}[];
|
|
34
|
-
lockfile: LockfileData;
|
|
35
|
-
projectInfo: {
|
|
36
|
-
root: string;
|
|
37
|
-
homedirRelativeRoot: string;
|
|
38
|
-
tools?: string[];
|
|
39
|
-
vltInstalled?: boolean;
|
|
40
|
-
};
|
|
41
|
-
securityArchive?: any;
|
|
42
|
-
};
|
|
43
|
-
export declare const load: (transfered: TransferData) => LoadResult;
|
|
44
|
-
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/transfer-data/load.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAWlE,OAAO,KAAK,EAEV,SAAS,EAGT,kBAAkB,EACnB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAAK,EAAQ,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA8CnE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,eAAe,EAAE,eAAe,GAAG,SAAS,CAAA;CAC7C,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE;QACT,QAAQ,EAAE,OAAO,CAAA;QACjB,YAAY,EAAE,OAAO,CAAA;QACrB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,kBAAkB,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,EAAE,CAAA;IACH,QAAQ,EAAE,YAAY,CAAA;IACtB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,mBAAmB,EAAE,MAAM,CAAA;QAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;IACD,eAAe,CAAC,EAAE,GAAG,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,IAAI,eAAgB,YAAY,KAAG,UAsK/C,CAAA"}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { error } from '@vltpkg/error-cause';
|
|
2
|
-
import { SecurityArchive } from '@vltpkg/security-archive/browser';
|
|
3
|
-
import { defaultGitHostArchives, defaultGitHosts, defaultRegistries, defaultRegistry, defaultScopeRegistries, } from '@vltpkg/spec/browser';
|
|
4
|
-
import { stringifyNode } from "../stringify-node.js";
|
|
5
|
-
import { loadEdges } from "../lockfile/load-edges.js";
|
|
6
|
-
import { loadNodes } from "../lockfile/load-nodes.js";
|
|
7
|
-
const loadSpecOptions = (lockfile) => {
|
|
8
|
-
const { catalog = {}, catalogs = {}, registries, registry, 'git-hosts': gitHosts, 'git-host-archives': gitHostArchives, 'scope-registries': scopeRegistries, 'jsr-registries': jsrRegistries, } = lockfile.options;
|
|
9
|
-
return {
|
|
10
|
-
catalog,
|
|
11
|
-
catalogs,
|
|
12
|
-
registries: { ...defaultRegistries, ...registries },
|
|
13
|
-
registry: registry || defaultRegistry,
|
|
14
|
-
'jsr-registries': { ...jsrRegistries },
|
|
15
|
-
'git-hosts': { ...defaultGitHosts, ...gitHosts },
|
|
16
|
-
'git-host-archives': {
|
|
17
|
-
...defaultGitHostArchives,
|
|
18
|
-
...gitHostArchives,
|
|
19
|
-
},
|
|
20
|
-
'scope-registries': {
|
|
21
|
-
...defaultScopeRegistries,
|
|
22
|
-
...scopeRegistries,
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
export const load = (transfered) => {
|
|
27
|
-
const [mainImporter] = transfered.importers;
|
|
28
|
-
const maybeGraph = {
|
|
29
|
-
importers: new Set(),
|
|
30
|
-
edges: new Set(),
|
|
31
|
-
nodes: new Map(),
|
|
32
|
-
nodesByName: new Map(),
|
|
33
|
-
projectRoot: transfered.projectInfo.root,
|
|
34
|
-
addEdge(type, spec, from, to) {
|
|
35
|
-
const existing = from.edgesOut.get(spec.name);
|
|
36
|
-
if (existing) {
|
|
37
|
-
const edge = existing;
|
|
38
|
-
if (edge.type === type &&
|
|
39
|
-
edge.spec.bareSpec === spec.bareSpec) {
|
|
40
|
-
if (to && to !== edge.to) {
|
|
41
|
-
edge.to = to;
|
|
42
|
-
edge.to.edgesIn.add(edge);
|
|
43
|
-
}
|
|
44
|
-
return edge;
|
|
45
|
-
}
|
|
46
|
-
this.edges.delete(edge);
|
|
47
|
-
}
|
|
48
|
-
const edge = {
|
|
49
|
-
from,
|
|
50
|
-
name: spec.name,
|
|
51
|
-
spec,
|
|
52
|
-
to,
|
|
53
|
-
type,
|
|
54
|
-
};
|
|
55
|
-
from.edgesOut.set(spec.name, edge);
|
|
56
|
-
to?.edgesIn.add(edge);
|
|
57
|
-
this.edges.add(edge);
|
|
58
|
-
return edge;
|
|
59
|
-
},
|
|
60
|
-
addNode(id, manifest) {
|
|
61
|
-
const graph = this;
|
|
62
|
-
if (!id)
|
|
63
|
-
throw error('id is required', { manifest });
|
|
64
|
-
if (!manifest)
|
|
65
|
-
throw error('manifest is required');
|
|
66
|
-
const node = {
|
|
67
|
-
id,
|
|
68
|
-
name: manifest.name,
|
|
69
|
-
version: manifest.version,
|
|
70
|
-
manifest,
|
|
71
|
-
edgesIn: new Set(),
|
|
72
|
-
edgesOut: new Map(),
|
|
73
|
-
workspaces: undefined,
|
|
74
|
-
graph,
|
|
75
|
-
importer: false,
|
|
76
|
-
mainImporter: false,
|
|
77
|
-
projectRoot: graph.projectRoot,
|
|
78
|
-
dev: false,
|
|
79
|
-
optional: false,
|
|
80
|
-
options: transfered.lockfile.options,
|
|
81
|
-
confused: false,
|
|
82
|
-
setResolved() { },
|
|
83
|
-
setConfusedManifest(fixed, confused) {
|
|
84
|
-
this.manifest = fixed;
|
|
85
|
-
this.rawManifest = confused;
|
|
86
|
-
this.confused = true;
|
|
87
|
-
},
|
|
88
|
-
maybeSetConfusedManifest() { },
|
|
89
|
-
toJSON() {
|
|
90
|
-
return {
|
|
91
|
-
id: this.id,
|
|
92
|
-
name: this.name,
|
|
93
|
-
version: this.version,
|
|
94
|
-
location: this.location,
|
|
95
|
-
importer: this.importer,
|
|
96
|
-
manifest: this.manifest,
|
|
97
|
-
projectRoot: this.projectRoot,
|
|
98
|
-
integrity: this.integrity,
|
|
99
|
-
resolved: this.resolved,
|
|
100
|
-
dev: this.dev,
|
|
101
|
-
optional: this.optional,
|
|
102
|
-
confused: this.confused,
|
|
103
|
-
...(this.confused ?
|
|
104
|
-
{ rawManifest: this.rawManifest }
|
|
105
|
-
: undefined),
|
|
106
|
-
};
|
|
107
|
-
},
|
|
108
|
-
toString() {
|
|
109
|
-
return stringifyNode(this);
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
this.nodes.set(node.id, node);
|
|
113
|
-
if (node.name) {
|
|
114
|
-
const allNodesWithThisName = this.nodesByName.get(node.name) ?? new Set();
|
|
115
|
-
allNodesWithThisName.add(node);
|
|
116
|
-
this.nodesByName.set(node.name, allNodesWithThisName);
|
|
117
|
-
}
|
|
118
|
-
return node;
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
// configure importer nodes
|
|
122
|
-
for (const importer of transfered.importers) {
|
|
123
|
-
const id = importer.id;
|
|
124
|
-
const graph = maybeGraph;
|
|
125
|
-
const node = graph.addNode(id, importer.manifest);
|
|
126
|
-
node.importer = true;
|
|
127
|
-
node.mainImporter = importer.id === mainImporter?.id;
|
|
128
|
-
node.location = importer.location;
|
|
129
|
-
node.integrity = importer.integrity;
|
|
130
|
-
node.resolved = importer.resolved;
|
|
131
|
-
/* c8 ignore next 2 */
|
|
132
|
-
node.dev = importer.dev ?? false;
|
|
133
|
-
node.optional = importer.optional ?? false;
|
|
134
|
-
node.confused = false;
|
|
135
|
-
node.toJSON = () => ({
|
|
136
|
-
id: node.id,
|
|
137
|
-
name: node.name,
|
|
138
|
-
version: node.version,
|
|
139
|
-
location: node.location,
|
|
140
|
-
importer: node.importer,
|
|
141
|
-
manifest: node.manifest,
|
|
142
|
-
projectRoot: node.projectRoot,
|
|
143
|
-
integrity: node.integrity,
|
|
144
|
-
resolved: node.resolved,
|
|
145
|
-
dev: node.dev,
|
|
146
|
-
optional: node.optional,
|
|
147
|
-
confused: node.confused,
|
|
148
|
-
});
|
|
149
|
-
node.toString = () => stringifyNode(node);
|
|
150
|
-
// should set the main importer in the first iteration
|
|
151
|
-
graph.mainImporter ??= node;
|
|
152
|
-
graph.importers.add(node);
|
|
153
|
-
}
|
|
154
|
-
// populate nodes and edges from loaded data
|
|
155
|
-
const graph = maybeGraph;
|
|
156
|
-
const specOptions = loadSpecOptions(transfered.lockfile);
|
|
157
|
-
loadNodes(graph, transfered.lockfile.nodes, specOptions, graph);
|
|
158
|
-
loadEdges(graph, transfered.lockfile.edges, specOptions);
|
|
159
|
-
const securityArchive = SecurityArchive.load(transfered.securityArchive);
|
|
160
|
-
// validates that all nodes have a security archive entry
|
|
161
|
-
if (securityArchive) {
|
|
162
|
-
securityArchive.ok = true;
|
|
163
|
-
for (const node of graph.nodes.values()) {
|
|
164
|
-
if (!securityArchive.has(node.id)) {
|
|
165
|
-
securityArchive.ok = false;
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return {
|
|
171
|
-
graph,
|
|
172
|
-
specOptions,
|
|
173
|
-
securityArchive,
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
//# sourceMappingURL=load.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/transfer-data/load.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\nimport { SecurityArchive } from '@vltpkg/security-archive/browser'\nimport {\n defaultGitHostArchives,\n defaultGitHosts,\n defaultRegistries,\n defaultRegistry,\n defaultScopeRegistries,\n} from '@vltpkg/spec/browser'\nimport { stringifyNode } from '../stringify-node.ts'\nimport { loadEdges } from '../lockfile/load-edges.ts'\nimport { loadNodes } from '../lockfile/load-nodes.ts'\nimport type {\n EdgeLike,\n GraphLike,\n NodeLike,\n DependencyTypeShort,\n NormalizedManifest,\n} from '@vltpkg/types'\nimport type { LockfileData } from '../lockfile/types.ts'\nimport type { DepID } from '@vltpkg/dep-id/browser'\nimport type { Spec, SpecOptionsFilled } from '@vltpkg/spec/browser'\n\nconst loadSpecOptions = (\n lockfile: LockfileData,\n): SpecOptionsFilled => {\n const {\n catalog = {},\n catalogs = {},\n registries,\n registry,\n 'git-hosts': gitHosts,\n 'git-host-archives': gitHostArchives,\n 'scope-registries': scopeRegistries,\n 'jsr-registries': jsrRegistries,\n } = lockfile.options\n return {\n catalog,\n catalogs,\n registries: { ...defaultRegistries, ...registries },\n registry: registry || defaultRegistry,\n 'jsr-registries': { ...jsrRegistries },\n 'git-hosts': { ...defaultGitHosts, ...gitHosts },\n 'git-host-archives': {\n ...defaultGitHostArchives,\n ...gitHostArchives,\n },\n 'scope-registries': {\n ...defaultScopeRegistries,\n ...scopeRegistries,\n },\n }\n}\n\ntype MaybeGraphLike = Pick<\n GraphLike,\n | 'importers'\n | 'edges'\n | 'nodes'\n | 'nodesByName'\n | 'projectRoot'\n | 'addEdge'\n | 'addNode'\n> & {\n mainImporter?: NodeLike\n}\n\n/**\n * The returned object when loading a graph from a transfer data structure,\n * including the graph itself, the spec options used to create it, and\n * the security archive (if any).\n */\nexport type LoadResult = {\n graph: GraphLike\n specOptions: SpecOptionsFilled\n securityArchive: SecurityArchive | undefined\n}\n\n/**\n * A data structure defining a complete graph to be transfered, including\n * extra information to the lockfile such as project info and importers.\n */\nexport type TransferData = {\n importers: {\n importer: boolean\n mainImporter: boolean\n id: string\n name: string\n version: string\n location: string\n manifest: NormalizedManifest\n projectRoot?: string\n integrity?: string\n resolved?: string\n dev?: boolean\n optional?: boolean\n }[]\n lockfile: LockfileData\n projectInfo: {\n root: string\n homedirRelativeRoot: string\n tools?: string[]\n vltInstalled?: boolean\n }\n securityArchive?: any\n}\n\nexport const load = (transfered: TransferData): LoadResult => {\n const [mainImporter] = transfered.importers\n const maybeGraph: MaybeGraphLike = {\n importers: new Set<NodeLike>(),\n edges: new Set<EdgeLike>(),\n nodes: new Map<DepID, NodeLike>(),\n nodesByName: new Map<string, Set<NodeLike>>(),\n projectRoot: transfered.projectInfo.root,\n addEdge(\n type: DependencyTypeShort,\n spec: Spec,\n from: NodeLike,\n to?: NodeLike,\n ) {\n const existing = from.edgesOut.get(spec.name)\n if (existing) {\n const edge = existing\n if (\n edge.type === type &&\n edge.spec.bareSpec === spec.bareSpec\n ) {\n if (to && to !== edge.to) {\n edge.to = to\n edge.to.edgesIn.add(edge)\n }\n return edge\n }\n this.edges.delete(edge)\n }\n const edge: EdgeLike = {\n from,\n name: spec.name,\n spec,\n to,\n type,\n }\n from.edgesOut.set(spec.name, edge)\n to?.edgesIn.add(edge)\n this.edges.add(edge)\n return edge\n },\n addNode(id?: DepID, manifest?: NormalizedManifest) {\n const graph = this as GraphLike\n if (!id) throw error('id is required', { manifest })\n if (!manifest) throw error('manifest is required')\n const node: NodeLike = {\n id,\n name: manifest.name,\n version: manifest.version,\n manifest,\n edgesIn: new Set(),\n edgesOut: new Map(),\n workspaces: undefined,\n graph,\n importer: false,\n mainImporter: false,\n projectRoot: graph.projectRoot,\n dev: false,\n optional: false,\n options: transfered.lockfile.options,\n confused: false,\n setResolved() {},\n setConfusedManifest(\n fixed: NormalizedManifest,\n confused?: NormalizedManifest,\n ) {\n this.manifest = fixed\n this.rawManifest = confused\n this.confused = true\n },\n maybeSetConfusedManifest() {},\n toJSON() {\n return {\n id: this.id,\n name: this.name,\n version: this.version,\n location: this.location,\n importer: this.importer,\n manifest: this.manifest,\n projectRoot: this.projectRoot,\n integrity: this.integrity,\n resolved: this.resolved,\n dev: this.dev,\n optional: this.optional,\n confused: this.confused,\n ...(this.confused ?\n { rawManifest: this.rawManifest }\n : undefined),\n }\n },\n toString() {\n return stringifyNode(this)\n },\n }\n this.nodes.set(node.id, node)\n if (node.name) {\n const allNodesWithThisName =\n this.nodesByName.get(node.name) ?? new Set()\n allNodesWithThisName.add(node)\n this.nodesByName.set(node.name, allNodesWithThisName)\n }\n return node\n },\n }\n\n // configure importer nodes\n for (const importer of transfered.importers) {\n const id = importer.id as DepID\n const graph = maybeGraph\n const node: NodeLike = graph.addNode(id, importer.manifest)\n node.importer = true\n node.mainImporter = importer.id === mainImporter?.id\n node.location = importer.location\n node.integrity = importer.integrity\n node.resolved = importer.resolved\n /* c8 ignore next 2 */\n node.dev = importer.dev ?? false\n node.optional = importer.optional ?? false\n node.confused = false\n node.toJSON = () => ({\n id: node.id,\n name: node.name,\n version: node.version,\n location: node.location,\n importer: node.importer,\n manifest: node.manifest,\n projectRoot: node.projectRoot,\n integrity: node.integrity,\n resolved: node.resolved,\n dev: node.dev,\n optional: node.optional,\n confused: node.confused,\n })\n node.toString = () => stringifyNode(node)\n // should set the main importer in the first iteration\n graph.mainImporter ??= node\n graph.importers.add(node)\n }\n\n // populate nodes and edges from loaded data\n const graph = maybeGraph as GraphLike\n const specOptions = loadSpecOptions(transfered.lockfile)\n\n loadNodes(graph, transfered.lockfile.nodes, specOptions, graph)\n loadEdges(graph, transfered.lockfile.edges, specOptions)\n\n const securityArchive = SecurityArchive.load(\n transfered.securityArchive,\n )\n\n // validates that all nodes have a security archive entry\n if (securityArchive) {\n securityArchive.ok = true\n for (const node of graph.nodes.values()) {\n if (!securityArchive.has(node.id)) {\n securityArchive.ok = false\n break\n }\n }\n }\n\n return {\n graph,\n specOptions,\n securityArchive,\n }\n}\n"]}
|
package/dist/esm/uninstall.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { PackageInfoClient } from '@vltpkg/package-info';
|
|
2
|
-
import type { LoadOptions } from './actual/load.ts';
|
|
3
|
-
import type { RemoveImportersDependenciesMap } from './dependencies.ts';
|
|
4
|
-
export type UninstallOptions = LoadOptions & {
|
|
5
|
-
packageInfo: PackageInfoClient;
|
|
6
|
-
allowScripts: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const uninstall: (options: UninstallOptions, remove?: RemoveImportersDependenciesMap) => Promise<{
|
|
9
|
-
graph: import("./graph.ts").Graph;
|
|
10
|
-
diff: undefined;
|
|
11
|
-
} | {
|
|
12
|
-
graph: import("./graph.ts").Graph;
|
|
13
|
-
diff: import("./reify/index.ts").ReifyResult;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AAQvE,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,WAAW,EAAE,iBAAiB,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,SAAS,YACX,gBAAgB,WAChB,8BAA8B;;;;;;EAqDxC,CAAA"}
|
package/dist/esm/uninstall.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { load as actualLoad } from "./actual/load.js";
|
|
2
|
-
import { GraphModifier } from "./modifiers.js";
|
|
3
|
-
import { build as idealBuild } from "./ideal/build.js";
|
|
4
|
-
import { reify } from "./reify/index.js";
|
|
5
|
-
import { lockfile } from "./index.js";
|
|
6
|
-
import { updatePackageJson } from "./reify/update-importers-package-json.js";
|
|
7
|
-
import { RollbackRemove } from '@vltpkg/rollback-remove';
|
|
8
|
-
export const uninstall = async (options, remove) => {
|
|
9
|
-
const mainManifest = options.packageJson.read(options.projectRoot);
|
|
10
|
-
const modifiers = GraphModifier.maybeLoad(options);
|
|
11
|
-
const remover = new RollbackRemove();
|
|
12
|
-
try {
|
|
13
|
-
const graph = await idealBuild({
|
|
14
|
-
...options,
|
|
15
|
-
remove,
|
|
16
|
-
mainManifest,
|
|
17
|
-
loadManifests: true,
|
|
18
|
-
remover,
|
|
19
|
-
});
|
|
20
|
-
const act = actualLoad({
|
|
21
|
-
...options,
|
|
22
|
-
mainManifest,
|
|
23
|
-
loadManifests: true,
|
|
24
|
-
});
|
|
25
|
-
// If lockfileOnly is enabled, skip reify and only save the lockfile
|
|
26
|
-
if (options.lockfileOnly) {
|
|
27
|
-
// Save only the main lockfile, skip all filesystem operations
|
|
28
|
-
lockfile.save({ graph, modifiers });
|
|
29
|
-
const saveImportersPackageJson =
|
|
30
|
-
/* c8 ignore next */
|
|
31
|
-
remove?.modifiedDependencies ?
|
|
32
|
-
updatePackageJson({
|
|
33
|
-
...options,
|
|
34
|
-
remove,
|
|
35
|
-
graph,
|
|
36
|
-
})
|
|
37
|
-
: undefined;
|
|
38
|
-
saveImportersPackageJson?.();
|
|
39
|
-
return { graph, diff: undefined };
|
|
40
|
-
}
|
|
41
|
-
const diff = await reify({
|
|
42
|
-
...options,
|
|
43
|
-
remove,
|
|
44
|
-
actual: act,
|
|
45
|
-
graph,
|
|
46
|
-
loadManifests: true,
|
|
47
|
-
remover,
|
|
48
|
-
});
|
|
49
|
-
return { graph, diff };
|
|
50
|
-
/* c8 ignore start */
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
await remover.rollback().catch(() => { });
|
|
54
|
-
throw err;
|
|
55
|
-
}
|
|
56
|
-
/* c8 ignore stop */
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=uninstall.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/uninstall.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAOxD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,OAAyB,EACzB,MAAuC,EACvC,EAAE;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC;YAC7B,GAAG,OAAO;YACV,MAAM;YACN,YAAY;YACZ,aAAa,EAAE,IAAI;YACnB,OAAO;SACR,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,UAAU,CAAC;YACrB,GAAG,OAAO;YACV,YAAY;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;QAEF,oEAAoE;QACpE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,8DAA8D;YAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACnC,MAAM,wBAAwB;YAC5B,oBAAoB;YACpB,MAAM,EAAE,oBAAoB,CAAC,CAAC;gBAC5B,iBAAiB,CAAC;oBAChB,GAAG,OAAO;oBACV,MAAM;oBACN,KAAK;iBACN,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;YACb,wBAAwB,EAAE,EAAE,CAAA;YAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACnC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC;YACvB,GAAG,OAAO;YACV,MAAM;YACN,MAAM,EAAE,GAAG;YACX,KAAK;YACL,aAAa,EAAE,IAAI;YACnB,OAAO;SACR,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACtB,qBAAqB;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACxC,MAAM,GAAG,CAAA;IACX,CAAC;IACD,oBAAoB;AACtB,CAAC,CAAA","sourcesContent":["import type { PackageInfoClient } from '@vltpkg/package-info'\nimport type { LoadOptions } from './actual/load.ts'\nimport { load as actualLoad } from './actual/load.ts'\nimport type { RemoveImportersDependenciesMap } from './dependencies.ts'\nimport { GraphModifier } from './modifiers.ts'\nimport { build as idealBuild } from './ideal/build.ts'\nimport { reify } from './reify/index.ts'\nimport { lockfile } from './index.ts'\nimport { updatePackageJson } from './reify/update-importers-package-json.ts'\nimport { RollbackRemove } from '@vltpkg/rollback-remove'\n\nexport type UninstallOptions = LoadOptions & {\n packageInfo: PackageInfoClient\n allowScripts: string\n}\n\nexport const uninstall = async (\n options: UninstallOptions,\n remove?: RemoveImportersDependenciesMap,\n) => {\n const mainManifest = options.packageJson.read(options.projectRoot)\n const modifiers = GraphModifier.maybeLoad(options)\n const remover = new RollbackRemove()\n\n try {\n const graph = await idealBuild({\n ...options,\n remove,\n mainManifest,\n loadManifests: true,\n remover,\n })\n const act = actualLoad({\n ...options,\n mainManifest,\n loadManifests: true,\n })\n\n // If lockfileOnly is enabled, skip reify and only save the lockfile\n if (options.lockfileOnly) {\n // Save only the main lockfile, skip all filesystem operations\n lockfile.save({ graph, modifiers })\n const saveImportersPackageJson =\n /* c8 ignore next */\n remove?.modifiedDependencies ?\n updatePackageJson({\n ...options,\n remove,\n graph,\n })\n : undefined\n saveImportersPackageJson?.()\n return { graph, diff: undefined }\n }\n\n const diff = await reify({\n ...options,\n remove,\n actual: act,\n graph,\n loadManifests: true,\n remover,\n })\n\n return { graph, diff }\n /* c8 ignore start */\n } catch (err) {\n await remover.rollback().catch(() => {})\n throw err\n }\n /* c8 ignore stop */\n}\n"]}
|
package/dist/esm/update.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { PackageInfoClient } from '@vltpkg/package-info';
|
|
2
|
-
import type { LoadOptions } from './actual/load.ts';
|
|
3
|
-
import { Graph } from './graph.ts';
|
|
4
|
-
export type UpdateOptions = LoadOptions & {
|
|
5
|
-
packageInfo: PackageInfoClient;
|
|
6
|
-
allowScripts: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const update: (options: UpdateOptions) => Promise<{
|
|
9
|
-
buildQueue: import("@vltpkg/dep-id").DepID[] | undefined;
|
|
10
|
-
graph: Graph;
|
|
11
|
-
diff: import("./diff.ts").Diff;
|
|
12
|
-
}>;
|
|
13
|
-
//# sourceMappingURL=update.d.ts.map
|
package/dist/esm/update.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/update.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,MAAM,YAAmB,aAAa;;;;EAsDlD,CAAA"}
|
package/dist/esm/update.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { load as actualLoad } from "./actual/load.js";
|
|
2
|
-
import { buildIdealFromStartingGraph } from "./ideal/build-ideal-from-starting-graph.js";
|
|
3
|
-
import { reify } from "./reify/index.js";
|
|
4
|
-
import { GraphModifier } from "./modifiers.js";
|
|
5
|
-
import { init } from '@vltpkg/init';
|
|
6
|
-
import { asError } from '@vltpkg/types';
|
|
7
|
-
import { Graph } from "./graph.js";
|
|
8
|
-
import { graphStep } from '@vltpkg/output';
|
|
9
|
-
import { RollbackRemove } from '@vltpkg/rollback-remove';
|
|
10
|
-
export const update = async (options) => {
|
|
11
|
-
let mainManifest = undefined;
|
|
12
|
-
try {
|
|
13
|
-
mainManifest = options.packageJson.read(options.projectRoot);
|
|
14
|
-
}
|
|
15
|
-
catch (err) {
|
|
16
|
-
if (asError(err).message === 'Could not read package.json file') {
|
|
17
|
-
await init({ cwd: options.projectRoot });
|
|
18
|
-
mainManifest = options.packageJson.read(options.projectRoot, {
|
|
19
|
-
reload: true,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
throw err;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const modifiers = GraphModifier.maybeLoad(options);
|
|
27
|
-
const remover = new RollbackRemove();
|
|
28
|
-
try {
|
|
29
|
-
const done = graphStep('build');
|
|
30
|
-
const graph = await buildIdealFromStartingGraph({
|
|
31
|
-
...options,
|
|
32
|
-
add: Object.assign(new Map(), { modifiedDependencies: false }),
|
|
33
|
-
remove: Object.assign(new Map(), {
|
|
34
|
-
modifiedDependencies: false,
|
|
35
|
-
}),
|
|
36
|
-
graph: new Graph({ ...options, mainManifest }),
|
|
37
|
-
modifiers,
|
|
38
|
-
remover,
|
|
39
|
-
});
|
|
40
|
-
done();
|
|
41
|
-
const act = actualLoad({
|
|
42
|
-
...options,
|
|
43
|
-
mainManifest,
|
|
44
|
-
loadManifests: true,
|
|
45
|
-
});
|
|
46
|
-
const { buildQueue, diff } = await reify({
|
|
47
|
-
...options,
|
|
48
|
-
actual: act,
|
|
49
|
-
graph,
|
|
50
|
-
loadManifests: true,
|
|
51
|
-
modifiers,
|
|
52
|
-
remover,
|
|
53
|
-
});
|
|
54
|
-
return { buildQueue, graph, diff };
|
|
55
|
-
/* c8 ignore start */
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
await remover.rollback().catch(() => { });
|
|
59
|
-
throw err;
|
|
60
|
-
}
|
|
61
|
-
/* c8 ignore stop */
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=update.js.map
|
package/dist/esm/update.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAA;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAOxD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,OAAsB,EAAE,EAAE;IACrD,IAAI,YAAY,GAAmC,SAAS,CAAA;IAC5D,IAAI,CAAC;QACH,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,kCAAkC,EAAE,CAAC;YAChE,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;YACxC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC3D,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,MAAM,2BAA2B,CAAC;YAC9C,GAAG,OAAO;YACV,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE;gBAC/B,oBAAoB,EAAE,KAAK;aAC5B,CAAC;YACF,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAC;YAC9C,SAAS;YACT,OAAO;SACR,CAAC,CAAA;QACF,IAAI,EAAE,CAAA;QAEN,MAAM,GAAG,GAAG,UAAU,CAAC;YACrB,GAAG,OAAO;YACV,YAAY;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;QAEF,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC;YACvC,GAAG,OAAO;YACV,MAAM,EAAE,GAAG;YACX,KAAK;YACL,aAAa,EAAE,IAAI;YACnB,SAAS;YACT,OAAO;SACR,CAAC,CAAA;QAEF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAClC,qBAAqB;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACxC,MAAM,GAAG,CAAA;IACX,CAAC;IACD,oBAAoB;AACtB,CAAC,CAAA","sourcesContent":["import { load as actualLoad } from './actual/load.ts'\nimport { buildIdealFromStartingGraph } from './ideal/build-ideal-from-starting-graph.ts'\nimport { reify } from './reify/index.ts'\nimport { GraphModifier } from './modifiers.ts'\nimport { init } from '@vltpkg/init'\nimport { asError } from '@vltpkg/types'\nimport type { NormalizedManifest } from '@vltpkg/types'\nimport type { PackageInfoClient } from '@vltpkg/package-info'\nimport type { LoadOptions } from './actual/load.ts'\nimport { Graph } from './graph.ts'\nimport { graphStep } from '@vltpkg/output'\nimport { RollbackRemove } from '@vltpkg/rollback-remove'\n\nexport type UpdateOptions = LoadOptions & {\n packageInfo: PackageInfoClient\n allowScripts: string\n}\n\nexport const update = async (options: UpdateOptions) => {\n let mainManifest: NormalizedManifest | undefined = undefined\n try {\n mainManifest = options.packageJson.read(options.projectRoot)\n } catch (err) {\n if (asError(err).message === 'Could not read package.json file') {\n await init({ cwd: options.projectRoot })\n mainManifest = options.packageJson.read(options.projectRoot, {\n reload: true,\n })\n } else {\n throw err\n }\n }\n\n const modifiers = GraphModifier.maybeLoad(options)\n const remover = new RollbackRemove()\n\n try {\n const done = graphStep('build')\n const graph = await buildIdealFromStartingGraph({\n ...options,\n add: Object.assign(new Map(), { modifiedDependencies: false }),\n remove: Object.assign(new Map(), {\n modifiedDependencies: false,\n }),\n graph: new Graph({ ...options, mainManifest }),\n modifiers,\n remover,\n })\n done()\n\n const act = actualLoad({\n ...options,\n mainManifest,\n loadManifests: true,\n })\n\n const { buildQueue, diff } = await reify({\n ...options,\n actual: act,\n graph,\n loadManifests: true,\n modifiers,\n remover,\n })\n\n return { buildQueue, graph, diff }\n /* c8 ignore start */\n } catch (err) {\n await remover.rollback().catch(() => {})\n throw err\n }\n /* c8 ignore stop */\n}\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { SpecOptions } from '@vltpkg/spec/browser';
|
|
2
|
-
import type { NodeLike } from '@vltpkg/types';
|
|
3
|
-
/**
|
|
4
|
-
* An unique DepID to identify the virtual root node.
|
|
5
|
-
*/
|
|
6
|
-
export declare const VIRTUAL_ROOT_ID: import("@vltpkg/dep-id/browser").DepID;
|
|
7
|
-
/**
|
|
8
|
-
* A virtual root used to aggregate multiple importers into a single graph.
|
|
9
|
-
*
|
|
10
|
-
* This is meant to be used with visual tools that want a single root node
|
|
11
|
-
* starting point to represent the graph.
|
|
12
|
-
*
|
|
13
|
-
* Returns undefined if a virtual root is not needed.
|
|
14
|
-
*/
|
|
15
|
-
export declare const createVirtualRoot: (name: string | undefined, options: SpecOptions, mainImporters: NodeLike[]) => NodeLike | undefined;
|
|
16
|
-
//# sourceMappingURL=virtual-root.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-root.d.ts","sourceRoot":"","sources":["../../src/virtual-root.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAY,QAAQ,EAAa,MAAM,eAAe,CAAA;AAElE;;GAEG;AACH,eAAO,MAAM,eAAe,wCAG1B,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,sCAEnB,WAAW,iBACL,QAAQ,EAAE,KACxB,QAAQ,GAAG,SA8Db,CAAA"}
|