@marktoflow/core 2.0.2 → 2.0.4

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 (183) hide show
  1. package/README.md +69 -6
  2. package/dist/built-in-operations.d.ts +2 -136
  3. package/dist/built-in-operations.d.ts.map +1 -1
  4. package/dist/built-in-operations.js +7 -743
  5. package/dist/built-in-operations.js.map +1 -1
  6. package/dist/engine/conditions.d.ts +29 -0
  7. package/dist/engine/conditions.d.ts.map +1 -0
  8. package/dist/engine/conditions.js +109 -0
  9. package/dist/engine/conditions.js.map +1 -0
  10. package/dist/engine/control-flow.d.ts +35 -0
  11. package/dist/engine/control-flow.d.ts.map +1 -0
  12. package/dist/engine/control-flow.js +653 -0
  13. package/dist/engine/control-flow.js.map +1 -0
  14. package/dist/engine/index.d.ts +12 -0
  15. package/dist/engine/index.d.ts.map +1 -0
  16. package/dist/engine/index.js +11 -0
  17. package/dist/engine/index.js.map +1 -0
  18. package/dist/engine/retry.d.ts +35 -0
  19. package/dist/engine/retry.d.ts.map +1 -0
  20. package/dist/engine/retry.js +86 -0
  21. package/dist/engine/retry.js.map +1 -0
  22. package/dist/engine/subworkflow.d.ts +31 -0
  23. package/dist/engine/subworkflow.d.ts.map +1 -0
  24. package/dist/engine/subworkflow.js +240 -0
  25. package/dist/engine/subworkflow.js.map +1 -0
  26. package/dist/engine/types.d.ts +55 -0
  27. package/dist/engine/types.d.ts.map +1 -0
  28. package/dist/engine/types.js +5 -0
  29. package/dist/{secrets → engine}/types.js.map +1 -1
  30. package/dist/engine/variable-resolution.d.ts +29 -0
  31. package/dist/engine/variable-resolution.d.ts.map +1 -0
  32. package/dist/engine/variable-resolution.js +130 -0
  33. package/dist/engine/variable-resolution.js.map +1 -0
  34. package/dist/engine.d.ts +17 -211
  35. package/dist/engine.d.ts.map +1 -1
  36. package/dist/engine.js +84 -1351
  37. package/dist/engine.js.map +1 -1
  38. package/dist/file-operations.js +1 -1
  39. package/dist/file-operations.js.map +1 -1
  40. package/dist/filters/array.d.ts +9 -0
  41. package/dist/filters/array.d.ts.map +1 -0
  42. package/dist/filters/array.js +41 -0
  43. package/dist/filters/array.js.map +1 -0
  44. package/dist/filters/date.d.ts +9 -0
  45. package/dist/filters/date.d.ts.map +1 -0
  46. package/dist/filters/date.js +51 -0
  47. package/dist/filters/date.js.map +1 -0
  48. package/dist/filters/index.d.ts +13 -0
  49. package/dist/filters/index.d.ts.map +1 -0
  50. package/dist/filters/index.js +13 -0
  51. package/dist/filters/index.js.map +1 -0
  52. package/dist/filters/json.d.ts +6 -0
  53. package/dist/filters/json.d.ts.map +1 -0
  54. package/dist/filters/json.js +15 -0
  55. package/dist/filters/json.js.map +1 -0
  56. package/dist/filters/logic.d.ts +8 -0
  57. package/dist/filters/logic.d.ts.map +1 -0
  58. package/dist/filters/logic.js +28 -0
  59. package/dist/filters/logic.js.map +1 -0
  60. package/dist/filters/math.d.ts +13 -0
  61. package/dist/filters/math.d.ts.map +1 -0
  62. package/dist/filters/math.js +39 -0
  63. package/dist/filters/math.js.map +1 -0
  64. package/dist/filters/object.d.ts +11 -0
  65. package/dist/filters/object.d.ts.map +1 -0
  66. package/dist/filters/object.js +64 -0
  67. package/dist/filters/object.js.map +1 -0
  68. package/dist/filters/regex.d.ts +7 -0
  69. package/dist/filters/regex.d.ts.map +1 -0
  70. package/dist/filters/regex.js +38 -0
  71. package/dist/filters/regex.js.map +1 -0
  72. package/dist/filters/string.d.ts +11 -0
  73. package/dist/filters/string.d.ts.map +1 -0
  74. package/dist/filters/string.js +35 -0
  75. package/dist/filters/string.js.map +1 -0
  76. package/dist/filters/type-checks.d.ts +10 -0
  77. package/dist/filters/type-checks.d.ts.map +1 -0
  78. package/dist/filters/type-checks.js +30 -0
  79. package/dist/filters/type-checks.js.map +1 -0
  80. package/dist/index.d.ts +5 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +7 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/nunjucks-filters.d.ts +2 -261
  85. package/dist/nunjucks-filters.d.ts.map +1 -1
  86. package/dist/nunjucks-filters.js +24 -582
  87. package/dist/nunjucks-filters.js.map +1 -1
  88. package/dist/operations/compress.d.ts +6 -0
  89. package/dist/operations/compress.d.ts.map +1 -0
  90. package/dist/operations/compress.js +36 -0
  91. package/dist/operations/compress.js.map +1 -0
  92. package/dist/operations/crypto.d.ts +5 -0
  93. package/dist/operations/crypto.d.ts.map +1 -0
  94. package/dist/operations/crypto.js +61 -0
  95. package/dist/operations/crypto.js.map +1 -0
  96. package/dist/operations/data-ops.d.ts +10 -0
  97. package/dist/operations/data-ops.d.ts.map +1 -0
  98. package/dist/operations/data-ops.js +124 -0
  99. package/dist/operations/data-ops.js.map +1 -0
  100. package/dist/operations/datetime.d.ts +5 -0
  101. package/dist/operations/datetime.d.ts.map +1 -0
  102. package/dist/operations/datetime.js +86 -0
  103. package/dist/operations/datetime.js.map +1 -0
  104. package/dist/operations/extract.d.ts +23 -0
  105. package/dist/operations/extract.d.ts.map +1 -0
  106. package/dist/operations/extract.js +31 -0
  107. package/dist/operations/extract.js.map +1 -0
  108. package/dist/operations/format.d.ts +14 -0
  109. package/dist/operations/format.d.ts.map +1 -0
  110. package/dist/operations/format.js +84 -0
  111. package/dist/operations/format.js.map +1 -0
  112. package/dist/operations/index.d.ts +13 -0
  113. package/dist/operations/index.d.ts.map +1 -0
  114. package/dist/operations/index.js +13 -0
  115. package/dist/operations/index.js.map +1 -0
  116. package/dist/operations/parse.d.ts +5 -0
  117. package/dist/operations/parse.d.ts.map +1 -0
  118. package/dist/operations/parse.js +59 -0
  119. package/dist/operations/parse.js.map +1 -0
  120. package/dist/operations/set.d.ts +21 -0
  121. package/dist/operations/set.d.ts.map +1 -0
  122. package/dist/operations/set.js +25 -0
  123. package/dist/operations/set.js.map +1 -0
  124. package/dist/operations/transform.d.ts +15 -0
  125. package/dist/operations/transform.d.ts.map +1 -0
  126. package/dist/operations/transform.js +110 -0
  127. package/dist/operations/transform.js.map +1 -0
  128. package/dist/parallel.d.ts +114 -0
  129. package/dist/parallel.d.ts.map +1 -0
  130. package/dist/parallel.js +325 -0
  131. package/dist/parallel.js.map +1 -0
  132. package/dist/parser.d.ts.map +1 -1
  133. package/dist/parser.js +2 -0
  134. package/dist/parser.js.map +1 -1
  135. package/dist/routing.js +2 -2
  136. package/dist/routing.js.map +1 -1
  137. package/dist/sdk-registry.d.ts.map +1 -1
  138. package/dist/sdk-registry.js +9 -3
  139. package/dist/sdk-registry.js.map +1 -1
  140. package/dist/utils/duration.d.ts +23 -0
  141. package/dist/utils/duration.d.ts.map +1 -0
  142. package/dist/utils/duration.js +41 -0
  143. package/dist/utils/duration.js.map +1 -0
  144. package/dist/utils/errors.d.ts +20 -0
  145. package/dist/utils/errors.d.ts.map +1 -0
  146. package/dist/utils/errors.js +37 -0
  147. package/dist/utils/errors.js.map +1 -0
  148. package/dist/utils/index.d.ts +3 -0
  149. package/dist/utils/index.d.ts.map +1 -0
  150. package/dist/utils/index.js +3 -0
  151. package/dist/utils/index.js.map +1 -0
  152. package/dist/workflow-templates.d.ts +80 -0
  153. package/dist/workflow-templates.d.ts.map +1 -0
  154. package/dist/workflow-templates.js +248 -0
  155. package/dist/workflow-templates.js.map +1 -0
  156. package/package.json +30 -5
  157. package/dist/secrets/index.d.ts +0 -12
  158. package/dist/secrets/index.d.ts.map +0 -1
  159. package/dist/secrets/index.js +0 -11
  160. package/dist/secrets/index.js.map +0 -1
  161. package/dist/secrets/providers/aws.d.ts +0 -32
  162. package/dist/secrets/providers/aws.d.ts.map +0 -1
  163. package/dist/secrets/providers/aws.js +0 -118
  164. package/dist/secrets/providers/aws.js.map +0 -1
  165. package/dist/secrets/providers/azure.d.ts +0 -40
  166. package/dist/secrets/providers/azure.d.ts.map +0 -1
  167. package/dist/secrets/providers/azure.js +0 -170
  168. package/dist/secrets/providers/azure.js.map +0 -1
  169. package/dist/secrets/providers/env.d.ts +0 -26
  170. package/dist/secrets/providers/env.d.ts.map +0 -1
  171. package/dist/secrets/providers/env.js +0 -59
  172. package/dist/secrets/providers/env.js.map +0 -1
  173. package/dist/secrets/providers/vault.d.ts +0 -39
  174. package/dist/secrets/providers/vault.d.ts.map +0 -1
  175. package/dist/secrets/providers/vault.js +0 -180
  176. package/dist/secrets/providers/vault.js.map +0 -1
  177. package/dist/secrets/secret-manager.d.ts +0 -72
  178. package/dist/secrets/secret-manager.d.ts.map +0 -1
  179. package/dist/secrets/secret-manager.js +0 -226
  180. package/dist/secrets/secret-manager.js.map +0 -1
  181. package/dist/secrets/types.d.ts +0 -105
  182. package/dist/secrets/types.d.ts.map +0 -1
  183. package/dist/secrets/types.js +0 -8
@@ -0,0 +1,36 @@
1
+ /**
2
+ * core.compress / core.decompress — Compression operations.
3
+ */
4
+ export function executeCompress(inputs) {
5
+ const { gzipSync, deflateSync } = require('node:zlib');
6
+ const data = inputs.data;
7
+ const algorithm = inputs.algorithm ?? 'gzip';
8
+ if (!data)
9
+ throw new Error('core.compress: data is required');
10
+ const buf = Buffer.from(data, 'utf8');
11
+ switch (algorithm) {
12
+ case 'gzip':
13
+ return gzipSync(buf).toString('base64');
14
+ case 'deflate':
15
+ return deflateSync(buf).toString('base64');
16
+ default:
17
+ throw new Error(`core.compress: unknown algorithm "${algorithm}"`);
18
+ }
19
+ }
20
+ export function executeDecompress(inputs) {
21
+ const { gunzipSync, inflateSync } = require('node:zlib');
22
+ const data = inputs.data;
23
+ const algorithm = inputs.algorithm ?? 'gzip';
24
+ if (!data)
25
+ throw new Error('core.decompress: data is required');
26
+ const buf = Buffer.from(data, 'base64');
27
+ switch (algorithm) {
28
+ case 'gzip':
29
+ return gunzipSync(buf).toString('utf8');
30
+ case 'deflate':
31
+ return inflateSync(buf).toString('utf8');
32
+ default:
33
+ throw new Error(`core.decompress: unknown algorithm "${algorithm}"`);
34
+ }
35
+ }
36
+ //# sourceMappingURL=compress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../src/operations/compress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;IACnC,MAAM,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,MAAM,CAAC;IAEzD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,GAAG,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;IACnC,MAAM,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,MAAM,CAAC;IAEzD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEhE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C;YACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,GAAG,CAAC,CAAC;IACzE,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * core.crypto — Cryptographic operations (hash, hmac, random, encrypt, decrypt).
3
+ */
4
+ export declare function executeCrypto(inputs: Record<string, unknown>): unknown;
5
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/operations/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAsDtE"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * core.crypto — Cryptographic operations (hash, hmac, random, encrypt, decrypt).
3
+ */
4
+ export function executeCrypto(inputs) {
5
+ const { createHash, createHmac, randomBytes, createCipheriv, createDecipheriv } = require('node:crypto');
6
+ const operation = inputs.operation;
7
+ const data = inputs.data;
8
+ switch (operation) {
9
+ case 'hash': {
10
+ const algorithm = inputs.algorithm ?? 'sha256';
11
+ const encoding = inputs.encoding ?? 'hex';
12
+ return createHash(algorithm).update(data).digest(encoding);
13
+ }
14
+ case 'hmac': {
15
+ const algorithm = inputs.algorithm ?? 'sha256';
16
+ const key = inputs.key;
17
+ const encoding = inputs.encoding ?? 'hex';
18
+ if (!key)
19
+ throw new Error('core.crypto: key required for hmac');
20
+ return createHmac(algorithm, key).update(data).digest(encoding);
21
+ }
22
+ case 'random': {
23
+ const size = inputs.size ?? 32;
24
+ const encoding = inputs.encoding ?? 'hex';
25
+ return randomBytes(size).toString(encoding);
26
+ }
27
+ case 'encrypt': {
28
+ const key = inputs.key;
29
+ const algorithm = inputs.algorithm ?? 'aes-256-gcm';
30
+ if (!key)
31
+ throw new Error('core.crypto: key required for encrypt');
32
+ const keyBuf = Buffer.from(key, 'hex');
33
+ const iv = randomBytes(16);
34
+ const cipher = createCipheriv(algorithm, keyBuf, iv);
35
+ let encrypted = cipher.update(data, 'utf8', 'hex');
36
+ encrypted += cipher.final('hex');
37
+ const authTag = algorithm.includes('gcm') ? cipher.getAuthTag().toString('hex') : '';
38
+ return { encrypted, iv: iv.toString('hex'), authTag };
39
+ }
40
+ case 'decrypt': {
41
+ const key = inputs.key;
42
+ const algorithm = inputs.algorithm ?? 'aes-256-gcm';
43
+ const encrypted = inputs.encrypted;
44
+ const iv = inputs.iv;
45
+ const authTag = inputs.authTag;
46
+ if (!key || !encrypted || !iv)
47
+ throw new Error('core.crypto: key, encrypted, iv required for decrypt');
48
+ const keyBuf = Buffer.from(key, 'hex');
49
+ const decipher = createDecipheriv(algorithm, keyBuf, Buffer.from(iv, 'hex'));
50
+ if (algorithm.includes('gcm') && authTag) {
51
+ decipher.setAuthTag(Buffer.from(authTag, 'hex'));
52
+ }
53
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
54
+ decrypted += decipher.final('utf8');
55
+ return decrypted;
56
+ }
57
+ default:
58
+ throw new Error(`core.crypto: unknown operation "${operation}"`);
59
+ }
60
+ }
61
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/operations/crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Data operations — aggregate, compare, rename_keys, limit, sort.
3
+ */
4
+ import { ExecutionContext } from '../models.js';
5
+ export declare function executeAggregate(inputs: Record<string, unknown>, _context: ExecutionContext): unknown;
6
+ export declare function executeCompare(inputs: Record<string, unknown>, _context: ExecutionContext): unknown;
7
+ export declare function executeRenameKeys(inputs: Record<string, unknown>): unknown;
8
+ export declare function executeLimit(inputs: Record<string, unknown>): unknown;
9
+ export declare function executeSortOperation(inputs: Record<string, unknown>): unknown;
10
+ //# sourceMappingURL=data-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-ops.d.ts","sourceRoot":"","sources":["../../src/operations/data-ops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMhD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAuCT;AAMD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAuBT;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CA4B1E;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CASrE;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAgB7E"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Data operations — aggregate, compare, rename_keys, limit, sort.
3
+ */
4
+ // ============================================================================
5
+ // core.aggregate
6
+ // ============================================================================
7
+ export function executeAggregate(inputs, _context) {
8
+ const items = inputs.input;
9
+ const operation = inputs.operation;
10
+ const field = inputs.field;
11
+ if (!Array.isArray(items))
12
+ throw new Error('core.aggregate: input must be an array');
13
+ const values = field
14
+ ? items.map((item) => {
15
+ if (item && typeof item === 'object')
16
+ return item[field];
17
+ return item;
18
+ })
19
+ : items;
20
+ const numValues = values.map(Number).filter((n) => !isNaN(n));
21
+ switch (operation) {
22
+ case 'sum':
23
+ return numValues.reduce((a, b) => a + b, 0);
24
+ case 'avg':
25
+ case 'average':
26
+ return numValues.length > 0 ? numValues.reduce((a, b) => a + b, 0) / numValues.length : 0;
27
+ case 'count':
28
+ return items.length;
29
+ case 'min':
30
+ return numValues.length > 0 ? Math.min(...numValues) : null;
31
+ case 'max':
32
+ return numValues.length > 0 ? Math.max(...numValues) : null;
33
+ case 'first':
34
+ return items[0] ?? null;
35
+ case 'last':
36
+ return items[items.length - 1] ?? null;
37
+ case 'concat':
38
+ return values.join(inputs.separator ?? ', ');
39
+ case 'unique_count':
40
+ return new Set(values).size;
41
+ default:
42
+ throw new Error(`core.aggregate: unknown operation "${operation}"`);
43
+ }
44
+ }
45
+ // ============================================================================
46
+ // core.compare
47
+ // ============================================================================
48
+ export function executeCompare(inputs, _context) {
49
+ const source1 = inputs.source1;
50
+ const source2 = inputs.source2;
51
+ const field = inputs.field;
52
+ if (!Array.isArray(source1) || !Array.isArray(source2)) {
53
+ throw new Error('core.compare: source1 and source2 must be arrays');
54
+ }
55
+ if (!field)
56
+ throw new Error('core.compare: field is required');
57
+ const getVal = (item) => item && typeof item === 'object' ? item[field] : item;
58
+ const set1 = new Set(source1.map(getVal));
59
+ const set2 = new Set(source2.map(getVal));
60
+ return {
61
+ added: source2.filter((item) => !set1.has(getVal(item))),
62
+ removed: source1.filter((item) => !set2.has(getVal(item))),
63
+ unchanged: source1.filter((item) => set2.has(getVal(item))),
64
+ total_source1: source1.length,
65
+ total_source2: source2.length,
66
+ };
67
+ }
68
+ // ============================================================================
69
+ // core.rename_keys
70
+ // ============================================================================
71
+ export function executeRenameKeys(inputs) {
72
+ const input = inputs.input;
73
+ const mapping = inputs.mapping;
74
+ if (!mapping || typeof mapping !== 'object') {
75
+ throw new Error('core.rename_keys: mapping is required');
76
+ }
77
+ const rename = (obj) => {
78
+ const result = {};
79
+ for (const [key, value] of Object.entries(obj)) {
80
+ const newKey = mapping[key] ?? key;
81
+ result[newKey] = value;
82
+ }
83
+ return result;
84
+ };
85
+ if (Array.isArray(input)) {
86
+ return input.map((item) => item && typeof item === 'object' ? rename(item) : item);
87
+ }
88
+ if (input && typeof input === 'object') {
89
+ return rename(input);
90
+ }
91
+ return input;
92
+ }
93
+ // ============================================================================
94
+ // core.limit
95
+ // ============================================================================
96
+ export function executeLimit(inputs) {
97
+ const items = inputs.input;
98
+ const count = inputs.count;
99
+ const offset = inputs.offset ?? 0;
100
+ if (!Array.isArray(items))
101
+ throw new Error('core.limit: input must be an array');
102
+ if (typeof count !== 'number')
103
+ throw new Error('core.limit: count is required');
104
+ return items.slice(offset, offset + count);
105
+ }
106
+ // ============================================================================
107
+ // core.sort
108
+ // ============================================================================
109
+ export function executeSortOperation(inputs) {
110
+ const items = inputs.input;
111
+ const field = inputs.field;
112
+ const direction = inputs.direction ?? 'asc';
113
+ if (!Array.isArray(items))
114
+ throw new Error('core.sort: input must be an array');
115
+ const sorted = [...items].sort((a, b) => {
116
+ const va = field && a && typeof a === 'object' ? a[field] : a;
117
+ const vb = field && b && typeof b === 'object' ? b[field] : b;
118
+ if (typeof va === 'number' && typeof vb === 'number')
119
+ return va - vb;
120
+ return String(va ?? '').localeCompare(String(vb ?? ''));
121
+ });
122
+ return direction === 'desc' ? sorted.reverse() : sorted;
123
+ }
124
+ //# sourceMappingURL=data-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-ops.js","sourceRoot":"","sources":["../../src/operations/data-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * core.datetime — Date/time operations.
3
+ */
4
+ export declare function executeDatetime(inputs: Record<string, unknown>): unknown;
5
+ //# sourceMappingURL=datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/operations/datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CA2DxE"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * core.datetime — Date/time operations.
3
+ */
4
+ export function executeDatetime(inputs) {
5
+ const operation = inputs.operation;
6
+ const date = inputs.date ? new Date(inputs.date) : new Date();
7
+ switch (operation) {
8
+ case 'now':
9
+ return new Date().toISOString();
10
+ case 'parse':
11
+ return date.toISOString();
12
+ case 'format': {
13
+ const fmt = inputs.format ?? 'iso';
14
+ if (fmt === 'iso')
15
+ return date.toISOString();
16
+ if (fmt === 'date')
17
+ return date.toISOString().split('T')[0];
18
+ if (fmt === 'time')
19
+ return date.toISOString().split('T')[1]?.replace('Z', '');
20
+ if (fmt === 'unix')
21
+ return Math.floor(date.getTime() / 1000);
22
+ if (fmt === 'unix_ms')
23
+ return date.getTime();
24
+ return date.toISOString();
25
+ }
26
+ case 'add': {
27
+ const amount = inputs.amount;
28
+ const unit = inputs.unit ?? 'days';
29
+ const ms = { ms: 1, seconds: 1000, minutes: 60000, hours: 3600000, days: 86400000, weeks: 604800000 };
30
+ const mult = ms[unit] ?? ms.days;
31
+ return new Date(date.getTime() + amount * mult).toISOString();
32
+ }
33
+ case 'subtract': {
34
+ const amount = inputs.amount;
35
+ const unit = inputs.unit ?? 'days';
36
+ const ms = { ms: 1, seconds: 1000, minutes: 60000, hours: 3600000, days: 86400000, weeks: 604800000 };
37
+ const mult = ms[unit] ?? ms.days;
38
+ return new Date(date.getTime() - amount * mult).toISOString();
39
+ }
40
+ case 'diff': {
41
+ const date2 = new Date(inputs.date2);
42
+ const unit = inputs.unit ?? 'days';
43
+ const diffMs = date.getTime() - date2.getTime();
44
+ const divisors = { ms: 1, seconds: 1000, minutes: 60000, hours: 3600000, days: 86400000 };
45
+ return diffMs / (divisors[unit] ?? divisors.days);
46
+ }
47
+ case 'start_of': {
48
+ const unit = inputs.unit ?? 'day';
49
+ const d = new Date(date);
50
+ if (unit === 'day') {
51
+ d.setHours(0, 0, 0, 0);
52
+ }
53
+ else if (unit === 'month') {
54
+ d.setDate(1);
55
+ d.setHours(0, 0, 0, 0);
56
+ }
57
+ else if (unit === 'year') {
58
+ d.setMonth(0, 1);
59
+ d.setHours(0, 0, 0, 0);
60
+ }
61
+ else if (unit === 'hour') {
62
+ d.setMinutes(0, 0, 0);
63
+ }
64
+ return d.toISOString();
65
+ }
66
+ case 'end_of': {
67
+ const unit = inputs.unit ?? 'day';
68
+ const d = new Date(date);
69
+ if (unit === 'day') {
70
+ d.setHours(23, 59, 59, 999);
71
+ }
72
+ else if (unit === 'month') {
73
+ d.setMonth(d.getMonth() + 1, 0);
74
+ d.setHours(23, 59, 59, 999);
75
+ }
76
+ else if (unit === 'year') {
77
+ d.setMonth(11, 31);
78
+ d.setHours(23, 59, 59, 999);
79
+ }
80
+ return d.toISOString();
81
+ }
82
+ default:
83
+ throw new Error(`core.datetime: unknown operation "${operation}"`);
84
+ }
85
+ }
86
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../src/operations/datetime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * core.extract — Nested path access with defaults.
3
+ */
4
+ import { ExecutionContext } from '../models.js';
5
+ export interface ExtractOperationInputs {
6
+ input: unknown;
7
+ path: string;
8
+ default?: unknown;
9
+ }
10
+ /**
11
+ * Extract values from nested objects safely.
12
+ *
13
+ * Example:
14
+ * ```yaml
15
+ * action: core.extract
16
+ * inputs:
17
+ * input: "{{ api_response }}"
18
+ * path: "data.users[0].email"
19
+ * default: "unknown@example.com"
20
+ * ```
21
+ */
22
+ export declare function executeExtract(inputs: ExtractOperationInputs, context: ExecutionContext): unknown;
23
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/operations/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAiBT"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * core.extract — Nested path access with defaults.
3
+ */
4
+ import { resolveTemplates, resolveVariablePath } from '../engine/variable-resolution.js';
5
+ /**
6
+ * Extract values from nested objects safely.
7
+ *
8
+ * Example:
9
+ * ```yaml
10
+ * action: core.extract
11
+ * inputs:
12
+ * input: "{{ api_response }}"
13
+ * path: "data.users[0].email"
14
+ * default: "unknown@example.com"
15
+ * ```
16
+ */
17
+ export function executeExtract(inputs, context) {
18
+ const input = resolveTemplates(inputs.input, context);
19
+ const path = inputs.path;
20
+ const defaultValue = inputs.default;
21
+ const tempContext = {
22
+ ...context,
23
+ variables: { ...context.variables, __extract_input: input },
24
+ };
25
+ const result = resolveVariablePath(`__extract_input.${path}`, tempContext);
26
+ if (result === undefined) {
27
+ return defaultValue !== undefined ? defaultValue : null;
28
+ }
29
+ return result;
30
+ }
31
+ //# sourceMappingURL=extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/operations/extract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAQzF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA8B,EAC9B,OAAyB;IAEzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,MAAM,WAAW,GAAG;QAClB,GAAG,OAAO;QACV,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE;KAC5D,CAAC;IAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,mBAAmB,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IAE3E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * core.format — Value formatting (date, number, string, currency, json).
3
+ */
4
+ import { ExecutionContext } from '../models.js';
5
+ export interface FormatOperationInputs {
6
+ value: unknown;
7
+ type: 'date' | 'number' | 'string' | 'currency' | 'json';
8
+ format?: string;
9
+ locale?: string;
10
+ currency?: string;
11
+ precision?: number;
12
+ }
13
+ export declare function executeFormat(inputs: FormatOperationInputs, context: ExecutionContext): string;
14
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/operations/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAiBR"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * core.format — Value formatting (date, number, string, currency, json).
3
+ */
4
+ import { resolveTemplates } from '../engine/variable-resolution.js';
5
+ export function executeFormat(inputs, context) {
6
+ const value = resolveTemplates(inputs.value, context);
7
+ switch (inputs.type) {
8
+ case 'date':
9
+ return formatDate(value, inputs.format);
10
+ case 'number':
11
+ return formatNumber(value, inputs.precision, inputs.locale);
12
+ case 'currency':
13
+ return formatCurrency(value, inputs.currency || 'USD', inputs.locale);
14
+ case 'string':
15
+ return formatString(value, inputs.format);
16
+ case 'json':
17
+ return JSON.stringify(value, null, 2);
18
+ default:
19
+ throw new Error(`Unknown format type: ${inputs.type}`);
20
+ }
21
+ }
22
+ function formatDate(value, format) {
23
+ let date;
24
+ if (value instanceof Date) {
25
+ date = value;
26
+ }
27
+ else if (typeof value === 'string' || typeof value === 'number') {
28
+ date = new Date(value);
29
+ }
30
+ else {
31
+ date = new Date();
32
+ }
33
+ if (isNaN(date.getTime()))
34
+ throw new Error('Invalid date value');
35
+ if (!format)
36
+ return date.toISOString();
37
+ let formatted = format;
38
+ formatted = formatted.replace('YYYY', date.getFullYear().toString());
39
+ formatted = formatted.replace('MM', String(date.getMonth() + 1).padStart(2, '0'));
40
+ formatted = formatted.replace('DD', String(date.getDate()).padStart(2, '0'));
41
+ formatted = formatted.replace('HH', String(date.getHours()).padStart(2, '0'));
42
+ formatted = formatted.replace('mm', String(date.getMinutes()).padStart(2, '0'));
43
+ formatted = formatted.replace('ss', String(date.getSeconds()).padStart(2, '0'));
44
+ return formatted;
45
+ }
46
+ function formatNumber(value, precision, locale) {
47
+ const num = Number(value);
48
+ if (isNaN(num))
49
+ throw new Error('Invalid number value');
50
+ if (precision !== undefined)
51
+ return num.toFixed(precision);
52
+ if (locale)
53
+ return num.toLocaleString(locale);
54
+ return num.toString();
55
+ }
56
+ function formatCurrency(value, currency, locale) {
57
+ const num = Number(value);
58
+ if (isNaN(num))
59
+ throw new Error('Invalid currency value');
60
+ return num.toLocaleString(locale || 'en-US', { style: 'currency', currency });
61
+ }
62
+ function formatString(value, format) {
63
+ const str = String(value);
64
+ if (!format)
65
+ return str;
66
+ switch (format.toLowerCase()) {
67
+ case 'upper':
68
+ case 'uppercase':
69
+ return str.toUpperCase();
70
+ case 'lower':
71
+ case 'lowercase':
72
+ return str.toLowerCase();
73
+ case 'title':
74
+ case 'titlecase':
75
+ return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase());
76
+ case 'capitalize':
77
+ return str.charAt(0).toUpperCase() + str.slice(1);
78
+ case 'trim':
79
+ return str.trim();
80
+ default:
81
+ return str;
82
+ }
83
+ }
84
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/operations/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Operations module — re-exports all operation implementations.
3
+ */
4
+ export { executeSet, type SetOperationInputs } from './set.js';
5
+ export { executeTransform, type TransformOperationInputs } from './transform.js';
6
+ export { executeExtract, type ExtractOperationInputs } from './extract.js';
7
+ export { executeFormat, type FormatOperationInputs } from './format.js';
8
+ export { executeAggregate, executeCompare, executeRenameKeys, executeLimit, executeSortOperation } from './data-ops.js';
9
+ export { executeCrypto } from './crypto.js';
10
+ export { executeDatetime } from './datetime.js';
11
+ export { executeParse } from './parse.js';
12
+ export { executeCompress, executeDecompress } from './compress.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Operations module — re-exports all operation implementations.
3
+ */
4
+ export { executeSet } from './set.js';
5
+ export { executeTransform } from './transform.js';
6
+ export { executeExtract } from './extract.js';
7
+ export { executeFormat } from './format.js';
8
+ export { executeAggregate, executeCompare, executeRenameKeys, executeLimit, executeSortOperation } from './data-ops.js';
9
+ export { executeCrypto } from './crypto.js';
10
+ export { executeDatetime } from './datetime.js';
11
+ export { executeParse } from './parse.js';
12
+ export { executeCompress, executeDecompress } from './compress.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAiC,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,cAAc,EAA+B,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,aAAa,EAA8B,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * core.parse — Parse structured data formats (json, csv, xml, yaml, url_params).
3
+ */
4
+ export declare function executeParse(inputs: Record<string, unknown>): unknown;
5
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/operations/parse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAoDrE"}