@bian-womp/spark-graph 0.3.22 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../src/misc/utils/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAUnC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAkGvE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,OAAO,EAAE,MAAM,EAAE,GAChB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAkB1B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB1C;AA2HD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,cAAc,GACxB,mBAAmB,CA4DrB;AAyID,wBAAgB,cAAc,CAC5B,cAAc,EAAE,mBAAmB,EACnC,cAAc,EAAE,mBAAmB,EACnC,SAAS,CAAC,EAAE,cAAc,GACzB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAwDA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACjD,aAAa,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,eAAe,CAgBjB;AAUD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA6M3E"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../src/misc/utils/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAUnC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAkGvE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,OAAO,EAAE,MAAM,EAAE,GAChB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAkB1B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,MAAM,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB1C;AAoJD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,cAAc,GACxB,mBAAmB,CA+ErB;AA4ID,wBAAgB,cAAc,CAC5B,cAAc,EAAE,mBAAmB,EACnC,cAAc,EAAE,mBAAmB,EACnC,SAAS,CAAC,EAAE,cAAc,GACzB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAwDA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACjD,aAAa,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,eAAe,CAgBjB;AAUD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CA8M3E"}
package/lib/esm/index.js CHANGED
@@ -5550,17 +5550,19 @@ function offsetImportedPositions(targetPositions, sourcePositions, sourceDef, no
5550
5550
  }
5551
5551
  function buildTypeMaps(def) {
5552
5552
  const nodeTypeMap = new Map();
5553
- const handleTypeMap = new Map();
5553
+ const inputHandleTypeMap = new Map();
5554
+ const outputHandleTypeMap = new Map();
5554
5555
  for (const node of def.nodes) {
5555
5556
  nodeTypeMap.set(node.nodeId, node.typeId);
5556
- const nodeHandleTypes = new Map();
5557
+ const nodeInputTypes = new Map();
5558
+ const nodeOutputTypes = new Map();
5557
5559
  if (node.resolvedHandles?.inputs) {
5558
5560
  for (const [handleId, handleDesc] of Object.entries(node.resolvedHandles.inputs)) {
5559
5561
  const typeId = typeof handleDesc === "string"
5560
5562
  ? handleDesc
5561
5563
  : handleDesc?.typeId;
5562
5564
  if (typeId)
5563
- nodeHandleTypes.set(handleId, typeId);
5565
+ nodeInputTypes.set(handleId, typeId);
5564
5566
  }
5565
5567
  }
5566
5568
  if (node.resolvedHandles?.outputs) {
@@ -5571,14 +5573,33 @@ function buildTypeMaps(def) {
5571
5573
  ? handleDesc[0]
5572
5574
  : undefined;
5573
5575
  if (typeId)
5574
- nodeHandleTypes.set(handleId, typeId);
5576
+ nodeOutputTypes.set(handleId, typeId);
5575
5577
  }
5576
5578
  }
5577
- if (nodeHandleTypes.size > 0) {
5578
- handleTypeMap.set(node.nodeId, nodeHandleTypes);
5579
+ // Also include handles from inputDefaults - they share handle IDs with inputs
5580
+ if (node.resolvedHandles?.inputDefaults) {
5581
+ for (const handleId of Object.keys(node.resolvedHandles.inputDefaults)) {
5582
+ // If not already in map, try to get type from input handles
5583
+ if (!nodeInputTypes.has(handleId) && node.resolvedHandles?.inputs) {
5584
+ const inputDesc = node.resolvedHandles.inputs[handleId];
5585
+ if (inputDesc) {
5586
+ const typeId = typeof inputDesc === "string"
5587
+ ? inputDesc
5588
+ : inputDesc?.typeId;
5589
+ if (typeId)
5590
+ nodeInputTypes.set(handleId, typeId);
5591
+ }
5592
+ }
5593
+ }
5594
+ }
5595
+ if (nodeInputTypes.size > 0) {
5596
+ inputHandleTypeMap.set(node.nodeId, nodeInputTypes);
5597
+ }
5598
+ if (nodeOutputTypes.size > 0) {
5599
+ outputHandleTypeMap.set(node.nodeId, nodeOutputTypes);
5579
5600
  }
5580
5601
  }
5581
- return { nodeTypeMap, handleTypeMap };
5602
+ return { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap };
5582
5603
  }
5583
5604
  function applyConversion(items, values, converter, type) {
5584
5605
  for (const item of items) {
@@ -5606,21 +5627,21 @@ function applyConversion(items, values, converter, type) {
5606
5627
  }
5607
5628
  }
5608
5629
  }
5609
- function collectValuesToConvert(values, nodeTypeMap, handleTypeMap, originalNodeIdMap) {
5630
+ function collectValuesToConvert(values, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, type) {
5610
5631
  const converted = {};
5611
5632
  const toConvert = [];
5633
+ const handleTypeMap = type === "output" ? outputHandleTypeMap : inputHandleTypeMap;
5612
5634
  for (const [nodeId, nodeValues] of Object.entries(values)) {
5613
5635
  converted[nodeId] = { ...nodeValues };
5614
- const originalNodeId = nodeId;
5615
- const nodeTypeId = nodeTypeMap.get(originalNodeId);
5636
+ const nodeTypeId = nodeTypeMap.get(nodeId);
5616
5637
  for (const [handleId, value] of Object.entries(nodeValues)) {
5617
- const handleDataType = handleTypeMap.get(originalNodeId)?.get(handleId);
5638
+ const handleDataType = handleTypeMap.get(nodeId)?.get(handleId);
5618
5639
  const runtimeTypeId = isTypedOutput(value)
5619
5640
  ? getTypedOutputTypeId(value)
5620
5641
  : undefined;
5621
5642
  toConvert.push({
5622
5643
  nodeId,
5623
- originalNodeId,
5644
+ originalNodeId: nodeId,
5624
5645
  handleId,
5625
5646
  value,
5626
5647
  nodeTypeId,
@@ -5633,16 +5654,16 @@ function collectValuesToConvert(values, nodeTypeMap, handleTypeMap, originalNode
5633
5654
  }
5634
5655
  function convertSnapshot(snapshot, converter) {
5635
5656
  const def = snapshot.def ?? { nodes: [], edges: [] };
5636
- const { nodeTypeMap, handleTypeMap } = buildTypeMaps(def);
5657
+ const { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap } = buildTypeMaps(def);
5637
5658
  const inputDefaults = {};
5638
5659
  for (const node of def.nodes) {
5639
5660
  if (node.resolvedHandles?.inputDefaults) {
5640
5661
  inputDefaults[node.nodeId] = { ...node.resolvedHandles.inputDefaults };
5641
5662
  }
5642
5663
  }
5643
- const { converted: convertedInputs, toConvert: inputsToConvert } = collectValuesToConvert(snapshot.inputs ?? {}, nodeTypeMap, handleTypeMap);
5644
- const { converted: convertedOutputs, toConvert: outputsToConvert } = collectValuesToConvert(snapshot.outputs ?? {}, nodeTypeMap, handleTypeMap);
5645
- const { converted: convertedInputDefaults, toConvert: inputDefaultsToConvert, } = collectValuesToConvert(inputDefaults, nodeTypeMap, handleTypeMap);
5664
+ const { converted: convertedInputs, toConvert: inputsToConvert } = collectValuesToConvert(snapshot.inputs ?? {}, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "input");
5665
+ const { converted: convertedOutputs, toConvert: outputsToConvert } = collectValuesToConvert(snapshot.outputs ?? {}, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "output");
5666
+ const { converted: convertedInputDefaults, toConvert: inputDefaultsToConvert, } = collectValuesToConvert(inputDefaults, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap, "inputDefault");
5646
5667
  applyConversion(inputsToConvert, convertedInputs, converter, "input");
5647
5668
  applyConversion(outputsToConvert, convertedOutputs, converter, "output");
5648
5669
  applyConversion(inputDefaultsToConvert, convertedInputDefaults, converter, "inputDefault");
@@ -5673,7 +5694,7 @@ function convertSnapshot(snapshot, converter) {
5673
5694
  outputs: convertedOutputs,
5674
5695
  };
5675
5696
  }
5676
- function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOutputs, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, handleTypeMap) {
5697
+ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOutputs, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap) {
5677
5698
  const mergedInputs = { ...targetInputs };
5678
5699
  const mergedOutputs = { ...targetOutputs };
5679
5700
  const mergedInputDefaults = { ...targetInputDefaults };
@@ -5688,7 +5709,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
5688
5709
  }
5689
5710
  const nodeTypeId = nodeTypeMap?.get(oldId);
5690
5711
  for (const [handleId, value] of Object.entries(inputs)) {
5691
- const handleDataType = handleTypeMap?.get(oldId)?.get(handleId);
5712
+ const handleDataType = inputHandleTypeMap?.get(oldId)?.get(handleId);
5692
5713
  inputsToConvert.push({
5693
5714
  nodeId: newId,
5694
5715
  originalNodeId: oldId,
@@ -5709,7 +5730,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
5709
5730
  }
5710
5731
  const nodeTypeId = nodeTypeMap?.get(oldId);
5711
5732
  for (const [handleId, value] of Object.entries(outputs)) {
5712
- const handleDataType = handleTypeMap?.get(oldId)?.get(handleId);
5733
+ const handleDataType = outputHandleTypeMap?.get(oldId)?.get(handleId);
5713
5734
  const runtimeTypeId = isTypedOutput(value)
5714
5735
  ? getTypedOutputTypeId(value)
5715
5736
  : undefined;
@@ -5734,7 +5755,7 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
5734
5755
  }
5735
5756
  const nodeTypeId = nodeTypeMap?.get(oldId);
5736
5757
  for (const [handleId, value] of Object.entries(defaults)) {
5737
- const handleDataType = handleTypeMap?.get(oldId)?.get(handleId);
5758
+ const handleDataType = inputHandleTypeMap?.get(oldId)?.get(handleId);
5738
5759
  inputDefaultsToConvert.push({
5739
5760
  nodeId: newId,
5740
5761
  originalNodeId: oldId,
@@ -5758,8 +5779,8 @@ function mergeInputsOutputs(targetInputs, targetOutputs, sourceInputs, sourceOut
5758
5779
  }
5759
5780
  function mergeSnapshotData(targetSnapshot, sourceSnapshot, targetInputDefaults, sourceInputDefaults, nodeIdMap) {
5760
5781
  const sourceDef = sourceSnapshot.def ?? { nodes: []};
5761
- const { nodeTypeMap, handleTypeMap } = buildTypeMaps(sourceDef);
5762
- return mergeInputsOutputs(targetSnapshot.inputs ?? {}, targetSnapshot.outputs ?? {}, sourceSnapshot.inputs ?? {}, sourceSnapshot.outputs ?? {}, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, handleTypeMap);
5782
+ const { nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap } = buildTypeMaps(sourceDef);
5783
+ return mergeInputsOutputs(targetSnapshot.inputs ?? {}, targetSnapshot.outputs ?? {}, sourceSnapshot.inputs ?? {}, sourceSnapshot.outputs ?? {}, targetInputDefaults, sourceInputDefaults, nodeIdMap, nodeTypeMap, inputHandleTypeMap, outputHandleTypeMap);
5763
5784
  }
5764
5785
  function mergeSnapshots(targetSnapshot, sourceSnapshot, converter) {
5765
5786
  const targetDef = targetSnapshot.def ?? { nodes: [], edges: [] };
@@ -5837,11 +5858,11 @@ function buildValueConverter(config) {
5837
5858
  const { nodeId, handleId, value, type, nodeTypeId, handleDataType, runtimeTypeId, } = converterConfig;
5838
5859
  const isTyped = isTypedOutput(value);
5839
5860
  for (const mapping of config.mappings) {
5840
- if (mapping.type !== type)
5861
+ if (mapping.type && mapping.type !== type)
5841
5862
  continue;
5842
- if (!matchesPattern(handleId, mapping.handleId))
5863
+ if (mapping.handleId && !matchesPattern(handleId, mapping.handleId))
5843
5864
  continue;
5844
- if (!matchesPattern(nodeId, mapping.nodeId))
5865
+ if (mapping.nodeId && !matchesPattern(nodeId, mapping.nodeId))
5845
5866
  continue;
5846
5867
  if (mapping.nodeTypeId && nodeTypeId) {
5847
5868
  if (!matchesPattern(nodeTypeId, mapping.nodeTypeId))