@hostwebhook/node-types 1.10.8 → 1.10.10

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/types.d.ts CHANGED
@@ -59,6 +59,8 @@ export interface NodeUIConfig {
59
59
  * Example: { doneOutputNodes: 'lastDonePayload' } for loop nodes.
60
60
  */
61
61
  alternatePayloads?: Record<string, string>;
62
+ /** Whether this node can be connected as a loop-back target. Only nodes that go through the unified node-lifecycle support loop-back detection. */
63
+ loopBackAllowed?: boolean;
62
64
  };
63
65
  }
64
66
  /** API dispatch config — how the event pipeline processes each node */
package/dist/ui.js CHANGED
@@ -8,18 +8,18 @@ exports.PREFIX_TO_TYPE = exports.NODE_UI = void 0;
8
8
  exports.resolveNodeId = resolveNodeId;
9
9
  exports.NODE_UI = {
10
10
  // ── Source nodes ──
11
- endpoint: { fromNodes: true, toNodes: true, isSource: true, inputHandles: ['left', 'top'], outputHandles: ['right', 'bottom'] },
11
+ endpoint: { fromNodes: true, toNodes: true, isSource: true },
12
12
  scheduledWebhook: { fromNodes: false, toNodes: true, isSource: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] } },
13
13
  // ── Pipeline processing nodes ──
14
- filter: { fromNodes: true, toNodes: true },
15
- transform: { fromNodes: true, toNodes: true },
16
- schemaValidator: { fromNodes: true, toNodes: true },
17
- conditional: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], special: { connectModal: 'output-group', outputGroups: { field: 'branches', nameField: 'name', summaryField: 'filterMode', label: 'branch', elseField: 'elseOutputNodes' } } },
14
+ filter: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
15
+ transform: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
16
+ schemaValidator: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
17
+ conditional: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], special: { loopBackAllowed: true, connectModal: 'output-group', outputGroups: { field: 'branches', nameField: 'name', summaryField: 'filterMode', label: 'branch', elseField: 'elseOutputNodes' } } },
18
18
  delay: { fromNodes: true, toNodes: true },
19
19
  rateLimiter: { fromNodes: true, toNodes: true },
20
- aggregator: { fromNodes: true, toNodes: true },
20
+ aggregator: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
21
21
  cache: { fromNodes: true, toNodes: true },
22
- code: { fromNodes: true, toNodes: true },
22
+ code: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
23
23
  ai: { fromNodes: true, toNodes: true },
24
24
  // ── Flow control nodes ──
25
25
  split: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], special: { connectModal: 'output-group', outputGroups: { field: 'outputs', nameField: 'name', summaryField: 'field', label: 'output', elseField: 'remainderOutputNodes' } } },
@@ -29,11 +29,11 @@ exports.NODE_UI = {
29
29
  // ── Routing nodes ──
30
30
  router: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] }, special: { connectModal: 'rule' } },
31
31
  // ── Action nodes ──
32
- emailAction: { fromNodes: true, toNodes: false, inputHandles: ['left', 'top'], dotHandles: { input: ['left-in', 'top-in'] }, special: { isTerminal: true, routerTargetLabel: 'email' } },
33
- httpAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] } },
34
- mongoAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] } },
32
+ emailAction: { fromNodes: true, toNodes: false, inputHandles: ['left', 'top'], dotHandles: { input: ['left-in', 'top-in'] }, special: { isTerminal: true, loopBackAllowed: true, routerTargetLabel: 'email' } },
33
+ httpAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
34
+ mongoAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
35
35
  notificationAction: { fromNodes: true, toNodes: false, inputHandles: ['left', 'top'], dotHandles: { input: ['left-in', 'top-in'] }, special: { isTerminal: true, routerTargetLabel: 'notification' } },
36
- sheetsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] } },
36
+ sheetsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
37
37
  // ── Monitoring ──
38
38
  alert: { fromNodes: true, toNodes: false, inputHandles: ['bottom'], special: { isTerminal: true } },
39
39
  // ── Annotations ──
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostwebhook/node-types",
3
- "version": "1.10.8",
3
+ "version": "1.10.10",
4
4
  "description": "Shared node type definitions, connection rules, and dispatch config for HostWebhook",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",