@bian-womp/spark-graph 0.3.59 → 0.3.61
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/lib/cjs/index.cjs +14 -44
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/Graph.d.ts +0 -4
- package/lib/cjs/src/runtime/components/Graph.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/HandleResolver.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/graph-utils.d.ts +2 -2
- package/lib/cjs/src/runtime/components/graph-utils.d.ts.map +1 -1
- package/lib/esm/index.js +14 -44
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/Graph.d.ts +0 -4
- package/lib/esm/src/runtime/components/Graph.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/HandleResolver.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/graph-utils.d.ts +2 -2
- package/lib/esm/src/runtime/components/graph-utils.d.ts.map +1 -1
- package/package.json +2 -2
package/lib/cjs/index.cjs
CHANGED
|
@@ -877,18 +877,10 @@ class Graph {
|
|
|
877
877
|
const edge = this.edges.find((e) => e.id === edgeId);
|
|
878
878
|
if (!edge)
|
|
879
879
|
return;
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
edge.srcUnionTypes = updates.srcUnionTypes;
|
|
885
|
-
}
|
|
886
|
-
if (updates.convert !== undefined) {
|
|
887
|
-
edge.convert = updates.convert;
|
|
888
|
-
}
|
|
889
|
-
if (updates.convertAsync !== undefined) {
|
|
890
|
-
edge.convertAsync = updates.convertAsync;
|
|
891
|
-
}
|
|
880
|
+
edge.dstDeclared = updates.dstDeclared;
|
|
881
|
+
edge.srcUnionTypes = updates.srcUnionTypes;
|
|
882
|
+
edge.convert = updates.convert;
|
|
883
|
+
edge.convertAsync = updates.convertAsync;
|
|
892
884
|
}
|
|
893
885
|
/**
|
|
894
886
|
* Update edge stats
|
|
@@ -919,14 +911,6 @@ class Graph {
|
|
|
919
911
|
setResolvedHandles(nodeId, handles) {
|
|
920
912
|
this.resolvedByNode.set(nodeId, handles);
|
|
921
913
|
}
|
|
922
|
-
/**
|
|
923
|
-
* Iterate over resolved handles safely
|
|
924
|
-
*/
|
|
925
|
-
forEachResolvedHandles(callback) {
|
|
926
|
-
for (const [nodeId, handles] of this.resolvedByNode.entries()) {
|
|
927
|
-
callback(handles, nodeId);
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
914
|
// ==================== Utility Methods ====================
|
|
931
915
|
/**
|
|
932
916
|
* Check if all inbound edges for a node have values
|
|
@@ -2128,11 +2112,11 @@ function tryHandleResolving(def, registry, environment) {
|
|
|
2128
2112
|
}
|
|
2129
2113
|
return { resolved: out, pending };
|
|
2130
2114
|
}
|
|
2131
|
-
function buildEdges(def, registry,
|
|
2115
|
+
function buildEdges(def, registry, graph) {
|
|
2132
2116
|
return def.edges.map((e) => {
|
|
2133
2117
|
const srcNode = def.nodes.find((n) => n.nodeId === e.source.nodeId);
|
|
2134
2118
|
const dstNode = def.nodes.find((n) => n.nodeId === e.target.nodeId);
|
|
2135
|
-
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle,
|
|
2119
|
+
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle, registry, graph);
|
|
2136
2120
|
const { convert, convertAsync } = buildEdgeConverters(srcDeclared, dstDeclared, registry, `buildEdges: ${srcNode?.typeId || ""}.${e.source.nodeId}.${e.source.handle} -> ${dstNode?.typeId || ""}.${e.target.nodeId}.${e.target.handle}`);
|
|
2137
2121
|
return {
|
|
2138
2122
|
id: e.id,
|
|
@@ -2152,15 +2136,13 @@ function buildEdges(def, registry, resolvedByNode) {
|
|
|
2152
2136
|
* Used by both buildEdges and updateNodeHandles to avoid duplication
|
|
2153
2137
|
* Now supports union types on both source (output) and destination (input) handles
|
|
2154
2138
|
*/
|
|
2155
|
-
function extractEdgeTypes(sourceNodeId, sourceHandle, targetNodeId, targetHandle,
|
|
2156
|
-
const srcResolved =
|
|
2157
|
-
const dstResolved =
|
|
2139
|
+
function extractEdgeTypes(sourceNodeId, sourceHandle, targetNodeId, targetHandle, registry, graph) {
|
|
2140
|
+
const srcResolved = graph.getResolvedHandles(sourceNodeId);
|
|
2141
|
+
const dstResolved = graph.getResolvedHandles(targetNodeId);
|
|
2158
2142
|
const srcDeclared = srcResolved
|
|
2159
2143
|
? srcResolved.outputs[sourceHandle]
|
|
2160
|
-
:
|
|
2161
|
-
const dstDeclared = dstResolved
|
|
2162
|
-
? getInputDeclaredTypes(dstResolved.inputs, targetHandle)
|
|
2163
|
-
: undefined;
|
|
2144
|
+
: registry.nodes.get(sourceNodeId)?.outputs[sourceHandle];
|
|
2145
|
+
const dstDeclared = getInputDeclaredTypes(dstResolved ? dstResolved.inputs : registry.nodes.get(targetNodeId)?.inputs, targetHandle);
|
|
2164
2146
|
return {
|
|
2165
2147
|
srcDeclared,
|
|
2166
2148
|
dstDeclared,
|
|
@@ -2426,10 +2408,6 @@ class HandleResolver {
|
|
|
2426
2408
|
if (!node)
|
|
2427
2409
|
return;
|
|
2428
2410
|
this.graph.setResolvedHandles(nodeId, handles);
|
|
2429
|
-
const resolvedByNode = new Map();
|
|
2430
|
-
this.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
2431
|
-
resolvedByNode.set(nodeId, handles);
|
|
2432
|
-
});
|
|
2433
2411
|
const registry = this.registry; // Store for use in callback
|
|
2434
2412
|
this.graph.forEachEdge((e, _index) => {
|
|
2435
2413
|
// Only update edges that touch the changed node
|
|
@@ -2440,7 +2418,7 @@ class HandleResolver {
|
|
|
2440
2418
|
const dstNode = this.graph.getNode(e.target.nodeId);
|
|
2441
2419
|
const oldDstDeclared = e.dstDeclared;
|
|
2442
2420
|
// Extract edge types using shared helper (handles both source and target updates)
|
|
2443
|
-
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle,
|
|
2421
|
+
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle, registry, this.graph);
|
|
2444
2422
|
// Update converters
|
|
2445
2423
|
const conv = buildEdgeConverters(srcDeclared, dstDeclared, registry, `updateNodeHandles: ${srcNode?.typeId || ""}.${e.source.nodeId}.${e.source.handle} -> ${dstNode?.typeId || ""}.${e.target.nodeId}.${e.target.handle}`);
|
|
2446
2424
|
// Update edge properties via Graph
|
|
@@ -3737,11 +3715,7 @@ class GraphRuntime {
|
|
|
3737
3715
|
gr.graph.setNode(n.nodeId, rn);
|
|
3738
3716
|
}
|
|
3739
3717
|
// Instantiate edges
|
|
3740
|
-
const
|
|
3741
|
-
gr.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
3742
|
-
resolvedByNode.set(nodeId, handles);
|
|
3743
|
-
});
|
|
3744
|
-
const edges = buildEdges(def, registry, resolvedByNode);
|
|
3718
|
+
const edges = buildEdges(def, registry, gr.graph);
|
|
3745
3719
|
gr.graph.setEdges(edges);
|
|
3746
3720
|
// Schedule async recompute only for nodes that indicated Promise-based resolveHandles
|
|
3747
3721
|
for (const nodeId of initial.pending) {
|
|
@@ -4249,11 +4223,7 @@ class GraphRuntime {
|
|
|
4249
4223
|
for (const [nodeId, handles] of result.resolved) {
|
|
4250
4224
|
this.graph.setResolvedHandles(nodeId, handles);
|
|
4251
4225
|
}
|
|
4252
|
-
const
|
|
4253
|
-
this.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
4254
|
-
resolvedByNode.set(nodeId, handles);
|
|
4255
|
-
});
|
|
4256
|
-
const afterEdges = buildEdges(def, registry, resolvedByNode);
|
|
4226
|
+
const afterEdges = buildEdges(def, registry, this.graph);
|
|
4257
4227
|
this.graph.setEdges(afterEdges);
|
|
4258
4228
|
for (const nodeId of result.pending) {
|
|
4259
4229
|
this.handleResolver.scheduleRecomputeHandles(nodeId);
|