@hostwebhook/node-types 1.83.0 → 1.85.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/airtable-operations.d.ts +90 -0
- package/dist/airtable-operations.js +274 -0
- package/dist/calendly-operations.d.ts +81 -0
- package/dist/calendly-operations.js +301 -0
- package/dist/connections.js +2 -0
- package/dist/credentials.d.ts +6 -0
- package/dist/credentials.js +20 -0
- package/dist/dispatch.js +2 -0
- package/dist/esm/airtable-operations.d.ts +90 -0
- package/dist/esm/airtable-operations.js +270 -0
- package/dist/esm/calendly-operations.d.ts +81 -0
- package/dist/esm/calendly-operations.js +297 -0
- package/dist/esm/connections.js +2 -0
- package/dist/esm/credentials.d.ts +6 -0
- package/dist/esm/credentials.js +20 -0
- package/dist/esm/dispatch.js +2 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/registry.js +35 -0
- package/dist/esm/types.d.ts +1 -1
- package/dist/esm/ui.js +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +12 -2
- package/dist/registry.js +35 -0
- package/dist/types.d.ts +1 -1
- package/dist/ui.js +4 -0
- package/package.json +1 -1
package/dist/esm/credentials.js
CHANGED
|
@@ -53,6 +53,26 @@ export const CREDENTIAL_TYPES = [
|
|
|
53
53
|
/* [2026-09-13] Apify no tiene OAuth para terceros: es un API token, como
|
|
54
54
|
Firecrawl. Lo lee el nodo `apifyAction`. */
|
|
55
55
|
{ type: 'apify' },
|
|
56
|
+
/* [2026-09-15] El OAuth de HostWebhook contra Calendly. Se anota ANTES de
|
|
57
|
+
escribir el servicio, por lo que cuenta el bloque de Mailchimp de abajo:
|
|
58
|
+
sin esta línea el `create` de la credencial muere en runtime con un enum
|
|
59
|
+
de Mongoose que TypeScript no ve. Lleva `_oauth2` como Mailchimp y
|
|
60
|
+
Shopify. Guarda, además de los tokens, el `owner` y la `organization`
|
|
61
|
+
(URIs) que el token endpoint devuelve: cada lista y cada webhook los
|
|
62
|
+
necesita. El refresh token es de UN solo uso: se sobreescribe en el
|
|
63
|
+
mismo write que lo gasta. */
|
|
64
|
+
{ type: 'calendly_oauth2' },
|
|
65
|
+
/* El personal access token de Calendly (Integrations → API & webhooks),
|
|
66
|
+
para quien no quiera OAuth. Va aparte de `calendly_oauth2` por lo mismo
|
|
67
|
+
que `discord_bot` va aparte de `discord_oauth`: lo que guardan es
|
|
68
|
+
distinto (aquí un secreto suyo que no caduca y ninguna URI hasta que se
|
|
69
|
+
valida con `GET /users/me`). */
|
|
70
|
+
{ type: 'calendly' },
|
|
71
|
+
/* El OAuth de HostWebhook contra Airtable. PKCE obligatorio, secret por
|
|
72
|
+
Basic auth, access token de 60 minutos y refresh de 60 días que rota
|
|
73
|
+
en cada uso. El usuario elige en la pantalla de Airtable QUÉ bases
|
|
74
|
+
concede; los desplegables sólo listan ésas. */
|
|
75
|
+
{ type: 'airtable_oauth2' },
|
|
56
76
|
{ type: 'http_auth' },
|
|
57
77
|
{ type: 'aws_s3' },
|
|
58
78
|
/* [2026-09-14] `memory_contextwindow` se retiró: el backend de memoria
|
package/dist/esm/dispatch.js
CHANGED
|
@@ -58,6 +58,8 @@ export const NODE_DISPATCH = {
|
|
|
58
58
|
jiraAction: { service: 'jiraActionsService', collection: 'jiraactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
59
59
|
bucketAction: { service: 'bucketActionsService', collection: 'bucketactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
60
60
|
apifyAction: { service: 'apifyActionsService', collection: 'apifyactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
61
|
+
calendlyAction: { service: 'calendlyActionsService', collection: 'calendlyactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
62
|
+
airtableAction: { service: 'airtableActionsService', collection: 'airtableactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
61
63
|
slackAction: { service: 'slackActionsService', collection: 'slackactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
62
64
|
googleContactsAction: { service: 'googleContactsActionsService', collection: 'googlecontactsactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
|
63
65
|
googleAnalyticsAction: { service: 'googleAnalyticsActionsService', collection: 'googleanalyticsactions', hasFilters: true, outputFields: ['outputNodes'], customDispatch: true, pipelineDispatch: 'excluded', downstreamPayload: 'result' },
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -40,6 +40,10 @@ export { BUCKET_OPERATIONS, BUCKET_OPERATION_SPECS, BUCKET_ITERABLE_OPERATIONS,
|
|
|
40
40
|
export type { BucketOperation, BucketParamType, BucketParamSpec, BucketOperationSpec, } from './bucket-operations.js';
|
|
41
41
|
export { APIFY_OPERATIONS, APIFY_OPERATION_SPECS, APIFY_ITERABLE_OPERATIONS, isApifyOperation, } from './apify-operations.js';
|
|
42
42
|
export type { ApifyOperation, ApifyParamType, ApifyParamSpec, ApifyOperationSpec, } from './apify-operations.js';
|
|
43
|
+
export { CALENDLY_OPERATIONS, CALENDLY_OPERATION_SPECS, CALENDLY_ITERABLE_OPERATIONS, isCalendlyOperation, } from './calendly-operations.js';
|
|
44
|
+
export type { CalendlyOperation, CalendlyParamType, CalendlyParamSpec, CalendlyOperationSpec, } from './calendly-operations.js';
|
|
45
|
+
export { AIRTABLE_OPERATIONS, AIRTABLE_OPERATION_SPECS, AIRTABLE_ITERABLE_OPERATIONS, isAirtableOperation, } from './airtable-operations.js';
|
|
46
|
+
export type { AirtableOperation, AirtableParamType, AirtableParamSpec, AirtableOperationSpec, } from './airtable-operations.js';
|
|
43
47
|
export { SLACK_OPERATIONS, SLACK_OPERATION_SPECS, SLACK_CAPACIDADES_POR_CREDENCIAL, operacionesDeSlackPara, slackPuedeEjecutar, camposDeSlackNoDisponibles, isSlackOperation, } from './slack-operations.js';
|
|
44
48
|
export type { SlackOperation, SlackParamSpec, SlackOperationSpec, } from './slack-operations.js';
|
|
45
49
|
export { SLACK_TOOLKIT_SPECS, SLACK_TOOLKIT_BY_TOOL_NAME, herramientasDeSlackPara, } from './slack-toolkit.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -36,6 +36,8 @@ export { GITHUB_OPERATIONS, GITHUB_OPERATION_SPECS, GITHUB_DROPDOWN_OPERATIONS,
|
|
|
36
36
|
export { JIRA_OPERATIONS, JIRA_OPERATION_SPECS, JIRA_DROPDOWN_OPERATIONS, JIRA_ITERABLE_OPERATIONS, isJiraOperation, } from './jira-operations.js';
|
|
37
37
|
export { BUCKET_OPERATIONS, BUCKET_OPERATION_SPECS, BUCKET_ITERABLE_OPERATIONS, isBucketOperation, } from './bucket-operations.js';
|
|
38
38
|
export { APIFY_OPERATIONS, APIFY_OPERATION_SPECS, APIFY_ITERABLE_OPERATIONS, isApifyOperation, } from './apify-operations.js';
|
|
39
|
+
export { CALENDLY_OPERATIONS, CALENDLY_OPERATION_SPECS, CALENDLY_ITERABLE_OPERATIONS, isCalendlyOperation, } from './calendly-operations.js';
|
|
40
|
+
export { AIRTABLE_OPERATIONS, AIRTABLE_OPERATION_SPECS, AIRTABLE_ITERABLE_OPERATIONS, isAirtableOperation, } from './airtable-operations.js';
|
|
39
41
|
export { SLACK_OPERATIONS, SLACK_OPERATION_SPECS, SLACK_CAPACIDADES_POR_CREDENCIAL, operacionesDeSlackPara, slackPuedeEjecutar, camposDeSlackNoDisponibles, isSlackOperation, } from './slack-operations.js';
|
|
40
42
|
/* Misma pareja que en Discord: `SlackOperationSpec` es el formulario,
|
|
41
43
|
`SlackToolkitSpec` es la herramienta que ve el LLM. */
|
package/dist/esm/registry.js
CHANGED
|
@@ -645,6 +645,41 @@ export const NODE_REGISTRY = {
|
|
|
645
645
|
testable: true,
|
|
646
646
|
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía. */
|
|
647
647
|
},
|
|
648
|
+
calendlyAction: {
|
|
649
|
+
type: "calendlyAction",
|
|
650
|
+
prefix: "cly",
|
|
651
|
+
label: "Calendly",
|
|
652
|
+
group: "Actions",
|
|
653
|
+
detailPath: "/dashboard/calendly-actions",
|
|
654
|
+
apiPath: "/calendly-actions",
|
|
655
|
+
stateKey: "calendlyActions",
|
|
656
|
+
allStateKey: "allCalendlyActions",
|
|
657
|
+
/* [2026-09-15] El azul de la marca de Calendly (`#006BFF`). Es más
|
|
658
|
+
saturado que el de HTTP (`#3b82f6`) y más claro que el de Jira
|
|
659
|
+
(`#0052CC`); en el minimapa se distingue de los dos. Como dicen los
|
|
660
|
+
vecinos: la decisión se cierra mirando el minimapa. */
|
|
661
|
+
color: "#006BFF",
|
|
662
|
+
testable: true,
|
|
663
|
+
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía, como Apify. */
|
|
664
|
+
},
|
|
665
|
+
airtableAction: {
|
|
666
|
+
type: "airtableAction",
|
|
667
|
+
prefix: "air",
|
|
668
|
+
label: "Airtable",
|
|
669
|
+
group: "Actions",
|
|
670
|
+
detailPath: "/dashboard/airtable-actions",
|
|
671
|
+
apiPath: "/airtable-actions",
|
|
672
|
+
stateKey: "airtableActions",
|
|
673
|
+
allStateKey: "allAirtableActions",
|
|
674
|
+
/* [2026-09-15] El amarillo de Airtable (`#FCB400`) es el color del
|
|
675
|
+
logo, pero sobre el lienzo claro se pierde y se confunde con Filter y
|
|
676
|
+
Transform (`#facc15`, `#fbbf24`). Oscurecido hasta que aguanta. Queda
|
|
677
|
+
cerca del mostaza de Mailchimp (`#c9a227`), y ésa es la comparación que
|
|
678
|
+
hay que hacer en el minimapa. */
|
|
679
|
+
color: "#c58a00",
|
|
680
|
+
testable: true,
|
|
681
|
+
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía, como Apify. */
|
|
682
|
+
},
|
|
648
683
|
telegramAction: {
|
|
649
684
|
type: "telegramAction",
|
|
650
685
|
prefix: "tg",
|
package/dist/esm/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' | 'gmailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'driveAction' | 'firecrawlAction' | 'telegramAction' | 'whatsappAction' | 'discordAction' | 'slackAction' | 'googleContactsAction' | 'googleAnalyticsAction' | 'notionAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | 'mailchimpAction' | 'shopifyAction' | 'githubAction' | 'jiraAction' | 'bucketAction' | 'apifyAction' | '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' | 'googleAnalyticsAction' | 'notionAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | 'mailchimpAction' | 'shopifyAction' | 'githubAction' | 'jiraAction' | 'bucketAction' | 'apifyAction' | 'calendlyAction' | 'airtableAction' | '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/esm/ui.js
CHANGED
|
@@ -95,6 +95,8 @@ export const NODE_UI = {
|
|
|
95
95
|
jiraAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'jira' } },
|
|
96
96
|
bucketAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'bucket' } },
|
|
97
97
|
apifyAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'apify' } },
|
|
98
|
+
calendlyAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'calendly' } },
|
|
99
|
+
airtableAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'airtable' } },
|
|
98
100
|
slackAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'slack' } },
|
|
99
101
|
googleContactsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
100
102
|
googleAnalyticsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
@@ -124,6 +126,8 @@ export const PREFIX_TO_TYPE = [
|
|
|
124
126
|
{ prefix: 'jr-', type: 'jiraAction', canvasType: 'jiraAction' },
|
|
125
127
|
{ prefix: 'bkt-', type: 'bucketAction', canvasType: 'bucketAction' },
|
|
126
128
|
{ prefix: 'apify-', type: 'apifyAction', canvasType: 'apifyAction' },
|
|
129
|
+
{ prefix: 'cly-', type: 'calendlyAction', canvasType: 'calendlyAction' },
|
|
130
|
+
{ prefix: 'air-', type: 'airtableAction', canvasType: 'airtableAction' },
|
|
127
131
|
{ prefix: 'gc-', type: 'googleContactsAction', canvasType: 'googleContactsAction' },
|
|
128
132
|
{ prefix: 'gaa-', type: 'googleAnalyticsAction', canvasType: 'googleAnalyticsAction' },
|
|
129
133
|
{ prefix: 'ntn-', type: 'notionAction', canvasType: 'notionAction' },
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,10 @@ export { BUCKET_OPERATIONS, BUCKET_OPERATION_SPECS, BUCKET_ITERABLE_OPERATIONS,
|
|
|
40
40
|
export type { BucketOperation, BucketParamType, BucketParamSpec, BucketOperationSpec, } from './bucket-operations.js';
|
|
41
41
|
export { APIFY_OPERATIONS, APIFY_OPERATION_SPECS, APIFY_ITERABLE_OPERATIONS, isApifyOperation, } from './apify-operations.js';
|
|
42
42
|
export type { ApifyOperation, ApifyParamType, ApifyParamSpec, ApifyOperationSpec, } from './apify-operations.js';
|
|
43
|
+
export { CALENDLY_OPERATIONS, CALENDLY_OPERATION_SPECS, CALENDLY_ITERABLE_OPERATIONS, isCalendlyOperation, } from './calendly-operations.js';
|
|
44
|
+
export type { CalendlyOperation, CalendlyParamType, CalendlyParamSpec, CalendlyOperationSpec, } from './calendly-operations.js';
|
|
45
|
+
export { AIRTABLE_OPERATIONS, AIRTABLE_OPERATION_SPECS, AIRTABLE_ITERABLE_OPERATIONS, isAirtableOperation, } from './airtable-operations.js';
|
|
46
|
+
export type { AirtableOperation, AirtableParamType, AirtableParamSpec, AirtableOperationSpec, } from './airtable-operations.js';
|
|
43
47
|
export { SLACK_OPERATIONS, SLACK_OPERATION_SPECS, SLACK_CAPACIDADES_POR_CREDENCIAL, operacionesDeSlackPara, slackPuedeEjecutar, camposDeSlackNoDisponibles, isSlackOperation, } from './slack-operations.js';
|
|
44
48
|
export type { SlackOperation, SlackParamSpec, SlackOperationSpec, } from './slack-operations.js';
|
|
45
49
|
export { SLACK_TOOLKIT_SPECS, SLACK_TOOLKIT_BY_TOOL_NAME, herramientasDeSlackPara, } from './slack-toolkit.js';
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DRIVE_OPERATIONS = exports.GOOGLE_CALENDAR_TOOLKIT_BY_TOOL_NAME = exports.GOOGLE_CALENDAR_TOOLKIT_SPECS = exports.isGoogleCalendarOperation = exports.GOOGLE_CALENDAR_OPERATION_SPECS = exports.GOOGLE_CALENDAR_OPERATIONS = exports.isGmailOperation = exports.resolveGmailSendFields = exports.GMAIL_SEND_LEGACY_FIELDS = exports.NATIVE_EMAIL_TOOLKIT_BY_TOOL_NAME = exports.GMAIL_TOOLKIT_BY_TOOL_NAME = exports.NATIVE_EMAIL_TOOLKIT_SPECS = exports.GMAIL_SEND_AND_WAIT_TOOL_SPEC = exports.GMAIL_ALL_TOOLKIT_SPECS = exports.GMAIL_TOOLKIT_SPECS = exports.GMAIL_TOOLKIT_OPERATIONS = exports.GMAIL_DROPDOWN_OPERATIONS = exports.GMAIL_OPERATION_GROUPS = exports.GMAIL_OPERATION_SPECS = exports.GMAIL_OPERATIONS = exports.versionCatalogErrors = exports.fieldsLost = exports.fieldsLostBetween = exports.currentVersion = exports.versionSpec = exports.versionsOf = exports.isVersioned = exports.NODE_TYPE_TO_PREFIX = exports.PREFIX_TO_NODE_TYPE = exports.NODE_STATE_KEYS = exports.NODE_COLORS = exports.NODE_DETAIL_PATHS = exports.getNodeRegistryEntry = exports.NODE_REGISTRY = exports.pasaLoQueRecibe = exports.getNodeDispatchConfig = exports.getAllNodeCollections = exports.NODE_DISPATCH = exports.resolveNodeId = exports.PREFIX_TO_TYPE = exports.NODE_UI = exports.ALL_NODE_TYPES = exports.isNodeType = exports.isTerminal = exports.canSendToNodes = exports.canReceiveFromNodes = exports.canReceiveFrom = exports.NODE_CONNECTIONS = exports.iterableMeta = exports.singleMeta = void 0;
|
|
4
4
|
exports.BUCKET_ITERABLE_OPERATIONS = exports.BUCKET_OPERATION_SPECS = exports.BUCKET_OPERATIONS = exports.isJiraOperation = exports.JIRA_ITERABLE_OPERATIONS = exports.JIRA_DROPDOWN_OPERATIONS = exports.JIRA_OPERATION_SPECS = exports.JIRA_OPERATIONS = exports.isGithubOperation = exports.GITHUB_ITERABLE_OPERATIONS = exports.GITHUB_DROPDOWN_OPERATIONS = exports.GITHUB_OPERATION_SPECS = exports.GITHUB_OPERATIONS = exports.scopesQueFaltanEnShopify = exports.isShopifyOperation = exports.SHOPIFY_PRODUCT_STATUSES = exports.SHOPIFY_CANCEL_REASONS = exports.SHOPIFY_SEARCHABLE_RESOURCES = exports.SHOPIFY_TAGGABLE_RESOURCES = exports.SHOPIFY_OPERATION_SCOPES = exports.SHOPIFY_OPERATION_SPECS = exports.SHOPIFY_OPERATIONS = exports.isMailchimpOperation = exports.MAILCHIMP_CONTACT_STATUSES = exports.MAILCHIMP_OPERATION_SPECS = exports.MAILCHIMP_OPERATIONS = exports.herramientasDeDiscordPara = exports.DISCORD_TOOLKIT_BY_TOOL_NAME = exports.DISCORD_TOOLKIT_SPECS = exports.isDiscordOperation = exports.camposDeDiscordNoDisponibles = exports.discordPuedeEjecutar = exports.operacionesDeDiscordPara = exports.DISCORD_CAPACIDADES_POR_CREDENCIAL = exports.DISCORD_OPERATION_SPECS = exports.DISCORD_OPERATIONS = exports.camposNoDisponiblesPara = exports.puedeEjecutar = exports.operacionesPara = exports.isWhatsAppOperation = exports.WHATSAPP_OPERATIONS = exports.TELEGRAM_TOOLKIT_BY_TOOL_NAME = exports.TELEGRAM_TOOLKIT_SPECS = exports.isTelegramOperation = exports.TELEGRAM_OPERATION_SPECS = exports.TELEGRAM_OPERATIONS = exports.DRIVE_TOOLKIT_BY_TOOL_NAME = exports.DRIVE_TOOLKIT_SPECS = exports.isDriveOperation = exports.DRIVE_OPERATION_SPECS = void 0;
|
|
5
|
-
exports.
|
|
6
|
-
exports.armarRespuestaDelSync = exports.RESPUESTA_DEL_SYNC_POR_DEFECTO = exports.TOPE_DE_ESPERA_DEL_SYNC = exports.TOPES_DE_ESTADO = exports.SOBRES_DE_RESPUESTA = exports.MODOS_DE_PAYLOAD = exports.NIVELES_DE_DETALLE = exports.RESULTADOS_DEL_VALIDADOR = exports.contestaEnSync = exports.NODOS_QUE_CONTESTAN_EN_SYNC = exports.isCredentialType = exports.getCredentialType = exports.credentialTypeValues = exports.CREDENTIAL_TYPE_VALUES = exports.CREDENTIAL_TYPES = exports.ventanaDeContextoDeOpenRouter = exports.opcionesDeModelosDeOpenRouter = exports.URL_DE_MODELOS_DE_OPENROUTER = exports.getModelLabel = exports.getDefaultModel = exports.getModelsFor = exports.MODEL_CONTEXT_WINDOWS = exports.LLM_MODELS = void 0;
|
|
5
|
+
exports.MONGO_OPERATION_SPECS = exports.MONGO_OPERATIONS = exports.isPostgresOperation = exports.POSTGRES_OPERATION_SPECS = exports.POSTGRES_MODES = exports.POSTGRES_OPERATIONS = exports.isNotionOperation = exports.NOTION_DROPDOWN_OPERATIONS = exports.NOTION_OPERATION_SPECS = exports.NOTION_OPERATIONS = exports.isGoogleAnalyticsOperation = exports.GOOGLE_ANALYTICS_DROPDOWN_OPERATIONS = exports.GOOGLE_ANALYTICS_OPERATION_SPECS = exports.GOOGLE_ANALYTICS_OPERATIONS = exports.isGoogleContactsOperation = exports.GOOGLE_CONTACTS_DEFAULT_PERSON_FIELDS = exports.GOOGLE_CONTACTS_OPERATION_GROUPS = exports.GOOGLE_CONTACTS_OPERATION_SPECS = exports.GOOGLE_CONTACTS_OPERATIONS_V2 = exports.GOOGLE_CONTACTS_OPERATIONS_V1 = exports.GOOGLE_CONTACTS_OPERATIONS = exports.SHEETS_TOOLKIT_DEFAULTABLE = exports.SHEETS_TOOLKIT_BY_TOOL_NAME = exports.SHEETS_TOOLKIT_SPECS = exports.isSheetsOperation = exports.SHEETS_OPERATION_SPECS = exports.SHEETS_OPERATIONS = exports.herramientasDeSlackPara = exports.SLACK_TOOLKIT_BY_TOOL_NAME = exports.SLACK_TOOLKIT_SPECS = exports.isSlackOperation = exports.camposDeSlackNoDisponibles = exports.slackPuedeEjecutar = exports.operacionesDeSlackPara = exports.SLACK_CAPACIDADES_POR_CREDENCIAL = exports.SLACK_OPERATION_SPECS = exports.SLACK_OPERATIONS = exports.isAirtableOperation = exports.AIRTABLE_ITERABLE_OPERATIONS = exports.AIRTABLE_OPERATION_SPECS = exports.AIRTABLE_OPERATIONS = exports.isCalendlyOperation = exports.CALENDLY_ITERABLE_OPERATIONS = exports.CALENDLY_OPERATION_SPECS = exports.CALENDLY_OPERATIONS = exports.isApifyOperation = exports.APIFY_ITERABLE_OPERATIONS = exports.APIFY_OPERATION_SPECS = exports.APIFY_OPERATIONS = exports.isBucketOperation = void 0;
|
|
6
|
+
exports.armarRespuestaDelSync = exports.RESPUESTA_DEL_SYNC_POR_DEFECTO = exports.TOPE_DE_ESPERA_DEL_SYNC = exports.TOPES_DE_ESTADO = exports.SOBRES_DE_RESPUESTA = exports.MODOS_DE_PAYLOAD = exports.NIVELES_DE_DETALLE = exports.RESULTADOS_DEL_VALIDADOR = exports.contestaEnSync = exports.NODOS_QUE_CONTESTAN_EN_SYNC = exports.isCredentialType = exports.getCredentialType = exports.credentialTypeValues = exports.CREDENTIAL_TYPE_VALUES = exports.CREDENTIAL_TYPES = exports.ventanaDeContextoDeOpenRouter = exports.opcionesDeModelosDeOpenRouter = exports.URL_DE_MODELOS_DE_OPENROUTER = exports.getModelLabel = exports.getDefaultModel = exports.getModelsFor = exports.MODEL_CONTEXT_WINDOWS = exports.LLM_MODELS = exports.LLM_PROVIDERS = exports.DOCS_TOOLKIT_DEFAULTABLE = exports.DOCS_TOOLKIT_BY_TOOL_NAME = exports.DOCS_TOOLKIT_SPECS = exports.isDocsOperation = exports.DOCS_OPERATION_SPECS = exports.DOCS_OPERATIONS = exports.isMongoOperation = void 0;
|
|
7
7
|
var types_js_1 = require("./types.js");
|
|
8
8
|
Object.defineProperty(exports, "singleMeta", { enumerable: true, get: function () { return types_js_1.singleMeta; } });
|
|
9
9
|
Object.defineProperty(exports, "iterableMeta", { enumerable: true, get: function () { return types_js_1.iterableMeta; } });
|
|
@@ -147,6 +147,16 @@ Object.defineProperty(exports, "APIFY_OPERATIONS", { enumerable: true, get: func
|
|
|
147
147
|
Object.defineProperty(exports, "APIFY_OPERATION_SPECS", { enumerable: true, get: function () { return apify_operations_js_1.APIFY_OPERATION_SPECS; } });
|
|
148
148
|
Object.defineProperty(exports, "APIFY_ITERABLE_OPERATIONS", { enumerable: true, get: function () { return apify_operations_js_1.APIFY_ITERABLE_OPERATIONS; } });
|
|
149
149
|
Object.defineProperty(exports, "isApifyOperation", { enumerable: true, get: function () { return apify_operations_js_1.isApifyOperation; } });
|
|
150
|
+
var calendly_operations_js_1 = require("./calendly-operations.js");
|
|
151
|
+
Object.defineProperty(exports, "CALENDLY_OPERATIONS", { enumerable: true, get: function () { return calendly_operations_js_1.CALENDLY_OPERATIONS; } });
|
|
152
|
+
Object.defineProperty(exports, "CALENDLY_OPERATION_SPECS", { enumerable: true, get: function () { return calendly_operations_js_1.CALENDLY_OPERATION_SPECS; } });
|
|
153
|
+
Object.defineProperty(exports, "CALENDLY_ITERABLE_OPERATIONS", { enumerable: true, get: function () { return calendly_operations_js_1.CALENDLY_ITERABLE_OPERATIONS; } });
|
|
154
|
+
Object.defineProperty(exports, "isCalendlyOperation", { enumerable: true, get: function () { return calendly_operations_js_1.isCalendlyOperation; } });
|
|
155
|
+
var airtable_operations_js_1 = require("./airtable-operations.js");
|
|
156
|
+
Object.defineProperty(exports, "AIRTABLE_OPERATIONS", { enumerable: true, get: function () { return airtable_operations_js_1.AIRTABLE_OPERATIONS; } });
|
|
157
|
+
Object.defineProperty(exports, "AIRTABLE_OPERATION_SPECS", { enumerable: true, get: function () { return airtable_operations_js_1.AIRTABLE_OPERATION_SPECS; } });
|
|
158
|
+
Object.defineProperty(exports, "AIRTABLE_ITERABLE_OPERATIONS", { enumerable: true, get: function () { return airtable_operations_js_1.AIRTABLE_ITERABLE_OPERATIONS; } });
|
|
159
|
+
Object.defineProperty(exports, "isAirtableOperation", { enumerable: true, get: function () { return airtable_operations_js_1.isAirtableOperation; } });
|
|
150
160
|
var slack_operations_js_1 = require("./slack-operations.js");
|
|
151
161
|
Object.defineProperty(exports, "SLACK_OPERATIONS", { enumerable: true, get: function () { return slack_operations_js_1.SLACK_OPERATIONS; } });
|
|
152
162
|
Object.defineProperty(exports, "SLACK_OPERATION_SPECS", { enumerable: true, get: function () { return slack_operations_js_1.SLACK_OPERATION_SPECS; } });
|
package/dist/registry.js
CHANGED
|
@@ -656,6 +656,41 @@ exports.NODE_REGISTRY = {
|
|
|
656
656
|
testable: true,
|
|
657
657
|
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía. */
|
|
658
658
|
},
|
|
659
|
+
calendlyAction: {
|
|
660
|
+
type: "calendlyAction",
|
|
661
|
+
prefix: "cly",
|
|
662
|
+
label: "Calendly",
|
|
663
|
+
group: "Actions",
|
|
664
|
+
detailPath: "/dashboard/calendly-actions",
|
|
665
|
+
apiPath: "/calendly-actions",
|
|
666
|
+
stateKey: "calendlyActions",
|
|
667
|
+
allStateKey: "allCalendlyActions",
|
|
668
|
+
/* [2026-09-15] El azul de la marca de Calendly (`#006BFF`). Es más
|
|
669
|
+
saturado que el de HTTP (`#3b82f6`) y más claro que el de Jira
|
|
670
|
+
(`#0052CC`); en el minimapa se distingue de los dos. Como dicen los
|
|
671
|
+
vecinos: la decisión se cierra mirando el minimapa. */
|
|
672
|
+
color: "#006BFF",
|
|
673
|
+
testable: true,
|
|
674
|
+
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía, como Apify. */
|
|
675
|
+
},
|
|
676
|
+
airtableAction: {
|
|
677
|
+
type: "airtableAction",
|
|
678
|
+
prefix: "air",
|
|
679
|
+
label: "Airtable",
|
|
680
|
+
group: "Actions",
|
|
681
|
+
detailPath: "/dashboard/airtable-actions",
|
|
682
|
+
apiPath: "/airtable-actions",
|
|
683
|
+
stateKey: "airtableActions",
|
|
684
|
+
allStateKey: "allAirtableActions",
|
|
685
|
+
/* [2026-09-15] El amarillo de Airtable (`#FCB400`) es el color del
|
|
686
|
+
logo, pero sobre el lienzo claro se pierde y se confunde con Filter y
|
|
687
|
+
Transform (`#facc15`, `#fbbf24`). Oscurecido hasta que aguanta. Queda
|
|
688
|
+
cerca del mostaza de Mailchimp (`#c9a227`), y ésa es la comparación que
|
|
689
|
+
hay que hacer en el minimapa. */
|
|
690
|
+
color: "#c58a00",
|
|
691
|
+
testable: true,
|
|
692
|
+
/* Sin `isToolOnly`: no trae modo toolkit de IA todavía, como Apify. */
|
|
693
|
+
},
|
|
659
694
|
telegramAction: {
|
|
660
695
|
type: "telegramAction",
|
|
661
696
|
prefix: "tg",
|
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' | 'gmailAction' | 'httpAction' | 'mongoAction' | 'postgresAction' | 'notificationAction' | 'sheetsAction' | 'calendarAction' | 'docsAction' | 'driveAction' | 'firecrawlAction' | 'telegramAction' | 'whatsappAction' | 'discordAction' | 'slackAction' | 'googleContactsAction' | 'googleAnalyticsAction' | 'notionAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | 'mailchimpAction' | 'shopifyAction' | 'githubAction' | 'jiraAction' | 'bucketAction' | 'apifyAction' | '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' | 'googleAnalyticsAction' | 'notionAction' | 'vectorStore' | 'rssAction' | 'socialMediaAction' | 'mailchimpAction' | 'shopifyAction' | 'githubAction' | 'jiraAction' | 'bucketAction' | 'apifyAction' | 'calendlyAction' | 'airtableAction' | '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
|
@@ -99,6 +99,8 @@ exports.NODE_UI = {
|
|
|
99
99
|
jiraAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'jira' } },
|
|
100
100
|
bucketAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'bucket' } },
|
|
101
101
|
apifyAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'apify' } },
|
|
102
|
+
calendlyAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'calendly' } },
|
|
103
|
+
airtableAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'airtable' } },
|
|
102
104
|
slackAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true, routerTargetLabel: 'slack' } },
|
|
103
105
|
googleContactsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
104
106
|
googleAnalyticsAction: { fromNodes: true, toNodes: true, inputHandles: ['left'], dotHandles: { input: ['left-in'], output: ['right-out'] }, special: { loopBackAllowed: true } },
|
|
@@ -128,6 +130,8 @@ exports.PREFIX_TO_TYPE = [
|
|
|
128
130
|
{ prefix: 'jr-', type: 'jiraAction', canvasType: 'jiraAction' },
|
|
129
131
|
{ prefix: 'bkt-', type: 'bucketAction', canvasType: 'bucketAction' },
|
|
130
132
|
{ prefix: 'apify-', type: 'apifyAction', canvasType: 'apifyAction' },
|
|
133
|
+
{ prefix: 'cly-', type: 'calendlyAction', canvasType: 'calendlyAction' },
|
|
134
|
+
{ prefix: 'air-', type: 'airtableAction', canvasType: 'airtableAction' },
|
|
131
135
|
{ prefix: 'gc-', type: 'googleContactsAction', canvasType: 'googleContactsAction' },
|
|
132
136
|
{ prefix: 'gaa-', type: 'googleAnalyticsAction', canvasType: 'googleAnalyticsAction' },
|
|
133
137
|
{ prefix: 'ntn-', type: 'notionAction', canvasType: 'notionAction' },
|
package/package.json
CHANGED