@hostwebhook/node-types 1.23.0 → 1.25.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.
- package/dist/connections.js +9 -4
- package/dist/dispatch.js +1 -2
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +0 -7
- package/dist/types.d.ts +3 -3
- package/dist/ui.js +0 -3
- package/package.json +6 -2
package/dist/connections.js
CHANGED
|
@@ -48,8 +48,15 @@ exports.NODE_CONNECTIONS = {
|
|
|
48
48
|
ai: { acceptsInputFrom: [...ACTION_INPUTS], canOutputTo: PROCESSING_OUTPUTS },
|
|
49
49
|
// ── Flow control nodes ──
|
|
50
50
|
split: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
51
|
-
merge
|
|
52
|
-
|
|
51
|
+
// merge takes the same input set as any STANDARD pipeline node — the
|
|
52
|
+
// narrower hand-curated list it used to carry got stale every time a
|
|
53
|
+
// new processing node landed (code, markdown, fileTransform, loop)
|
|
54
|
+
// and silently blocked obvious pipelines like `code → merge`.
|
|
55
|
+
merge: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
56
|
+
// approval is the generic "human-in-the-loop gate" — it should be
|
|
57
|
+
// able to gate ANY action, not the hand-picked subset that existed
|
|
58
|
+
// when this entry was last touched. Same staleness pattern as merge.
|
|
59
|
+
approval: { acceptsInputFrom: ['endpoint', 'filter', 'transform'], canOutputTo: ['endpoint', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'postgresAction', 'notificationAction', 'sheetsAction', 'calendarAction', 'docsAction', 'firecrawlAction', 'vectorStore'], special: { hasRejectionOutputNodes: true } },
|
|
53
60
|
loop: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS, special: { hasLoopBack: true } },
|
|
54
61
|
// ── Routing nodes ──
|
|
55
62
|
router: { acceptsInputFrom: ['endpoint', 'scheduledWebhook', 'filter', 'transform'], canOutputTo: PROCESSING_OUTPUTS.filter(t => t !== 'endpoint') },
|
|
@@ -67,8 +74,6 @@ exports.NODE_CONNECTIONS = {
|
|
|
67
74
|
// ── Processing (transform-like) ──
|
|
68
75
|
markdown: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
69
76
|
fileTransform: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
70
|
-
// ── Monitoring ──
|
|
71
|
-
alert: { acceptsInputFrom: ['endpoint', 'scheduledWebhook'], canOutputTo: [], special: { isTerminal: true } },
|
|
72
77
|
// ── Annotations (visual only, no pipeline processing) ──
|
|
73
78
|
stickyNote: { acceptsInputFrom: [], canOutputTo: [] },
|
|
74
79
|
};
|
package/dist/dispatch.js
CHANGED
|
@@ -51,8 +51,7 @@ exports.NODE_DISPATCH = {
|
|
|
51
51
|
scheduledWebhook: { service: 'scheduledWebhooksService', collection: 'scheduledwebhooks', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
52
52
|
chatTrigger: { service: 'chatTriggersService', collection: 'chattriggers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
53
53
|
serviceTrigger: { service: 'serviceTriggersService', collection: 'servicetriggers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
54
|
-
// ──
|
|
55
|
-
alert: { service: 'alertService', collection: 'alerts', hasFilters: false, outputFields: [], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
54
|
+
// ── Annotation — never executed in pipeline ──
|
|
56
55
|
stickyNote: { service: 'stickyNotesService', collection: 'stickynotes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
57
56
|
};
|
|
58
57
|
/** Get all MongoDB collection names for cascade cleanup */
|
package/dist/registry.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* from this registry. No more 18+ touch points.
|
|
7
7
|
*/
|
|
8
8
|
import type { NodeType } from './types';
|
|
9
|
-
export type NodeGroup = 'Sources' | 'Flow Control' | 'Actions' | '
|
|
9
|
+
export type NodeGroup = 'Sources' | 'Flow Control' | 'Actions' | 'Annotations';
|
|
10
10
|
export interface NodeRegistryEntry {
|
|
11
11
|
/** Canonical type (e.g., "httpAction") */
|
|
12
12
|
type: NodeType;
|
package/dist/registry.js
CHANGED
|
@@ -207,13 +207,6 @@ exports.NODE_REGISTRY = {
|
|
|
207
207
|
stateKey: 'vectorStoreNodes', allStateKey: 'allVectorStoreNodes',
|
|
208
208
|
color: '#06b6d4', testable: true,
|
|
209
209
|
},
|
|
210
|
-
// ── Monitoring ──
|
|
211
|
-
alert: {
|
|
212
|
-
type: 'alert', prefix: 'al', label: 'Alert',
|
|
213
|
-
group: 'Monitoring', detailPath: '/dashboard/alerts', apiPath: '/alerts',
|
|
214
|
-
stateKey: 'alerts', allStateKey: 'allAlerts',
|
|
215
|
-
color: '#ef4444', testable: false,
|
|
216
|
-
},
|
|
217
210
|
// ── Annotations ──
|
|
218
211
|
stickyNote: {
|
|
219
212
|
type: 'stickyNote', prefix: 'note', label: 'Sticky Note',
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** All valid node type identifiers */
|
|
2
|
-
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'chatTrigger' | 'serviceTrigger' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'markdown' | 'fileTransform' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'firecrawlAction' | 'vectorStore' | '
|
|
2
|
+
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'chatTrigger' | 'serviceTrigger' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'markdown' | 'fileTransform' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'firecrawlAction' | 'vectorStore' | 'stickyNote';
|
|
3
3
|
/** Node role in the pipeline */
|
|
4
4
|
export type NodeRole = 'source' | 'processing' | 'flowControl' | 'routing' | 'action' | 'monitoring';
|
|
5
5
|
/** Handle positions on the canvas node */
|
|
@@ -93,8 +93,8 @@ export interface NodeUIConfig {
|
|
|
93
93
|
* nodes (email/http/mongo/notification/sheets/calendar/docs/
|
|
94
94
|
* firecrawl) are fired post-delivery in onDeliveryResult with
|
|
95
95
|
* their own loops; ingress nodes (endpoint/scheduledWebhook/
|
|
96
|
-
* chatTrigger/serviceTrigger) start the flow themselves;
|
|
97
|
-
*
|
|
96
|
+
* chatTrigger/serviceTrigger) start the flow themselves;
|
|
97
|
+
* stickyNote is purely visual.
|
|
98
98
|
*/
|
|
99
99
|
export type PipelineDispatchKind = 'generic' | 'custom' | 'excluded';
|
|
100
100
|
/** API dispatch config — how the event pipeline processes each node */
|
package/dist/ui.js
CHANGED
|
@@ -43,8 +43,6 @@ exports.NODE_UI = {
|
|
|
43
43
|
docsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
44
44
|
firecrawlAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
45
45
|
vectorStore: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
46
|
-
// ── Monitoring ──
|
|
47
|
-
alert: { fromNodes: true, toNodes: false, inputHandles: ['bottom'], special: { isTerminal: true } },
|
|
48
46
|
// ── Annotations ──
|
|
49
47
|
stickyNote: { fromNodes: false, toNodes: false },
|
|
50
48
|
};
|
|
@@ -54,7 +52,6 @@ exports.PREFIX_TO_TYPE = [
|
|
|
54
52
|
{ prefix: 'sw-', type: 'scheduledWebhook', canvasType: 'scheduledWebhook' },
|
|
55
53
|
{ prefix: 'chat-', type: 'chatTrigger', canvasType: 'chatTrigger' },
|
|
56
54
|
{ prefix: 'svc-', type: 'serviceTrigger', canvasType: 'serviceTrigger' },
|
|
57
|
-
{ prefix: 'al-', type: 'alert', canvasType: 'alert' },
|
|
58
55
|
{ prefix: 'ea-', type: 'emailAction', canvasType: 'emailAction' },
|
|
59
56
|
{ prefix: 'ha-', type: 'httpAction', canvasType: 'httpAction' },
|
|
60
57
|
{ prefix: 'ma-', type: 'mongoAction', canvasType: 'mongoAction' },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hostwebhook/node-types",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
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,7 +9,11 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
|
-
"prepublishOnly": "npm run build"
|
|
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"
|
|
13
17
|
},
|
|
14
18
|
"keywords": [
|
|
15
19
|
"hostwebhook",
|