@hostwebhook/node-types 1.10.11 → 1.10.13
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/dispatch.js +1 -1
- package/dist/types.d.ts +11 -2
- package/dist/ui.js +3 -3
- package/package.json +1 -1
package/dist/dispatch.js
CHANGED
|
@@ -22,7 +22,7 @@ exports.NODE_DISPATCH = {
|
|
|
22
22
|
split: { service: 'splitNodesService', collection: 'splitnodes', hasFilters: false, outputFields: ['outputNodes', 'remainderOutputNodes'], customDispatch: true },
|
|
23
23
|
conditional: { service: 'conditionalNodesService', collection: 'conditionalnodes', hasFilters: false, outputFields: ['outputNodes', 'elseOutputNodes'], customDispatch: true },
|
|
24
24
|
merge: { service: 'mergeNodesService', collection: 'mergenodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
|
25
|
-
approval: { service: 'approvalNodesService', collection: 'approvalnodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
|
25
|
+
approval: { service: 'approvalNodesService', collection: 'approvalnodes', hasFilters: false, outputFields: ['outputNodes', 'rejectionOutputNodes'], customDispatch: true },
|
|
26
26
|
loop: { service: 'loopNodesService', collection: 'loopnodes', hasFilters: false, outputFields: ['loopOutputNodes', 'doneOutputNodes'], customDispatch: true },
|
|
27
27
|
// ── Routing ──
|
|
28
28
|
router: { service: 'routersService', collection: 'routers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
package/dist/types.d.ts
CHANGED
|
@@ -42,15 +42,24 @@ export interface NodeUIConfig {
|
|
|
42
42
|
*/
|
|
43
43
|
outputGroups?: {
|
|
44
44
|
/** Entity field containing the array of groups (e.g. 'outputs', 'branches') */
|
|
45
|
-
field
|
|
45
|
+
field?: string;
|
|
46
46
|
/** Field within each group for display name (e.g. 'name') */
|
|
47
|
-
nameField
|
|
47
|
+
nameField?: string;
|
|
48
48
|
/** Field within each group for summary/description (e.g. 'field', 'filterMode') */
|
|
49
49
|
summaryField?: string;
|
|
50
50
|
/** Label shown in the modal (e.g. 'output', 'branch') */
|
|
51
51
|
label: string;
|
|
52
52
|
/** Entity field for the fallback/else path (e.g. 'elseOutputNodes', 'remainderOutputNodes') */
|
|
53
53
|
elseField?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Fixed output groups — for nodes with a static set of outputs (e.g. approval: approve/reject).
|
|
56
|
+
* Each entry maps to a top-level entity field that holds outputNodes[].
|
|
57
|
+
* When set, `field`/`nameField` are ignored — modal shows these fixed options.
|
|
58
|
+
*/
|
|
59
|
+
fixedGroups?: Array<{
|
|
60
|
+
name: string;
|
|
61
|
+
field: string;
|
|
62
|
+
}>;
|
|
54
63
|
};
|
|
55
64
|
/**
|
|
56
65
|
* Maps output fields to alternate payload fields on the source entity.
|
package/dist/ui.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.NODE_UI = {
|
|
|
14
14
|
filter: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
15
15
|
transform: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
16
16
|
schemaValidator: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
17
|
-
conditional: { fromNodes: true, toNodes: true, outputHandles: ['right'
|
|
17
|
+
conditional: { fromNodes: true, toNodes: true, outputHandles: ['right'], 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
20
|
aggregator: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
@@ -22,9 +22,9 @@ exports.NODE_UI = {
|
|
|
22
22
|
code: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
23
23
|
ai: { fromNodes: true, toNodes: true },
|
|
24
24
|
// ── Flow control nodes ──
|
|
25
|
-
split: { fromNodes: true, toNodes: true, outputHandles: ['right'
|
|
25
|
+
split: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { field: 'outputs', nameField: 'name', summaryField: 'field', label: 'output', elseField: 'remainderOutputNodes' } } },
|
|
26
26
|
merge: { fromNodes: true, toNodes: true, inputHandles: ['left', 'top'] },
|
|
27
|
-
approval: { fromNodes: true, toNodes: true, outputHandles: ['right', '
|
|
27
|
+
approval: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { fixedGroups: [{ name: 'Approve', field: 'outputNodes' }, { name: 'Reject', field: 'rejectionOutputNodes' }], label: 'action' }, rejectionEndpoints: 'rejectionEndpointIds' } },
|
|
28
28
|
loop: { fromNodes: true, toNodes: true, inputHandles: ['left'], outputHandles: ['right'], dotHandles: { input: ['left-in'], output: ['right-out-loop', 'right-in-loopback', 'right-out-done'] }, special: { hasLoopBack: true, alternatePayloads: { doneOutputNodes: 'lastDonePayload' } } },
|
|
29
29
|
// ── Routing nodes ──
|
|
30
30
|
router: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] }, special: { connectModal: 'rule' } },
|
package/package.json
CHANGED