@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.
@@ -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: { acceptsInputFrom: ['endpoint', 'filter', 'transform', 'cache', 'rateLimiter', 'aggregator', 'conditional', 'delay', 'schemaValidator', 'split'], canOutputTo: PROCESSING_OUTPUTS },
52
- approval: { acceptsInputFrom: ['endpoint', 'filter', 'transform'], canOutputTo: ['endpoint', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'postgresAction', 'notificationAction', 'sheetsAction', 'calendarAction'], special: { hasRejectionOutputNodes: true } },
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
- // ── Monitoring + annotation — never executed in pipeline ──
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 */
@@ -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' | 'Monitoring' | 'Annotations';
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' | 'alert' | 'stickyNote';
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; alerts
97
- * are observability-only; stickyNote is purely visual.
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.23.0",
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",