@teleporthq/teleport-plugin-next-workflows 0.43.31 → 0.43.33

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.
Files changed (46) hide show
  1. package/__tests__/runtime-template-token-resolution.test.ts +12 -9
  2. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  3. package/dist/cjs/data-api-route-generator.js +53 -4
  4. package/dist/cjs/data-api-route-generator.js.map +1 -1
  5. package/dist/cjs/nodes/data/data-count.d.ts.map +1 -1
  6. package/dist/cjs/nodes/data/data-count.js +8 -7
  7. package/dist/cjs/nodes/data/data-count.js.map +1 -1
  8. package/dist/cjs/nodes/data/data-delete-item.d.ts.map +1 -1
  9. package/dist/cjs/nodes/data/data-delete-item.js +9 -7
  10. package/dist/cjs/nodes/data/data-delete-item.js.map +1 -1
  11. package/dist/cjs/nodes/data/data-select.d.ts.map +1 -1
  12. package/dist/cjs/nodes/data/data-select.js +54 -11
  13. package/dist/cjs/nodes/data/data-select.js.map +1 -1
  14. package/dist/cjs/nodes/data/data-update-item.d.ts.map +1 -1
  15. package/dist/cjs/nodes/data/data-update-item.js +11 -9
  16. package/dist/cjs/nodes/data/data-update-item.js.map +1 -1
  17. package/dist/cjs/nodes/general/general-extract-form-data.d.ts.map +1 -1
  18. package/dist/cjs/nodes/general/general-extract-form-data.js +37 -1
  19. package/dist/cjs/nodes/general/general-extract-form-data.js.map +1 -1
  20. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  21. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  22. package/dist/esm/data-api-route-generator.js +53 -4
  23. package/dist/esm/data-api-route-generator.js.map +1 -1
  24. package/dist/esm/nodes/data/data-count.d.ts.map +1 -1
  25. package/dist/esm/nodes/data/data-count.js +8 -7
  26. package/dist/esm/nodes/data/data-count.js.map +1 -1
  27. package/dist/esm/nodes/data/data-delete-item.d.ts.map +1 -1
  28. package/dist/esm/nodes/data/data-delete-item.js +9 -7
  29. package/dist/esm/nodes/data/data-delete-item.js.map +1 -1
  30. package/dist/esm/nodes/data/data-select.d.ts.map +1 -1
  31. package/dist/esm/nodes/data/data-select.js +54 -11
  32. package/dist/esm/nodes/data/data-select.js.map +1 -1
  33. package/dist/esm/nodes/data/data-update-item.d.ts.map +1 -1
  34. package/dist/esm/nodes/data/data-update-item.js +11 -9
  35. package/dist/esm/nodes/data/data-update-item.js.map +1 -1
  36. package/dist/esm/nodes/general/general-extract-form-data.d.ts.map +1 -1
  37. package/dist/esm/nodes/general/general-extract-form-data.js +37 -1
  38. package/dist/esm/nodes/general/general-extract-form-data.js.map +1 -1
  39. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +2 -2
  41. package/src/data-api-route-generator.ts +53 -4
  42. package/src/nodes/data/data-count.ts +10 -8
  43. package/src/nodes/data/data-delete-item.ts +11 -8
  44. package/src/nodes/data/data-select.ts +53 -12
  45. package/src/nodes/data/data-update-item.ts +13 -10
  46. package/src/nodes/general/general-extract-form-data.ts +37 -1
@@ -170,29 +170,32 @@ describe('workflow runtime template-token resolution', () => {
170
170
  describe('generated data-node handlers reject the sentinel defensively', () => {
171
171
  // The API-route segment executor resolves configs without the
172
172
  // executeNodes finalize pass, so the handlers themselves must catch a
173
- // sentinel that slipped through.
174
- it('data-select returns an error result for a sentinel filter', async () => {
173
+ // sentinel that slipped through — degrade to empty/no-op without `error`
174
+ // so the workflow is not aborted.
175
+ it('data-select returns empty rows for a sentinel filter', async () => {
175
176
  const handler = loadHandler('data-select')
176
- const result = await handler(
177
+ const result = (await handler(
177
178
  { tableName: 'products', filters: [{ field: 'id', value: SENTINEL, operator: '=' }] },
178
179
  {}
179
- )
180
- expect(result.error).toContain('not available')
180
+ )) as { rows: unknown[]; error?: string; __skippedUnavailableFilter?: boolean }
181
+ expect(result.error).toBeUndefined()
181
182
  expect(result.rows).toEqual([])
183
+ expect(result.__skippedUnavailableFilter).toBe(true)
182
184
  })
183
185
 
184
- it('data-update-item returns an error result for a sentinel filter', async () => {
186
+ it('data-update-item no-ops for a sentinel filter', async () => {
185
187
  const handler = loadHandler('data-update-item')
186
- const result = await handler(
188
+ const result = (await handler(
187
189
  {
188
190
  tableName: 'products',
189
191
  filters: [{ field: 'id', value: SENTINEL, operator: '=' }],
190
192
  columnMappings: [{ column: 'name', value: 'X' }],
191
193
  },
192
194
  {}
193
- )
194
- expect(result.error).toContain('not available')
195
+ )) as { updatedCount: number; error?: string; __skippedUnavailableFilter?: boolean }
196
+ expect(result.error).toBeUndefined()
195
197
  expect(result.updatedCount).toBe(0)
198
+ expect(result.__skippedUnavailableFilter).toBe(true)
196
199
  })
197
200
 
198
201
  it('data-create-item nulls sentinel columnMappings so the INSERT survives', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MAyvBxE,CAAA"}
1
+ {"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MA0yBxE,CAAA"}
@@ -153,9 +153,26 @@ async function safeQuery(client, sql, params, mode) {
153
153
  }
154
154
  }
155
155
 
156
- function buildWhereClause(filters, queryParams, startIndex) {
156
+ function isSkippableFilterValue(value) {
157
+ if (value === undefined || value === null) return true;
158
+ if (typeof value === 'string' && value.trim() === '') return true;
159
+ if (Array.isArray(value) && value.length === 0) return true;
160
+ return false;
161
+ }
162
+
163
+ function isAllSentinelFilterValue(value, filter) {
164
+ if (typeof value !== 'string') return false;
165
+ var normalized = value.trim().toLowerCase();
166
+ if (filter && typeof filter.treatAsAll === 'string' && filter.treatAsAll.trim().toLowerCase() === normalized) {
167
+ return true;
168
+ }
169
+ return normalized === 'all' || normalized === 'any' || normalized === 'everything' || normalized === '__all__';
170
+ }
171
+
172
+ function buildWhereClause(filters, queryParams, startIndex, options) {
157
173
  var conditions = [];
158
174
  var paramIndex = startIndex;
175
+ var skipOptionalEmpty = !!(options && options.skipOptionalEmpty);
159
176
 
160
177
  if (!filters || !Array.isArray(filters) || filters.length === 0) {
161
178
  return { clause: '', paramIndex: paramIndex };
@@ -171,6 +188,7 @@ function buildWhereClause(filters, queryParams, startIndex) {
171
188
  var operand = f.operand || f.operator || '=';
172
189
 
173
190
  if (value === undefined) continue;
191
+ if (skipOptionalEmpty && (isSkippableFilterValue(value) || isAllSentinelFilterValue(value, f))) continue;
174
192
 
175
193
  if (Array.isArray(value)) {
176
194
  if (value.length === 0) continue;
@@ -188,6 +206,37 @@ function buildWhereClause(filters, queryParams, startIndex) {
188
206
  conditions.push(field + ' IS NOT NULL');
189
207
  }
190
208
  } else {
209
+ var normalizedOperand = String(operand || '=').toLowerCase();
210
+ if (normalizedOperand === 'contains' || normalizedOperand === 'not_contains' || normalizedOperand === 'not-contains') {
211
+ if (isSkippableFilterValue(value)) {
212
+ conditions.push('FALSE');
213
+ continue;
214
+ }
215
+ conditions.push(field + (normalizedOperand === 'contains' ? ' ILIKE ' : ' NOT ILIKE ') + '$' + paramIndex);
216
+ queryParams.push('%' + String(value) + '%');
217
+ paramIndex++;
218
+ continue;
219
+ }
220
+ if (normalizedOperand === 'startswith' || normalizedOperand === 'starts_with' || normalizedOperand === 'starts-with') {
221
+ if (isSkippableFilterValue(value)) {
222
+ conditions.push('FALSE');
223
+ continue;
224
+ }
225
+ conditions.push(field + ' ILIKE $' + paramIndex);
226
+ queryParams.push(String(value) + '%');
227
+ paramIndex++;
228
+ continue;
229
+ }
230
+ if (normalizedOperand === 'endswith' || normalizedOperand === 'ends_with' || normalizedOperand === 'ends-with') {
231
+ if (isSkippableFilterValue(value)) {
232
+ conditions.push('FALSE');
233
+ continue;
234
+ }
235
+ conditions.push(field + ' ILIKE $' + paramIndex);
236
+ queryParams.push('%' + String(value));
237
+ paramIndex++;
238
+ continue;
239
+ }
191
240
  var validOps = ['=', '!=', '>', '<', '>=', '<=', 'LIKE', 'ILIKE'];
192
241
  var sqlOp = validOps.indexOf(operand) !== -1 ? operand : '=';
193
242
  conditions.push(field + ' ' + sqlOp + ' $' + paramIndex);
@@ -230,7 +279,7 @@ async function handleSelect(client, body) {
230
279
  var cols = selectedColumns.length > 0 ? selectedColumns.join(', ') : '*';
231
280
  var sql = 'SELECT ' + cols + ' FROM ' + tableName;
232
281
 
233
- var where = buildWhereClause(filters, queryParams, 1);
282
+ var where = buildWhereClause(filters, queryParams, 1, { skipOptionalEmpty: true });
234
283
  sql += where.clause;
235
284
 
236
285
  if (sorts.length > 0) {
@@ -266,7 +315,7 @@ async function handleSelect(client, body) {
266
315
 
267
316
  var countSql = 'SELECT COUNT(*) FROM ' + tableName;
268
317
  var countParams = [];
269
- var countWhere = buildWhereClause(filters, countParams, 1);
318
+ var countWhere = buildWhereClause(filters, countParams, 1, { skipOptionalEmpty: true });
270
319
  countSql += countWhere.clause;
271
320
  var countResult = await safeQuery(client, countSql, countParams, 'count');
272
321
  var count = parseInt(countResult.rows[0].count, 10);
@@ -283,7 +332,7 @@ async function handleCount(client, body) {
283
332
 
284
333
  var queryParams = [];
285
334
  var sql = 'SELECT COUNT(*) FROM ' + tableName;
286
- var where = buildWhereClause(filters, queryParams, 1);
335
+ var where = buildWhereClause(filters, queryParams, 1, { skipOptionalEmpty: true });
287
336
  sql += where.clause;
288
337
 
289
338
  var result = await safeQuery(client, sql, queryParams, 'count');
@@ -1 +1 @@
1
- {"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA0D;AAE1D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAA;AAEK,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAW,EAAE;IACvE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAPY,QAAA,iBAAiB,qBAO7B;AAqBM,MAAM,oBAAoB,GAAG,CAAC,UAA+B,EAAE,EAAU,EAAE;IAChF,MAAM,aAAa,GAAG,IAAA,wCAAwB,GAAE,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACzD,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAC7D,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,CAAC,CAAA;IAEP,OAAO;EAEP,cAAc,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EACxE,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;mCACvB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;8BAC1C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;EAC7D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyuBd,CAAA;AACD,CAAC,CAAA;AAzvBY,QAAA,oBAAoB,wBAyvBhC"}
1
+ {"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA0D;AAE1D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAA;AAEK,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAW,EAAE;IACvE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAPY,QAAA,iBAAiB,qBAO7B;AAqBM,MAAM,oBAAoB,GAAG,CAAC,UAA+B,EAAE,EAAU,EAAE;IAChF,MAAM,aAAa,GAAG,IAAA,wCAAwB,GAAE,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACzD,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAC7D,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,CAAC,CAAA;IAEP,OAAO;EAEP,cAAc,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EACxE,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;mCACvB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;8BAC1C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;EAC7D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0xBd,CAAA;AACD,CAAC,CAAA;AA1yBY,QAAA,oBAAoB,wBA0yBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-count.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA6ChE,eAAO,MAAM,SAAS,EAAE,oBAMvB,CAAA"}
1
+ {"version":3,"file":"data-count.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA+ChE,eAAO,MAAM,SAAS,EAAE,oBAMvB,CAAA"}
@@ -7,20 +7,21 @@ async function data_count(config, context) {
7
7
  const tableName = config.tableName;
8
8
  const filters = config.filters || [];
9
9
  const baseUrl = (context && context.__baseUrl) || '';
10
- // Unresolved route-param sentinel in a filter → validation error (see
11
- // resolveTemplateTokenString in runtime-utils) instead of counting nothing.
10
+ // Unresolved route-param sentinel in a filter (see resolveTemplateTokenString
11
+ // in runtime-utils). DEGRADE: return count:0 WITHOUT an `error` so the executor
12
+ // does not throw and abort the whole workflow.
12
13
  for (let __fi = 0; __fi < filters.length; __fi++) {
13
14
  const __f = filters[__fi];
14
15
  if (__f &&
15
16
  (__f.value === '__TQ_UNRESOLVED_ROUTE_PARAM__' ||
16
17
  __f.destination === '__TQ_UNRESOLVED_ROUTE_PARAM__')) {
17
18
  const __col = __f.column || __f.source || __f.field || 'unknown';
18
- return {
19
- count: 0,
20
- error: 'Filter on "' +
19
+ if (typeof console !== 'undefined' && console.warn) {
20
+ console.warn('[workflow] data-count skipped — filter on "' +
21
21
  __col +
22
- '" requires the page route parameter, which is not available in this context',
23
- };
22
+ '" needs a page route param not available here; count 0 (workflow continues)');
23
+ }
24
+ return { count: 0, __skippedUnavailableFilter: true };
24
25
  }
25
26
  }
26
27
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"data-count.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-count.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,UAAU,CAAC,MAAW,EAAE,OAAY;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAEpD,sEAAsE;IACtE,4EAA4E;IAC5E,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,GAAG,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,IACE,GAAG;YACH,CAAC,GAAG,CAAC,KAAK,KAAK,+BAA+B;gBAC5C,GAAG,CAAC,WAAW,KAAK,+BAA+B,CAAC,EACtD;YACA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;YAChE,OAAO;gBACL,KAAK,EAAE,CAAC;gBACR,KAAK,EACH,aAAa;oBACb,KAAK;oBACL,6EAA6E;aAChF,CAAA;SACF;KACF;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,oBAAoB,EAAE,CAAA;SAC/D;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;KAClC;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACnD;AACH,CAAC;AACY,QAAA,SAAS,GAAyB;IAC7C,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAA;IACpC,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"data-count.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-count.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,UAAU,CAAC,MAAW,EAAE,OAAY;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAEpD,8EAA8E;IAC9E,gFAAgF;IAChF,+CAA+C;IAC/C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,GAAG,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,IACE,GAAG;YACH,CAAC,GAAG,CAAC,KAAK,KAAK,+BAA+B;gBAC5C,GAAG,CAAC,WAAW,KAAK,+BAA+B,CAAC,EACtD;YACA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;YAChE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE;gBAClD,OAAO,CAAC,IAAI,CACV,6CAA6C;oBAC3C,KAAK;oBACL,6EAA6E,CAChF,CAAA;aACF;YACD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAA;SACtD;KACF;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,oBAAoB,EAAE,CAAA;SAC/D;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;KAClC;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACnD;AACH,CAAC;AACY,QAAA,SAAS,GAAyB;IAC7C,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAA;IACpC,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-delete-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-delete-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA+DhE,eAAO,MAAM,cAAc,EAAE,oBAM5B,CAAA"}
1
+ {"version":3,"file":"data-delete-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-delete-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAkEhE,eAAO,MAAM,cAAc,EAAE,oBAM5B,CAAA"}
@@ -16,15 +16,17 @@ async function data_delete_item(config, context) {
16
16
  if (__f &&
17
17
  (__f.value === '__TQ_UNRESOLVED_ROUTE_PARAM__' ||
18
18
  __f.destination === '__TQ_UNRESOLVED_ROUTE_PARAM__')) {
19
+ // DEGRADE to a NO-OP: return deletedCount:0 WITHOUT `error` and WITHOUT
20
+ // success:false so the executor does not throw and abort the whole
21
+ // workflow. A DELETE must NEVER drop the filter and run unscoped (that
22
+ // would delete every row) — no-op is the only safe degrade.
19
23
  const __col = __f.column || __f.source || __f.field || 'unknown';
20
- return {
21
- deletedId: null,
22
- success: false,
23
- deletedCount: 0,
24
- error: 'Filter on "' +
24
+ if (typeof console !== 'undefined' && console.warn) {
25
+ console.warn('[workflow] data-delete-item skipped (no-op) — filter on "' +
25
26
  __col +
26
- '" requires the page route parameter, which is not available in this context',
27
- };
27
+ '" needs a page route param not available here; nothing deleted (workflow continues)');
28
+ }
29
+ return { deletedId: null, success: true, deletedCount: 0, __skippedUnavailableFilter: true };
28
30
  }
29
31
  }
30
32
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"data-delete-item.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-delete-item.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,OAAY;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IACpD,MAAM,KAAK,GAAI,UAAkB,CAAC,OAAO,IAAK,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAA;IAE5E,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,GAAG,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,IACE,GAAG;YACH,CAAC,GAAG,CAAC,KAAK,KAAK,+BAA+B;gBAC5C,GAAG,CAAC,WAAW,KAAK,+BAA+B,CAAC,EACtD;YACA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;YAChE,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EACH,aAAa;oBACb,KAAK;oBACL,6EAA6E;aAChF,CAAA;SACF;KACF;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,2EAA2E;gBAC3E,sEAAsE;gBACtE,wBAAwB,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,oBAAoB;aAC1C,CAAA;SACF;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;SACrC,CAAA;KACF;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KAC1E;AACH,CAAC;AACY,QAAA,cAAc,GAAyB;IAClD,QAAQ,EAAE,kBAAkB;IAC5B,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,gBAAgB,CAAC,CAAA;IAC1C,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"data-delete-item.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-delete-item.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,OAAY;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IACpD,MAAM,KAAK,GAAI,UAAkB,CAAC,OAAO,IAAK,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAA;IAE5E,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,MAAM,GAAG,GAAQ,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,IACE,GAAG;YACH,CAAC,GAAG,CAAC,KAAK,KAAK,+BAA+B;gBAC5C,GAAG,CAAC,WAAW,KAAK,+BAA+B,CAAC,EACtD;YACA,wEAAwE;YACxE,mEAAmE;YACnE,uEAAuE;YACvE,4DAA4D;YAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,CAAA;YAChE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE;gBAClD,OAAO,CAAC,IAAI,CACV,2DAA2D;oBACzD,KAAK;oBACL,qFAAqF,CACxF,CAAA;aACF;YACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAA;SAC7F;KACF;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,2EAA2E;gBAC3E,sEAAsE;gBACtE,wBAAwB,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,oBAAoB;aAC1C,CAAA;SACF;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;SACrC,CAAA;KACF;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KAC1E;AACH,CAAC;AACY,QAAA,cAAc,GAAyB;IAClD,QAAQ,EAAE,kBAAkB;IAC5B,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,gBAAgB,CAAC,CAAA;IAC1C,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-select.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA+DhE,eAAO,MAAM,UAAU,EAAE,oBAMxB,CAAA"}
1
+ {"version":3,"file":"data-select.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAwGhE,eAAO,MAAM,UAAU,EAAE,oBAMxB,CAAA"}
@@ -12,26 +12,69 @@ async function data_select(config, context) {
12
12
  const skip = config.skip;
13
13
  const rawQueryUserPart = config.rawQueryUserPart;
14
14
  const baseUrl = (context && context.__baseUrl) || '';
15
+ function isEmptyFilterValue(value) {
16
+ if (value === undefined || value === null)
17
+ return true;
18
+ if (typeof value === 'string' && value.trim() === '')
19
+ return true;
20
+ if (Array.isArray(value) && value.length === 0)
21
+ return true;
22
+ return false;
23
+ }
24
+ function isAllSentinel(value, filter) {
25
+ if (typeof value !== 'string')
26
+ return false;
27
+ const normalized = value.trim().toLowerCase();
28
+ const configured = filter && filter.treatAsAll;
29
+ if (typeof configured === 'string' && configured.trim().toLowerCase() === normalized) {
30
+ return true;
31
+ }
32
+ return (normalized === 'all' ||
33
+ normalized === 'any' ||
34
+ normalized === 'everything' ||
35
+ normalized === '__all__');
36
+ }
37
+ function shouldSkipOptionalFilter(filter) {
38
+ if (!filter)
39
+ return true;
40
+ const value = filter.destination !== undefined ? filter.destination : filter.value;
41
+ if (isEmptyFilterValue(value))
42
+ return true;
43
+ if (isAllSentinel(value, filter))
44
+ return true;
45
+ if (Array.isArray(filter.skipIfValue) && filter.skipIfValue.indexOf(value) !== -1)
46
+ return true;
47
+ if (filter.skipIfEmpty === true && isEmptyFilterValue(value))
48
+ return true;
49
+ return false;
50
+ }
51
+ const effectiveFilters = filters.filter(function (filter) {
52
+ return !shouldSkipOptionalFilter(filter);
53
+ });
15
54
  // A filter whose value is the unresolved route-param sentinel (see
16
- // resolveTemplateTokenString in runtime-utils) must fail loudly instead of
17
- // querying 'WHERE col = <sentinel>' and silently returning 0 rows.
18
- for (let __fi = 0; __fi < filters.length; __fi++) {
19
- const __f = filters[__fi];
55
+ // resolveTemplateTokenString in runtime-utils) e.g. a select scoped to
56
+ // {{Current Page Entity.id}} that runs on a page with no such route param
57
+ // (a create page, or a mis-generated filter). DEGRADE GRACEFULLY: return an
58
+ // empty result WITHOUT an `error` so the executor does not throw and abort the
59
+ // WHOLE workflow (a single unresolvable filter must never kill the note-create
60
+ // submit). Never fall through to an unscoped query. Observable via the warn +
61
+ // the __skippedUnavailableFilter marker.
62
+ for (let __fi = 0; __fi < effectiveFilters.length; __fi++) {
63
+ const __f = effectiveFilters[__fi];
20
64
  if (__f &&
21
65
  (__f.value === '__TQ_UNRESOLVED_ROUTE_PARAM__' ||
22
66
  __f.destination === '__TQ_UNRESOLVED_ROUTE_PARAM__')) {
23
67
  const __col = __f.column || __f.source || __f.field || 'unknown';
24
- return {
25
- rows: [],
26
- count: 0,
27
- error: 'Filter on "' +
68
+ if (typeof console !== 'undefined' && console.warn) {
69
+ console.warn('[workflow] data-select skipped — filter on "' +
28
70
  __col +
29
- '" requires the page route parameter, which is not available in this context',
30
- };
71
+ '" needs a page route param not available here; returning empty rows (workflow continues)');
72
+ }
73
+ return { rows: [], count: 0, __skippedUnavailableFilter: true };
31
74
  }
32
75
  }
33
76
  try {
34
- const payload = { tableName, filters, sorts, selectedColumns };
77
+ const payload = { tableName, filters: effectiveFilters, sorts, selectedColumns };
35
78
  if (limit !== undefined && limit !== null) {
36
79
  payload.limit = limit;
37
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-select.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-select.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-select.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-update-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-update-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAgGhE,eAAO,MAAM,cAAc,EAAE,oBAM5B,CAAA"}
1
+ {"version":3,"file":"data-update-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-update-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAmGhE,eAAO,MAAM,cAAc,EAAE,oBAM5B,CAAA"}
@@ -10,22 +10,24 @@ async function data_update_item(config, context) {
10
10
  const baseUrl = (context && context.__baseUrl) || '';
11
11
  const __env = globalThis.process && globalThis.process.env;
12
12
  // Unresolved route-param sentinel (see resolveTemplateTokenString in
13
- // runtime-utils): in a filter it is a validation error an UPDATE keyed on
14
- // it would match 0 rows and report failure with no hint why. In a
15
- // columnMapping it degrades to null so the write itself survives.
13
+ // runtime-utils): in a filter, an UPDATE keyed on it cannot identify its row.
14
+ // DEGRADE to a NO-OP return updatedCount:0 WITHOUT an `error` so the executor
15
+ // does not throw and abort the whole workflow. CRITICAL: never drop the filter
16
+ // and run an UNSCOPED update (that would rewrite every row); no-op is the only
17
+ // safe degrade. (A columnMapping sentinel still degrades to null below so the
18
+ // write's VALUES survive.) Observable via the warn + __skippedUnavailableFilter.
16
19
  for (let __fi = 0; __fi < filters.length; __fi++) {
17
20
  const __f = filters[__fi];
18
21
  if (__f &&
19
22
  (__f.value === '__TQ_UNRESOLVED_ROUTE_PARAM__' ||
20
23
  __f.destination === '__TQ_UNRESOLVED_ROUTE_PARAM__')) {
21
24
  const __col = __f.column || __f.source || __f.field || 'unknown';
22
- return {
23
- id: null,
24
- updatedCount: 0,
25
- error: 'Filter on "' +
25
+ if (typeof console !== 'undefined' && console.warn) {
26
+ console.warn('[workflow] data-update-item skipped (no-op) — filter on "' +
26
27
  __col +
27
- '" requires the page route parameter, which is not available in this context',
28
- };
28
+ '" needs a page route param not available here; no rows updated (workflow continues)');
29
+ }
30
+ return { id: null, updatedCount: 0, success: true, __skippedUnavailableFilter: true };
29
31
  }
30
32
  }
31
33
  if (Array.isArray(columnMappings)) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-update-item.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-update-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-update-item.js","sourceRoot":"","sources":["../../../../src/nodes/data/data-update-item.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"general-extract-form-data.d.ts","sourceRoot":"","sources":["../../../../src/nodes/general/general-extract-form-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA2KhE,eAAO,MAAM,sBAAsB,EAAE,oBAMpC,CAAA"}
1
+ {"version":3,"file":"general-extract-form-data.d.ts","sourceRoot":"","sources":["../../../../src/nodes/general/general-extract-form-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA+MhE,eAAO,MAAM,sBAAsB,EAAE,oBAMpC,CAAA"}
@@ -96,10 +96,46 @@ async function general_extract_form_data(config, context) {
96
96
  }
97
97
  }
98
98
  const fieldKeys = Object.keys(fields);
99
- const result = { fields };
99
+ const result = { fields, formData: fields };
100
100
  for (let fi = 0; fi < fieldKeys.length; fi++) {
101
101
  result[fieldKeys[fi]] = fields[fieldKeys[fi]];
102
102
  }
103
+ // Workflows generated/imported from HTML often refer to a form control by
104
+ // its DOM id (`class-session-select`) while FormData exposes submitted
105
+ // values by name (`class_session_id`). Preserve the canonical name keys
106
+ // above, and add non-overwriting aliases for id/data-form-field-id so both
107
+ // conventions resolve to the same submitted value.
108
+ try {
109
+ const addAlias = (alias, name) => {
110
+ if (!alias || !name)
111
+ return;
112
+ if (fields[name] === undefined)
113
+ return;
114
+ if (result[alias] === undefined) {
115
+ result[alias] = fields[name];
116
+ }
117
+ };
118
+ const controls = formEl.querySelectorAll('input[name], select[name], textarea[name], button[name]');
119
+ for (let ci = 0; ci < controls.length; ci++) {
120
+ const control = controls[ci];
121
+ addAlias(control.id, control.name);
122
+ addAlias(control.getAttribute('data-form-field-id'), control.name);
123
+ }
124
+ const outsideControls = document.querySelectorAll('input[name], select[name], textarea[name], button[name]');
125
+ for (let oi = 0; oi < outsideControls.length; oi++) {
126
+ const control = outsideControls[oi];
127
+ if (formEl.contains(control))
128
+ continue;
129
+ const ownerForm = control.closest('form');
130
+ if (ownerForm && ownerForm !== formEl)
131
+ continue;
132
+ addAlias(control.id, control.name);
133
+ addAlias(control.getAttribute('data-form-field-id'), control.name);
134
+ }
135
+ }
136
+ catch (_aliasErr) {
137
+ /* aliases are best-effort; canonical name-based fields remain intact */
138
+ }
103
139
  // Diagnostic: surface any required inputs whose value is empty at extraction
104
140
  // time so downstream custom-JS validators have something concrete to report
105
141
  // instead of a generic "please fill in all required fields" message.
@@ -1 +1 @@
1
- {"version":3,"file":"general-extract-form-data.js","sourceRoot":"","sources":["../../../../src/nodes/general/general-extract-form-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general-extract-form-data.js","sourceRoot":"","sources":["../../../../src/nodes/general/general-extract-form-data.ts"],"names":[],"mappings":"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"}