@hostwebhook/node-types 1.53.0 → 1.54.1
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 +2 -1
- package/dist/dispatch.js +1 -0
- package/dist/registry.js +32 -3
- package/dist/types.d.ts +1 -1
- package/dist/ui.js +2 -0
- package/package.json +1 -1
package/dist/connections.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.isNodeType = isNodeType;
|
|
|
18
18
|
const PROCESSING_OUTPUTS = [
|
|
19
19
|
'webhook', 'router', 'filter', 'transform', 'cache', 'code', 'rateLimiter',
|
|
20
20
|
'aggregator', 'conditional', 'delay', 'schemaValidator', 'split', 'markdown', 'fileTransform', 'limit',
|
|
21
|
-
'emailAction', 'httpAction', 'mongoAction', 'postgresAction', 'notificationAction', 'sheetsAction', 'calendarAction', 'docsAction', 'driveAction', 'firecrawlAction', 'telegramAction', 'whatsappAction', 'discordAction', 'slackAction', 'googleContactsAction', 'vectorStore', 'rssAction', 'socialMediaAction', 'loop',
|
|
21
|
+
'emailAction', 'gmailAction', 'httpAction', 'mongoAction', 'postgresAction', 'notificationAction', 'sheetsAction', 'calendarAction', 'docsAction', 'driveAction', 'firecrawlAction', 'telegramAction', 'whatsappAction', 'discordAction', 'slackAction', 'googleContactsAction', 'vectorStore', 'rssAction', 'socialMediaAction', 'loop',
|
|
22
22
|
];
|
|
23
23
|
/** Standard processing input sources */
|
|
24
24
|
const STANDARD_INPUTS = [
|
|
@@ -63,6 +63,7 @@ exports.NODE_CONNECTIONS = {
|
|
|
63
63
|
router: { acceptsInputFrom: ['webhook', 'scheduledWorkflow', 'filter', 'transform'], canOutputTo: PROCESSING_OUTPUTS.filter(t => t !== 'webhook') },
|
|
64
64
|
// ── Action nodes ──
|
|
65
65
|
emailAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
66
|
+
gmailAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
66
67
|
httpAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
67
68
|
mongoAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
|
68
69
|
postgresAction: { acceptsInputFrom: ACTION_INPUTS, canOutputTo: PROCESSING_OUTPUTS },
|
package/dist/dispatch.js
CHANGED
|
@@ -39,6 +39,7 @@ exports.NODE_DISPATCH = {
|
|
|
39
39
|
router: { service: 'routersService', collection: 'routers', hasFilters: false, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'custom' },
|
|
40
40
|
// ── Action nodes — fired in onDeliveryResult, excluded from webhook dispatch ──
|
|
41
41
|
emailAction: { service: 'emailActionsService', collection: 'emailactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
42
|
+
gmailAction: { service: 'gmailActionsService', collection: 'gmailactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
42
43
|
httpAction: { service: 'httpActionsService', collection: 'httpactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
43
44
|
mongoAction: { service: 'mongoActionsService', collection: 'mongoactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
|
44
45
|
postgresAction: { service: 'postgresActionsService', collection: 'postgresactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded' },
|
package/dist/registry.js
CHANGED
|
@@ -154,14 +154,43 @@ exports.NODE_REGISTRY = {
|
|
|
154
154
|
color: '#38bdf8', testable: true,
|
|
155
155
|
},
|
|
156
156
|
// ── Actions ──
|
|
157
|
+
/**
|
|
158
|
+
* Manda correo por Resend, y sólo por Resend.
|
|
159
|
+
*
|
|
160
|
+
* Tuvo un campo `provider` con Gmail y un Outlook que nunca llegó. Gmail se
|
|
161
|
+
* fue a su propio nodo —ver `gmailAction`— y con él su OAuth, sus dieciséis
|
|
162
|
+
* operaciones y el toolkit de IA, que era suyo: aquí sólo quedan enviar y
|
|
163
|
+
* el modo de IA no tiene dieciséis herramientas que ofrecer.
|
|
164
|
+
*/
|
|
157
165
|
emailAction: {
|
|
158
166
|
type: 'emailAction', prefix: 'ea', label: 'Email Action',
|
|
159
167
|
group: 'Actions', detailPath: '/dashboard/email-actions', apiPath: '/email-actions',
|
|
160
168
|
stateKey: 'emailActions', allStateKey: 'allEmailActions',
|
|
161
169
|
color: '#f472b6', testable: true,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
170
|
+
/**
|
|
171
|
+
* Sigue siendo herramienta: hay una ruta native + aiEnabled donde el nodo
|
|
172
|
+
* AI genera el correo y este lo manda por Resend —en produccion existe un
|
|
173
|
+
* «using native email as tool»—. Se la quite al partir Gmail dando por
|
|
174
|
+
* hecho que el toolkit era solo suyo, y sin esto el nodo recupera sus
|
|
175
|
+
* handles en modo herramienta: justo el mal enrutado que este flag evita.
|
|
176
|
+
*/
|
|
177
|
+
isToolOnly: (e) => e.aiEnabled === true,
|
|
178
|
+
},
|
|
179
|
+
/**
|
|
180
|
+
* Gmail salio del nodo Email, que ahora manda SOLO por Resend.
|
|
181
|
+
*
|
|
182
|
+
* Estaban juntos bajo un campo `provider`, y eso obligaba a que un nodo de
|
|
183
|
+
* dos operaciones —enviar por Resend— cargara con las dieciseis de Gmail, su
|
|
184
|
+
* OAuth, su toolkit de IA y su send-and-wait. Partidos, cada uno se explica
|
|
185
|
+
* solo y el de Email vuelve a caber en una pantalla.
|
|
186
|
+
*/
|
|
187
|
+
gmailAction: {
|
|
188
|
+
type: 'gmailAction', prefix: 'gm', label: 'Gmail',
|
|
189
|
+
group: 'Actions', detailPath: '/dashboard/gmail-actions', apiPath: '/gmail-actions',
|
|
190
|
+
stateKey: 'gmailActions', allStateKey: 'allGmailActions',
|
|
191
|
+
color: '#ea4335', testable: true,
|
|
192
|
+
// El toolkit de IA se vino con Gmail: son sus dieciseis operaciones las
|
|
193
|
+
// que el LLM llama, no las dos de Resend. Ver el comentario de arriba.
|
|
165
194
|
isToolOnly: (e) => e.aiEnabled === true,
|
|
166
195
|
},
|
|
167
196
|
httpAction: {
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** All valid node type identifiers */
|
|
2
|
-
export type NodeType = 'webhook' | 'scheduledWorkflow' | 'chatTrigger' | 'trigger' | 'voiceAgent' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'markdown' | 'fileTransform' | 'limit' | 'router' | 'emailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'driveAction' | 'firecrawlAction' | 'telegramAction' | 'whatsappAction' | 'discordAction' | 'slackAction' | 'googleContactsAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | 'stickyNote';
|
|
2
|
+
export type NodeType = 'webhook' | 'scheduledWorkflow' | 'chatTrigger' | 'trigger' | 'voiceAgent' | 'filter' | 'transform' | 'schemaValidator' | 'conditional' | 'delay' | 'rateLimiter' | 'aggregator' | 'cache' | 'code' | 'ai' | 'merge' | 'approval' | 'split' | 'loop' | 'markdown' | 'fileTransform' | 'limit' | 'router' | 'emailAction' | 'gmailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'driveAction' | 'firecrawlAction' | 'telegramAction' | 'whatsappAction' | 'discordAction' | 'slackAction' | 'googleContactsAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | '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
|
@@ -50,6 +50,7 @@ exports.NODE_UI = {
|
|
|
50
50
|
router: { fromNodes: true, toNodes: true, outputHandles: ['right', 'bottom'], dotHandles: { output: ['right-out', 'bottom-out'] }, special: { connectModal: 'rule' } },
|
|
51
51
|
// ── Action nodes ──
|
|
52
52
|
emailAction: { fromNodes: true, toNodes: true, inputHandles: ['left', 'top'], outputHandles: ['right'], dotHandles: { input: ['left-in', 'top-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'email' } },
|
|
53
|
+
gmailAction: { fromNodes: true, toNodes: true, inputHandles: ['left', 'top'], outputHandles: ['right'], dotHandles: { input: ['left-in', 'top-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'gmail' } },
|
|
53
54
|
httpAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
54
55
|
mongoAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
55
56
|
postgresAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
@@ -78,6 +79,7 @@ exports.PREFIX_TO_TYPE = [
|
|
|
78
79
|
{ prefix: 'trg-', type: 'trigger', canvasType: 'trigger' },
|
|
79
80
|
{ prefix: 'va-', type: 'voiceAgent', canvasType: 'voiceAgent' },
|
|
80
81
|
{ prefix: 'ea-', type: 'emailAction', canvasType: 'emailAction' },
|
|
82
|
+
{ prefix: 'gm-', type: 'gmailAction', canvasType: 'gmailAction' },
|
|
81
83
|
{ prefix: 'tg-', type: 'telegramAction', canvasType: 'telegramAction' },
|
|
82
84
|
{ prefix: 'wa-', type: 'whatsappAction', canvasType: 'whatsappAction' },
|
|
83
85
|
{ prefix: 'dc-', type: 'discordAction', canvasType: 'discordAction' },
|
package/package.json
CHANGED