@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
package/dist/nunjucks-filters.js
CHANGED
|
@@ -1,587 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Custom Nunjucks Filters for marktoflow
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* Usage: {{ "a,b,c" | split(',') }} → ['a', 'b', 'c']
|
|
28
|
-
*/
|
|
29
|
-
export function split(value, delimiter = ',') {
|
|
30
|
-
return String(value ?? '').split(delimiter);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Convert to URL-friendly slug
|
|
34
|
-
* Usage: {{ "Hello World!" | slugify }} → "hello-world"
|
|
35
|
-
*/
|
|
36
|
-
export function slugify(value) {
|
|
37
|
-
return String(value ?? '')
|
|
38
|
-
.toLowerCase()
|
|
39
|
-
.replace(/[^a-z0-9]+/g, '-')
|
|
40
|
-
.replace(/^-|-$/g, '');
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Add prefix to string
|
|
44
|
-
* Usage: {{ "hello" | prefix('@') }} → "@hello"
|
|
45
|
-
*/
|
|
46
|
-
export function prefix(value, prefixStr) {
|
|
47
|
-
return prefixStr + String(value ?? '');
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Add suffix to string
|
|
51
|
-
* Usage: {{ "hello" | suffix('!') }} → "hello!"
|
|
52
|
-
*/
|
|
53
|
-
export function suffix(value, suffixStr) {
|
|
54
|
-
return String(value ?? '') + suffixStr;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Truncate string to length
|
|
58
|
-
* Usage: {{ "hello world" | truncate(5) }} → "hello..."
|
|
59
|
-
*/
|
|
60
|
-
export function truncate(value, length, ellipsis = '...') {
|
|
61
|
-
const str = String(value ?? '');
|
|
62
|
-
if (str.length <= length)
|
|
63
|
-
return str;
|
|
64
|
-
return str.slice(0, length) + ellipsis;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Extract substring
|
|
68
|
-
* Usage: {{ "hello world" | substring(0, 5) }} → "hello"
|
|
69
|
-
*/
|
|
70
|
-
export function substring(value, start, end) {
|
|
71
|
-
return String(value ?? '').substring(start, end);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Check if string/array contains value
|
|
75
|
-
* Usage: {{ "hello world" | contains('world') }} → true
|
|
76
|
-
*/
|
|
77
|
-
export function contains(value, search) {
|
|
78
|
-
if (typeof value === 'string') {
|
|
79
|
-
return value.includes(String(search));
|
|
80
|
-
}
|
|
81
|
-
if (Array.isArray(value)) {
|
|
82
|
-
return value.includes(search);
|
|
83
|
-
}
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
// ============================================================================
|
|
87
|
-
// Regex Filters (Breaking change from old =~, !~, // operators)
|
|
88
|
-
// ============================================================================
|
|
89
|
-
/**
|
|
90
|
-
* Match and extract using regex
|
|
91
|
-
* Usage: {{ value | match('/pattern/', 1) }} → capture group 1
|
|
92
|
-
* Usage: {{ value | match('/pattern/') }} → full match or first group
|
|
93
|
-
*
|
|
94
|
-
* Pattern format: '/pattern/flags' where flags are optional (gimsu)
|
|
95
|
-
*/
|
|
96
|
-
export function match(value, pattern, groupIndex) {
|
|
97
|
-
const str = String(value ?? '');
|
|
98
|
-
const { regex } = parseRegexPattern(pattern);
|
|
99
|
-
const result = str.match(regex);
|
|
100
|
-
if (!result)
|
|
101
|
-
return null;
|
|
102
|
-
// If group index specified, return that group
|
|
103
|
-
if (groupIndex !== undefined) {
|
|
104
|
-
return result[groupIndex] ?? null;
|
|
105
|
-
}
|
|
106
|
-
// If has named groups, return groups object
|
|
107
|
-
if (result.groups && Object.keys(result.groups).length > 0) {
|
|
108
|
-
return result.groups;
|
|
109
|
-
}
|
|
110
|
-
// If has capture groups, return first capture group
|
|
111
|
-
if (result.length > 1) {
|
|
112
|
-
return result[1];
|
|
113
|
-
}
|
|
114
|
-
// Return full match
|
|
115
|
-
return result[0];
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Negative match - returns true if pattern does NOT match
|
|
119
|
-
* Usage: {{ value | notMatch('/pattern/') }} → true/false
|
|
120
|
-
*/
|
|
121
|
-
export function notMatch(value, pattern) {
|
|
122
|
-
const str = String(value ?? '');
|
|
123
|
-
const { regex } = parseRegexPattern(pattern);
|
|
124
|
-
return !regex.test(str);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Replace using regex
|
|
128
|
-
* Usage: {{ value | regexReplace('/pattern/', 'replacement', 'g') }}
|
|
129
|
-
*
|
|
130
|
-
* Pattern format: '/pattern/' (without flags, add flags as 3rd arg)
|
|
131
|
-
* or '/pattern/flags' (with flags inline)
|
|
132
|
-
*/
|
|
133
|
-
export function regexReplace(value, pattern, replacement, flags) {
|
|
134
|
-
const str = String(value ?? '');
|
|
135
|
-
const parsed = parseRegexPattern(pattern);
|
|
136
|
-
// Merge flags (argument overrides inline flags if both provided)
|
|
137
|
-
const finalFlags = flags ?? parsed.flags;
|
|
138
|
-
const regex = new RegExp(parsed.pattern, finalFlags);
|
|
139
|
-
return str.replace(regex, replacement);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Parse a regex pattern string like '/pattern/flags'
|
|
143
|
-
*/
|
|
144
|
-
function parseRegexPattern(pattern) {
|
|
145
|
-
// Handle '/pattern/flags' format
|
|
146
|
-
const regexMatch = pattern.match(/^\/(.+)\/([gimsu]*)$/);
|
|
147
|
-
if (regexMatch) {
|
|
148
|
-
const [, p, f] = regexMatch;
|
|
149
|
-
return { pattern: p, flags: f, regex: new RegExp(p, f) };
|
|
150
|
-
}
|
|
151
|
-
// Plain pattern without slashes
|
|
152
|
-
return { pattern, flags: '', regex: new RegExp(pattern) };
|
|
153
|
-
}
|
|
154
|
-
// ============================================================================
|
|
155
|
-
// Object Filters
|
|
156
|
-
// ============================================================================
|
|
157
|
-
/**
|
|
158
|
-
* Get value at path
|
|
159
|
-
* Usage: {{ obj | path('user.name') }} → obj.user.name
|
|
160
|
-
*/
|
|
161
|
-
export function path(value, pathStr) {
|
|
162
|
-
if (typeof value !== 'object' || value === null) {
|
|
163
|
-
return undefined;
|
|
164
|
-
}
|
|
165
|
-
const keys = pathStr.split('.');
|
|
166
|
-
let result = value;
|
|
167
|
-
for (const key of keys) {
|
|
168
|
-
if (typeof result !== 'object' || result === null) {
|
|
169
|
-
return undefined;
|
|
170
|
-
}
|
|
171
|
-
result = result[key];
|
|
172
|
-
}
|
|
173
|
-
return result;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Get object keys
|
|
177
|
-
* Usage: {{ {a: 1, b: 2} | keys }} → ['a', 'b']
|
|
178
|
-
*/
|
|
179
|
-
export function keys(value) {
|
|
180
|
-
if (typeof value !== 'object' || value === null) {
|
|
181
|
-
return [];
|
|
182
|
-
}
|
|
183
|
-
return Object.keys(value);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Get object values
|
|
187
|
-
* Usage: {{ {a: 1, b: 2} | values }} → [1, 2]
|
|
188
|
-
*/
|
|
189
|
-
export function values(value) {
|
|
190
|
-
if (typeof value !== 'object' || value === null) {
|
|
191
|
-
return [];
|
|
192
|
-
}
|
|
193
|
-
return Object.values(value);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Get object entries (key-value pairs)
|
|
197
|
-
* Usage: {{ {a: 1, b: 2} | entries }} → [['a', 1], ['b', 2]]
|
|
198
|
-
*/
|
|
199
|
-
export function entries(value) {
|
|
200
|
-
if (typeof value !== 'object' || value === null) {
|
|
201
|
-
return [];
|
|
202
|
-
}
|
|
203
|
-
return Object.entries(value);
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Pick specific keys from object
|
|
207
|
-
* Usage: {{ obj | pick('a', 'c') }} → {a: 1, c: 3}
|
|
208
|
-
*/
|
|
209
|
-
export function pick(value, ...keysToPick) {
|
|
210
|
-
if (typeof value !== 'object' || value === null) {
|
|
211
|
-
return {};
|
|
212
|
-
}
|
|
213
|
-
const obj = value;
|
|
214
|
-
const result = {};
|
|
215
|
-
for (const key of keysToPick) {
|
|
216
|
-
if (key in obj) {
|
|
217
|
-
result[key] = obj[key];
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Omit specific keys from object
|
|
224
|
-
* Usage: {{ obj | omit('b') }} → {a: 1, c: 3}
|
|
225
|
-
*/
|
|
226
|
-
export function omit(value, ...keysToOmit) {
|
|
227
|
-
if (typeof value !== 'object' || value === null) {
|
|
228
|
-
return {};
|
|
229
|
-
}
|
|
230
|
-
const obj = value;
|
|
231
|
-
const result = {};
|
|
232
|
-
const omitSet = new Set(keysToOmit);
|
|
233
|
-
for (const [key, val] of Object.entries(obj)) {
|
|
234
|
-
if (!omitSet.has(key)) {
|
|
235
|
-
result[key] = val;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return result;
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Merge objects
|
|
242
|
-
* Usage: {{ {a: 1} | merge({b: 2}) }} → {a: 1, b: 2}
|
|
243
|
-
*/
|
|
244
|
-
export function merge(value, ...objects) {
|
|
245
|
-
if (typeof value !== 'object' || value === null) {
|
|
246
|
-
return {};
|
|
247
|
-
}
|
|
248
|
-
let result = { ...value };
|
|
249
|
-
for (const obj of objects) {
|
|
250
|
-
if (typeof obj === 'object' && obj !== null) {
|
|
251
|
-
result = { ...result, ...obj };
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return result;
|
|
255
|
-
}
|
|
256
|
-
// ============================================================================
|
|
257
|
-
// Array Filters
|
|
258
|
-
// ============================================================================
|
|
259
|
-
/**
|
|
260
|
-
* Get nth element (0-indexed)
|
|
261
|
-
* Usage: {{ [1, 2, 3] | nth(1) }} → 2
|
|
262
|
-
*/
|
|
263
|
-
export function nth(value, index) {
|
|
264
|
-
if (Array.isArray(value)) {
|
|
265
|
-
return value[index];
|
|
266
|
-
}
|
|
267
|
-
return value;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Get array length or object property count
|
|
271
|
-
* Usage: {{ [1, 2, 3] | count }} → 3
|
|
272
|
-
*/
|
|
273
|
-
export function count(value) {
|
|
274
|
-
if (Array.isArray(value)) {
|
|
275
|
-
return value.length;
|
|
276
|
-
}
|
|
277
|
-
if (typeof value === 'string') {
|
|
278
|
-
return value.length;
|
|
279
|
-
}
|
|
280
|
-
if (typeof value === 'object' && value !== null) {
|
|
281
|
-
const obj = value;
|
|
282
|
-
if ('length' in obj && typeof obj.length === 'number')
|
|
283
|
-
return obj.length;
|
|
284
|
-
if ('total' in obj && typeof obj.total === 'number')
|
|
285
|
-
return obj.total;
|
|
286
|
-
if ('count' in obj && typeof obj.count === 'number')
|
|
287
|
-
return obj.count;
|
|
288
|
-
return Object.keys(value).length;
|
|
289
|
-
}
|
|
290
|
-
return 0;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Sum array of numbers
|
|
294
|
-
* Usage: {{ [1, 2, 3] | sum }} → 6
|
|
295
|
-
*/
|
|
296
|
-
export function sum(value) {
|
|
297
|
-
if (!Array.isArray(value))
|
|
298
|
-
return 0;
|
|
299
|
-
return value.reduce((acc, val) => acc + Number(val), 0);
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Get unique values
|
|
303
|
-
* Usage: {{ [1, 2, 2, 3] | unique }} → [1, 2, 3]
|
|
304
|
-
*/
|
|
305
|
-
export function unique(value) {
|
|
306
|
-
if (!Array.isArray(value))
|
|
307
|
-
return [value];
|
|
308
|
-
return Array.from(new Set(value));
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Flatten array one level
|
|
312
|
-
* Usage: {{ [[1, 2], [3, 4]] | flatten }} → [1, 2, 3, 4]
|
|
313
|
-
*/
|
|
314
|
-
export function flatten(value) {
|
|
315
|
-
if (!Array.isArray(value))
|
|
316
|
-
return [value];
|
|
317
|
-
return value.flat(1);
|
|
318
|
-
}
|
|
319
|
-
// ============================================================================
|
|
320
|
-
// Date Filters
|
|
321
|
-
// ============================================================================
|
|
322
|
-
/**
|
|
323
|
-
* Get current timestamp
|
|
324
|
-
* Usage: {{ now() }} → 1706745600000
|
|
325
|
-
* Note: In Nunjucks, use as {{ now() }} (global function, not filter)
|
|
326
|
-
*/
|
|
327
|
-
export function now() {
|
|
328
|
-
return Date.now();
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Format date
|
|
332
|
-
* Usage: {{ timestamp | format_date('YYYY-MM-DD') }} → "2025-01-31"
|
|
333
|
-
*/
|
|
334
|
-
export function format_date(value, format = 'YYYY-MM-DD') {
|
|
335
|
-
let date;
|
|
336
|
-
if (value instanceof Date) {
|
|
337
|
-
date = value;
|
|
338
|
-
}
|
|
339
|
-
else if (typeof value === 'string' || typeof value === 'number') {
|
|
340
|
-
date = new Date(value);
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
date = new Date();
|
|
344
|
-
}
|
|
345
|
-
if (isNaN(date.getTime())) {
|
|
346
|
-
return 'Invalid Date';
|
|
347
|
-
}
|
|
348
|
-
let formatted = format;
|
|
349
|
-
formatted = formatted.replace('YYYY', date.getFullYear().toString());
|
|
350
|
-
formatted = formatted.replace('MM', String(date.getMonth() + 1).padStart(2, '0'));
|
|
351
|
-
formatted = formatted.replace('DD', String(date.getDate()).padStart(2, '0'));
|
|
352
|
-
formatted = formatted.replace('HH', String(date.getHours()).padStart(2, '0'));
|
|
353
|
-
formatted = formatted.replace('mm', String(date.getMinutes()).padStart(2, '0'));
|
|
354
|
-
formatted = formatted.replace('ss', String(date.getSeconds()).padStart(2, '0'));
|
|
355
|
-
return formatted;
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Add days to date
|
|
359
|
-
* Usage: {{ timestamp | add_days(7) }} → timestamp + 7 days
|
|
360
|
-
*/
|
|
361
|
-
export function add_days(value, days) {
|
|
362
|
-
const date = new Date(value);
|
|
363
|
-
if (isNaN(date.getTime()))
|
|
364
|
-
return 0;
|
|
365
|
-
date.setDate(date.getDate() + days);
|
|
366
|
-
return date.getTime();
|
|
367
|
-
}
|
|
368
|
-
/**
|
|
369
|
-
* Subtract days from date
|
|
370
|
-
* Usage: {{ timestamp | subtract_days(7) }} → timestamp - 7 days
|
|
371
|
-
*/
|
|
372
|
-
export function subtract_days(value, days) {
|
|
373
|
-
const date = new Date(value);
|
|
374
|
-
if (isNaN(date.getTime()))
|
|
375
|
-
return 0;
|
|
376
|
-
date.setDate(date.getDate() - days);
|
|
377
|
-
return date.getTime();
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Get date difference in days
|
|
381
|
-
* Usage: {{ date1 | diff_days(date2) }} → number of days
|
|
382
|
-
*/
|
|
383
|
-
export function diff_days(value, compareDate) {
|
|
384
|
-
const date1 = new Date(value);
|
|
385
|
-
const date2 = new Date(compareDate);
|
|
386
|
-
if (isNaN(date1.getTime()) || isNaN(date2.getTime()))
|
|
387
|
-
return 0;
|
|
388
|
-
const diffMs = date1.getTime() - date2.getTime();
|
|
389
|
-
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
390
|
-
}
|
|
391
|
-
// ============================================================================
|
|
392
|
-
// JSON Filters
|
|
393
|
-
// ============================================================================
|
|
394
|
-
/**
|
|
395
|
-
* Parse JSON string
|
|
396
|
-
* Usage: {{ '{"a":1}' | parse_json }} → {a: 1}
|
|
397
|
-
*/
|
|
398
|
-
export function parse_json(value) {
|
|
399
|
-
try {
|
|
400
|
-
return JSON.parse(String(value));
|
|
401
|
-
}
|
|
402
|
-
catch {
|
|
403
|
-
return null;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
/**
|
|
407
|
-
* Stringify to JSON
|
|
408
|
-
* Usage: {{ {a: 1} | to_json }} → '{"a":1}'
|
|
409
|
-
*/
|
|
410
|
-
export function to_json(value, pretty = false) {
|
|
411
|
-
return JSON.stringify(value, null, pretty ? 2 : 0);
|
|
412
|
-
}
|
|
413
|
-
// ============================================================================
|
|
414
|
-
// Type Check Filters
|
|
415
|
-
// ============================================================================
|
|
416
|
-
/**
|
|
417
|
-
* Check if value is array
|
|
418
|
-
*/
|
|
419
|
-
export function is_array(value) {
|
|
420
|
-
return Array.isArray(value);
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Check if value is object
|
|
424
|
-
*/
|
|
425
|
-
export function is_object(value) {
|
|
426
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Check if value is string
|
|
430
|
-
*/
|
|
431
|
-
export function is_string(value) {
|
|
432
|
-
return typeof value === 'string';
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Check if value is number
|
|
436
|
-
*/
|
|
437
|
-
export function is_number(value) {
|
|
438
|
-
return typeof value === 'number' && !isNaN(value);
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Check if value is empty
|
|
442
|
-
*/
|
|
443
|
-
export function is_empty(value) {
|
|
444
|
-
if (value === null || value === undefined)
|
|
445
|
-
return true;
|
|
446
|
-
if (typeof value === 'string')
|
|
447
|
-
return value.length === 0;
|
|
448
|
-
if (Array.isArray(value))
|
|
449
|
-
return value.length === 0;
|
|
450
|
-
if (typeof value === 'object')
|
|
451
|
-
return Object.keys(value).length === 0;
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Check if value is null
|
|
456
|
-
*/
|
|
457
|
-
export function is_null(value) {
|
|
458
|
-
return value === null;
|
|
459
|
-
}
|
|
460
|
-
// ============================================================================
|
|
461
|
-
// Logic Filters
|
|
462
|
-
// ============================================================================
|
|
463
|
-
/**
|
|
464
|
-
* Ternary operator
|
|
465
|
-
* Usage: {{ condition | ternary('yes', 'no') }}
|
|
466
|
-
*/
|
|
467
|
-
export function ternary(condition, trueVal, falseVal) {
|
|
468
|
-
return condition ? trueVal : falseVal;
|
|
469
|
-
}
|
|
470
|
-
/**
|
|
471
|
-
* Logical AND
|
|
472
|
-
* Usage: {{ true | and(1, 'value') }} → true
|
|
473
|
-
*/
|
|
474
|
-
export function and(value, ...values) {
|
|
475
|
-
if (!value)
|
|
476
|
-
return false;
|
|
477
|
-
for (const v of values) {
|
|
478
|
-
if (!v)
|
|
479
|
-
return false;
|
|
480
|
-
}
|
|
481
|
-
return true;
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Logical OR (return first truthy)
|
|
485
|
-
* Usage: {{ null | or('fallback') }} → "fallback"
|
|
486
|
-
*/
|
|
487
|
-
export function or(value, ...alternatives) {
|
|
488
|
-
if (value)
|
|
489
|
-
return value;
|
|
490
|
-
for (const alt of alternatives) {
|
|
491
|
-
if (alt)
|
|
492
|
-
return alt;
|
|
493
|
-
}
|
|
494
|
-
return null;
|
|
495
|
-
}
|
|
496
|
-
/**
|
|
497
|
-
* Logical NOT
|
|
498
|
-
* Usage: {{ true | not }} → false
|
|
499
|
-
*/
|
|
500
|
-
export function not(value) {
|
|
501
|
-
return !value;
|
|
502
|
-
}
|
|
503
|
-
// ============================================================================
|
|
504
|
-
// Math Filters (extending Nunjucks built-in abs)
|
|
505
|
-
// ============================================================================
|
|
506
|
-
/**
|
|
507
|
-
* Round to nearest integer or decimal places
|
|
508
|
-
* Usage: {{ 3.7 | round }} → 4
|
|
509
|
-
* Usage: {{ 3.756 | round(2) }} → 3.76
|
|
510
|
-
*/
|
|
511
|
-
export function round(value, decimals = 0) {
|
|
512
|
-
const num = Number(value);
|
|
513
|
-
const multiplier = Math.pow(10, decimals);
|
|
514
|
-
return Math.round(num * multiplier) / multiplier;
|
|
515
|
-
}
|
|
516
|
-
/**
|
|
517
|
-
* Round down
|
|
518
|
-
* Usage: {{ 3.7 | floor }} → 3
|
|
519
|
-
*/
|
|
520
|
-
export function floor(value) {
|
|
521
|
-
return Math.floor(Number(value));
|
|
522
|
-
}
|
|
523
|
-
/**
|
|
524
|
-
* Round up
|
|
525
|
-
* Usage: {{ 3.1 | ceil }} → 4
|
|
526
|
-
*/
|
|
527
|
-
export function ceil(value) {
|
|
528
|
-
return Math.ceil(Number(value));
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Get minimum value
|
|
532
|
-
* Usage: {{ [1, 2, 3] | min }} → 1
|
|
533
|
-
* Usage: {{ 5 | min(3) }} → 3
|
|
534
|
-
*/
|
|
535
|
-
export function min(value, ...values) {
|
|
536
|
-
if (Array.isArray(value)) {
|
|
537
|
-
return Math.min(...value.map((v) => Number(v)));
|
|
538
|
-
}
|
|
539
|
-
const nums = [Number(value), ...values.map((v) => Number(v))];
|
|
540
|
-
return Math.min(...nums);
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Get maximum value
|
|
544
|
-
* Usage: {{ [1, 2, 3] | max }} → 3
|
|
545
|
-
* Usage: {{ 3 | max(5) }} → 5
|
|
546
|
-
*/
|
|
547
|
-
export function max(value, ...values) {
|
|
548
|
-
if (Array.isArray(value)) {
|
|
549
|
-
return Math.max(...value.map((v) => Number(v)));
|
|
550
|
-
}
|
|
551
|
-
const nums = [Number(value), ...values.map((v) => Number(v))];
|
|
552
|
-
return Math.max(...nums);
|
|
553
|
-
}
|
|
554
|
-
/**
|
|
555
|
-
* Add two values numerically
|
|
556
|
-
* Usage: {{ value | add(5) }} → value + 5 (as numbers)
|
|
557
|
-
*/
|
|
558
|
-
export function add(value, amount) {
|
|
559
|
-
return Number(value) + Number(amount);
|
|
560
|
-
}
|
|
561
|
-
/**
|
|
562
|
-
* Subtract two values numerically
|
|
563
|
-
* Usage: {{ value | subtract(5) }} → value - 5 (as numbers)
|
|
564
|
-
*/
|
|
565
|
-
export function subtract(value, amount) {
|
|
566
|
-
return Number(value) - Number(amount);
|
|
567
|
-
}
|
|
568
|
-
/**
|
|
569
|
-
* Multiply two values numerically
|
|
570
|
-
* Usage: {{ value | multiply(5) }} → value * 5 (as numbers)
|
|
571
|
-
*/
|
|
572
|
-
export function multiply(value, amount) {
|
|
573
|
-
return Number(value) * Number(amount);
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Divide two values numerically
|
|
577
|
-
* Usage: {{ value | divide(5) }} → value / 5 (as numbers)
|
|
578
|
-
*/
|
|
579
|
-
export function divide(value, amount) {
|
|
580
|
-
return Number(value) / Number(amount);
|
|
581
|
-
}
|
|
582
|
-
// ============================================================================
|
|
583
|
-
// Filter Registration
|
|
584
|
-
// ============================================================================
|
|
4
|
+
* Thin registration layer — all implementations live in ./filters/.
|
|
5
|
+
*/
|
|
6
|
+
// Re-export all filters for backward compatibility
|
|
7
|
+
export {
|
|
8
|
+
// String
|
|
9
|
+
split, slugify, prefix, suffix, truncate, substring, contains,
|
|
10
|
+
// Regex
|
|
11
|
+
match, notMatch, regexReplace,
|
|
12
|
+
// Object
|
|
13
|
+
path, keys, values, entries, pick, omit, merge,
|
|
14
|
+
// Array
|
|
15
|
+
nth, count, sum, unique, flatten,
|
|
16
|
+
// Date
|
|
17
|
+
now, format_date, add_days, subtract_days, diff_days,
|
|
18
|
+
// JSON
|
|
19
|
+
parse_json, to_json,
|
|
20
|
+
// Type checks
|
|
21
|
+
is_array, is_object, is_string, is_number, is_empty, is_null,
|
|
22
|
+
// Logic
|
|
23
|
+
ternary, and, or, not,
|
|
24
|
+
// Math
|
|
25
|
+
round, floor, ceil, min, max, add, subtract, multiply, divide, } from './filters/index.js';
|
|
26
|
+
import { split, slugify, prefix, suffix, truncate, substring, contains, match, notMatch, regexReplace, path, keys, values, entries, pick, omit, merge, nth, count, sum, unique, flatten, now, format_date, add_days, subtract_days, diff_days, parse_json, to_json, is_array, is_object, is_string, is_number, is_empty, is_null, ternary, and, or, not, round, floor, ceil, min, max, add, subtract, multiply, divide, } from './filters/index.js';
|
|
585
27
|
/**
|
|
586
28
|
* Register all custom filters on a Nunjucks environment
|
|
587
29
|
*/
|
|
@@ -594,7 +36,7 @@ export function registerFilters(env) {
|
|
|
594
36
|
env.addFilter('truncate', truncate);
|
|
595
37
|
env.addFilter('substring', substring);
|
|
596
38
|
env.addFilter('contains', contains);
|
|
597
|
-
// Regex filters
|
|
39
|
+
// Regex filters
|
|
598
40
|
env.addFilter('match', match);
|
|
599
41
|
env.addFilter('notMatch', notMatch);
|
|
600
42
|
env.addFilter('regexReplace', regexReplace);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nunjucks-filters.js","sourceRoot":"","sources":["../src/nunjucks-filters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nunjucks-filters.js","sourceRoot":"","sources":["../src/nunjucks-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core.compress / core.decompress — Compression operations.
|
|
3
|
+
*/
|
|
4
|
+
export declare function executeCompress(inputs: Record<string, unknown>): unknown;
|
|
5
|
+
export declare function executeDecompress(inputs: Record<string, unknown>): unknown;
|
|
6
|
+
//# sourceMappingURL=compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../src/operations/compress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAgBxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAgB1E"}
|