@hostwebhook/node-types 1.52.1 → 1.52.3
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 +2 -2
- package/dist/registry.js +1 -1
- package/dist/types.d.ts +1 -2
- package/dist/ui.js +11 -10
- package/package.json +2 -6
package/dist/dispatch.js
CHANGED
|
@@ -24,13 +24,13 @@ exports.NODE_DISPATCH = {
|
|
|
24
24
|
vectorStore: { service: 'vectorStoreNodesService', collection: 'vectorstorenodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'generic' },
|
|
25
25
|
limit: { service: 'limitNodesService', collection: 'limitnodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: false, pipelineDispatch: 'generic' },
|
|
26
26
|
// ── Pipeline processing — custom dispatch (dedicated switch case) ──
|
|
27
|
-
schemaValidator: { service: 'schemaValidatorsService', collection: 'schemavalidators', hasFilters: false, outputFields: ['outputNodes'
|
|
27
|
+
schemaValidator: { service: 'schemaValidatorsService', collection: 'schemavalidators', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
28
28
|
delay: { service: 'delayNodesService', collection: 'delaynodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
29
29
|
rateLimiter: { service: 'rateLimiterNodesService', collection: 'ratelimiternodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
30
30
|
aggregator: { service: 'aggregatorNodesService', collection: 'aggregatornodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
31
31
|
cache: { service: 'cacheNodesService', collection: 'cachenodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
32
32
|
// ── Flow control — custom dispatch (branching / merging / loops) ──
|
|
33
|
-
split: { service: 'splitNodesService', collection: 'splitnodes', hasFilters: false, outputFields: ['outputNodes'
|
|
33
|
+
split: { service: 'splitNodesService', collection: 'splitnodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
34
34
|
conditional: { service: 'conditionalNodesService', collection: 'conditionalnodes', hasFilters: false, outputFields: ['outputNodes', 'elseOutputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
35
35
|
merge: { service: 'mergeNodesService', collection: 'mergenodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
36
36
|
approval: { service: 'approvalNodesService', collection: 'approvalnodes', hasFilters: false, outputFields: ['outputNodes', 'rejectionOutputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
package/dist/registry.js
CHANGED
|
@@ -174,7 +174,7 @@ exports.NODE_REGISTRY = {
|
|
|
174
174
|
type: 'mongoAction', prefix: 'ma', label: 'MongoDB Action',
|
|
175
175
|
group: 'Actions', detailPath: '/dashboard/mongo-actions', apiPath: '/mongo-actions',
|
|
176
176
|
stateKey: 'mongoActions', allStateKey: 'allMongoActions',
|
|
177
|
-
color: '#34d399', testable:
|
|
177
|
+
color: '#34d399', testable: true,
|
|
178
178
|
},
|
|
179
179
|
postgresAction: {
|
|
180
180
|
type: 'postgresAction', prefix: 'pg', label: 'Postgres Action',
|
package/dist/types.d.ts
CHANGED
|
@@ -35,7 +35,6 @@ export interface NodeUIConfig {
|
|
|
35
35
|
*/
|
|
36
36
|
dynamicOutputs?: boolean;
|
|
37
37
|
special?: {
|
|
38
|
-
rejectionEndpoints?: string;
|
|
39
38
|
hasBranches?: boolean;
|
|
40
39
|
isTerminal?: boolean;
|
|
41
40
|
hasLoopBack?: boolean;
|
|
@@ -57,7 +56,7 @@ export interface NodeUIConfig {
|
|
|
57
56
|
summaryField?: string;
|
|
58
57
|
/** Label shown in the modal (e.g. 'output', 'branch') */
|
|
59
58
|
label: string;
|
|
60
|
-
/** Entity field for the fallback/else path (e.g. 'elseOutputNodes'
|
|
59
|
+
/** Entity field for the fallback/else path (e.g. 'elseOutputNodes') */
|
|
61
60
|
elseField?: string;
|
|
62
61
|
/**
|
|
63
62
|
* Fixed output groups — for nodes with a static set of outputs (e.g. approval: approve/reject).
|
package/dist/ui.js
CHANGED
|
@@ -21,7 +21,8 @@ exports.NODE_UI = {
|
|
|
21
21
|
// ── Pipeline processing nodes ──
|
|
22
22
|
filter: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
23
23
|
transform: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
24
|
-
|
|
24
|
+
// One output only: a payload that fails validation stops at the node.
|
|
25
|
+
schemaValidator: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { loopBackAllowed: true } },
|
|
25
26
|
conditional: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { loopBackAllowed: true, connectModal: 'output-group', outputGroups: { field: 'branches', nameField: 'name', summaryField: 'filterMode', label: 'branch', elseField: 'elseOutputNodes' } } },
|
|
26
27
|
delay: { fromNodes: true, toNodes: true },
|
|
27
28
|
rateLimiter: { fromNodes: true, toNodes: true },
|
|
@@ -30,20 +31,20 @@ exports.NODE_UI = {
|
|
|
30
31
|
code: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
31
32
|
// AI Node: in classifier mode (entity.outputMode === 'classifier') the
|
|
32
33
|
// node fans out to N output handles — one per category in
|
|
33
|
-
// `entity.categories[]
|
|
34
|
-
//
|
|
35
|
-
// `
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
ai: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { loopBackAllowed: true, connectModal: 'output-group', outputGroups: { field: 'categories', nameField: 'name', summaryField: 'description', label: 'category',
|
|
34
|
+
// `entity.categories[]`, with the wiring in `categories[].outputNodes`.
|
|
35
|
+
// An item the classifier cannot place lands on the synthetic "other"
|
|
36
|
+
// value (see `entity.includeOtherBranch`) and stops there — "other" has
|
|
37
|
+
// no handle and no route. In any other outputMode the node falls back to
|
|
38
|
+
// the single right-out handle NodeShell renders when no dynamic outputs
|
|
39
|
+
// materialize.
|
|
40
|
+
ai: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { loopBackAllowed: true, connectModal: 'output-group', outputGroups: { field: 'categories', nameField: 'name', summaryField: 'description', label: 'category', gate: { field: 'outputMode', value: 'classifier' } } } },
|
|
40
41
|
markdown: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
41
42
|
fileTransform: { fromNodes: true, toNodes: true },
|
|
42
43
|
limit: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
43
44
|
// ── Flow control nodes ──
|
|
44
|
-
split: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { field: 'outputs', nameField: 'name', summaryField: 'field', label: 'output'
|
|
45
|
+
split: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { field: 'outputs', nameField: 'name', summaryField: 'field', label: 'output' } } },
|
|
45
46
|
merge: { fromNodes: true, toNodes: true, inputHandles: ['left', 'top'] },
|
|
46
|
-
approval: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { fixedGroups: [{ name: 'Approve', field: 'outputNodes' }, { name: 'Reject', field: 'rejectionOutputNodes' }], label: 'action' }
|
|
47
|
+
approval: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { connectModal: 'output-group', outputGroups: { fixedGroups: [{ name: 'Approve', field: 'outputNodes' }, { name: 'Reject', field: 'rejectionOutputNodes' }], label: 'action' } } },
|
|
47
48
|
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' } } },
|
|
48
49
|
// ── Routing nodes ──
|
|
49
50
|
router: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] }, special: { connectModal: 'rule' } },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hostwebhook/node-types",
|
|
3
|
-
"version": "1.52.
|
|
3
|
+
"version": "1.52.3",
|
|
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",
|
|
@@ -9,11 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
|
-
"prepublishOnly": "npm run build"
|
|
13
|
-
"release": "node scripts/release.mjs",
|
|
14
|
-
"release:patch": "node scripts/release.mjs patch",
|
|
15
|
-
"release:minor": "node scripts/release.mjs minor",
|
|
16
|
-
"release:major": "node scripts/release.mjs major"
|
|
12
|
+
"prepublishOnly": "npm run build"
|
|
17
13
|
},
|
|
18
14
|
"keywords": [
|
|
19
15
|
"hostwebhook",
|