@activepieces/shared 0.80.0 → 0.81.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.
Files changed (44) hide show
  1. package/package.json +2 -1
  2. package/src/index.d.ts +4 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/automation/engine/execution-errors.d.ts +7 -0
  7. package/src/lib/automation/engine/execution-errors.d.ts.map +1 -1
  8. package/src/lib/automation/engine/execution-errors.js +7 -1
  9. package/src/lib/automation/engine/execution-errors.js.map +1 -1
  10. package/src/lib/automation/workers/worker-contract.d.ts +37 -1
  11. package/src/lib/automation/workers/worker-contract.d.ts.map +1 -1
  12. package/src/lib/automation/workers/worker-contract.js +3 -0
  13. package/src/lib/automation/workers/worker-contract.js.map +1 -1
  14. package/src/lib/core/license-keys/index.d.ts +2 -0
  15. package/src/lib/core/license-keys/index.d.ts.map +1 -1
  16. package/src/lib/core/license-keys/index.js +1 -0
  17. package/src/lib/core/license-keys/index.js.map +1 -1
  18. package/src/lib/ee/billing/index.d.ts.map +1 -1
  19. package/src/lib/ee/billing/index.js +2 -0
  20. package/src/lib/ee/billing/index.js.map +1 -1
  21. package/src/lib/ee/chat/index.d.ts +27 -15
  22. package/src/lib/ee/chat/index.d.ts.map +1 -1
  23. package/src/lib/ee/chat/index.js +6 -0
  24. package/src/lib/ee/chat/index.js.map +1 -1
  25. package/src/lib/formula/formula-evaluator.d.ts +22 -0
  26. package/src/lib/formula/formula-evaluator.d.ts.map +1 -0
  27. package/src/lib/formula/formula-evaluator.js +438 -0
  28. package/src/lib/formula/formula-evaluator.js.map +1 -0
  29. package/src/lib/formula/function-implementations.d.ts +9 -0
  30. package/src/lib/formula/function-implementations.d.ts.map +1 -0
  31. package/src/lib/formula/function-implementations.js +333 -0
  32. package/src/lib/formula/function-implementations.js.map +1 -0
  33. package/src/lib/formula/function-registry.d.ts +25 -0
  34. package/src/lib/formula/function-registry.d.ts.map +1 -0
  35. package/src/lib/formula/function-registry.js +978 -0
  36. package/src/lib/formula/function-registry.js.map +1 -0
  37. package/src/lib/formula/function-type-checker.d.ts +9 -0
  38. package/src/lib/formula/function-type-checker.d.ts.map +1 -0
  39. package/src/lib/formula/function-type-checker.js +206 -0
  40. package/src/lib/formula/function-type-checker.js.map +1 -0
  41. package/src/lib/management/platform/platform.model.d.ts +4 -0
  42. package/src/lib/management/platform/platform.model.d.ts.map +1 -1
  43. package/src/lib/management/platform/platform.model.js +1 -1
  44. package/src/lib/management/platform/platform.model.js.map +1 -1
@@ -0,0 +1,438 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formulaEvaluator = void 0;
4
+ const function_implementations_1 = require("./function-implementations");
5
+ const function_registry_1 = require("./function-registry");
6
+ const CURRENT_FORMULA_VERSION = 1;
7
+ const FORMULA_PREFIX = `ap-formula-v${CURRENT_FORMULA_VERSION}::{`;
8
+ const FORMULA_SUFFIX = `}::ap-formula-v${CURRENT_FORMULA_VERSION}`;
9
+ // Mirrored close marker means tokenization is a plain regex split — no
10
+ // brace-counting or string-literal tracking needed at the wrapper level.
11
+ // `[\s\S]*?` matches any character including newlines, non-greedy so adjacent
12
+ // formulas don't merge into one capture. The `v(\d+)` lets us route saved
13
+ // flows from older format versions to the right evaluator after we ship v2,
14
+ // without a data migration.
15
+ const FORMULA_REGEX = /ap-formula-v(\d+)::\{([\s\S]*?)\}::ap-formula-v\1/g;
16
+ function wrap(expression) {
17
+ return `${FORMULA_PREFIX}${expression}${FORMULA_SUFFIX}`;
18
+ }
19
+ function containsWrapper(input) {
20
+ return /ap-formula-v\d+::\{/.test(input);
21
+ }
22
+ function unwrap(template) {
23
+ return template.replace(FORMULA_REGEX, (_, _version, expr) => expr);
24
+ }
25
+ function evaluate({ expression, sampleData }) {
26
+ const trimmed = expression.trim();
27
+ if (!trimmed)
28
+ return { result: '', error: null };
29
+ const segments = tokenizeFormulaTemplate(trimmed);
30
+ if (segments.length === 0)
31
+ return { result: '', error: null };
32
+ if (segments.length === 1 && segments[0].type === 'formula') {
33
+ return evaluateSingleFormula({ expression: segments[0].value, sampleData });
34
+ }
35
+ const parts = [];
36
+ for (const seg of segments) {
37
+ if (seg.type === 'text') {
38
+ parts.push(resolveTextVars(seg.value, sampleData));
39
+ continue;
40
+ }
41
+ const { result, error } = evaluateSingleFormula({ expression: seg.value, sampleData });
42
+ if (error)
43
+ return { result: null, error };
44
+ parts.push(result != null ? (typeof result === 'object' ? JSON.stringify(result) : String(result)) : '');
45
+ }
46
+ return { result: parts.join(''), error: null };
47
+ }
48
+ function tokenizeFormulaTemplate(template) {
49
+ var _a;
50
+ const segments = [];
51
+ let lastIndex = 0;
52
+ for (const match of template.matchAll(FORMULA_REGEX)) {
53
+ const start = (_a = match.index) !== null && _a !== void 0 ? _a : 0;
54
+ if (start > lastIndex) {
55
+ segments.push({ type: 'text', value: template.slice(lastIndex, start) });
56
+ }
57
+ segments.push({ type: 'formula', value: match[2], version: Number(match[1]) });
58
+ lastIndex = start + match[0].length;
59
+ }
60
+ if (lastIndex < template.length) {
61
+ segments.push({ type: 'text', value: template.slice(lastIndex) });
62
+ }
63
+ return segments.filter((s) => s.value !== '');
64
+ }
65
+ function evaluateSingleFormula({ expression, sampleData }) {
66
+ const trimmed = expression.trim();
67
+ if (!trimmed)
68
+ return { result: '', error: null };
69
+ const emptyArgError = validateFunctionArgs(trimmed);
70
+ if (emptyArgError)
71
+ return { result: null, error: emptyArgError };
72
+ const { processed, vars } = preprocessExpression({ expression: trimmed, sampleData });
73
+ try {
74
+ return { result: (0, function_implementations_1.evaluateRaw)(processed, vars), error: null };
75
+ }
76
+ catch (e) {
77
+ return { result: null, error: friendlyError(e) };
78
+ }
79
+ }
80
+ function preprocessExpression({ expression, sampleData }) {
81
+ const vars = {};
82
+ let idx = 0;
83
+ const withVars = expression.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
84
+ const key = `__ap_v${idx++}__`;
85
+ const resolved = resolveVariable(path.trim(), sampleData);
86
+ vars[key] = resolved === undefined ? null : resolved;
87
+ return key;
88
+ });
89
+ const withJsonVars = replaceInlineJsonArrays(withVars, vars, { value: idx });
90
+ return { processed: normalizeExpression(rewriteLazyIf(wrapStringArgs(withJsonVars))), vars };
91
+ }
92
+ function rewriteLazyIf(expr) {
93
+ const ifOnly = new Set(['if']);
94
+ let result = '';
95
+ let pos = 0;
96
+ while (pos < expr.length) {
97
+ const next = findNextFunctionCall(expr, pos, ifOnly);
98
+ if (next === null) {
99
+ result += expr.slice(pos);
100
+ break;
101
+ }
102
+ result += expr.slice(pos, next.start);
103
+ const closePos = findMatchingParen(expr, next.openParen);
104
+ if (closePos === -1) {
105
+ result += expr.slice(next.start);
106
+ break;
107
+ }
108
+ const argsContent = expr.slice(next.openParen + 1, closePos);
109
+ const args = splitArgsBySemicolon(argsContent).map((a) => rewriteLazyIf(a));
110
+ if (args.length === 3) {
111
+ result += `((${args[0]}) ? (${args[1]}) : (${args[2]}))`;
112
+ }
113
+ else {
114
+ result += 'if(' + args.join(';') + ')';
115
+ }
116
+ pos = closePos + 1;
117
+ }
118
+ return result;
119
+ }
120
+ function replaceInlineJsonArrays(expr, vars, idxRef) {
121
+ let result = '';
122
+ let i = 0;
123
+ let inString = null;
124
+ while (i < expr.length) {
125
+ const ch = expr[i];
126
+ if (inString) {
127
+ if (ch === inString && expr[i - 1] !== '\\')
128
+ inString = null;
129
+ result += ch;
130
+ i++;
131
+ continue;
132
+ }
133
+ if (ch === '"' || ch === '\'') {
134
+ inString = ch;
135
+ result += ch;
136
+ i++;
137
+ continue;
138
+ }
139
+ if (ch === '[') {
140
+ let j = i + 1;
141
+ while (j < expr.length && (expr[j] === ' ' || expr[j] === '\t'))
142
+ j++;
143
+ if (j < expr.length && expr[j] === '{') {
144
+ const end = findMatchingSquareBracket(expr, i);
145
+ if (end !== -1) {
146
+ const jsonStr = expr.slice(i, end + 1);
147
+ try {
148
+ const parsed = JSON.parse(jsonStr);
149
+ if (Array.isArray(parsed)) {
150
+ const key = `__ap_v${idxRef.value++}__`;
151
+ vars[key] = parsed;
152
+ result += key;
153
+ i = end + 1;
154
+ continue;
155
+ }
156
+ }
157
+ catch (_a) {
158
+ // not valid JSON — fall through and include as-is
159
+ }
160
+ }
161
+ }
162
+ }
163
+ result += ch;
164
+ i++;
165
+ }
166
+ return result;
167
+ }
168
+ function wrapStringArgs(expr) {
169
+ const fnNames = new Set(function_registry_1.AP_FUNCTIONS.map((f) => f.name));
170
+ let result = '';
171
+ let pos = 0;
172
+ while (pos < expr.length) {
173
+ const next = findNextFunctionCall(expr, pos, fnNames);
174
+ if (next === null) {
175
+ result += expr.slice(pos);
176
+ break;
177
+ }
178
+ result += expr.slice(pos, next.start);
179
+ const fnName = expr.slice(next.start, next.openParen).trim();
180
+ const fn = function_registry_1.AP_FUNCTIONS.find((f) => f.name === fnName);
181
+ const closePos = findMatchingParen(expr, next.openParen);
182
+ if (closePos === -1) {
183
+ result += expr.slice(next.start);
184
+ break;
185
+ }
186
+ const argsContent = expr.slice(next.openParen + 1, closePos);
187
+ const argParts = splitArgsBySemicolon(argsContent);
188
+ const processedArgs = argParts.map((arg, i) => {
189
+ const inner = wrapStringArgs(arg);
190
+ if (!fn)
191
+ return inner;
192
+ const expectedSpec = fn.argTypes[Math.min(i, fn.argTypes.length - 1)];
193
+ const shouldQuote = expectedSpec === 'string' ||
194
+ (Array.isArray(expectedSpec) && expectedSpec.includes('string'));
195
+ return shouldQuote ? quoteIfBare(inner) : inner;
196
+ });
197
+ result += fnName + '(' + processedArgs.join(';') + ')';
198
+ pos = closePos + 1;
199
+ }
200
+ return result;
201
+ }
202
+ function quoteIfBare(arg) {
203
+ const trimmed = arg.trim();
204
+ if (!trimmed)
205
+ return arg;
206
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
207
+ (trimmed.startsWith('\'') && trimmed.endsWith('\'')))
208
+ return arg;
209
+ if (trimmed.startsWith('__ap_'))
210
+ return arg;
211
+ const fnCallMatch = trimmed.match(/^([a-z_][a-z0-9_]*)\s*\(/i);
212
+ if (fnCallMatch && function_registry_1.AP_FUNCTIONS.some((f) => f.name === fnCallMatch[1]))
213
+ return arg;
214
+ return '"' + arg.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"';
215
+ }
216
+ function normalizeExpression(expr) {
217
+ let result = '';
218
+ let inString = null;
219
+ let i = 0;
220
+ while (i < expr.length) {
221
+ const ch = expr[i];
222
+ if (inString) {
223
+ if (ch === inString && (i === 0 || expr[i - 1] !== '\\'))
224
+ inString = null;
225
+ result += ch;
226
+ i++;
227
+ continue;
228
+ }
229
+ if (ch === '"' || ch === '\'') {
230
+ inString = ch;
231
+ result += ch;
232
+ i++;
233
+ continue;
234
+ }
235
+ if (ch === ';') {
236
+ result += ',';
237
+ i++;
238
+ continue;
239
+ }
240
+ // Rewrite reserved keyword function calls to aliased names.
241
+ // Only rewrite when the keyword is not preceded by a word character
242
+ // (avoids matching e.g. "understand(" or "anderson(").
243
+ const prevIsWord = i > 0 && /[a-zA-Z0-9_]/.test(expr[i - 1]);
244
+ if (!prevIsWord) {
245
+ const rest = expr.slice(i);
246
+ if (rest.startsWith('and(')) {
247
+ result += 'ap_and(';
248
+ i += 4;
249
+ continue;
250
+ }
251
+ if (rest.startsWith('or(')) {
252
+ result += 'ap_or(';
253
+ i += 3;
254
+ continue;
255
+ }
256
+ if (rest.startsWith('not(')) {
257
+ result += 'ap_not(';
258
+ i += 4;
259
+ continue;
260
+ }
261
+ if (rest.startsWith('round(')) {
262
+ result += 'ap_round(';
263
+ i += 6;
264
+ continue;
265
+ }
266
+ }
267
+ result += ch;
268
+ i++;
269
+ }
270
+ return result;
271
+ }
272
+ function validateFunctionArgs(expr) {
273
+ const fnNames = new Set(function_registry_1.AP_FUNCTIONS.map((f) => f.name));
274
+ let pos = 0;
275
+ while (pos < expr.length) {
276
+ const next = findNextFunctionCall(expr, pos, fnNames);
277
+ if (!next)
278
+ break;
279
+ const closePos = findMatchingParen(expr, next.openParen);
280
+ // Advance inside the paren so nested calls are also validated
281
+ pos = next.openParen + 1;
282
+ if (closePos === -1)
283
+ continue;
284
+ const fnName = expr.slice(next.start, next.openParen).trim();
285
+ const argsContent = expr.slice(next.openParen + 1, closePos);
286
+ const argParts = splitArgsBySemicolon(argsContent);
287
+ // Only flag empties when separators are present — zero-arg calls are fine
288
+ if (argParts.length > 1) {
289
+ for (let i = 0; i < argParts.length; i++) {
290
+ if (!argParts[i].trim()) {
291
+ return `${fnName}() is missing value ${i + 1} — fill in all values`;
292
+ }
293
+ }
294
+ }
295
+ }
296
+ return null;
297
+ }
298
+ function friendlyError(e) {
299
+ var _a;
300
+ const msg = String((_a = e.message) !== null && _a !== void 0 ? _a : e);
301
+ if (/division by zero/i.test(msg)) {
302
+ return 'Cannot divide by zero';
303
+ }
304
+ if (/parse error|Expected EOF|unexpected token|value expected|unexpected \)/i.test(msg)) {
305
+ return 'Invalid formula — check for empty values or mismatched parentheses';
306
+ }
307
+ if (/is not defined/i.test(msg)) {
308
+ const m = msg.match(/(\w+) is not defined/);
309
+ return m
310
+ ? `"${m[1]}" is not a known function or variable — check for typos`
311
+ : 'Unknown function or variable — check for typos';
312
+ }
313
+ if (/wrong number of arguments/i.test(msg)) {
314
+ return 'Wrong number of values — check the function reference for the expected inputs';
315
+ }
316
+ if (/not a function/i.test(msg)) {
317
+ return 'That value is not callable as a function';
318
+ }
319
+ return 'Could not evaluate this formula — check all values are filled in correctly';
320
+ }
321
+ function resolveTextVars(text, sampleData) {
322
+ return text.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
323
+ const resolved = resolveVariable(path.trim(), sampleData);
324
+ return resolved != null ? String(resolved) : '';
325
+ });
326
+ }
327
+ function resolveVariable(path, sampleData) {
328
+ const parts = path.split('.');
329
+ let value = sampleData;
330
+ for (const part of parts) {
331
+ if (value == null || typeof value !== 'object')
332
+ return undefined;
333
+ value = value[part];
334
+ }
335
+ return value;
336
+ }
337
+ function splitArgsBySemicolon(content) {
338
+ const args = [];
339
+ let current = '';
340
+ let depth = 0;
341
+ let inString = null;
342
+ for (let i = 0; i < content.length; i++) {
343
+ const ch = content[i];
344
+ if (inString) {
345
+ if (ch === inString && content[i - 1] !== '\\')
346
+ inString = null;
347
+ current += ch;
348
+ }
349
+ else if (ch === '"' || ch === '\'') {
350
+ inString = ch;
351
+ current += ch;
352
+ }
353
+ else if (ch === '(') {
354
+ depth++;
355
+ current += ch;
356
+ }
357
+ else if (ch === ')') {
358
+ depth--;
359
+ current += ch;
360
+ }
361
+ else if (ch === ';' && depth === 0) {
362
+ args.push(current);
363
+ current = '';
364
+ }
365
+ else {
366
+ current += ch;
367
+ }
368
+ }
369
+ args.push(current);
370
+ return args;
371
+ }
372
+ function findNextFunctionCall(text, fromPos, fnNames) {
373
+ for (let i = fromPos; i < text.length; i++) {
374
+ if (!/[a-z_]/i.test(text[i]))
375
+ continue;
376
+ const wordMatch = text.slice(i).match(/^([a-z_][a-z0-9_]*)\s*\(/i);
377
+ if (wordMatch && fnNames.has(wordMatch[1])) {
378
+ const openParen = i + wordMatch[0].length - 1;
379
+ return { start: i, openParen };
380
+ }
381
+ }
382
+ return null;
383
+ }
384
+ function findMatchingParen(text, openPos) {
385
+ let depth = 0;
386
+ let inString = null;
387
+ for (let i = openPos; i < text.length; i++) {
388
+ const ch = text[i];
389
+ if (inString) {
390
+ if (ch === inString && (i === 0 || text[i - 1] !== '\\'))
391
+ inString = null;
392
+ }
393
+ else if (ch === '"' || ch === '\'') {
394
+ inString = ch;
395
+ }
396
+ else if (ch === '(') {
397
+ depth++;
398
+ }
399
+ else if (ch === ')') {
400
+ depth--;
401
+ if (depth === 0)
402
+ return i;
403
+ }
404
+ }
405
+ return -1;
406
+ }
407
+ function findMatchingSquareBracket(text, openPos) {
408
+ let depth = 0;
409
+ let inStr = null;
410
+ for (let i = openPos; i < text.length; i++) {
411
+ const ch = text[i];
412
+ if (inStr) {
413
+ if (ch === inStr && (i === 0 || text[i - 1] !== '\\'))
414
+ inStr = null;
415
+ }
416
+ else if (ch === '"' || ch === '\'') {
417
+ inStr = ch;
418
+ }
419
+ else if (ch === '[') {
420
+ depth++;
421
+ }
422
+ else if (ch === ']') {
423
+ depth--;
424
+ if (depth === 0)
425
+ return i;
426
+ }
427
+ }
428
+ return -1;
429
+ }
430
+ exports.formulaEvaluator = {
431
+ evaluate,
432
+ wrap,
433
+ unwrap,
434
+ containsWrapper,
435
+ PREFIX: FORMULA_PREFIX,
436
+ SUFFIX: FORMULA_SUFFIX,
437
+ };
438
+ //# sourceMappingURL=formula-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-evaluator.js","sourceRoot":"","sources":["../../../../src/lib/formula/formula-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare module 'expr-eval' {
2
+ interface Parser {
3
+ evaluate(expression: string, values: Record<string, unknown>): unknown;
4
+ }
5
+ }
6
+ export declare function evaluateRaw(expression: string, vars: Record<string, unknown>): unknown;
7
+ export declare const MONTH_NAMES: string[];
8
+ export declare const DAY_NAMES: string[];
9
+ //# sourceMappingURL=function-implementations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-implementations.d.ts","sourceRoot":"","sources":["../../../../src/lib/formula/function-implementations.ts"],"names":[],"mappings":"AAgBA,OAAO,QAAQ,WAAW,CAAC;IAEvB,UAAU,MAAM;QACZ,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;KACzE;CACJ;AAOD,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEtF;AAoUD,eAAO,MAAM,WAAW,UAGvB,CAAA;AAED,eAAO,MAAM,SAAS,UAAiF,CAAA"}