effect 3.21.5 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Graph.js +123 -66
- package/dist/cjs/Graph.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Graph.d.ts +22 -3
- package/dist/dts/Graph.d.ts.map +1 -1
- package/dist/esm/Graph.js +116 -61
- package/dist/esm/Graph.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Graph.ts +149 -77
- package/src/internal/version.ts +1 -1
package/dist/esm/Graph.js
CHANGED
|
@@ -632,6 +632,23 @@ export const mapEdges = (mutable, f) => {
|
|
|
632
632
|
});
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
|
+
/** @internal */
|
|
636
|
+
const rebuildAdjacency = mutable => {
|
|
637
|
+
mutable.adjacency.clear();
|
|
638
|
+
mutable.reverseAdjacency.clear();
|
|
639
|
+
for (const nodeIndex of mutable.nodes.keys()) {
|
|
640
|
+
mutable.adjacency.set(nodeIndex, []);
|
|
641
|
+
mutable.reverseAdjacency.set(nodeIndex, []);
|
|
642
|
+
}
|
|
643
|
+
for (const [edgeIndex, edgeData] of mutable.edges) {
|
|
644
|
+
mutable.adjacency.get(edgeData.source).push(edgeIndex);
|
|
645
|
+
mutable.reverseAdjacency.get(edgeData.target).push(edgeIndex);
|
|
646
|
+
if (mutable.type === "undirected") {
|
|
647
|
+
mutable.adjacency.get(edgeData.target).push(edgeIndex);
|
|
648
|
+
mutable.reverseAdjacency.get(edgeData.source).push(edgeIndex);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
};
|
|
635
652
|
/**
|
|
636
653
|
* Reverses all edge directions in a mutable graph by swapping source and target nodes.
|
|
637
654
|
*
|
|
@@ -656,6 +673,9 @@ export const mapEdges = (mutable, f) => {
|
|
|
656
673
|
* @category transformations
|
|
657
674
|
*/
|
|
658
675
|
export const reverse = mutable => {
|
|
676
|
+
if (mutable.type === "undirected") {
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
659
679
|
// Reverse all edges by swapping source and target
|
|
660
680
|
for (const [index, edgeData] of mutable.edges) {
|
|
661
681
|
mutable.edges.set(index, {
|
|
@@ -664,20 +684,7 @@ export const reverse = mutable => {
|
|
|
664
684
|
data: edgeData.data
|
|
665
685
|
});
|
|
666
686
|
}
|
|
667
|
-
|
|
668
|
-
mutable.adjacency.clear();
|
|
669
|
-
mutable.reverseAdjacency.clear();
|
|
670
|
-
// Rebuild adjacency lists with reversed directions
|
|
671
|
-
for (const [edgeIndex, edgeData] of mutable.edges) {
|
|
672
|
-
// Add to forward adjacency (source -> target)
|
|
673
|
-
const sourceEdges = mutable.adjacency.get(edgeData.source) || [];
|
|
674
|
-
sourceEdges.push(edgeIndex);
|
|
675
|
-
mutable.adjacency.set(edgeData.source, sourceEdges);
|
|
676
|
-
// Add to reverse adjacency (target <- source)
|
|
677
|
-
const targetEdges = mutable.reverseAdjacency.get(edgeData.target) || [];
|
|
678
|
-
targetEdges.push(edgeIndex);
|
|
679
|
-
mutable.reverseAdjacency.set(edgeData.target, targetEdges);
|
|
680
|
-
}
|
|
687
|
+
rebuildAdjacency(mutable);
|
|
681
688
|
// Invalidate cycle flag since edge directions changed
|
|
682
689
|
mutable.isAcyclic = Option.none();
|
|
683
690
|
};
|
|
@@ -1129,8 +1136,11 @@ export const hasEdge = (graph, source, target) => {
|
|
|
1129
1136
|
// Check if any edge in the adjacency list connects to the target
|
|
1130
1137
|
for (const edgeIndex of adjacencyList) {
|
|
1131
1138
|
const edge = graph.edges.get(edgeIndex);
|
|
1132
|
-
if (edge !== undefined
|
|
1133
|
-
|
|
1139
|
+
if (edge !== undefined) {
|
|
1140
|
+
const neighbor = graph.type === "undirected" && edge.target === source ? edge.source : edge.target;
|
|
1141
|
+
if (neighbor === target) {
|
|
1142
|
+
return true;
|
|
1143
|
+
}
|
|
1134
1144
|
}
|
|
1135
1145
|
}
|
|
1136
1146
|
return false;
|
|
@@ -1161,6 +1171,21 @@ export const hasEdge = (graph, source, target) => {
|
|
|
1161
1171
|
* @category getters
|
|
1162
1172
|
*/
|
|
1163
1173
|
export const edgeCount = graph => graph.edges.size;
|
|
1174
|
+
const getDirectedNeighbors = (graph, nodeIndex, direction) => {
|
|
1175
|
+
const adjacencyMap = direction === "incoming" ? graph.reverseAdjacency : graph.adjacency;
|
|
1176
|
+
const adjacencyList = adjacencyMap.get(nodeIndex);
|
|
1177
|
+
if (adjacencyList === undefined) {
|
|
1178
|
+
return [];
|
|
1179
|
+
}
|
|
1180
|
+
const result = [];
|
|
1181
|
+
for (const edgeIndex of adjacencyList) {
|
|
1182
|
+
const edge = graph.edges.get(edgeIndex);
|
|
1183
|
+
if (edge !== undefined) {
|
|
1184
|
+
result.push(direction === "incoming" ? edge.source : edge.target);
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
return result;
|
|
1188
|
+
};
|
|
1164
1189
|
/**
|
|
1165
1190
|
* Returns the neighboring nodes (targets of outgoing edges) for a given node.
|
|
1166
1191
|
*
|
|
@@ -1195,21 +1220,42 @@ export const neighbors = (graph, nodeIndex) => {
|
|
|
1195
1220
|
if (graph.type === "undirected") {
|
|
1196
1221
|
return getUndirectedNeighbors(graph, nodeIndex);
|
|
1197
1222
|
}
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1223
|
+
return getDirectedNeighbors(graph, nodeIndex, "outgoing");
|
|
1224
|
+
};
|
|
1225
|
+
/**
|
|
1226
|
+
* Returns the outgoing neighbor node indices for a node in a directed graph.
|
|
1227
|
+
*
|
|
1228
|
+
* Throws a `GraphError` when used with an undirected graph.
|
|
1229
|
+
*
|
|
1230
|
+
* @since 3.22.0
|
|
1231
|
+
* @category queries
|
|
1232
|
+
*/
|
|
1233
|
+
export const successors = (graph, nodeIndex) => {
|
|
1234
|
+
if (graph.type === "undirected") {
|
|
1235
|
+
throw new GraphError({
|
|
1236
|
+
message: "Cannot get successors of undirected graph"
|
|
1237
|
+
});
|
|
1201
1238
|
}
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1239
|
+
return getDirectedNeighbors(graph, nodeIndex, "outgoing");
|
|
1240
|
+
};
|
|
1241
|
+
/**
|
|
1242
|
+
* Returns the incoming neighbor node indices for a node in a directed graph.
|
|
1243
|
+
*
|
|
1244
|
+
* Throws a `GraphError` when used with an undirected graph.
|
|
1245
|
+
*
|
|
1246
|
+
* @since 3.22.0
|
|
1247
|
+
* @category queries
|
|
1248
|
+
*/
|
|
1249
|
+
export const predecessors = (graph, nodeIndex) => {
|
|
1250
|
+
if (graph.type === "undirected") {
|
|
1251
|
+
throw new GraphError({
|
|
1252
|
+
message: "Cannot get predecessors of undirected graph"
|
|
1253
|
+
});
|
|
1208
1254
|
}
|
|
1209
|
-
return
|
|
1255
|
+
return getDirectedNeighbors(graph, nodeIndex, "incoming");
|
|
1210
1256
|
};
|
|
1211
1257
|
/**
|
|
1212
|
-
* Get neighbors of a node in a specific direction
|
|
1258
|
+
* Get directed neighbors of a node in a specific direction.
|
|
1213
1259
|
*
|
|
1214
1260
|
* @example
|
|
1215
1261
|
* ```ts
|
|
@@ -1231,25 +1277,17 @@ export const neighbors = (graph, nodeIndex) => {
|
|
|
1231
1277
|
* const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
|
|
1232
1278
|
* ```
|
|
1233
1279
|
*
|
|
1280
|
+
* @deprecated Use {@link successors} for outgoing neighbors or {@link predecessors} for incoming neighbors.
|
|
1234
1281
|
* @since 3.18.0
|
|
1235
1282
|
* @category queries
|
|
1236
1283
|
*/
|
|
1237
1284
|
export const neighborsDirected = (graph, nodeIndex, direction) => {
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
}
|
|
1243
|
-
const result = [];
|
|
1244
|
-
for (const edgeIndex of adjacencyList) {
|
|
1245
|
-
const edge = graph.edges.get(edgeIndex);
|
|
1246
|
-
if (edge !== undefined) {
|
|
1247
|
-
// For incoming direction, we want the source node instead of target
|
|
1248
|
-
const neighborNode = direction === "incoming" ? edge.source : edge.target;
|
|
1249
|
-
result.push(neighborNode);
|
|
1250
|
-
}
|
|
1285
|
+
if (graph.type === "undirected") {
|
|
1286
|
+
throw new GraphError({
|
|
1287
|
+
message: "Cannot get directed neighbors of undirected graph"
|
|
1288
|
+
});
|
|
1251
1289
|
}
|
|
1252
|
-
return
|
|
1290
|
+
return getDirectedNeighbors(graph, nodeIndex, direction);
|
|
1253
1291
|
};
|
|
1254
1292
|
/**
|
|
1255
1293
|
* Exports a graph to GraphViz DOT format for visualization.
|
|
@@ -1500,7 +1538,7 @@ export const isAcyclic = graph => {
|
|
|
1500
1538
|
visited.add(node);
|
|
1501
1539
|
recursionStack.add(node);
|
|
1502
1540
|
// Get neighbors for this node
|
|
1503
|
-
const nodeNeighbors =
|
|
1541
|
+
const nodeNeighbors = getDirectedNeighbors(graph, node, "outgoing");
|
|
1504
1542
|
stack[stack.length - 1] = [node, nodeNeighbors, 0, false];
|
|
1505
1543
|
continue;
|
|
1506
1544
|
}
|
|
@@ -1625,7 +1663,7 @@ const getUndirectedNeighbors = (graph, nodeIndex) => {
|
|
|
1625
1663
|
}
|
|
1626
1664
|
return Array.from(neighbors);
|
|
1627
1665
|
};
|
|
1628
|
-
const getTraversalNeighbors = (graph, nodeIndex, direction) => graph.type === "undirected" ? getUndirectedNeighbors(graph, nodeIndex) :
|
|
1666
|
+
const getTraversalNeighbors = (graph, nodeIndex, direction) => graph.type === "undirected" ? getUndirectedNeighbors(graph, nodeIndex) : getDirectedNeighbors(graph, nodeIndex, direction);
|
|
1629
1667
|
const getTraversableNeighbor = (graph, current, edge) => graph.type === "undirected" && edge.target === current ? edge.source : edge.target;
|
|
1630
1668
|
/**
|
|
1631
1669
|
* Find connected components in an undirected graph.
|
|
@@ -1703,6 +1741,11 @@ export const connectedComponents = graph => {
|
|
|
1703
1741
|
* @category algorithms
|
|
1704
1742
|
*/
|
|
1705
1743
|
export const stronglyConnectedComponents = graph => {
|
|
1744
|
+
if (graph.type === "undirected") {
|
|
1745
|
+
throw new GraphError({
|
|
1746
|
+
message: "Cannot find strongly connected components of undirected graph"
|
|
1747
|
+
});
|
|
1748
|
+
}
|
|
1706
1749
|
const visited = new Set();
|
|
1707
1750
|
const finishOrder = [];
|
|
1708
1751
|
for (const startNode of graph.nodes.keys()) {
|
|
@@ -1718,7 +1761,7 @@ export const stronglyConnectedComponents = graph => {
|
|
|
1718
1761
|
continue;
|
|
1719
1762
|
}
|
|
1720
1763
|
visited.add(node);
|
|
1721
|
-
const nodeNeighborsList =
|
|
1764
|
+
const nodeNeighborsList = getDirectedNeighbors(graph, node, "outgoing");
|
|
1722
1765
|
stack[stack.length - 1] = [node, nodeNeighborsList, 0, false];
|
|
1723
1766
|
continue;
|
|
1724
1767
|
}
|
|
@@ -1771,6 +1814,19 @@ export const stronglyConnectedComponents = graph => {
|
|
|
1771
1814
|
}
|
|
1772
1815
|
return sccs;
|
|
1773
1816
|
};
|
|
1817
|
+
const validateNonNegativeEdgeWeights = (graph, cost, algorithm) => {
|
|
1818
|
+
const edgeWeights = new Map();
|
|
1819
|
+
for (const [edgeIndex, edgeData] of graph.edges) {
|
|
1820
|
+
const weight = cost(edgeData.data);
|
|
1821
|
+
if (weight < 0 || Number.isNaN(weight)) {
|
|
1822
|
+
throw new GraphError({
|
|
1823
|
+
message: `${algorithm} requires non-negative edge weights`
|
|
1824
|
+
});
|
|
1825
|
+
}
|
|
1826
|
+
edgeWeights.set(edgeIndex, weight);
|
|
1827
|
+
}
|
|
1828
|
+
return edgeWeights;
|
|
1829
|
+
};
|
|
1774
1830
|
/**
|
|
1775
1831
|
* Find the shortest path between two nodes using Dijkstra's algorithm.
|
|
1776
1832
|
*
|
|
@@ -1813,6 +1869,7 @@ export const dijkstra = (graph, config) => {
|
|
|
1813
1869
|
if (!graph.nodes.has(target)) {
|
|
1814
1870
|
throw missingNode(target);
|
|
1815
1871
|
}
|
|
1872
|
+
const edgeWeights = validateNonNegativeEdgeWeights(graph, cost, "Dijkstra's algorithm");
|
|
1816
1873
|
// Early return if source equals target
|
|
1817
1874
|
if (source === target) {
|
|
1818
1875
|
return Option.some({
|
|
@@ -1864,11 +1921,7 @@ export const dijkstra = (graph, config) => {
|
|
|
1864
1921
|
const edge = graph.edges.get(edgeIndex);
|
|
1865
1922
|
if (edge !== undefined) {
|
|
1866
1923
|
const neighbor = getTraversableNeighbor(graph, currentNode, edge);
|
|
1867
|
-
const weight =
|
|
1868
|
-
// Validate non-negative weights
|
|
1869
|
-
if (weight < 0) {
|
|
1870
|
-
throw new Error(`Dijkstra's algorithm requires non-negative edge weights, found ${weight}`);
|
|
1871
|
-
}
|
|
1924
|
+
const weight = edgeWeights.get(edgeIndex);
|
|
1872
1925
|
const newDistance = currentDistance + weight;
|
|
1873
1926
|
const neighborDistance = distances.get(neighbor);
|
|
1874
1927
|
// Relaxation step
|
|
@@ -2088,6 +2141,7 @@ export const astar = (graph, config) => {
|
|
|
2088
2141
|
if (!graph.nodes.has(target)) {
|
|
2089
2142
|
throw missingNode(target);
|
|
2090
2143
|
}
|
|
2144
|
+
const edgeWeights = validateNonNegativeEdgeWeights(graph, cost, "A* algorithm");
|
|
2091
2145
|
// Early return if source equals target
|
|
2092
2146
|
if (source === target) {
|
|
2093
2147
|
return Option.some({
|
|
@@ -2152,11 +2206,7 @@ export const astar = (graph, config) => {
|
|
|
2152
2206
|
const edge = graph.edges.get(edgeIndex);
|
|
2153
2207
|
if (edge !== undefined) {
|
|
2154
2208
|
const neighbor = getTraversableNeighbor(graph, currentNode, edge);
|
|
2155
|
-
const weight =
|
|
2156
|
-
// Validate non-negative weights
|
|
2157
|
-
if (weight < 0) {
|
|
2158
|
-
throw new Error(`A* algorithm requires non-negative edge weights, found ${weight}`);
|
|
2159
|
-
}
|
|
2209
|
+
const weight = edgeWeights.get(edgeIndex);
|
|
2160
2210
|
const tentativeGScore = currentGScore + weight;
|
|
2161
2211
|
const neighborGScore = gScore.get(neighbor);
|
|
2162
2212
|
// If this path to neighbor is better than any previous one
|
|
@@ -2754,6 +2804,7 @@ export const topo = (graph, config = {}) => {
|
|
|
2754
2804
|
[Symbol.iterator]: () => {
|
|
2755
2805
|
const inDegree = new Map();
|
|
2756
2806
|
const remaining = new Set();
|
|
2807
|
+
const initialSet = new Set(initials);
|
|
2757
2808
|
const queue = [...initials];
|
|
2758
2809
|
// Initialize in-degree counts
|
|
2759
2810
|
for (const [nodeIndex] of graph.nodes) {
|
|
@@ -2765,12 +2816,16 @@ export const topo = (graph, config = {}) => {
|
|
|
2765
2816
|
const currentInDegree = inDegree.get(edgeData.target) || 0;
|
|
2766
2817
|
inDegree.set(edgeData.target, currentInDegree + 1);
|
|
2767
2818
|
}
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2819
|
+
for (const nodeIndex of initials) {
|
|
2820
|
+
if (inDegree.get(nodeIndex) !== 0) {
|
|
2821
|
+
throw new GraphError({
|
|
2822
|
+
message: `Initial node ${nodeIndex} has incoming edges`
|
|
2823
|
+
});
|
|
2824
|
+
}
|
|
2825
|
+
}
|
|
2826
|
+
for (const [nodeIndex, degree] of inDegree) {
|
|
2827
|
+
if (degree === 0 && !initialSet.has(nodeIndex)) {
|
|
2828
|
+
queue.push(nodeIndex);
|
|
2774
2829
|
}
|
|
2775
2830
|
}
|
|
2776
2831
|
const nextMapped = () => {
|
|
@@ -2779,7 +2834,7 @@ export const topo = (graph, config = {}) => {
|
|
|
2779
2834
|
if (remaining.has(current)) {
|
|
2780
2835
|
remaining.delete(current);
|
|
2781
2836
|
// Process outgoing edges, reducing in-degree of targets
|
|
2782
|
-
const neighbors =
|
|
2837
|
+
const neighbors = getDirectedNeighbors(graph, current, "outgoing");
|
|
2783
2838
|
for (const neighbor of neighbors) {
|
|
2784
2839
|
if (remaining.has(neighbor)) {
|
|
2785
2840
|
const currentInDegree = inDegree.get(neighbor) || 0;
|
package/dist/esm/Graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.js","names":["Data","Equal","dual","Hash","format","NodeInspectSymbol","Option","pipeArguments","TypeId","Edge","Class","ProtoGraph","Symbol","iterator","nodes","toJSON","symbol","that","isGraph","size","edges","type","nodeIndex","nodeData","has","otherNodeData","get","equals","edgeIndex","edgeData","otherEdge","hash","string","number","_id","nodeCount","edgeCount","toString","pipe","arguments","GraphError","TaggedError","missingNode","node","message","u","directed","mutate","graph","Object","create","Map","adjacency","reverseAdjacency","nextNodeIndex","nextEdgeIndex","isAcyclic","some","mutable","beginMutation","endMutation","undirected","set","f","addNode","data","getNode","none","hasNode","findNode","predicate","index","findNodes","results","push","findEdge","source","target","findEdges","updateNode","currentData","newData","updateEdge","currentEdge","mapNodes","mapEdges","reverse","clear","sourceEdges","targetEdges","filterMapNodes","nodesToRemove","result","isSome","value","removeNode","filterMapEdges","edgesToRemove","removeEdge","filterNodes","filterEdges","invalidateCycleFlagOnRemoval","invalidateCycleFlagOnAddition","addEdge","sourceAdjacency","undefined","targetReverseAdjacency","targetAdjacency","sourceReverseAdjacency","outgoingEdges","edge","incomingEdges","removeEdgeInternal","delete","wasRemoved","indexOf","splice","getEdge","hasEdge","adjacencyList","neighbors","getUndirectedNeighbors","neighborsDirected","direction","adjacencyMap","neighborNode","toGraphViz","options","edgeLabel","String","graphName","nodeLabel","isDirected","graphType","edgeOperator","lines","label","replace","join","escapeMermaidLabel","formatMermaidNode","nodeId","shape","toMermaid","diagramType","nodeShape","finalDiagramType","formattedNode","sourceId","targetId","visited","Set","startNode","keys","add","stack","parent","length","pop","nodeNeighbors","neighbor","recursionStack","neighborIndex","isFirstVisit","Array","from","isBipartite","coloring","discovered","isBipartiteGraph","queue","current","shift","currentColor","neighborColor","otherNode","getTraversalNeighbors","getTraversableNeighbor","connectedComponents","components","component","stronglyConnectedComponents","finishOrder","nodeNeighborsList","sccs","i","scc","predecessor","dijkstra","config","cost","path","distance","costs","distances","previous","Infinity","priorityQueue","minIndex","currentNode","currentDistance","weight","Error","newDistance","neighborDistance","targetDistance","unshift","prev","floydWarshall","allNodes","dist","next","edgeMatrix","j","currentWeight","reverseWeight","k","distIK","distKJ","distIJ","paths","resultCosts","weights","nextNode","astar","heuristic","targetNodeData","gScore","fScore","sourceNodeData","h","openSet","currentGScore","tentativeGScore","neighborGScore","neighborNodeData","targetGScore","bellmanFord","hasUpdate","sourceDistance","affectedNodes","Walker","visit","constructor","indices","walker","_","values","entries","dfs","start","nextMapped","nodeDataOption","done","bfs","topo","initials","inDegree","remaining","currentInDegree","degree","newInDegree","dfsPostOrder","finished","visitedChildren","nodeToEmit","nodeMap","edgeMap","externals","nodeIterator"],"sources":["../../src/Graph.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Graph.js","names":["Data","Equal","dual","Hash","format","NodeInspectSymbol","Option","pipeArguments","TypeId","Edge","Class","ProtoGraph","Symbol","iterator","nodes","toJSON","symbol","that","isGraph","size","edges","type","nodeIndex","nodeData","has","otherNodeData","get","equals","edgeIndex","edgeData","otherEdge","hash","string","number","_id","nodeCount","edgeCount","toString","pipe","arguments","GraphError","TaggedError","missingNode","node","message","u","directed","mutate","graph","Object","create","Map","adjacency","reverseAdjacency","nextNodeIndex","nextEdgeIndex","isAcyclic","some","mutable","beginMutation","endMutation","undirected","set","f","addNode","data","getNode","none","hasNode","findNode","predicate","index","findNodes","results","push","findEdge","source","target","findEdges","updateNode","currentData","newData","updateEdge","currentEdge","mapNodes","mapEdges","rebuildAdjacency","clear","keys","reverse","filterMapNodes","nodesToRemove","result","isSome","value","removeNode","filterMapEdges","edgesToRemove","removeEdge","filterNodes","filterEdges","invalidateCycleFlagOnRemoval","invalidateCycleFlagOnAddition","addEdge","sourceAdjacency","undefined","targetReverseAdjacency","targetAdjacency","sourceReverseAdjacency","outgoingEdges","edge","incomingEdges","removeEdgeInternal","delete","wasRemoved","indexOf","splice","getEdge","hasEdge","adjacencyList","neighbor","getDirectedNeighbors","direction","adjacencyMap","neighbors","getUndirectedNeighbors","successors","predecessors","neighborsDirected","toGraphViz","options","edgeLabel","String","graphName","nodeLabel","isDirected","graphType","edgeOperator","lines","label","replace","join","escapeMermaidLabel","formatMermaidNode","nodeId","shape","toMermaid","diagramType","nodeShape","finalDiagramType","formattedNode","sourceId","targetId","visited","Set","startNode","add","stack","parent","length","pop","nodeNeighbors","recursionStack","neighborIndex","isFirstVisit","isBipartite","coloring","discovered","isBipartiteGraph","queue","current","shift","currentColor","neighborColor","otherNode","Array","from","getTraversalNeighbors","getTraversableNeighbor","connectedComponents","components","component","stronglyConnectedComponents","finishOrder","nodeNeighborsList","sccs","i","scc","predecessor","validateNonNegativeEdgeWeights","cost","algorithm","edgeWeights","weight","Number","isNaN","dijkstra","config","path","distance","costs","distances","previous","Infinity","priorityQueue","minIndex","currentNode","currentDistance","newDistance","neighborDistance","targetDistance","unshift","prev","floydWarshall","allNodes","dist","next","edgeMatrix","j","currentWeight","reverseWeight","k","distIK","distKJ","distIJ","Error","paths","resultCosts","weights","nextNode","astar","heuristic","targetNodeData","gScore","fScore","sourceNodeData","h","openSet","currentGScore","tentativeGScore","neighborGScore","neighborNodeData","targetGScore","bellmanFord","hasUpdate","sourceDistance","affectedNodes","Walker","visit","constructor","indices","walker","_","values","entries","dfs","start","nextMapped","nodeDataOption","done","bfs","topo","initials","inDegree","remaining","initialSet","currentInDegree","degree","newInDegree","dfsPostOrder","finished","visitedChildren","nodeToEmit","nodeMap","edgeMap","externals","nodeIterator"],"sources":["../../src/Graph.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|