@hostwebhook/node-types 1.75.0 → 1.75.2

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.
@@ -58,8 +58,15 @@ const eventConfigParams = () => [
58
58
  { name: 'summaryTemplate', target: 'eventConfig', label: 'Summary', type: 'template', placeholder: '{{payload.title}}', execKey: 'summary' },
59
59
  { name: 'descriptionTemplate', target: 'eventConfig', label: 'Description', type: 'template', placeholder: 'Event description... (supports {{templates}})', execKey: 'description' },
60
60
  { name: 'locationTemplate', target: 'eventConfig', label: 'Location', type: 'template', placeholder: '{{payload.location}}', execKey: 'location' },
61
- { name: 'startTemplate', target: 'eventConfig', label: 'Start Date', type: 'template', placeholder: '{{payload.startTime}}', execKey: 'start' },
62
- { name: 'endTemplate', target: 'eventConfig', label: 'End Date', type: 'template', placeholder: '{{payload.endTime}}', execKey: 'end' },
61
+ /* Los `description` de estos dos son la única pantalla donde el usuario se
62
+ entera de la regla de ambigüedad ANTES de mandar el payload. `05-06-2026`
63
+ se rechaza en ejecución (ver `normalizeDate`), y un rechazo que sólo
64
+ aparece en el log del run llega tarde: aquí se dice al lado del campo.
65
+ El de End Date dice además que es el ÚLTIMO DÍA INCLUIDO, porque el `+1`
66
+ de la exclusividad de Google lo pone HostWebhook y sin decirlo el usuario
67
+ lo escribiría dos veces. */
68
+ { name: 'startTemplate', target: 'eventConfig', label: 'Start Date', type: 'template', placeholder: '{{payload.startTime}}', description: 'YYYY-MM-DD for an all-day event, or YYYY-MM-DDTHH:mm:ss for a timed one (interpreted in the Time Zone below). M-D-YYYY and D-M-YYYY work only when one part is above 12 — 05-06-2026 is rejected as ambiguous instead of guessed.', execKey: 'start' },
69
+ { name: 'endTemplate', target: 'eventConfig', label: 'End Date', type: 'template', placeholder: '{{payload.endTime}}', description: 'YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss, same rules as Start Date. For all-day events this is the LAST DAY INCLUDED — HostWebhook adds the extra day Google needs, so a trip ending 2026-09-21 goes in as 2026-09-21.', execKey: 'end' },
63
70
  {
64
71
  name: 'attendeesTemplate',
65
72
  target: 'eventConfig',
@@ -102,6 +109,15 @@ exports.GOOGLE_CALENDAR_OPERATION_SPECS = {
102
109
  { name: 'timeMaxTemplate', target: 'listConfig', label: 'End Date', type: 'template', placeholder: '{{payload.to}}', execKey: 'timeMax' },
103
110
  { name: 'maxResults', target: 'listConfig', label: 'Max Results', type: 'number', min: 1, max: 2500, default: 10 },
104
111
  { name: 'query', target: 'listConfig', label: 'Search Query', type: 'template', placeholder: 'meeting' },
112
+ /* 🔴 La zona con la que se leen los dos extremos del rango.
113
+ `findFreeSlots` la tenía y ésta no, así que un «del 18 al 21» se leía
114
+ SIEMPRE en UTC: ni la elección de quien lo escribe ni la zona del
115
+ workspace entraban en la cuenta. Reportado por Ariel — «no sigue
116
+ respetando la zona horaria que seleccionan en la página; si no
117
+ seleccionan, que use el del workspace».
118
+ Vacía sigue cayendo al defecto del workspace, y sin workspace a UTC,
119
+ que es lo que hacía antes: un nodo ya guardado no cambia. */
120
+ { name: 'timeZone', target: 'listConfig', label: 'Time Zone', type: 'timezone', description: 'IANA zone used to read the range bounds. Empty uses the workspace zone.', execKey: 'timeZone' },
105
121
  ],
106
122
  },
107
123
  getEvent: {
@@ -54,8 +54,15 @@ const eventConfigParams = () => [
54
54
  { name: 'summaryTemplate', target: 'eventConfig', label: 'Summary', type: 'template', placeholder: '{{payload.title}}', execKey: 'summary' },
55
55
  { name: 'descriptionTemplate', target: 'eventConfig', label: 'Description', type: 'template', placeholder: 'Event description... (supports {{templates}})', execKey: 'description' },
56
56
  { name: 'locationTemplate', target: 'eventConfig', label: 'Location', type: 'template', placeholder: '{{payload.location}}', execKey: 'location' },
57
- { name: 'startTemplate', target: 'eventConfig', label: 'Start Date', type: 'template', placeholder: '{{payload.startTime}}', execKey: 'start' },
58
- { name: 'endTemplate', target: 'eventConfig', label: 'End Date', type: 'template', placeholder: '{{payload.endTime}}', execKey: 'end' },
57
+ /* Los `description` de estos dos son la única pantalla donde el usuario se
58
+ entera de la regla de ambigüedad ANTES de mandar el payload. `05-06-2026`
59
+ se rechaza en ejecución (ver `normalizeDate`), y un rechazo que sólo
60
+ aparece en el log del run llega tarde: aquí se dice al lado del campo.
61
+ El de End Date dice además que es el ÚLTIMO DÍA INCLUIDO, porque el `+1`
62
+ de la exclusividad de Google lo pone HostWebhook y sin decirlo el usuario
63
+ lo escribiría dos veces. */
64
+ { name: 'startTemplate', target: 'eventConfig', label: 'Start Date', type: 'template', placeholder: '{{payload.startTime}}', description: 'YYYY-MM-DD for an all-day event, or YYYY-MM-DDTHH:mm:ss for a timed one (interpreted in the Time Zone below). M-D-YYYY and D-M-YYYY work only when one part is above 12 — 05-06-2026 is rejected as ambiguous instead of guessed.', execKey: 'start' },
65
+ { name: 'endTemplate', target: 'eventConfig', label: 'End Date', type: 'template', placeholder: '{{payload.endTime}}', description: 'YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss, same rules as Start Date. For all-day events this is the LAST DAY INCLUDED — HostWebhook adds the extra day Google needs, so a trip ending 2026-09-21 goes in as 2026-09-21.', execKey: 'end' },
59
66
  {
60
67
  name: 'attendeesTemplate',
61
68
  target: 'eventConfig',
@@ -98,6 +105,15 @@ export const GOOGLE_CALENDAR_OPERATION_SPECS = {
98
105
  { name: 'timeMaxTemplate', target: 'listConfig', label: 'End Date', type: 'template', placeholder: '{{payload.to}}', execKey: 'timeMax' },
99
106
  { name: 'maxResults', target: 'listConfig', label: 'Max Results', type: 'number', min: 1, max: 2500, default: 10 },
100
107
  { name: 'query', target: 'listConfig', label: 'Search Query', type: 'template', placeholder: 'meeting' },
108
+ /* 🔴 La zona con la que se leen los dos extremos del rango.
109
+ `findFreeSlots` la tenía y ésta no, así que un «del 18 al 21» se leía
110
+ SIEMPRE en UTC: ni la elección de quien lo escribe ni la zona del
111
+ workspace entraban en la cuenta. Reportado por Ariel — «no sigue
112
+ respetando la zona horaria que seleccionan en la página; si no
113
+ seleccionan, que use el del workspace».
114
+ Vacía sigue cayendo al defecto del workspace, y sin workspace a UTC,
115
+ que es lo que hacía antes: un nodo ya guardado no cambia. */
116
+ { name: 'timeZone', target: 'listConfig', label: 'Time Zone', type: 'timezone', description: 'IANA zone used to read the range bounds. Empty uses the workspace zone.', execKey: 'timeZone' },
101
117
  ],
102
118
  },
103
119
  getEvent: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostwebhook/node-types",
3
- "version": "1.75.0",
3
+ "version": "1.75.2",
4
4
  "description": "Shared node type definitions, connection rules, and dispatch config for HostWebhook",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",