@bian-womp/spark-graph 0.3.23 → 0.3.24
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
CHANGED
|
@@ -5552,17 +5552,19 @@ function offsetImportedPositions(targetPositions, sourcePositions, sourceDef, no
|
|
|
5552
5552
|
}
|
|
5553
5553
|
function buildTypeMaps(def) {
|
|
5554
5554
|
const nodeTypeMap = new Map();
|
|
5555
|
-
const
|
|
5555
|
+
const inputHandleTypeMap = new Map();
|
|
5556
|
+
const outputHandleTypeMap = new Map();
|
|
5556
5557
|
for (const node of def.nodes) {
|
|
5557
5558
|
nodeTypeMap.set(node.nodeId, node.typeId);
|
|
5558
|
-
const
|
|
5559
|
+
const nodeInputTypes = new Map();
|
|
5560
|
+
const nodeOutputTypes = new Map();
|
|
5559
5561
|
if (node.resolvedHandles?.inputs) {
|
|
5560
5562
|
for (const [handleId, handleDesc] of Object.entries(node.resolvedHandles.inputs)) {
|
|
5561
5563
|
const typeId = typeof handleDesc === "string"
|
|
5562
5564
|
? handleDesc
|
|
5563
5565
|
: handleDesc?.typeId;
|
|
5564
5566
|
if (typeId)
|
|
5565
|
-
|
|
5567
|
+
nodeInputTypes.set(handleId, typeId);
|
|
5566
5568
|
}
|
|
5567
5569
|
}
|
|
5568
5570
|
if (node.resolvedHandles?.outputs) {
|
|
@@ -5573,14 +5575,33 @@ function buildTypeMaps(def) {
|
|
|
5573
5575
|
? handleDesc[0]
|
|
5574
5576
|
: undefined;
|
|
5575
5577
|
if (typeId)
|
|
5576
|
-
|
|
5578
|
+
nodeOutputTypes.set(handleId, typeId);
|
|
5577
5579
|
}
|
|
5578
5580
|
}
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
+
// Also include handles from inputDefaults - they share handle IDs with inputs
|
|
5582
|
+
if (node.resolvedHandles?.inputDefaults) {
|
|
5583
|
+
for (const handleId of Object.keys(node.resolvedHandles.inputDefaults)) {
|
|
5584
|
+
// If not already in map, try to get type from input handles
|
|
5585
|
+
if (!nodeInputTypes.has(handleId) && node.resolvedHandles?.inputs) {
|
|
5586
|
+
const inputDesc = node.resolvedHandles.inputs[handleId];
|
|
5587
|
+
if (inputDesc) {
|
|
5588
|
+
const typeId = typeof inputDesc === "string"
|
|
5589
|
+
? inputDesc
|
|
5590
|
+
: inputDesc?.typeId;
|
|
5591
|
+
if (typeId)
|
|
5592
|
+
nodeInputTypes.set(handleId, typeId);
|
|
5593
|
+
}
|
|
5594
|
+
}
|
|
5595
|
+
}
|
|
5596
|
+
}
|
|
5597
|
+
if (nodeInputTypes.size > 0) {
|
|
5598
|
+
inputHandleTypeMap.set(node.nodeId, nodeInputTypes);
|
|
5599
|
+
}
|
|
5600
|
+
if (nodeOutputTypes.size > 0) {
|
|
5601
|
+
outputHandleTypeMap.set(node.nodeId, nodeOutputTypes);
|
|
5581
5602
|
}
|
|
5582
5603
|
}
|
|
5583
|
-
return { nodeTypeMap,
|
|
5604
|
+
return { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap };
|
|
5584
5605
|
}
|
|
5585
5606
|
function applyConversion(items, values, converter, type) {
|
|
5586
5607
|
for (const item of items) {
|
|
@@ -5608,21 +5629,21 @@ function applyConversion(items, values, converter, type) {
|
|
|
5608
5629
|
}
|
|
5609
5630
|
}
|
|
5610
5631
|
}
|
|
5611
|
-
function collectValuesToConvert(values, nodeTypeMap,
|
|
5632
|
+
function collectValuesToConvert(values, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, type) {
|
|
5612
5633
|
const converted = {};
|
|
5613
5634
|
const toConvert = [];
|
|
5635
|
+
const handleTypeMap = type === "output" ? outputHandleTypeMap : inputHandleTypeMap;
|
|
5614
5636
|
for (const [nodeId, nodeValues] of Object.entries(values)) {
|
|
5615
5637
|
converted[nodeId] = { ...nodeValues };
|
|
5616
|
-
const
|
|
5617
|
-
const nodeTypeId = nodeTypeMap.get(originalNodeId);
|
|
5638
|
+
const nodeTypeId = nodeTypeMap.get(nodeId);
|
|
5618
5639
|
for (const [handleId, value] of Object.entries(nodeValues)) {
|
|
5619
|
-
const handleDataType = handleTypeMap.get(
|
|
5640
|
+
const handleDataType = handleTypeMap.get(nodeId)?.get(handleId);
|
|
5620
5641
|
const runtimeTypeId = isTypedOutput(value)
|
|
5621
5642
|
? getTypedOutputTypeId(value)
|
|
5622
5643
|
: undefined;
|
|
5623
5644
|
toConvert.push({
|
|
5624
5645
|
nodeId,
|
|
5625
|
-
originalNodeId,
|
|
5646
|
+
originalNodeId: nodeId,
|
|
5626
5647
|
handleId,
|
|
5627
5648
|
value,
|
|
5628
5649
|
nodeTypeId,
|
|
@@ -5635,16 +5656,16 @@ function collectValuesToConvert(values, nodeTypeMap, handleTypeMap, originalNode
|
|
|
5635
5656
|
}
|
|
5636
5657
|
function convertSnapshot(snapshot, converter) {
|
|
5637
5658
|
const def = snapshot.def ?? { nodes: [], edges: [] };
|
|
5638
|
-
const { nodeTypeMap,
|
|
5659
|
+
const { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap } = buildTypeMaps(def);
|
|
5639
5660
|
const inputDefaults = {};
|
|
5640
5661
|
for (const node of def.nodes) {
|
|
5641
5662
|
if (node.resolvedHandles?.inputDefaults) {
|
|
5642
5663
|
inputDefaults[node.nodeId] = { ...node.resolvedHandles.inputDefaults };
|
|
5643
5664
|
}
|
|
5644
5665
|
}
|
|
5645
|
-
const { converted: convertedInputs, toConvert: inputsToConvert } = collectValuesToConvert(snapshot.inputs ?? {}, nodeTypeMap,
|
|
5646
|
-
const { converted: convertedOutputs, toConvert: outputsToConvert } = collectValuesToConvert(snapshot.outputs ?? {}, nodeTypeMap,
|
|
5647
|
-
const { converted: convertedInputDefaults, toConvert: inputDefaultsToConvert, } = collectValuesToConvert(inputDefaults, nodeTypeMap,
|
|
5666
|
+
const { converted: convertedInputs, toConvert: inputsToConvert } = collectValuesToConvert(snapshot.inputs ?? {}, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "input");
|
|
5667
|
+
const { converted: convertedOutputs, toConvert: outputsToConvert } = collectValuesToConvert(snapshot.outputs ?? {}, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "output");
|
|
5668
|
+
const { converted: convertedInputDefaults, toConvert: inputDefaultsToConvert, } = collectValuesToConvert(inputDefaults, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "inputDefault");
|
|
5648
5669
|
applyConversion(inputsToConvert, convertedInputs, converter, "input");
|
|
5649
5670
|
applyConversion(outputsToConvert, convertedOutputs, converter, "output");
|
|
5650
5671
|
applyConversion(inputDefaultsToConvert, convertedInputDefaults, converter, "inputDefault");
|
|
@@ -5675,7 +5696,7 @@ function convertSnapshot(snapshot, converter) {
|
|
|
5675
5696
|
outputs: convertedOutputs,
|
|
5676
5697
|
};
|
|
5677
5698
|
}
|
|
5678
|
-
function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOutputs, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap,
|
|
5699
|
+
function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOutputs, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap) {
|
|
5679
5700
|
const mergedInputs = { ...targetInputs };
|
|
5680
5701
|
const mergedOutputs = { ...targetOutputs };
|
|
5681
5702
|
const mergedInputDefaults = { ...targetInputDefaults };
|
|
@@ -5690,7 +5711,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
|
|
|
5690
5711
|
}
|
|
5691
5712
|
const nodeTypeId = nodeTypeMap?.get(oldId);
|
|
5692
5713
|
for (const [handleId, value] of Object.entries(inputs)) {
|
|
5693
|
-
const handleDataType =
|
|
5714
|
+
const handleDataType = inputHandleTypeMap?.get(oldId)?.get(handleId);
|
|
5694
5715
|
inputsToConvert.push({
|
|
5695
5716
|
nodeId: newId,
|
|
5696
5717
|
originalNodeId: oldId,
|
|
@@ -5711,7 +5732,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
|
|
|
5711
5732
|
}
|
|
5712
5733
|
const nodeTypeId = nodeTypeMap?.get(oldId);
|
|
5713
5734
|
for (const [handleId, value] of Object.entries(outputs)) {
|
|
5714
|
-
const handleDataType =
|
|
5735
|
+
const handleDataType = outputHandleTypeMap?.get(oldId)?.get(handleId);
|
|
5715
5736
|
const runtimeTypeId = isTypedOutput(value)
|
|
5716
5737
|
? getTypedOutputTypeId(value)
|
|
5717
5738
|
: undefined;
|
|
@@ -5736,7 +5757,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
|
|
|
5736
5757
|
}
|
|
5737
5758
|
const nodeTypeId = nodeTypeMap?.get(oldId);
|
|
5738
5759
|
for (const [handleId, value] of Object.entries(defaults)) {
|
|
5739
|
-
const handleDataType =
|
|
5760
|
+
const handleDataType = inputHandleTypeMap?.get(oldId)?.get(handleId);
|
|
5740
5761
|
inputDefaultsToConvert.push({
|
|
5741
5762
|
nodeId: newId,
|
|
5742
5763
|
originalNodeId: oldId,
|
|
@@ -5760,8 +5781,8 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
|
|
|
5760
5781
|
}
|
|
5761
5782
|
function mergeSnapshotData(targetSnapshot, sourceSnapshot, targetInputDefaults, sourceInputDefaults, nodeIdMap) {
|
|
5762
5783
|
const sourceDef = sourceSnapshot.def ?? { nodes: []};
|
|
5763
|
-
const { nodeTypeMap,
|
|
5764
|
-
return mergeInputsOutputs(targetSnapshot.inputs ?? {}, targetSnapshot.outputs ?? {}, sourceSnapshot.inputs ?? {}, sourceSnapshot.outputs ?? {}, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap,
|
|
5784
|
+
const { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap } = buildTypeMaps(sourceDef);
|
|
5785
|
+
return mergeInputsOutputs(targetSnapshot.inputs ?? {}, targetSnapshot.outputs ?? {}, sourceSnapshot.inputs ?? {}, sourceSnapshot.outputs ?? {}, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap);
|
|
5765
5786
|
}
|
|
5766
5787
|
function mergeSnapshots(targetSnapshot, sourceSnapshot, converter) {
|
|
5767
5788
|
const targetDef = targetSnapshot.def ?? { nodes: [], edges: [] };
|