@hostwebhook/node-types 1.10.14 → 1.10.16
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 +6 -5
- package/dist/dispatch.js +2 -1
- package/dist/registry.js +6 -0
- package/dist/types.d.ts +1 -1
- package/dist/ui.js +3 -1
- package/package.json +1 -1
package/dist/connections.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.isNodeType = isNodeType;
|
|
|
18
18
|
const PROCESSING_OUTPUTS = [
|
|
19
19
|
'endpoint', 'router', 'filter', 'transform', 'cache', 'code', 'rateLimiter',
|
|
20
20
|
'aggregator', 'conditional', 'delay', 'schemaValidator', 'split',
|
|
21
|
-
'emailAction', 'httpAction', 'mongoAction', 'notificationAction', 'sheetsAction', 'loop',
|
|
21
|
+
'emailAction', 'httpAction', 'mongoAction', 'notificationAction', 'sheetsAction', 'calendarAction', 'loop',
|
|
22
22
|
];
|
|
23
23
|
/** Standard processing input sources */
|
|
24
24
|
const STANDARD_INPUTS = [
|
|
@@ -26,7 +26,7 @@ const STANDARD_INPUTS = [
|
|
|
26
26
|
'cache', 'code', 'rateLimiter', 'aggregator', 'conditional', 'delay', 'schemaValidator', 'split', 'loop',
|
|
27
27
|
];
|
|
28
28
|
/** Action nodes that can chain (non-terminal) */
|
|
29
|
-
const CHAINABLE_ACTIONS = ['httpAction', 'mongoAction', 'sheetsAction'];
|
|
29
|
+
const CHAINABLE_ACTIONS = ['httpAction', 'mongoAction', 'sheetsAction', 'calendarAction'];
|
|
30
30
|
/** Full input list for action nodes (standard + chainable actions) */
|
|
31
31
|
const ACTION_INPUTS = [...STANDARD_INPUTS, ...CHAINABLE_ACTIONS];
|
|
32
32
|
exports.NODE_CONNECTIONS = {
|
|
@@ -36,7 +36,7 @@ exports.NODE_CONNECTIONS = {
|
|
|
36
36
|
// ── Pipeline processing nodes ──
|
|
37
37
|
filter: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
38
38
|
transform: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
39
|
-
schemaValidator: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
39
|
+
schemaValidator: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS, special: { hasRejectionOutputNodes: true } },
|
|
40
40
|
conditional: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS, special: { hasBranches: true } },
|
|
41
41
|
delay: { acceptsInputFrom: ['endpoint', 'filter', 'transform', 'cache', 'rateLimiter', 'aggregator', 'conditional', 'delay', 'schemaValidator'], canOutputTo: PROCESSING_OUTPUTS },
|
|
42
42
|
rateLimiter: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
@@ -47,16 +47,17 @@ exports.NODE_CONNECTIONS = {
|
|
|
47
47
|
// ── Flow control nodes ──
|
|
48
48
|
split: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
49
49
|
merge: { acceptsInputFrom: ['endpoint', 'filter', 'transform', 'cache', 'rateLimiter', 'aggregator', 'conditional', 'delay', 'schemaValidator', 'split'], canOutputTo: PROCESSING_OUTPUTS },
|
|
50
|
-
approval: { acceptsInputFrom: ['endpoint', 'filter', 'transform'], canOutputTo: ['endpoint', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'notificationAction', 'sheetsAction'], special: { hasRejectionOutputNodes: true } },
|
|
50
|
+
approval: { acceptsInputFrom: ['endpoint', 'filter', 'transform'], canOutputTo: ['endpoint', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'notificationAction', 'sheetsAction', 'calendarAction'], special: { hasRejectionOutputNodes: true } },
|
|
51
51
|
loop: { acceptsInputFrom: STANDARD_INPUTS, canOutputTo: PROCESSING_OUTPUTS, special: { hasLoopBack: true } },
|
|
52
52
|
// ── Routing nodes ──
|
|
53
|
-
router: { acceptsInputFrom: ['endpoint', 'scheduledWebhook', 'filter', 'transform'], canOutputTo: ['endpoint', 'notificationAction', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'sheetsAction'] },
|
|
53
|
+
router: { acceptsInputFrom: ['endpoint', 'scheduledWebhook', 'filter', 'transform'], canOutputTo: ['endpoint', 'notificationAction', 'filter', 'transform', 'emailAction', 'httpAction', 'mongoAction', 'sheetsAction', 'calendarAction'] },
|
|
54
54
|
// ── Action nodes ──
|
|
55
55
|
emailAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: [], special: { isTerminal: true } },
|
|
56
56
|
httpAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
57
57
|
mongoAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
58
58
|
notificationAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: [], special: { isTerminal: true } },
|
|
59
59
|
sheetsAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
60
|
+
calendarAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
60
61
|
// ── Monitoring ──
|
|
61
62
|
alert: { acceptsInputFrom: ['endpoint', 'scheduledWebhook'], canOutputTo: [], special: { isTerminal: true } },
|
|
62
63
|
// ── Annotations (visual only, no pipeline processing) ──
|
package/dist/dispatch.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.NODE_DISPATCH = {
|
|
|
11
11
|
// ── Pipeline processing (generic dispatch) ──
|
|
12
12
|
filter: { service: 'filterNodesService', collection: 'filternodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: false },
|
|
13
13
|
transform: { service: 'transformNodesService', collection: 'transformnodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: false },
|
|
14
|
-
schemaValidator: { service: 'schemaValidatorsService', collection: 'schemavalidators', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
|
14
|
+
schemaValidator: { service: 'schemaValidatorsService', collection: 'schemavalidators', hasFilters: false, outputFields: ['outputNodes', 'invalidOutputNodes'], customDispatch: true },
|
|
15
15
|
delay: { service: 'delayNodesService', collection: 'delaynodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true },
|
|
16
16
|
rateLimiter: { service: 'rateLimiterNodesService', collection: 'ratelimiternodes', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
|
17
17
|
aggregator: { service: 'aggregatorNodesService', collection: 'aggregatornodes', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true },
|
|
@@ -32,6 +32,7 @@ exports.NODE_DISPATCH = {
|
|
|
32
32
|
mongoAction: { service: 'mongoActionsService', collection: 'mongoactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true },
|
|
33
33
|
notificationAction: { service: 'notificationActionsService', collection: 'notificationactions', hasFilters: true, outputFields: [], customDispatch: true },
|
|
34
34
|
sheetsAction: { service: 'sheetsActionsService', collection: 'sheetsactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true },
|
|
35
|
+
calendarAction: { service: 'calendarActionsService', collection: 'calendaractions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true },
|
|
35
36
|
// ── Source + monitoring ──
|
|
36
37
|
alert: { service: 'alertService', collection: 'alerts', hasFilters: false, outputFields: [], customDispatch: true },
|
|
37
38
|
endpoint: { service: 'endpointsService', collection: 'endpoints', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true },
|
package/dist/registry.js
CHANGED
|
@@ -146,6 +146,12 @@ exports.NODE_REGISTRY = {
|
|
|
146
146
|
stateKey: 'sheetsActions', allStateKey: 'allSheetsActions',
|
|
147
147
|
color: '#34d399', testable: true,
|
|
148
148
|
},
|
|
149
|
+
calendarAction: {
|
|
150
|
+
type: 'calendarAction', prefix: 'cal', label: 'Google Calendar Action',
|
|
151
|
+
group: 'Actions', detailPath: '/dashboard/calendar-actions', apiPath: '/calendar-actions',
|
|
152
|
+
stateKey: 'calendarActions', allStateKey: 'allCalendarActions',
|
|
153
|
+
color: '#60a5fa', testable: true,
|
|
154
|
+
},
|
|
149
155
|
// ── Monitoring ──
|
|
150
156
|
alert: {
|
|
151
157
|
type: 'alert', prefix: 'al', label: 'Alert',
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** All valid node type identifiers */
|
|
2
|
-
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'notificationAction' | 'sheetsAction' | 'alert' | 'stickyNote';
|
|
2
|
+
export type NodeType = 'endpoint' | 'scheduledWebhook' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'alert' | '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 */
|
package/dist/ui.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.NODE_UI = {
|
|
|
13
13
|
// ── Pipeline processing nodes ──
|
|
14
14
|
filter: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
15
15
|
transform: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
16
|
-
schemaValidator: { fromNodes: true, toNodes: true, special: { loopBackAllowed: true } },
|
|
16
|
+
schemaValidator: { fromNodes: true, toNodes: true, outputHandles: ['right'], special: { loopBackAllowed: true, connectModal: 'output-group', outputGroups: { fixedGroups: [{ name: 'Valid', field: 'outputNodes' }, { name: 'Invalid', field: 'invalidOutputNodes' }], label: 'path' } } },
|
|
17
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 },
|
|
@@ -34,6 +34,7 @@ exports.NODE_UI = {
|
|
|
34
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
36
|
sheetsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
37
|
+
calendarAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
37
38
|
// ── Monitoring ──
|
|
38
39
|
alert: { fromNodes: true, toNodes: false, inputHandles: ['bottom'], special: { isTerminal: true } },
|
|
39
40
|
// ── Annotations ──
|
|
@@ -54,6 +55,7 @@ exports.PREFIX_TO_TYPE = [
|
|
|
54
55
|
{ prefix: 'sv-', type: 'schemaValidator', canvasType: 'schema-validator' },
|
|
55
56
|
{ prefix: 'delay-', type: 'delay', canvasType: 'delay-node' },
|
|
56
57
|
{ prefix: 'sheet-', type: 'sheetsAction', canvasType: 'sheets-action' },
|
|
58
|
+
{ prefix: 'cal-', type: 'calendarAction', canvasType: 'calendarAction' },
|
|
57
59
|
{ prefix: 'appr-', type: 'approval', canvasType: 'approval-node' },
|
|
58
60
|
{ prefix: 'merge-', type: 'merge', canvasType: 'merge' },
|
|
59
61
|
{ prefix: 'cond-', type: 'conditional', canvasType: 'conditional' },
|
package/package.json
CHANGED