@n8n/workflow-sdk 0.3.1 → 0.4.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.
Files changed (48) hide show
  1. package/dist/ast-interpreter/interpreter.js +14 -0
  2. package/dist/ast-interpreter/interpreter.js.map +1 -1
  3. package/dist/build.tsbuildinfo +1 -1
  4. package/dist/codegen/code-generator.d.ts +2 -1
  5. package/dist/codegen/code-generator.js +114 -45
  6. package/dist/codegen/code-generator.js.map +1 -1
  7. package/dist/codegen/composite-builder.js +261 -74
  8. package/dist/codegen/composite-builder.js.map +1 -1
  9. package/dist/codegen/composite-handlers/build-utils.js +21 -4
  10. package/dist/codegen/composite-handlers/build-utils.js.map +1 -1
  11. package/dist/codegen/composite-handlers/if-else-handler.js +18 -0
  12. package/dist/codegen/composite-handlers/if-else-handler.js.map +1 -1
  13. package/dist/codegen/composite-handlers/switch-case-handler.js +4 -1
  14. package/dist/codegen/composite-handlers/switch-case-handler.js.map +1 -1
  15. package/dist/codegen/composite-tree.d.ts +2 -0
  16. package/dist/codegen/constants.js +6 -1
  17. package/dist/codegen/constants.js.map +1 -1
  18. package/dist/codegen/output-utils.d.ts +1 -0
  19. package/dist/codegen/output-utils.js +11 -0
  20. package/dist/codegen/output-utils.js.map +1 -1
  21. package/dist/codegen/semantic-graph.js +55 -9
  22. package/dist/codegen/semantic-graph.js.map +1 -1
  23. package/dist/codegen/semantic-registry.js +1 -1
  24. package/dist/codegen/semantic-registry.js.map +1 -1
  25. package/dist/codegen/subnode-generator.js +18 -9
  26. package/dist/codegen/subnode-generator.js.map +1 -1
  27. package/dist/codegen/types.d.ts +1 -0
  28. package/dist/codegen/variable-names.js +10 -0
  29. package/dist/codegen/variable-names.js.map +1 -1
  30. package/dist/types/base.d.ts +7 -2
  31. package/dist/types/base.js +49 -0
  32. package/dist/types/base.js.map +1 -1
  33. package/dist/validation/test-schema-setup.js +2 -1
  34. package/dist/validation/test-schema-setup.js.map +1 -1
  35. package/dist/workflow-builder/node-builders/node-builder.js +22 -19
  36. package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
  37. package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js +32 -0
  38. package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js.map +1 -1
  39. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +2 -1
  40. package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -1
  41. package/dist/workflow-builder/subnode-utils.js +70 -115
  42. package/dist/workflow-builder/subnode-utils.js.map +1 -1
  43. package/dist/workflow-builder/workflow-import.d.ts +1 -1
  44. package/dist/workflow-builder/workflow-import.js +16 -4
  45. package/dist/workflow-builder/workflow-import.js.map +1 -1
  46. package/dist/workflow-builder.js +75 -12
  47. package/dist/workflow-builder.js.map +1 -1
  48. package/package.json +2 -2
@@ -6,6 +6,18 @@ const merge_pattern_1 = require("./merge-pattern");
6
6
  const output_utils_1 = require("./output-utils");
7
7
  const semantic_registry_1 = require("./semantic-registry");
8
8
  const sib_merge_handler_1 = require("./sib-merge-handler");
9
+ function stripTrailingDeferredMergeVarRef(composite, deferredMergeNodes) {
10
+ if (composite.kind !== 'chain')
11
+ return composite;
12
+ const last = composite.nodes[composite.nodes.length - 1];
13
+ if (last?.kind === 'varRef' && deferredMergeNodes.has(last.nodeName)) {
14
+ if (composite.nodes.length === 2) {
15
+ return composite.nodes[0];
16
+ }
17
+ return { kind: 'chain', nodes: composite.nodes.slice(0, -1) };
18
+ }
19
+ return composite;
20
+ }
9
21
  function buildBranchTargets(targets, ctx, sourceNodeName, sourceOutputIndex) {
10
22
  if (targets.length === 0)
11
23
  return null;
@@ -32,7 +44,21 @@ function buildBranchTargets(targets, ctx, sourceNodeName, sourceOutputIndex) {
32
44
  targetNode,
33
45
  targetInputIndex: inputIndex,
34
46
  });
35
- return (0, build_utils_1.createVarRef)(singleTarget.target);
47
+ return null;
48
+ }
49
+ if (targetNode && sourceNodeName && singleTarget.targetInputSlot) {
50
+ const targetInputIndex = (0, build_utils_1.extractInputIndex)(singleTarget.targetInputSlot);
51
+ if (targetInputIndex > 0) {
52
+ ctx.variables.set(sourceNodeName, ctx.graph.nodes.get(sourceNodeName) ?? targetNode);
53
+ ctx.variables.set(singleTarget.target, targetNode);
54
+ ctx.deferredConnections.push({
55
+ sourceNodeName,
56
+ sourceOutputIndex: sourceOutputIndex ?? 0,
57
+ targetNode,
58
+ targetInputIndex,
59
+ });
60
+ return null;
61
+ }
36
62
  }
37
63
  return buildFromNode(singleTarget.target, ctx);
38
64
  }
@@ -92,6 +118,7 @@ function buildBranchTargets(targets, ctx, sourceNodeName, sourceOutputIndex) {
92
118
  ctx.deferredConnections.push({
93
119
  sourceNodeName: source.from,
94
120
  sourceOutputIndex: (0, build_utils_1.getOutputIndex)(source.outputSlot),
121
+ isErrorOutput: source.outputSlot === 'error' || undefined,
95
122
  targetNode: mergeNode,
96
123
  targetInputIndex: inputIndex,
97
124
  });
@@ -165,11 +192,43 @@ function buildIfElse(node, ctx) {
165
192
  };
166
193
  const trueBranch = buildBranchTargets(trueBranchTargets, branchCtx, node.name, 0);
167
194
  const falseBranch = buildBranchTargets(falseBranchTargets, branchCtx, node.name, 1);
195
+ let errorHandler;
196
+ if ((0, build_utils_1.hasErrorOutput)(node)) {
197
+ const errorTargets = (0, build_utils_1.getErrorOutputTargets)(node);
198
+ if (errorTargets.length > 0) {
199
+ const firstErrorTarget = errorTargets[0];
200
+ const errorTargetNode = ctx.graph.nodes.get(firstErrorTarget);
201
+ if (errorTargetNode && (0, build_utils_1.isMergeType)(errorTargetNode.type)) {
202
+ ctx.variables.set(node.name, node);
203
+ ctx.variables.set(firstErrorTarget, errorTargetNode);
204
+ const errorConns = node.outputs.get('error') ?? [];
205
+ const errorConn = errorConns.find((c) => c.target === firstErrorTarget);
206
+ const targetInputIndex = errorConn ? (0, build_utils_1.extractInputIndex)(errorConn.targetInputSlot) : 0;
207
+ ctx.deferredConnections.push({
208
+ sourceNodeName: node.name,
209
+ sourceOutputIndex: 0,
210
+ targetNode: errorTargetNode,
211
+ targetInputIndex,
212
+ isErrorOutput: true,
213
+ });
214
+ }
215
+ else if (ctx.visited.has(firstErrorTarget)) {
216
+ if (errorTargetNode) {
217
+ ctx.variables.set(firstErrorTarget, errorTargetNode);
218
+ errorHandler = (0, build_utils_1.createVarRef)(firstErrorTarget);
219
+ }
220
+ }
221
+ else {
222
+ errorHandler = buildFromNode(firstErrorTarget, ctx);
223
+ }
224
+ }
225
+ }
168
226
  return {
169
227
  kind: 'ifElse',
170
228
  ifNode: node,
171
229
  trueBranch,
172
230
  falseBranch,
231
+ errorHandler,
173
232
  };
174
233
  }
175
234
  function buildSwitchCase(node, ctx) {
@@ -188,7 +247,11 @@ function buildSwitchCase(node, ctx) {
188
247
  outputIndex = caseIndex;
189
248
  }
190
249
  else if (outputName === 'fallback') {
191
- const fallbackIndex = caseIndices.length > 0 ? Math.max(...caseIndices) + 1 : 0;
250
+ const params = node.json.parameters;
251
+ const rules = params?.rules;
252
+ const rulesArray = (rules?.rules ?? rules?.values);
253
+ const numCases = rulesArray?.length ?? 4;
254
+ const fallbackIndex = numCases;
192
255
  caseIndices.push(fallbackIndex);
193
256
  outputIndex = fallbackIndex;
194
257
  }
@@ -226,6 +289,7 @@ function buildMerge(node, ctx) {
226
289
  ctx.deferredConnections.push({
227
290
  sourceNodeName: source.from,
228
291
  sourceOutputIndex: (0, build_utils_1.getOutputIndex)(source.outputSlot),
292
+ isErrorOutput: source.outputSlot === 'error' || undefined,
229
293
  targetNode: node,
230
294
  targetInputIndex: inputIndex,
231
295
  });
@@ -287,10 +351,24 @@ function buildFromNode(nodeName, ctx) {
287
351
  const errorTargets = (0, build_utils_1.getErrorOutputTargets)(node);
288
352
  if (errorTargets.length > 0) {
289
353
  const firstErrorTarget = errorTargets[0];
290
- if (ctx.visited.has(firstErrorTarget)) {
291
- const errorNode = ctx.graph.nodes.get(firstErrorTarget);
292
- if (errorNode) {
293
- ctx.variables.set(firstErrorTarget, errorNode);
354
+ const errorTargetNode = ctx.graph.nodes.get(firstErrorTarget);
355
+ if (errorTargetNode && (0, build_utils_1.isMergeType)(errorTargetNode.type)) {
356
+ ctx.variables.set(node.name, node);
357
+ ctx.variables.set(firstErrorTarget, errorTargetNode);
358
+ const errorConns = node.outputs.get('error') ?? [];
359
+ const errorConn = errorConns.find((c) => c.target === firstErrorTarget);
360
+ const targetInputIndex = errorConn ? (0, build_utils_1.extractInputIndex)(errorConn.targetInputSlot) : 0;
361
+ ctx.deferredConnections.push({
362
+ sourceNodeName: node.name,
363
+ sourceOutputIndex: 0,
364
+ targetNode: errorTargetNode,
365
+ targetInputIndex,
366
+ isErrorOutput: true,
367
+ });
368
+ }
369
+ else if (ctx.visited.has(firstErrorTarget)) {
370
+ if (errorTargetNode) {
371
+ ctx.variables.set(firstErrorTarget, errorTargetNode);
294
372
  errorHandler = (0, build_utils_1.createVarRef)(firstErrorTarget);
295
373
  }
296
374
  }
@@ -303,65 +381,17 @@ function buildFromNode(nodeName, ctx) {
303
381
  }
304
382
  }
305
383
  if (compositeType === 'merge') {
306
- const mergeOutputs = (0, build_utils_1.getAllFirstOutputTargets)(node);
307
- const unvisitedOutputs = mergeOutputs.filter((target) => !ctx.visited.has(target));
308
- if (unvisitedOutputs.length === 1) {
309
- const nextComposite = buildFromNode(unvisitedOutputs[0], ctx);
310
- return {
311
- kind: 'chain',
312
- nodes: [compositeNode, nextComposite],
313
- };
314
- }
315
- if (unvisitedOutputs.length > 1) {
316
- const fanOutBranches = [];
317
- for (const target of unvisitedOutputs) {
318
- fanOutBranches.push(buildFromNode(target, ctx));
319
- }
320
- if (fanOutBranches.length === 1) {
321
- return {
322
- kind: 'chain',
323
- nodes: [compositeNode, fanOutBranches[0]],
324
- };
325
- }
326
- const fanOut = {
327
- kind: 'fanOut',
328
- sourceNode: compositeNode,
329
- targets: fanOutBranches,
330
- };
331
- return fanOut;
332
- }
333
- const visitedOutputs = mergeOutputs.filter((target) => ctx.visited.has(target));
334
- if (visitedOutputs.length > 0) {
335
- const loopTargets = [];
336
- for (const target of visitedOutputs) {
337
- const targetNode = ctx.graph.nodes.get(target);
338
- if (targetNode) {
339
- ctx.variables.set(target, targetNode);
340
- loopTargets.push((0, build_utils_1.createVarRef)(target));
341
- }
342
- }
343
- if (loopTargets.length === 1) {
344
- return {
345
- kind: 'chain',
346
- nodes: [compositeNode, loopTargets[0]],
347
- };
348
- }
349
- if (loopTargets.length > 1) {
350
- return {
351
- kind: 'chain',
352
- nodes: [compositeNode, ...loopTargets],
353
- };
354
- }
355
- }
356
384
  return compositeNode;
357
385
  }
358
386
  if (compositeType === undefined) {
359
- if ((0, output_utils_1.hasMultipleOutputSlots)(node) && (0, output_utils_1.hasConsecutiveOutputSlots)(node)) {
387
+ if ((0, output_utils_1.hasMultipleOutputSlots)(node) || (0, output_utils_1.hasNonZeroOutputIndex)(node)) {
360
388
  const targetsByIndex = (0, output_utils_1.getOutputTargetsByIndex)(node);
361
389
  const outputTargets = new Map();
362
390
  for (const [outputIndex, targets] of targetsByIndex) {
363
391
  if (targets.length === 1) {
364
392
  const targetInfo = targets[0];
393
+ if (targetInfo.targetName === node.name)
394
+ continue;
365
395
  const targetNode = ctx.graph.nodes.get(targetInfo.targetName);
366
396
  if (targetNode) {
367
397
  const targetInputIndex = (0, build_utils_1.extractInputIndex)(targetInfo.targetInputSlot);
@@ -387,6 +417,8 @@ function buildFromNode(nodeName, ctx) {
387
417
  else if (targets.length > 1) {
388
418
  const fanOutBranches = [];
389
419
  for (const targetInfo of targets) {
420
+ if (targetInfo.targetName === node.name)
421
+ continue;
390
422
  const targetNode = ctx.graph.nodes.get(targetInfo.targetName);
391
423
  if (targetNode) {
392
424
  const targetInputIndex = (0, build_utils_1.extractInputIndex)(targetInfo.targetInputSlot);
@@ -449,6 +481,7 @@ function buildFromNode(nodeName, ctx) {
449
481
  ctx.deferredConnections.push({
450
482
  sourceNodeName: source.from,
451
483
  sourceOutputIndex: (0, build_utils_1.getOutputIndex)(source.outputSlot),
484
+ isErrorOutput: source.outputSlot === 'error' || undefined,
452
485
  targetNode: mergePattern.mergeNode,
453
486
  targetInputIndex: inputIndex,
454
487
  });
@@ -457,7 +490,62 @@ function buildFromNode(nodeName, ctx) {
457
490
  const builtBranches = [];
458
491
  for (const branchName of mergePattern.branches) {
459
492
  if (!ctx.visited.has(branchName)) {
460
- builtBranches.push(buildFromNode(branchName, ctx));
493
+ const branchNode = ctx.graph.nodes.get(branchName);
494
+ if (branchNode && (0, build_utils_1.isMergeType)(branchNode.type)) {
495
+ ctx.visited.add(branchName);
496
+ ctx.variables.set(branchName, branchNode);
497
+ ctx.deferredMergeNodes.add(branchName);
498
+ const inputIndex = (0, merge_pattern_1.findMergeInputIndex)(branchNode, node.name);
499
+ ctx.deferredConnections.push({
500
+ sourceNodeName: node.name,
501
+ sourceOutputIndex: 0,
502
+ targetNode: branchNode,
503
+ targetInputIndex: inputIndex,
504
+ });
505
+ for (const [inputSlot, sources] of branchNode.inputSources) {
506
+ const idx = (0, build_utils_1.extractInputIndex)(inputSlot);
507
+ for (const source of sources) {
508
+ if (source.from === node.name)
509
+ continue;
510
+ const sourceNode = ctx.graph.nodes.get(source.from);
511
+ if (sourceNode) {
512
+ ctx.variables.set(source.from, sourceNode);
513
+ }
514
+ ctx.deferredConnections.push({
515
+ sourceNodeName: source.from,
516
+ sourceOutputIndex: (0, build_utils_1.getOutputIndex)(source.outputSlot),
517
+ isErrorOutput: source.outputSlot === 'error' || undefined,
518
+ targetNode: branchNode,
519
+ targetInputIndex: idx,
520
+ });
521
+ }
522
+ }
523
+ }
524
+ else {
525
+ builtBranches.push(buildFromNode(branchName, ctx));
526
+ }
527
+ }
528
+ else {
529
+ const branchNode = ctx.graph.nodes.get(branchName);
530
+ if (branchNode) {
531
+ ctx.variables.set(branchName, branchNode);
532
+ if ((0, build_utils_1.isMergeType)(branchNode.type)) {
533
+ ctx.deferredMergeNodes.add(branchName);
534
+ const alreadyHasConnection = ctx.deferredConnections.some((c) => c.sourceNodeName === node.name && c.targetNode.name === branchName);
535
+ if (!alreadyHasConnection) {
536
+ const inputIndex = (0, merge_pattern_1.findMergeInputIndex)(branchNode, node.name);
537
+ ctx.deferredConnections.push({
538
+ sourceNodeName: node.name,
539
+ sourceOutputIndex: 0,
540
+ targetNode: branchNode,
541
+ targetInputIndex: inputIndex,
542
+ });
543
+ }
544
+ }
545
+ else {
546
+ builtBranches.push((0, build_utils_1.createVarRef)(branchName));
547
+ }
548
+ }
461
549
  }
462
550
  }
463
551
  if (builtBranches.length > 0) {
@@ -492,6 +580,7 @@ function buildFromNode(nodeName, ctx) {
492
580
  ctx.deferredConnections.push({
493
581
  sourceNodeName: source.from,
494
582
  sourceOutputIndex: (0, build_utils_1.getOutputIndex)(source.outputSlot),
583
+ isErrorOutput: source.outputSlot === 'error' || undefined,
495
584
  targetNode: mergeNode,
496
585
  targetInputIndex: inputIndex,
497
586
  });
@@ -504,10 +593,7 @@ function buildFromNode(nodeName, ctx) {
504
593
  }
505
594
  }
506
595
  if (builtBranches.length === 0) {
507
- return {
508
- kind: 'chain',
509
- nodes: [compositeNode, (0, build_utils_1.createVarRef)(mergeNode.name)],
510
- };
596
+ return compositeNode;
511
597
  }
512
598
  if (builtBranches.length === 1) {
513
599
  return {
@@ -527,6 +613,8 @@ function buildFromNode(nodeName, ctx) {
527
613
  if (outputSlot === 'error')
528
614
  continue;
529
615
  for (const conn of connections) {
616
+ if (conn.target === node.name)
617
+ continue;
530
618
  outputConnections.push({
531
619
  target: conn.target,
532
620
  targetInputSlot: conn.targetInputSlot,
@@ -554,23 +642,40 @@ function buildFromNode(nodeName, ctx) {
554
642
  sourceOutputIndex,
555
643
  targetNode,
556
644
  targetInputIndex: inputIndex,
645
+ isErrorOutput: conn.outputSlot === 'error' || undefined,
557
646
  });
558
647
  }
559
- else if (!nonMergeTargets.includes(conn.target)) {
560
- nonMergeTargets.push(conn.target);
648
+ else if (!nonMergeTargets.some((t) => t.target === conn.target)) {
649
+ nonMergeTargets.push({
650
+ target: conn.target,
651
+ targetInputSlot: conn.targetInputSlot,
652
+ outputSlot: conn.outputSlot,
653
+ });
561
654
  }
562
655
  }
563
656
  const fanOutBranches = [];
564
- for (const targetName of nonMergeTargets) {
565
- const targetNode = ctx.graph.nodes.get(targetName);
657
+ for (const targetInfo of nonMergeTargets) {
658
+ const targetNode = ctx.graph.nodes.get(targetInfo.target);
566
659
  if (targetNode) {
567
- if (ctx.visited.has(targetName)) {
568
- ctx.variables.set(targetName, targetNode);
569
- fanOutBranches.push((0, build_utils_1.createVarRef)(targetName));
660
+ const targetInputIndex = (0, build_utils_1.extractInputIndex)(targetInfo.targetInputSlot);
661
+ if (targetInputIndex > 0) {
662
+ ctx.variables.set(node.name, node);
663
+ ctx.variables.set(targetInfo.target, targetNode);
664
+ ctx.deferredConnections.push({
665
+ targetNode,
666
+ targetInputIndex,
667
+ sourceNodeName: node.name,
668
+ sourceOutputIndex: (0, build_utils_1.getOutputIndex)(targetInfo.outputSlot),
669
+ isErrorOutput: targetInfo.outputSlot === 'error' || undefined,
670
+ });
671
+ }
672
+ else if (ctx.visited.has(targetInfo.target)) {
673
+ ctx.variables.set(targetInfo.target, targetNode);
674
+ fanOutBranches.push((0, build_utils_1.createVarRef)(targetInfo.target));
570
675
  }
571
676
  else {
572
- const branchComposite = buildFromNode(targetName, ctx);
573
- fanOutBranches.push(branchComposite);
677
+ const branchComposite = buildFromNode(targetInfo.target, ctx);
678
+ fanOutBranches.push(stripTrailingDeferredMergeVarRef(branchComposite, ctx.deferredMergeNodes));
574
679
  }
575
680
  }
576
681
  }
@@ -625,7 +730,38 @@ function buildFromNode(nodeName, ctx) {
625
730
  }
626
731
  return compositeNode;
627
732
  }
733
+ if (nextNode && !(0, build_utils_1.isMergeType)(nextNode.type)) {
734
+ let targetInputSlot = 'input0';
735
+ let sourceOutputSlot = 'output0';
736
+ for (const [outputName, connections] of node.outputs) {
737
+ if (outputName === 'error')
738
+ continue;
739
+ for (const conn of connections) {
740
+ if (conn.target === nextTarget) {
741
+ targetInputSlot = conn.targetInputSlot;
742
+ sourceOutputSlot = outputName;
743
+ break;
744
+ }
745
+ }
746
+ }
747
+ const targetInputIndex = (0, build_utils_1.extractInputIndex)(targetInputSlot);
748
+ if (targetInputIndex > 0) {
749
+ ctx.variables.set(node.name, node);
750
+ ctx.variables.set(nextTarget, nextNode);
751
+ ctx.deferredConnections.push({
752
+ targetNode: nextNode,
753
+ targetInputIndex,
754
+ sourceNodeName: node.name,
755
+ sourceOutputIndex: (0, build_utils_1.getOutputIndex)(sourceOutputSlot),
756
+ isErrorOutput: sourceOutputSlot === 'error' || undefined,
757
+ });
758
+ return compositeNode;
759
+ }
760
+ }
628
761
  const nextComposite = buildFromNode(nextTarget, ctx);
762
+ if (ctx.deferredMergeNodes.has(nextTarget)) {
763
+ return compositeNode;
764
+ }
629
765
  if (nextComposite.kind === 'chain') {
630
766
  return {
631
767
  kind: 'chain',
@@ -645,6 +781,9 @@ function buildFromNode(nodeName, ctx) {
645
781
  if (outputConnections.length > 0 && compositeType !== 'splitInBatches') {
646
782
  const nextTarget = outputConnections[0].target;
647
783
  const nextComposite = buildFromNode(nextTarget, ctx);
784
+ if (ctx.deferredMergeNodes.has(nextTarget)) {
785
+ return compositeNode;
786
+ }
648
787
  return {
649
788
  kind: 'chain',
650
789
  nodes: [compositeNode, nextComposite],
@@ -653,6 +792,34 @@ function buildFromNode(nodeName, ctx) {
653
792
  }
654
793
  return compositeNode;
655
794
  }
795
+ function getDownstreamTargetName(chain) {
796
+ if (!chain)
797
+ return '';
798
+ switch (chain.kind) {
799
+ case 'varRef':
800
+ return chain.nodeName;
801
+ case 'leaf':
802
+ return chain.node.name;
803
+ case 'chain':
804
+ return chain.nodes.length > 0 ? getDownstreamTargetName(chain.nodes[0]) : '';
805
+ case 'ifElse':
806
+ return chain.ifNode.name;
807
+ case 'switchCase':
808
+ return chain.switchNode.name;
809
+ case 'merge':
810
+ return chain.mergeNode.name;
811
+ case 'splitInBatches':
812
+ return chain.sibNode.name;
813
+ case 'fanOut':
814
+ return getDownstreamTargetName(chain.sourceNode);
815
+ case 'explicitConnections':
816
+ return chain.nodes.length > 0 ? chain.nodes[0].name : '';
817
+ case 'multiOutput':
818
+ return chain.sourceNode.name;
819
+ default:
820
+ return '';
821
+ }
822
+ }
656
823
  function buildCompositeTree(graph) {
657
824
  const ctx = {
658
825
  graph,
@@ -678,7 +845,10 @@ function buildCompositeTree(graph) {
678
845
  const targetNode = graph.nodes.get(targetName);
679
846
  if (!targetNode)
680
847
  continue;
681
- if (ctx.deferredMergeNodes.has(targetName) && (0, build_utils_1.isMergeType)(targetNode.type)) {
848
+ if ((0, build_utils_1.isMergeType)(targetNode.type)) {
849
+ ctx.deferredMergeNodes.add(targetName);
850
+ ctx.variables.set(targetName, targetNode);
851
+ ctx.visited.add(targetName);
682
852
  const inputIndex = (0, build_utils_1.extractInputIndex)(output.targetInputSlot);
683
853
  ctx.deferredConnections.push({
684
854
  targetNode,
@@ -708,11 +878,28 @@ function buildCompositeTree(graph) {
708
878
  }
709
879
  }
710
880
  }
881
+ const seenConnections = new Set();
882
+ const uniqueConnections = ctx.deferredConnections.filter((conn) => {
883
+ const key = `${conn.sourceNodeName}:${conn.sourceOutputIndex}->${conn.targetNode.name}:${conn.targetInputIndex}:${conn.isErrorOutput ?? false}`;
884
+ if (seenConnections.has(key))
885
+ return false;
886
+ seenConnections.add(key);
887
+ return true;
888
+ });
889
+ const seenMergeDownstreams = new Set();
890
+ const uniqueMergeDownstreams = ctx.deferredMergeDownstreams.filter((d) => {
891
+ const targetName = getDownstreamTargetName(d.downstreamChain);
892
+ const key = `${d.mergeNode.name}->${targetName}`;
893
+ if (seenMergeDownstreams.has(key))
894
+ return false;
895
+ seenMergeDownstreams.add(key);
896
+ return true;
897
+ });
711
898
  return {
712
899
  roots,
713
900
  variables: ctx.variables,
714
- deferredConnections: ctx.deferredConnections,
715
- deferredMergeDownstreams: ctx.deferredMergeDownstreams,
901
+ deferredConnections: uniqueConnections,
902
+ deferredMergeDownstreams: uniqueMergeDownstreams,
716
903
  };
717
904
  }
718
905
  //# sourceMappingURL=composite-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composite-builder.js","sourceRoot":"","sources":["../../src/codegen/composite-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composite-builder.js","sourceRoot":"","sources":["../../src/codegen/composite-builder.ts"],"names":[],"mappings":"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"}