@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.
- package/README.md +69 -6
- package/dist/built-in-operations.d.ts +2 -136
- package/dist/built-in-operations.d.ts.map +1 -1
- package/dist/built-in-operations.js +7 -743
- package/dist/built-in-operations.js.map +1 -1
- package/dist/engine/conditions.d.ts +29 -0
- package/dist/engine/conditions.d.ts.map +1 -0
- package/dist/engine/conditions.js +109 -0
- package/dist/engine/conditions.js.map +1 -0
- package/dist/engine/control-flow.d.ts +35 -0
- package/dist/engine/control-flow.d.ts.map +1 -0
- package/dist/engine/control-flow.js +653 -0
- package/dist/engine/control-flow.js.map +1 -0
- package/dist/engine/index.d.ts +12 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +11 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/retry.d.ts +35 -0
- package/dist/engine/retry.d.ts.map +1 -0
- package/dist/engine/retry.js +86 -0
- package/dist/engine/retry.js.map +1 -0
- package/dist/engine/subworkflow.d.ts +31 -0
- package/dist/engine/subworkflow.d.ts.map +1 -0
- package/dist/engine/subworkflow.js +240 -0
- package/dist/engine/subworkflow.js.map +1 -0
- package/dist/engine/types.d.ts +55 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +5 -0
- package/dist/{secrets → engine}/types.js.map +1 -1
- package/dist/engine/variable-resolution.d.ts +29 -0
- package/dist/engine/variable-resolution.d.ts.map +1 -0
- package/dist/engine/variable-resolution.js +130 -0
- package/dist/engine/variable-resolution.js.map +1 -0
- package/dist/engine.d.ts +17 -211
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +84 -1351
- package/dist/engine.js.map +1 -1
- package/dist/file-operations.js +1 -1
- package/dist/file-operations.js.map +1 -1
- package/dist/filters/array.d.ts +9 -0
- package/dist/filters/array.d.ts.map +1 -0
- package/dist/filters/array.js +41 -0
- package/dist/filters/array.js.map +1 -0
- package/dist/filters/date.d.ts +9 -0
- package/dist/filters/date.d.ts.map +1 -0
- package/dist/filters/date.js +51 -0
- package/dist/filters/date.js.map +1 -0
- package/dist/filters/index.d.ts +13 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/index.js +13 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/filters/json.d.ts +6 -0
- package/dist/filters/json.d.ts.map +1 -0
- package/dist/filters/json.js +15 -0
- package/dist/filters/json.js.map +1 -0
- package/dist/filters/logic.d.ts +8 -0
- package/dist/filters/logic.d.ts.map +1 -0
- package/dist/filters/logic.js +28 -0
- package/dist/filters/logic.js.map +1 -0
- package/dist/filters/math.d.ts +13 -0
- package/dist/filters/math.d.ts.map +1 -0
- package/dist/filters/math.js +39 -0
- package/dist/filters/math.js.map +1 -0
- package/dist/filters/object.d.ts +11 -0
- package/dist/filters/object.d.ts.map +1 -0
- package/dist/filters/object.js +64 -0
- package/dist/filters/object.js.map +1 -0
- package/dist/filters/regex.d.ts +7 -0
- package/dist/filters/regex.d.ts.map +1 -0
- package/dist/filters/regex.js +38 -0
- package/dist/filters/regex.js.map +1 -0
- package/dist/filters/string.d.ts +11 -0
- package/dist/filters/string.d.ts.map +1 -0
- package/dist/filters/string.js +35 -0
- package/dist/filters/string.js.map +1 -0
- package/dist/filters/type-checks.d.ts +10 -0
- package/dist/filters/type-checks.d.ts.map +1 -0
- package/dist/filters/type-checks.js +30 -0
- package/dist/filters/type-checks.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/nunjucks-filters.d.ts +2 -261
- package/dist/nunjucks-filters.d.ts.map +1 -1
- package/dist/nunjucks-filters.js +24 -582
- package/dist/nunjucks-filters.js.map +1 -1
- package/dist/operations/compress.d.ts +6 -0
- package/dist/operations/compress.d.ts.map +1 -0
- package/dist/operations/compress.js +36 -0
- package/dist/operations/compress.js.map +1 -0
- package/dist/operations/crypto.d.ts +5 -0
- package/dist/operations/crypto.d.ts.map +1 -0
- package/dist/operations/crypto.js +61 -0
- package/dist/operations/crypto.js.map +1 -0
- package/dist/operations/data-ops.d.ts +10 -0
- package/dist/operations/data-ops.d.ts.map +1 -0
- package/dist/operations/data-ops.js +124 -0
- package/dist/operations/data-ops.js.map +1 -0
- package/dist/operations/datetime.d.ts +5 -0
- package/dist/operations/datetime.d.ts.map +1 -0
- package/dist/operations/datetime.js +86 -0
- package/dist/operations/datetime.js.map +1 -0
- package/dist/operations/extract.d.ts +23 -0
- package/dist/operations/extract.d.ts.map +1 -0
- package/dist/operations/extract.js +31 -0
- package/dist/operations/extract.js.map +1 -0
- package/dist/operations/format.d.ts +14 -0
- package/dist/operations/format.d.ts.map +1 -0
- package/dist/operations/format.js +84 -0
- package/dist/operations/format.js.map +1 -0
- package/dist/operations/index.d.ts +13 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +13 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/parse.d.ts +5 -0
- package/dist/operations/parse.d.ts.map +1 -0
- package/dist/operations/parse.js +59 -0
- package/dist/operations/parse.js.map +1 -0
- package/dist/operations/set.d.ts +21 -0
- package/dist/operations/set.d.ts.map +1 -0
- package/dist/operations/set.js +25 -0
- package/dist/operations/set.js.map +1 -0
- package/dist/operations/transform.d.ts +15 -0
- package/dist/operations/transform.d.ts.map +1 -0
- package/dist/operations/transform.js +110 -0
- package/dist/operations/transform.js.map +1 -0
- package/dist/parallel.d.ts +114 -0
- package/dist/parallel.d.ts.map +1 -0
- package/dist/parallel.js +325 -0
- package/dist/parallel.js.map +1 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +2 -0
- package/dist/parser.js.map +1 -1
- package/dist/routing.js +2 -2
- package/dist/routing.js.map +1 -1
- package/dist/sdk-registry.d.ts.map +1 -1
- package/dist/sdk-registry.js +9 -3
- package/dist/sdk-registry.js.map +1 -1
- package/dist/utils/duration.d.ts +23 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +41 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/errors.d.ts +20 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +37 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/workflow-templates.d.ts +80 -0
- package/dist/workflow-templates.d.ts.map +1 -0
- package/dist/workflow-templates.js +248 -0
- package/dist/workflow-templates.js.map +1 -0
- package/package.json +30 -5
- package/dist/secrets/index.d.ts +0 -12
- package/dist/secrets/index.d.ts.map +0 -1
- package/dist/secrets/index.js +0 -11
- package/dist/secrets/index.js.map +0 -1
- package/dist/secrets/providers/aws.d.ts +0 -32
- package/dist/secrets/providers/aws.d.ts.map +0 -1
- package/dist/secrets/providers/aws.js +0 -118
- package/dist/secrets/providers/aws.js.map +0 -1
- package/dist/secrets/providers/azure.d.ts +0 -40
- package/dist/secrets/providers/azure.d.ts.map +0 -1
- package/dist/secrets/providers/azure.js +0 -170
- package/dist/secrets/providers/azure.js.map +0 -1
- package/dist/secrets/providers/env.d.ts +0 -26
- package/dist/secrets/providers/env.d.ts.map +0 -1
- package/dist/secrets/providers/env.js +0 -59
- package/dist/secrets/providers/env.js.map +0 -1
- package/dist/secrets/providers/vault.d.ts +0 -39
- package/dist/secrets/providers/vault.d.ts.map +0 -1
- package/dist/secrets/providers/vault.js +0 -180
- package/dist/secrets/providers/vault.js.map +0 -1
- package/dist/secrets/secret-manager.d.ts +0 -72
- package/dist/secrets/secret-manager.d.ts.map +0 -1
- package/dist/secrets/secret-manager.js +0 -226
- package/dist/secrets/secret-manager.js.map +0 -1
- package/dist/secrets/types.d.ts +0 -105
- package/dist/secrets/types.d.ts.map +0 -1
- 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 @@
|
|
|
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 @@
|
|
|
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":"AAAA;;GAEG;AAEH,MAAM,UAAU,eAAe,CAAC,MAA+B;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAmB,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAExE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,GAAG,GAAI,MAAM,CAAC,MAAiB,IAAI,KAAK,CAAC;YAC/C,IAAI,GAAG,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9E,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7D,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;YACvC,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,MAAM,CAAC;YAC/C,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACtG,MAAM,IAAI,GAAG,EAAE,CAAC,IAAuB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;YACpD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;YACvC,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,MAAM,CAAC;YAC/C,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACtG,MAAM,IAAI,GAAG,EAAE,CAAC,IAAuB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;YACpD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,MAAM,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC1F,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,IAA6B,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,KAAK,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC1C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC/D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAClE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;YACpD,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,KAAK,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;iBAC/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;iBACvF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAC9E,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,GAAG,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -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 @@
|
|
|
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"}
|