@n8n/expression-runtime 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bridge/bridge-messages.d.ts +8 -8
- package/dist/cjs/bridge/bridge-messages.js +234 -244
- package/dist/cjs/bridge/bridge-messages.js.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/cjs/bridge/isolated-vm-bridge.js +633 -643
- package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/evaluator/error-classification.js +15 -25
- package/dist/cjs/evaluator/error-classification.js.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts +7 -1
- package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/cjs/evaluator/expression-evaluator.js +152 -155
- package/dist/cjs/evaluator/expression-evaluator.js.map +1 -1
- package/dist/cjs/evaluator/lru-cache.d.ts.map +1 -1
- package/dist/cjs/evaluator/lru-cache.js +35 -45
- package/dist/cjs/evaluator/lru-cache.js.map +1 -1
- package/dist/cjs/extensions/array-extensions.js +589 -599
- package/dist/cjs/extensions/array-extensions.js.map +1 -1
- package/dist/cjs/extensions/boolean-extensions.js +38 -48
- package/dist/cjs/extensions/boolean-extensions.js.map +1 -1
- package/dist/cjs/extensions/date-extensions.js +500 -510
- package/dist/cjs/extensions/date-extensions.js.map +1 -1
- package/dist/cjs/extensions/expression-extension-error.d.ts.map +1 -1
- package/dist/cjs/extensions/expression-extension-error.js +12 -22
- package/dist/cjs/extensions/expression-extension-error.js.map +1 -1
- package/dist/cjs/extensions/extend.js +162 -172
- package/dist/cjs/extensions/extend.js.map +1 -1
- package/dist/cjs/extensions/extensions.js +2 -12
- package/dist/cjs/extensions/function-extensions.d.ts +10 -18
- package/dist/cjs/extensions/function-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/function-extensions.js +78 -88
- package/dist/cjs/extensions/function-extensions.js.map +1 -1
- package/dist/cjs/extensions/number-extensions.js +225 -235
- package/dist/cjs/extensions/number-extensions.js.map +1 -1
- package/dist/cjs/extensions/object-extensions.js +286 -296
- package/dist/cjs/extensions/object-extensions.js.map +1 -1
- package/dist/cjs/extensions/string-extensions.d.ts +1 -1
- package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/string-extensions.js +758 -768
- package/dist/cjs/extensions/string-extensions.js.map +1 -1
- package/dist/cjs/extensions/utils.d.ts.map +1 -1
- package/dist/cjs/extensions/utils.js +28 -38
- package/dist/cjs/extensions/utils.js.map +1 -1
- package/dist/cjs/index.js +32 -42
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/observability/metrics.d.ts +27 -27
- package/dist/cjs/observability/metrics.d.ts.map +1 -1
- package/dist/cjs/observability/metrics.js +59 -69
- package/dist/cjs/observability/metrics.js.map +1 -1
- package/dist/cjs/observability/noop-provider.js +28 -38
- package/dist/cjs/observability/noop-provider.js.map +1 -1
- package/dist/cjs/pool/idle-scaling-pool.d.ts.map +1 -1
- package/dist/cjs/pool/idle-scaling-pool.js +134 -144
- package/dist/cjs/pool/idle-scaling-pool.js.map +1 -1
- package/dist/cjs/pool/isolate-pool.d.ts.map +1 -1
- package/dist/cjs/pool/isolate-pool.js +101 -111
- package/dist/cjs/pool/isolate-pool.js.map +1 -1
- package/dist/cjs/runtime/context.js +418 -428
- package/dist/cjs/runtime/context.js.map +1 -1
- package/dist/cjs/runtime/index.js +26 -36
- package/dist/cjs/runtime/index.js.map +1 -1
- package/dist/cjs/runtime/jmespath.js +72 -82
- package/dist/cjs/runtime/jmespath.js.map +1 -1
- package/dist/cjs/runtime/lazy-proxy.js +238 -248
- package/dist/cjs/runtime/lazy-proxy.js.map +1 -1
- package/dist/cjs/runtime/safe-globals.d.ts.map +1 -1
- package/dist/cjs/runtime/safe-globals.js +134 -144
- package/dist/cjs/runtime/safe-globals.js.map +1 -1
- package/dist/cjs/runtime/serialize.js +54 -64
- package/dist/cjs/runtime/serialize.js.map +1 -1
- package/dist/cjs/runtime/utils.js +20 -30
- package/dist/cjs/runtime/utils.js.map +1 -1
- package/dist/cjs/types/bridge.js +15 -25
- package/dist/cjs/types/bridge.js.map +1 -1
- package/dist/cjs/types/evaluator.d.ts +5 -1
- package/dist/cjs/types/evaluator.d.ts.map +1 -1
- package/dist/cjs/types/evaluator.js +35 -45
- package/dist/cjs/types/evaluator.js.map +1 -1
- package/dist/cjs/types/index.js +14 -24
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/runtime.d.ts.map +1 -1
- package/dist/cjs/types/runtime.js +27 -37
- package/dist/cjs/types/runtime.js.map +1 -1
- package/dist/esm/bridge/bridge-messages.d.ts +8 -8
- package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -1
- package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -1
- package/dist/esm/build.tsbuildinfo +1 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts +7 -1
- package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -1
- package/dist/esm/evaluator/expression-evaluator.js +8 -1
- package/dist/esm/evaluator/expression-evaluator.js.map +1 -1
- package/dist/esm/evaluator/lru-cache.d.ts.map +1 -1
- package/dist/esm/evaluator/lru-cache.js.map +1 -1
- package/dist/esm/extensions/expression-extension-error.d.ts.map +1 -1
- package/dist/esm/extensions/function-extensions.d.ts +10 -18
- package/dist/esm/extensions/function-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/number-extensions.js.map +1 -1
- package/dist/esm/extensions/string-extensions.d.ts +1 -1
- package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/string-extensions.js.map +1 -1
- package/dist/esm/extensions/utils.d.ts.map +1 -1
- package/dist/esm/observability/metrics.d.ts +27 -27
- package/dist/esm/observability/metrics.d.ts.map +1 -1
- package/dist/esm/pool/idle-scaling-pool.d.ts.map +1 -1
- package/dist/esm/pool/idle-scaling-pool.js.map +1 -1
- package/dist/esm/pool/isolate-pool.d.ts.map +1 -1
- package/dist/esm/pool/isolate-pool.js.map +1 -1
- package/dist/esm/runtime/lazy-proxy.js.map +1 -1
- package/dist/esm/runtime/safe-globals.d.ts.map +1 -1
- package/dist/esm/types/evaluator.d.ts +5 -1
- package/dist/esm/types/evaluator.d.ts.map +1 -1
- package/dist/esm/types/evaluator.js.map +1 -1
- package/dist/esm/types/runtime.d.ts.map +1 -1
- package/dist/esm/types/runtime.js.map +1 -1
- package/package.json +7 -6
|
@@ -1,244 +1,234 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.numberExtensions = void 0;
|
|
4
|
+
exports.toDateTime = toDateTime;
|
|
5
|
+
const luxon_1 = require("luxon");
|
|
6
|
+
const expression_extension_error_1 = require("./expression-extension-error");
|
|
7
|
+
// DIVERGENCE from packages/workflow/src/extensions/number-extensions.ts:
|
|
8
|
+
// The original uses Intl.NumberFormat which is a Web API unavailable inside the
|
|
9
|
+
// V8 isolate. toLocaleString is an ECMAScript built-in available in all V8
|
|
10
|
+
// contexts and produces the same output.
|
|
11
|
+
function format(value, extraArgs) {
|
|
12
|
+
const [locales = 'en-US', config = {}] = extraArgs;
|
|
13
|
+
try {
|
|
14
|
+
return value.toLocaleString(locales, config);
|
|
5
15
|
}
|
|
6
|
-
|
|
7
|
-
|
|
16
|
+
catch {
|
|
17
|
+
return String(value);
|
|
8
18
|
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
exports.toDateTime = toDateTime;
|
|
14
|
-
const luxon_1 = require("luxon");
|
|
15
|
-
const expression_extension_error_1 = require("./expression-extension-error");
|
|
16
|
-
// DIVERGENCE from packages/workflow/src/extensions/number-extensions.ts:
|
|
17
|
-
// The original uses Intl.NumberFormat which is a Web API unavailable inside the
|
|
18
|
-
// V8 isolate. toLocaleString is an ECMAScript built-in available in all V8
|
|
19
|
-
// contexts and produces the same output.
|
|
20
|
-
function format(value, extraArgs) {
|
|
21
|
-
const [locales = 'en-US', config = {}] = extraArgs;
|
|
22
|
-
try {
|
|
23
|
-
return value.toLocaleString(locales, config);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return String(value);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function isEven(value) {
|
|
30
|
-
if (!Number.isInteger(value)) {
|
|
31
|
-
throw new expression_extension_error_1.ExpressionExtensionError('isEven() is only callable on integers');
|
|
32
|
-
}
|
|
33
|
-
return value % 2 === 0;
|
|
34
|
-
}
|
|
35
|
-
function isOdd(value) {
|
|
36
|
-
if (!Number.isInteger(value)) {
|
|
37
|
-
throw new expression_extension_error_1.ExpressionExtensionError('isOdd() is only callable on integers');
|
|
38
|
-
}
|
|
39
|
-
return Math.abs(value) % 2 === 1;
|
|
40
|
-
}
|
|
41
|
-
function floor(value) {
|
|
42
|
-
return Math.floor(value);
|
|
43
|
-
}
|
|
44
|
-
function ceil(value) {
|
|
45
|
-
return Math.ceil(value);
|
|
46
|
-
}
|
|
47
|
-
function abs(value) {
|
|
48
|
-
return Math.abs(value);
|
|
19
|
+
}
|
|
20
|
+
function isEven(value) {
|
|
21
|
+
if (!Number.isInteger(value)) {
|
|
22
|
+
throw new expression_extension_error_1.ExpressionExtensionError('isEven() is only callable on integers');
|
|
49
23
|
}
|
|
50
|
-
|
|
51
|
-
|
|
24
|
+
return value % 2 === 0;
|
|
25
|
+
}
|
|
26
|
+
function isOdd(value) {
|
|
27
|
+
if (!Number.isInteger(value)) {
|
|
28
|
+
throw new expression_extension_error_1.ExpressionExtensionError('isOdd() is only callable on integers');
|
|
52
29
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
30
|
+
return Math.abs(value) % 2 === 1;
|
|
31
|
+
}
|
|
32
|
+
function floor(value) {
|
|
33
|
+
return Math.floor(value);
|
|
34
|
+
}
|
|
35
|
+
function ceil(value) {
|
|
36
|
+
return Math.ceil(value);
|
|
37
|
+
}
|
|
38
|
+
function abs(value) {
|
|
39
|
+
return Math.abs(value);
|
|
40
|
+
}
|
|
41
|
+
function isInteger(value) {
|
|
42
|
+
return Number.isInteger(value);
|
|
43
|
+
}
|
|
44
|
+
function round(value, extraArgs) {
|
|
45
|
+
const [decimalPlaces = 0] = extraArgs;
|
|
46
|
+
return +value.toFixed(decimalPlaces);
|
|
47
|
+
}
|
|
48
|
+
function toBoolean(value) {
|
|
49
|
+
return value !== 0;
|
|
50
|
+
}
|
|
51
|
+
function toInt(value) {
|
|
52
|
+
return round(value, []);
|
|
53
|
+
}
|
|
54
|
+
function toFloat(value) {
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
function toDateTime(value, extraArgs) {
|
|
58
|
+
const [valueFormat = 'ms'] = extraArgs;
|
|
59
|
+
if (!['ms', 's', 'us', 'excel'].includes(valueFormat)) {
|
|
60
|
+
throw new expression_extension_error_1.ExpressionExtensionError(`Unsupported format '${String(valueFormat)}'. toDateTime() supports 'ms', 's', 'us' and 'excel'.`);
|
|
56
61
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
function toDateTime(value, extraArgs) {
|
|
67
|
-
const [valueFormat = 'ms'] = extraArgs;
|
|
68
|
-
if (!['ms', 's', 'us', 'excel'].includes(valueFormat)) {
|
|
69
|
-
throw new expression_extension_error_1.ExpressionExtensionError(`Unsupported format '${String(valueFormat)}'. toDateTime() supports 'ms', 's', 'us' and 'excel'.`);
|
|
70
|
-
}
|
|
71
|
-
switch (valueFormat) {
|
|
72
|
-
// Excel format is days since 1900
|
|
73
|
-
// There is a bug where 1900 is incorrectly treated as a leap year
|
|
74
|
-
case 'excel': {
|
|
75
|
-
const DAYS_BETWEEN_1900_1970 = 25567;
|
|
76
|
-
const DAYS_LEAP_YEAR_BUG_ADJUST = 2;
|
|
77
|
-
const SECONDS_IN_DAY = 86_400;
|
|
78
|
-
return luxon_1.DateTime.fromSeconds((value - (DAYS_BETWEEN_1900_1970 + DAYS_LEAP_YEAR_BUG_ADJUST)) * SECONDS_IN_DAY);
|
|
79
|
-
}
|
|
80
|
-
case 's':
|
|
81
|
-
return luxon_1.DateTime.fromSeconds(value);
|
|
82
|
-
case 'us':
|
|
83
|
-
return luxon_1.DateTime.fromMillis(value / 1000);
|
|
84
|
-
case 'ms':
|
|
85
|
-
default:
|
|
86
|
-
return luxon_1.DateTime.fromMillis(value);
|
|
62
|
+
switch (valueFormat) {
|
|
63
|
+
// Excel format is days since 1900
|
|
64
|
+
// There is a bug where 1900 is incorrectly treated as a leap year
|
|
65
|
+
case 'excel': {
|
|
66
|
+
const DAYS_BETWEEN_1900_1970 = 25567;
|
|
67
|
+
const DAYS_LEAP_YEAR_BUG_ADJUST = 2;
|
|
68
|
+
const SECONDS_IN_DAY = 86_400;
|
|
69
|
+
return luxon_1.DateTime.fromSeconds((value - (DAYS_BETWEEN_1900_1970 + DAYS_LEAP_YEAR_BUG_ADJUST)) * SECONDS_IN_DAY);
|
|
87
70
|
}
|
|
71
|
+
case 's':
|
|
72
|
+
return luxon_1.DateTime.fromSeconds(value);
|
|
73
|
+
case 'us':
|
|
74
|
+
return luxon_1.DateTime.fromMillis(value / 1000);
|
|
75
|
+
case 'ms':
|
|
76
|
+
default:
|
|
77
|
+
return luxon_1.DateTime.fromMillis(value);
|
|
88
78
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
],
|
|
203
|
-
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toDateTime',
|
|
204
|
-
};
|
|
205
|
-
abs.doc = {
|
|
206
|
-
name: 'abs',
|
|
207
|
-
description: "Returns the number's absolute value, i.e. removes any minus sign",
|
|
208
|
-
examples: [
|
|
209
|
-
{ example: '(-1.7).abs()', evaluated: '1.7' },
|
|
210
|
-
{ example: '(1.7).abs()', evaluated: '1.7' },
|
|
211
|
-
],
|
|
212
|
-
returnType: 'number',
|
|
213
|
-
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-abs',
|
|
214
|
-
};
|
|
215
|
-
isInteger.doc = {
|
|
216
|
-
name: 'isInteger',
|
|
217
|
-
description: 'Returns <code>true</code> if the number is a whole number',
|
|
218
|
-
examples: [
|
|
219
|
-
{ example: '(4).isInteger()', evaluated: 'true' },
|
|
220
|
-
{ example: '(4.12).isInteger()', evaluated: 'false' },
|
|
221
|
-
{ example: '(-4).isInteger()', evaluated: 'true' },
|
|
222
|
-
],
|
|
223
|
-
returnType: 'boolean',
|
|
224
|
-
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isInteger',
|
|
225
|
-
};
|
|
226
|
-
exports.numberExtensions = {
|
|
227
|
-
typeName: 'Number',
|
|
228
|
-
functions: {
|
|
229
|
-
ceil,
|
|
230
|
-
floor,
|
|
231
|
-
format,
|
|
232
|
-
round,
|
|
233
|
-
abs,
|
|
234
|
-
isInteger,
|
|
235
|
-
isEven,
|
|
236
|
-
isOdd,
|
|
237
|
-
toBoolean,
|
|
238
|
-
toInt,
|
|
239
|
-
toFloat,
|
|
240
|
-
toDateTime,
|
|
79
|
+
}
|
|
80
|
+
ceil.doc = {
|
|
81
|
+
name: 'ceil',
|
|
82
|
+
description: 'Rounds the number up to the next whole number',
|
|
83
|
+
examples: [{ example: '(1.234).ceil()', evaluated: '2' }],
|
|
84
|
+
returnType: 'number',
|
|
85
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-ceil',
|
|
86
|
+
};
|
|
87
|
+
floor.doc = {
|
|
88
|
+
name: 'floor',
|
|
89
|
+
description: 'Rounds the number down to the nearest whole number',
|
|
90
|
+
examples: [{ example: '(1.234).floor()', evaluated: '1' }],
|
|
91
|
+
returnType: 'number',
|
|
92
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-floor',
|
|
93
|
+
};
|
|
94
|
+
isEven.doc = {
|
|
95
|
+
name: 'isEven',
|
|
96
|
+
description: "Returns <code>true</code> if the number is even or <code>false</code> if not. Throws an error if the number isn't a whole number.",
|
|
97
|
+
examples: [
|
|
98
|
+
{ example: '(33).isEven()', evaluated: 'false' },
|
|
99
|
+
{ example: '(42).isEven()', evaluated: 'true' },
|
|
100
|
+
],
|
|
101
|
+
returnType: 'boolean',
|
|
102
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isEven',
|
|
103
|
+
};
|
|
104
|
+
isOdd.doc = {
|
|
105
|
+
name: 'isOdd',
|
|
106
|
+
description: "Returns <code>true</code> if the number is odd or <code>false</code> if not. Throws an error if the number isn't a whole number.",
|
|
107
|
+
examples: [
|
|
108
|
+
{ example: '(33).isOdd()', evaluated: 'true' },
|
|
109
|
+
{ example: '(42).isOdd()', evaluated: 'false' },
|
|
110
|
+
],
|
|
111
|
+
returnType: 'boolean',
|
|
112
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isOdd',
|
|
113
|
+
};
|
|
114
|
+
format.doc = {
|
|
115
|
+
name: 'format',
|
|
116
|
+
description: 'Returns a formatted string representing the number. Useful for formatting for a specific language or currency. The same as <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat"><code>Intl.NumberFormat()</code></a>.',
|
|
117
|
+
examples: [
|
|
118
|
+
{ example: "(123456.789).format('de-DE')", evaluated: '123.456,789' },
|
|
119
|
+
{
|
|
120
|
+
example: "(123456.789).format('de-DE', {'style': 'currency', 'currency': 'EUR'})",
|
|
121
|
+
evaluated: '123.456,79 €',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
returnType: 'string',
|
|
125
|
+
args: [
|
|
126
|
+
{
|
|
127
|
+
name: 'locale',
|
|
128
|
+
optional: true,
|
|
129
|
+
description: 'A <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument">locale tag</a> for formatting the number, e.g. <code>fr-FR</code>, <code>en-GB</code>, <code>pr-BR</code>',
|
|
130
|
+
default: '"en-US"',
|
|
131
|
+
type: 'string',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'options',
|
|
135
|
+
optional: true,
|
|
136
|
+
description: 'Configuration options for number formatting. <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat" target="_blank">More info</a>',
|
|
137
|
+
type: 'object',
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-format',
|
|
141
|
+
};
|
|
142
|
+
round.doc = {
|
|
143
|
+
name: 'round',
|
|
144
|
+
description: 'Rounds the number to the nearest integer (or decimal place)',
|
|
145
|
+
examples: [
|
|
146
|
+
{ example: '(1.256).round()', evaluated: '1' },
|
|
147
|
+
{ example: '(1.256).round(1)', evaluated: '1.3' },
|
|
148
|
+
{ example: '(1.256).round(2)', evaluated: '1.26' },
|
|
149
|
+
],
|
|
150
|
+
returnType: 'number',
|
|
151
|
+
args: [
|
|
152
|
+
{
|
|
153
|
+
name: 'decimalPlaces',
|
|
154
|
+
optional: true,
|
|
155
|
+
description: 'The number of decimal places to round to',
|
|
156
|
+
default: '0',
|
|
157
|
+
type: 'number',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-round',
|
|
161
|
+
};
|
|
162
|
+
toBoolean.doc = {
|
|
163
|
+
name: 'toBoolean',
|
|
164
|
+
description: 'Returns <code>false</code> for <code>0</code> and <code>true</code> for any other number (including negative numbers).',
|
|
165
|
+
examples: [
|
|
166
|
+
{ example: '(12).toBoolean()', evaluated: 'true' },
|
|
167
|
+
{ example: '(0).toBoolean()', evaluated: 'false' },
|
|
168
|
+
{ example: '(-1.3).toBoolean()', evaluated: 'true' },
|
|
169
|
+
],
|
|
170
|
+
section: 'cast',
|
|
171
|
+
returnType: 'boolean',
|
|
172
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toBoolean',
|
|
173
|
+
};
|
|
174
|
+
toDateTime.doc = {
|
|
175
|
+
name: 'toDateTime',
|
|
176
|
+
description: 'Converts a numerical timestamp into a <a target="_blank" href="https://moment.github.io/luxon/api-docs/">Luxon</a> DateTime. The format of the timestamp must be specified if it\'s not in milliseconds. Uses the timezone specified in workflow settings if available; otherwise, it defaults to the timezone set for the instance.',
|
|
177
|
+
examples: [
|
|
178
|
+
{ example: "(1708695471).toDateTime('s')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
179
|
+
{ example: "(1708695471000).toDateTime('ms')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
180
|
+
{ example: "(1708695471000000).toDateTime('us')", evaluated: '2024-02-23T14:37:51.000+01:00' },
|
|
181
|
+
{ example: "(45345).toDateTime('excel')", evaluated: '2024-02-23T01:00:00.000+01:00' },
|
|
182
|
+
],
|
|
183
|
+
section: 'cast',
|
|
184
|
+
returnType: 'DateTime',
|
|
185
|
+
args: [
|
|
186
|
+
{
|
|
187
|
+
name: 'format',
|
|
188
|
+
optional: true,
|
|
189
|
+
description: 'The type of timestamp to convert. Options are <code>ms</code> (for Unix timestamp in milliseconds), <code>s</code> (for Unix timestamp in seconds), <code>us</code> (for Unix timestamp in microseconds) or <code>excel</code> (for days since 1900).',
|
|
190
|
+
default: '"ms"',
|
|
191
|
+
type: 'string',
|
|
241
192
|
},
|
|
242
|
-
|
|
243
|
-
|
|
193
|
+
],
|
|
194
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toDateTime',
|
|
195
|
+
};
|
|
196
|
+
abs.doc = {
|
|
197
|
+
name: 'abs',
|
|
198
|
+
description: "Returns the number's absolute value, i.e. removes any minus sign",
|
|
199
|
+
examples: [
|
|
200
|
+
{ example: '(-1.7).abs()', evaluated: '1.7' },
|
|
201
|
+
{ example: '(1.7).abs()', evaluated: '1.7' },
|
|
202
|
+
],
|
|
203
|
+
returnType: 'number',
|
|
204
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-abs',
|
|
205
|
+
};
|
|
206
|
+
isInteger.doc = {
|
|
207
|
+
name: 'isInteger',
|
|
208
|
+
description: 'Returns <code>true</code> if the number is a whole number',
|
|
209
|
+
examples: [
|
|
210
|
+
{ example: '(4).isInteger()', evaluated: 'true' },
|
|
211
|
+
{ example: '(4.12).isInteger()', evaluated: 'false' },
|
|
212
|
+
{ example: '(-4).isInteger()', evaluated: 'true' },
|
|
213
|
+
],
|
|
214
|
+
returnType: 'boolean',
|
|
215
|
+
docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isInteger',
|
|
216
|
+
};
|
|
217
|
+
exports.numberExtensions = {
|
|
218
|
+
typeName: 'Number',
|
|
219
|
+
functions: {
|
|
220
|
+
ceil,
|
|
221
|
+
floor,
|
|
222
|
+
format,
|
|
223
|
+
round,
|
|
224
|
+
abs,
|
|
225
|
+
isInteger,
|
|
226
|
+
isEven,
|
|
227
|
+
isOdd,
|
|
228
|
+
toBoolean,
|
|
229
|
+
toInt,
|
|
230
|
+
toFloat,
|
|
231
|
+
toDateTime,
|
|
232
|
+
},
|
|
233
|
+
};
|
|
244
234
|
//# sourceMappingURL=number-extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-extensions.js","sourceRoot":"","sources":["../../../src/extensions/number-extensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"number-extensions.js","sourceRoot":"","sources":["../../../src/extensions/number-extensions.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AAGjC,6EAAwE;AAExE,yEAAyE;AACzE,gFAAgF;AAChF,2EAA2E;AAC3E,yCAAyC;AACzC,SAAS,MAAM,CAAC,KAAa,EAAE,SAAoB;IAClD,MAAM,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,SAGxC,CAAC;IAEF,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,cAAc,CAAC,OAAiB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qDAAwB,CAAC,uCAAuC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qDAAwB,CAAC,sCAAsC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,IAAI,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAmB;IAChD,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC;AACd,CAAC;AAGD,oBAA2B,KAAa,EAAE,SAA2B;IACpE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAEvC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,qDAAwB,CACjC,uBAAuB,MAAM,CAAC,WAAW,CAAC,uDAAuD,CACjG,CAAC;IACH,CAAC;IAED,QAAQ,WAAW,EAAE,CAAC;QACrB,kCAAkC;QAClC,kEAAkE;QAClE,KAAK,OAAO,EAAE,CAAC;YACd,MAAM,sBAAsB,GAAG,KAAK,CAAC;YACrC,MAAM,yBAAyB,GAAG,CAAC,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,CAAC;YAC9B,OAAO,gBAAQ,CAAC,WAAW,CAC1B,CAAC,KAAK,GAAG,CAAC,sBAAsB,GAAG,yBAAyB,CAAC,CAAC,GAAG,cAAc,CAC/E,CAAC;QACH,CAAC;QACD,KAAK,GAAG;YACP,OAAO,gBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,IAAI;YACR,OAAO,gBAAQ,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC;QACV;YACC,OAAO,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;AACF,CAAC;AAED,IAAI,CAAC,GAAG,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,+CAA+C;IAC5D,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACzD,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,qFAAqF;CAC7F,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oDAAoD;IACjE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IAC1D,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,sFAAsF;CAC9F,CAAC;AAEF,MAAM,CAAC,GAAG,GAAG;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACV,mIAAmI;IACpI,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE;QAChD,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE;KAC/C;IACD,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,uFAAuF;CAC/F,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EACV,kIAAkI;IACnI,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9C,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE;KAC/C;IACD,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,sFAAsF;CAC9F,CAAC;AAEF,MAAM,CAAC,GAAG,GAAG;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACV,4SAA4S;IAC7S,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,EAAE,aAAa,EAAE;QACrE;YACC,OAAO,EAAE,wEAAwE;YACjF,SAAS,EAAE,cAAc;SACzB;KACD;IACD,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE;QACL;YACC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,8OAA8O;YAC/O,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,QAAQ;SACd;QACD;YACC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,sNAAsN;YACvN,IAAI,EAAE,QAAQ;SACd;KACD;IACD,MAAM,EAAE,uFAAuF;CAC/F,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,6DAA6D;IAC1E,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE;QAC9C,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE;QACjD,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;KAClD;IACD,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE;QACL;YACC,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0CAA0C;YACvD,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,QAAQ;SACd;KACD;IACD,MAAM,EAAE,sFAAsF;CAC9F,CAAC;AAEF,SAAS,CAAC,GAAG,GAAG;IACf,IAAI,EAAE,WAAW;IACjB,WAAW,EACV,wHAAwH;IACzH,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;QAClD,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE;QAClD,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE;KACpD;IACD,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,SAAS;IACrB,MAAM,EACL,0FAA0F;CAC3F,CAAC;AAEF,UAAU,CAAC,GAAG,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EACV,sUAAsU;IACvU,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,EAAE,+BAA+B,EAAE;QACvF,EAAE,OAAO,EAAE,kCAAkC,EAAE,SAAS,EAAE,+BAA+B,EAAE;QAC3F,EAAE,OAAO,EAAE,qCAAqC,EAAE,SAAS,EAAE,+BAA+B,EAAE;QAC9F,EAAE,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,+BAA+B,EAAE;KACtF;IACD,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,IAAI,EAAE;QACL;YACC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACV,uPAAuP;YACxP,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,QAAQ;SACd;KACD;IACD,MAAM,EACL,2FAA2F;CAC5F,CAAC;AAEF,GAAG,CAAC,GAAG,GAAG;IACT,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,kEAAkE;IAC/E,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE;QAC7C,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE;KAC5C;IACD,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,oFAAoF;CAC5F,CAAC;AAEF,SAAS,CAAC,GAAG,GAAG;IACf,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,2DAA2D;IACxE,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE;QACjD,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,OAAO,EAAE;QACrD,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE;KAClD;IACD,UAAU,EAAE,SAAS;IACrB,MAAM,EACL,0FAA0F;CAC3F,CAAC;AAEW,QAAA,gBAAgB,GAAiB;IAC7C,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE;QACV,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,GAAG;QACH,SAAS;QACT,MAAM;QACN,KAAK;QACL,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;KACV;CACD,CAAC"}
|