@n8n/expression-runtime 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/ARCHITECTURE.md +5 -6
  2. package/LICENSE_EE.md +27 -0
  3. package/README.md +8 -8
  4. package/dist/bridge/isolated-vm-bridge.d.ts +132 -0
  5. package/dist/bridge/isolated-vm-bridge.d.ts.map +1 -0
  6. package/dist/bridge/isolated-vm-bridge.js +427 -0
  7. package/dist/bridge/isolated-vm-bridge.js.map +1 -0
  8. package/dist/build.tsbuildinfo +1 -1
  9. package/dist/bundle/runtime.esm.js +45 -0
  10. package/dist/bundle/runtime.esm.js.map +7 -0
  11. package/dist/bundle/runtime.iife.js +45 -0
  12. package/dist/bundle/runtime.iife.js.map +7 -0
  13. package/dist/extensions/array-extensions.d.ts +34 -0
  14. package/dist/extensions/array-extensions.d.ts.map +1 -0
  15. package/dist/extensions/array-extensions.js +610 -0
  16. package/dist/extensions/array-extensions.js.map +1 -0
  17. package/dist/extensions/boolean-extensions.d.ts +6 -0
  18. package/dist/extensions/boolean-extensions.d.ts.map +1 -0
  19. package/dist/extensions/boolean-extensions.js +33 -0
  20. package/dist/extensions/boolean-extensions.js.map +1 -0
  21. package/dist/extensions/date-extensions.d.ts +3 -0
  22. package/dist/extensions/date-extensions.d.ts.map +1 -0
  23. package/dist/extensions/date-extensions.js +515 -0
  24. package/dist/extensions/date-extensions.js.map +1 -0
  25. package/dist/extensions/expression-extension-error.d.ts +7 -0
  26. package/dist/extensions/expression-extension-error.d.ts.map +1 -0
  27. package/dist/extensions/expression-extension-error.js +11 -0
  28. package/dist/extensions/expression-extension-error.js.map +1 -0
  29. package/dist/extensions/extend.d.ts +12 -0
  30. package/dist/extensions/extend.d.ts.map +1 -0
  31. package/dist/extensions/extend.js +134 -0
  32. package/dist/extensions/extend.js.map +1 -0
  33. package/dist/extensions/extensions.d.ts +43 -0
  34. package/dist/extensions/extensions.d.ts.map +1 -0
  35. package/dist/extensions/extensions.js +2 -0
  36. package/dist/extensions/extensions.js.map +1 -0
  37. package/dist/extensions/number-extensions.d.ts +27 -0
  38. package/dist/extensions/number-extensions.d.ts.map +1 -0
  39. package/dist/extensions/number-extensions.js +221 -0
  40. package/dist/extensions/number-extensions.js.map +1 -0
  41. package/dist/extensions/object-extensions.d.ts +46 -0
  42. package/dist/extensions/object-extensions.d.ts.map +1 -0
  43. package/dist/extensions/object-extensions.js +277 -0
  44. package/dist/extensions/object-extensions.js.map +1 -0
  45. package/dist/extensions/string-extensions.d.ts +38 -0
  46. package/dist/extensions/string-extensions.d.ts.map +1 -0
  47. package/dist/extensions/string-extensions.js +735 -0
  48. package/dist/extensions/string-extensions.js.map +1 -0
  49. package/dist/extensions/utils.d.ts +4 -0
  50. package/dist/extensions/utils.d.ts.map +1 -0
  51. package/dist/extensions/utils.js +27 -0
  52. package/dist/extensions/utils.js.map +1 -0
  53. package/dist/runtime/index.d.ts +17 -0
  54. package/dist/runtime/index.d.ts.map +1 -0
  55. package/dist/runtime/index.js +23 -0
  56. package/dist/runtime/index.js.map +1 -0
  57. package/dist/runtime/lazy-proxy.d.ts +18 -0
  58. package/dist/runtime/lazy-proxy.d.ts.map +1 -0
  59. package/dist/runtime/lazy-proxy.js +150 -0
  60. package/dist/runtime/lazy-proxy.js.map +1 -0
  61. package/dist/runtime/reset.d.ts +16 -0
  62. package/dist/runtime/reset.d.ts.map +1 -0
  63. package/dist/runtime/reset.js +124 -0
  64. package/dist/runtime/reset.js.map +1 -0
  65. package/dist/runtime/safe-globals.d.ts +21 -0
  66. package/dist/runtime/safe-globals.d.ts.map +1 -0
  67. package/dist/runtime/safe-globals.js +110 -0
  68. package/dist/runtime/safe-globals.js.map +1 -0
  69. package/dist/types/index.d.ts +0 -1
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/index.js +1 -0
  72. package/dist/types/index.js.map +1 -1
  73. package/dist/types/runtime.d.ts +0 -102
  74. package/dist/types/runtime.d.ts.map +1 -1
  75. package/dist/types/runtime.js +0 -6
  76. package/dist/types/runtime.js.map +1 -1
  77. package/package.json +15 -3
@@ -0,0 +1,6 @@
1
+ import type { ExtensionMap } from './extensions';
2
+ export declare function toBoolean(value: boolean): boolean;
3
+ export declare function toInt(value: boolean): 1 | 0;
4
+ export declare function toDateTime(): undefined;
5
+ export declare const booleanExtensions: ExtensionMap;
6
+ //# sourceMappingURL=boolean-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-extensions.d.ts","sourceRoot":"","sources":["../../src/extensions/boolean-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,WAEvC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,SAEnC;AAED,wBAAgB,UAAU,cAEzB;AAmBD,eAAO,MAAM,iBAAiB,EAAE,YAS/B,CAAC"}
@@ -0,0 +1,33 @@
1
+ export function toBoolean(value) {
2
+ return value;
3
+ }
4
+ export function toInt(value) {
5
+ return value ? 1 : 0;
6
+ }
7
+ export function toDateTime() {
8
+ return undefined;
9
+ }
10
+ const toFloat = toInt;
11
+ const toNumber = toInt.bind({});
12
+ toNumber.doc = {
13
+ name: 'toNumber',
14
+ description: 'Converts <code>true</code> to <code>1</code> and <code>false</code> to <code>0</code>.',
15
+ examples: [
16
+ { example: 'true.toNumber()', evaluated: '1' },
17
+ { example: 'false.toNumber()', evaluated: '0' },
18
+ ],
19
+ section: 'cast',
20
+ returnType: 'number',
21
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/booleans/#boolean-toNumber',
22
+ };
23
+ export const booleanExtensions = {
24
+ typeName: 'Boolean',
25
+ functions: {
26
+ toBoolean,
27
+ toInt,
28
+ toFloat,
29
+ toNumber,
30
+ toDateTime,
31
+ },
32
+ };
33
+ //# sourceMappingURL=boolean-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-extensions.js","sourceRoot":"","sources":["../../src/extensions/boolean-extensions.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,KAAc;IACvC,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU;IACzB,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,MAAM,QAAQ,GAAc,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE3C,QAAQ,CAAC,GAAG,GAAG;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EACV,wFAAwF;IACzF,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE;QAC9C,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,EAAE;KAC/C;IACD,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,MAAM,EACL,2FAA2F;CAC5F,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC9C,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE;QACV,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,UAAU;KACV;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ExtensionMap } from './extensions';
2
+ export declare const dateExtensions: ExtensionMap;
3
+ //# sourceMappingURL=date-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-extensions.d.ts","sourceRoot":"","sources":["../../src/extensions/date-extensions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA+kBjD,eAAO,MAAM,cAAc,EAAE,YAsB5B,CAAC"}
@@ -0,0 +1,515 @@
1
+ import { DateTime } from 'luxon';
2
+ import { ExpressionExtensionError } from './expression-extension-error';
3
+ import { toDateTime as stringToDateTime } from './string-extensions';
4
+ import { convertToDateTime } from './utils';
5
+ const durationUnits = [
6
+ 'milliseconds',
7
+ 'seconds',
8
+ 'minutes',
9
+ 'hours',
10
+ 'days',
11
+ 'weeks',
12
+ 'months',
13
+ 'quarters',
14
+ 'years',
15
+ ];
16
+ const dateParts = [
17
+ 'day',
18
+ 'week',
19
+ 'month',
20
+ 'year',
21
+ 'hour',
22
+ 'minute',
23
+ 'second',
24
+ 'millisecond',
25
+ 'weekNumber',
26
+ 'yearDayNumber',
27
+ 'weekday',
28
+ ];
29
+ const DURATION_MAP = {
30
+ day: 'days',
31
+ month: 'months',
32
+ year: 'years',
33
+ week: 'weeks',
34
+ hour: 'hours',
35
+ minute: 'minutes',
36
+ second: 'seconds',
37
+ millisecond: 'milliseconds',
38
+ ms: 'milliseconds',
39
+ sec: 'seconds',
40
+ secs: 'seconds',
41
+ hr: 'hours',
42
+ hrs: 'hours',
43
+ min: 'minutes',
44
+ mins: 'minutes',
45
+ };
46
+ const DATETIMEUNIT_MAP = {
47
+ days: 'day',
48
+ months: 'month',
49
+ years: 'year',
50
+ hours: 'hour',
51
+ minutes: 'minute',
52
+ seconds: 'second',
53
+ milliseconds: 'millisecond',
54
+ hrs: 'hour',
55
+ hr: 'hour',
56
+ mins: 'minute',
57
+ min: 'minute',
58
+ secs: 'second',
59
+ sec: 'second',
60
+ ms: 'millisecond',
61
+ };
62
+ function isDateTime(date) {
63
+ return date ? DateTime.isDateTime(date) : false;
64
+ }
65
+ function toDateTime(date) {
66
+ if (isDateTime(date))
67
+ return date;
68
+ if (typeof date === 'string') {
69
+ return stringToDateTime(date);
70
+ }
71
+ return DateTime.fromJSDate(date);
72
+ }
73
+ function generateDurationObject(durationValue, unit) {
74
+ const convertedUnit = DURATION_MAP[unit] || unit;
75
+ return { [`${convertedUnit}`]: durationValue };
76
+ }
77
+ function beginningOf(date, extraArgs) {
78
+ const [rawUnit = 'week'] = extraArgs;
79
+ const unit = DATETIMEUNIT_MAP[rawUnit] || rawUnit;
80
+ if (isDateTime(date))
81
+ return date.startOf(unit);
82
+ return DateTime.fromJSDate(date).startOf(unit).toJSDate();
83
+ }
84
+ function endOfMonth(date) {
85
+ if (isDateTime(date))
86
+ return date.endOf('month');
87
+ return DateTime.fromJSDate(date).endOf('month').toJSDate();
88
+ }
89
+ function extract(date, args) {
90
+ let [part = 'week'] = args;
91
+ if (part === 'yearDayNumber') {
92
+ date = isDateTime(date) ? date.toJSDate() : date;
93
+ const firstDayOfTheYear = new Date(date.getFullYear(), 0, 0);
94
+ const diff = date.getTime() -
95
+ firstDayOfTheYear.getTime() +
96
+ (firstDayOfTheYear.getTimezoneOffset() - date.getTimezoneOffset()) * 60 * 1000;
97
+ return Math.floor(diff / (1000 * 60 * 60 * 24));
98
+ }
99
+ if (part === 'week')
100
+ part = 'weekNumber';
101
+ const unit = DATETIMEUNIT_MAP[part] || part;
102
+ if (isDateTime(date))
103
+ return date.get(unit);
104
+ return DateTime.fromJSDate(date).get(unit);
105
+ }
106
+ function format(date, extraArgs) {
107
+ const [dateFormat, localeOpts = {}] = extraArgs;
108
+ if (isDateTime(date)) {
109
+ return date.toFormat(dateFormat, { ...localeOpts });
110
+ }
111
+ return DateTime.fromJSDate(date).toFormat(dateFormat, { ...localeOpts });
112
+ }
113
+ function isBetween(date, extraArgs) {
114
+ if (extraArgs.length !== 2) {
115
+ throw new ExpressionExtensionError('isBetween(): expected exactly two args');
116
+ }
117
+ const [first, second] = extraArgs;
118
+ const firstDate = convertToDateTime(first);
119
+ const secondDate = convertToDateTime(second);
120
+ if (!firstDate || !secondDate) {
121
+ return;
122
+ }
123
+ if (firstDate > secondDate) {
124
+ return secondDate < date && date < firstDate;
125
+ }
126
+ return secondDate > date && date > firstDate;
127
+ }
128
+ function isDst(date) {
129
+ if (isDateTime(date)) {
130
+ return date.isInDST;
131
+ }
132
+ return DateTime.fromJSDate(date).isInDST;
133
+ }
134
+ function isInLast(date, extraArgs) {
135
+ const [durationValue = 0, unit = 'minutes'] = extraArgs;
136
+ const dateInThePast = DateTime.now().minus(generateDurationObject(durationValue, unit));
137
+ let thisDate = date;
138
+ if (!isDateTime(thisDate)) {
139
+ thisDate = DateTime.fromJSDate(thisDate);
140
+ }
141
+ return dateInThePast <= thisDate && thisDate <= DateTime.now();
142
+ }
143
+ const WEEKEND_DAYS = [6, 7];
144
+ function isWeekend(date) {
145
+ const { weekday } = isDateTime(date) ? date : DateTime.fromJSDate(date);
146
+ return WEEKEND_DAYS.includes(weekday);
147
+ }
148
+ function minus(date, args) {
149
+ if (args.length === 1) {
150
+ const [arg] = args;
151
+ if (isDateTime(date))
152
+ return date.minus(arg);
153
+ return DateTime.fromJSDate(date).minus(arg).toJSDate();
154
+ }
155
+ const [durationValue = 0, unit = 'minutes'] = args;
156
+ const duration = generateDurationObject(durationValue, unit);
157
+ if (isDateTime(date))
158
+ return date.minus(duration);
159
+ return DateTime.fromJSDate(date).minus(duration).toJSDate();
160
+ }
161
+ function plus(date, args) {
162
+ if (args.length === 1) {
163
+ const [arg] = args;
164
+ if (isDateTime(date))
165
+ return date.plus(arg);
166
+ return DateTime.fromJSDate(date).plus(arg).toJSDate();
167
+ }
168
+ const [durationValue = 0, unit = 'minutes'] = args;
169
+ const duration = generateDurationObject(durationValue, unit);
170
+ if (isDateTime(date))
171
+ return date.plus(duration);
172
+ return DateTime.fromJSDate(date).plus(duration).toJSDate();
173
+ }
174
+ function diffTo(date, args) {
175
+ const [otherDate, unit = 'days'] = args;
176
+ let units = Array.isArray(unit) ? unit : [unit];
177
+ if (units.length === 0) {
178
+ units = ['days'];
179
+ }
180
+ const allowedUnitSet = new Set([...dateParts, ...durationUnits]);
181
+ const errorUnit = units.find((u) => !allowedUnitSet.has(u));
182
+ if (errorUnit) {
183
+ throw new ExpressionExtensionError(`Unsupported unit '${String(errorUnit)}'. Supported: ${durationUnits
184
+ .map((u) => `'${u}'`)
185
+ .join(', ')}.`);
186
+ }
187
+ const diffResult = date.diff(toDateTime(otherDate), units);
188
+ if (units.length > 1) {
189
+ return diffResult.toObject();
190
+ }
191
+ return diffResult.as(units[0]);
192
+ }
193
+ function diffToNow(date, args) {
194
+ const [unit] = args;
195
+ return diffTo(date, [DateTime.now(), unit]);
196
+ }
197
+ function toInt(date) {
198
+ if (isDateTime(date)) {
199
+ return date.toMillis();
200
+ }
201
+ return date.getTime();
202
+ }
203
+ const toFloat = toInt;
204
+ function toBoolean() {
205
+ return undefined;
206
+ }
207
+ // Only null/undefined return true, this is handled in ExpressionExtension.ts
208
+ function isEmpty() {
209
+ return false;
210
+ }
211
+ function isNotEmpty() {
212
+ return true;
213
+ }
214
+ endOfMonth.doc = {
215
+ name: 'endOfMonth',
216
+ returnType: 'DateTime',
217
+ hidden: true,
218
+ description: 'Transforms a date to the last possible moment that lies within the month.',
219
+ section: 'edit',
220
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-endOfMonth',
221
+ };
222
+ isDst.doc = {
223
+ name: 'isDst',
224
+ returnType: 'boolean',
225
+ hidden: true,
226
+ description: 'Checks if a Date is within Daylight Savings Time.',
227
+ section: 'query',
228
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-isDst',
229
+ };
230
+ isWeekend.doc = {
231
+ name: 'isWeekend',
232
+ returnType: 'boolean',
233
+ hidden: true,
234
+ description: 'Checks if the Date falls on a Saturday or Sunday.',
235
+ section: 'query',
236
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-isWeekend',
237
+ };
238
+ beginningOf.doc = {
239
+ name: 'beginningOf',
240
+ description: 'Transform a Date to the start of the given time period. Default unit is `week`.',
241
+ section: 'edit',
242
+ hidden: true,
243
+ returnType: 'DateTime',
244
+ args: [{ name: 'unit?', type: 'DurationUnit' }],
245
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-beginningOf',
246
+ };
247
+ extract.doc = {
248
+ name: 'extract',
249
+ description: 'Extracts a part of the date or time, e.g. the month, as a number. To extract textual names instead, see <code>format()</code>.',
250
+ examples: [
251
+ { example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.extract('month')", evaluated: '3' },
252
+ { example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.extract('hour')", evaluated: '18' },
253
+ ],
254
+ section: 'query',
255
+ returnType: 'number',
256
+ args: [
257
+ {
258
+ name: 'unit',
259
+ optional: true,
260
+ description: 'The part of the date or time to return. One of: <code>year</code>, <code>month</code>, <code>week</code>, <code>day</code>, <code>hour</code>, <code>minute</code>, <code>second</code>',
261
+ default: '"week"',
262
+ type: 'string',
263
+ },
264
+ ],
265
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-extract',
266
+ };
267
+ format.doc = {
268
+ name: 'format',
269
+ description: 'Converts the DateTime to a string, using the format specified. <a target="_blank" href="https://moment.github.io/luxon/#/formatting?id=table-of-tokens">Formatting guide</a>. For common formats, <code>toLocaleString()</code> may be easier.',
270
+ examples: [
271
+ {
272
+ example: "dt = '2024-04-30T18:49'.toDateTime()\ndt.format('dd/LL/yyyy')",
273
+ evaluated: "'30/04/2024'",
274
+ },
275
+ {
276
+ example: "dt = '2024-04-30T18:49'.toDateTime()\ndt.format('dd LLL yy')",
277
+ evaluated: "'30 Apr 24'",
278
+ },
279
+ {
280
+ example: "dt = '2024-04-30T18:49'.toDateTime()\ndt.setLocale('fr').format('dd LLL yyyy')",
281
+ evaluated: "'30 avr. 2024'",
282
+ },
283
+ {
284
+ example: "dt = '2024-04-30T18:49'.toDateTime()\ndt.format(\"HH 'hours and' mm 'minutes'\")",
285
+ evaluated: "'18 hours and 49 minutes'",
286
+ },
287
+ ],
288
+ returnType: 'string',
289
+ section: 'format',
290
+ args: [
291
+ {
292
+ name: 'fmt',
293
+ description: 'The <a target="_blank" href="https://moment.github.io/luxon/#/formatting?id=table-of-tokens">format</a> of the string to return ',
294
+ default: "'yyyy-MM-dd'",
295
+ type: 'string',
296
+ },
297
+ ],
298
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-format',
299
+ };
300
+ isBetween.doc = {
301
+ name: 'isBetween',
302
+ description: 'Returns <code>true</code> if the DateTime lies between the two moments specified',
303
+ examples: [
304
+ {
305
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.isBetween('2020-06-01', '2025-06-01')",
306
+ evaluated: 'true',
307
+ },
308
+ {
309
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.isBetween('2020', '2025')",
310
+ evaluated: 'true',
311
+ },
312
+ ],
313
+ section: 'compare',
314
+ returnType: 'boolean',
315
+ args: [
316
+ {
317
+ name: 'date1',
318
+ description: 'The moment that the base DateTime must be after. Can be an ISO date string or a Luxon DateTime.',
319
+ type: 'string | DateTime',
320
+ },
321
+ {
322
+ name: 'date2',
323
+ description: 'The moment that the base DateTime must be before. Can be an ISO date string or a Luxon DateTime.',
324
+ type: 'string | DateTime',
325
+ },
326
+ ],
327
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-isBetween',
328
+ };
329
+ isInLast.doc = {
330
+ name: 'isInLast',
331
+ hidden: true,
332
+ description: 'Checks if a Date is within a given time period. Default unit is `minute`.',
333
+ section: 'query',
334
+ returnType: 'boolean',
335
+ args: [
336
+ { name: 'n', type: 'number' },
337
+ { name: 'unit?', type: 'DurationUnit' },
338
+ ],
339
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-isInLast',
340
+ };
341
+ toDateTime.doc = {
342
+ name: 'toDateTime',
343
+ description: 'Converts a JavaScript Date to a Luxon DateTime. The DateTime contains the same information, but is easier to manipulate.',
344
+ examples: [
345
+ {
346
+ example: "jsDate = new Date('2024-03-30T18:49')\njsDate.toDateTime().plus(5, 'days')",
347
+ evaluated: '[DateTime: 2024-05-05T18:49:00.000Z]',
348
+ },
349
+ ],
350
+ returnType: 'DateTime',
351
+ hidden: true,
352
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-toDateTime',
353
+ };
354
+ minus.doc = {
355
+ name: 'minus',
356
+ description: 'Subtracts a given period of time from the DateTime',
357
+ examples: [
358
+ {
359
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.minus(7, 'days')",
360
+ evaluated: '[DateTime: 2024-04-23T18:49:00.000Z]',
361
+ },
362
+ {
363
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.minus(4, 'years')",
364
+ evaluated: '[DateTime: 2020-04-30T18:49:00.000Z]',
365
+ },
366
+ ],
367
+ section: 'edit',
368
+ returnType: 'DateTime',
369
+ args: [
370
+ {
371
+ name: 'n',
372
+ description: 'The number of units to subtract. Or use a Luxon <a target="_blank" href="https://moment.github.io/luxon/api-docs/index.html#duration">Duration</a> object to subtract multiple units at once.',
373
+ type: 'number | object',
374
+ },
375
+ {
376
+ name: 'unit',
377
+ optional: true,
378
+ description: 'The units of the number. One of: <code>years</code>, <code>months</code>, <code>weeks</code>, <code>days</code>, <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>milliseconds</code>',
379
+ default: '"milliseconds"',
380
+ type: 'string',
381
+ },
382
+ ],
383
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-minus',
384
+ };
385
+ plus.doc = {
386
+ name: 'plus',
387
+ description: 'Adds a given period of time to the DateTime',
388
+ examples: [
389
+ {
390
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.plus(7, 'days')",
391
+ evaluated: '[DateTime: 2024-04-07T18:49:00.000Z]',
392
+ },
393
+ {
394
+ example: "dt = '2024-03-30T18:49'.toDateTime()\ndt.plus(4, 'years')",
395
+ evaluated: '[DateTime: 2028-03-30T18:49:00.000Z]',
396
+ },
397
+ ],
398
+ section: 'edit',
399
+ returnType: 'DateTime',
400
+ args: [
401
+ {
402
+ name: 'n',
403
+ description: 'The number of units to add. Or use a Luxon <a target="_blank" href="https://moment.github.io/luxon/api-docs/index.html#duration">Duration</a> object to add multiple units at once.',
404
+ type: 'number | object',
405
+ },
406
+ {
407
+ name: 'unit',
408
+ optional: true,
409
+ description: 'The units of the number. One of: <code>years</code>, <code>months</code>, <code>weeks</code>, <code>days</code>, <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>milliseconds</code>',
410
+ default: '"milliseconds"',
411
+ type: 'string',
412
+ },
413
+ ],
414
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-plus',
415
+ };
416
+ diffTo.doc = {
417
+ name: 'diffTo',
418
+ description: 'Returns the difference between two DateTimes, in the given unit(s)',
419
+ examples: [
420
+ {
421
+ example: "dt = '2025-01-01'.toDateTime()\ndt.diffTo('2024-03-30T18:49:07.234', 'days')",
422
+ evaluated: '276.21',
423
+ },
424
+ {
425
+ example: "dt1 = '2025-01-01T00:00:00.000'.toDateTime();\ndt2 = '2024-03-30T18:49:07.234'.toDateTime();\ndt1.diffTo(dt2, ['months', 'days'])",
426
+ evaluated: '{ months: 9, days: 1.21 }',
427
+ },
428
+ ],
429
+ section: 'compare',
430
+ returnType: 'number | Record<DurationUnit, number>',
431
+ args: [
432
+ {
433
+ name: 'otherDateTime',
434
+ default: '$now',
435
+ description: 'The moment to subtract the base DateTime from. Can be an ISO date string or a Luxon DateTime.',
436
+ type: 'string | DateTime',
437
+ },
438
+ {
439
+ name: 'unit',
440
+ default: "'days'",
441
+ description: 'The unit, or array of units, to return the result in. Possible values: <code>years</code>, <code>months</code>, <code>weeks</code>, <code>days</code>, <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>milliseconds</code>.',
442
+ type: 'string | string[]',
443
+ },
444
+ ],
445
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-diffTo',
446
+ };
447
+ diffToNow.doc = {
448
+ name: 'diffToNow',
449
+ description: 'Returns the difference between the current moment and the DateTime, in the given unit(s). For a textual representation, use <code>toRelative()</code> instead.',
450
+ examples: [
451
+ {
452
+ example: "dt = '2023-03-30T18:49:07.234'.toDateTime()\ndt.diffToNow('days')",
453
+ evaluated: '371.9',
454
+ },
455
+ {
456
+ example: "dt = '2023-03-30T18:49:07.234'.toDateTime()\ndt.diffToNow(['months', 'days'])",
457
+ evaluated: '{ months: 12, days: 5.9 }',
458
+ },
459
+ ],
460
+ section: 'compare',
461
+ returnType: 'number | Record<DurationUnit, number>',
462
+ args: [
463
+ {
464
+ name: 'unit',
465
+ description: 'The unit, or array of units, to return the result in. Possible values: <code>years</code>, <code>months</code>, <code>weeks</code>, <code>days</code>, <code>hours</code>, <code>minutes</code>, <code>seconds</code>, <code>milliseconds</code>.',
466
+ default: "'days'",
467
+ type: 'string | string[]',
468
+ },
469
+ ],
470
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/dates/#date-diffToNow',
471
+ };
472
+ isEmpty.doc = {
473
+ name: 'isEmpty',
474
+ description: 'Returns <code>false</code> for all DateTimes. Returns <code>true</code> for <code>null</code>.',
475
+ examples: [
476
+ { example: "dt = '2023-03-30T18:49:07.234'.toDateTime()\ndt.isEmpty()", evaluated: 'false' },
477
+ { example: 'dt = null\ndt.isEmpty()', evaluated: 'true' },
478
+ ],
479
+ returnType: 'boolean',
480
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/arrays/#array-isEmpty',
481
+ };
482
+ isNotEmpty.doc = {
483
+ name: 'isNotEmpty',
484
+ description: 'Returns <code>true</code> for all DateTimes. Returns <code>false</code> for <code>null</code>.',
485
+ examples: [
486
+ { example: "dt = '2023-03-30T18:49:07.234'.toDateTime()\ndt.isNotEmpty()", evaluated: 'true' },
487
+ { example: 'dt = null\ndt.isNotEmpty()', evaluated: 'false' },
488
+ ],
489
+ returnType: 'boolean',
490
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/arrays/#array-isNotEmpty',
491
+ };
492
+ export const dateExtensions = {
493
+ typeName: 'Date',
494
+ functions: {
495
+ beginningOf,
496
+ endOfMonth,
497
+ extract,
498
+ isBetween,
499
+ isDst,
500
+ isInLast,
501
+ isWeekend,
502
+ minus,
503
+ plus,
504
+ format,
505
+ toDateTime,
506
+ diffTo,
507
+ diffToNow,
508
+ toInt,
509
+ toFloat,
510
+ toBoolean,
511
+ isEmpty,
512
+ isNotEmpty,
513
+ },
514
+ };
515
+ //# sourceMappingURL=date-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-extensions.js","sourceRoot":"","sources":["../../src/extensions/date-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class ExpressionExtensionError extends Error {
2
+ description?: string;
3
+ constructor(message: string, options?: {
4
+ description?: string;
5
+ });
6
+ }
7
+ //# sourceMappingURL=expression-extension-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-extension-error.d.ts","sourceRoot":"","sources":["../../src/extensions/expression-extension-error.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;CAO/D"}
@@ -0,0 +1,11 @@
1
+ export class ExpressionExtensionError extends Error {
2
+ description;
3
+ constructor(message, options) {
4
+ super(message);
5
+ this.name = 'ExpressionExtensionError';
6
+ if (options?.description !== undefined) {
7
+ this.description = options.description;
8
+ }
9
+ }
10
+ }
11
+ //# sourceMappingURL=expression-extension-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-extension-error.js","sourceRoot":"","sources":["../../src/extensions/expression-extension-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAClD,WAAW,CAAU;IAErB,YAAY,OAAe,EAAE,OAAkC;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,12 @@
1
+ import type { ExtensionMap } from './extensions';
2
+ export declare const EXTENSION_OBJECTS: ExtensionMap[];
3
+ /**
4
+ * Extender function injected by expression extension plugin to allow calls to extensions.
5
+ *
6
+ * ```ts
7
+ * extend(input, "functionName", [...args]);
8
+ * ```
9
+ */
10
+ export declare function extend(input: unknown, functionName: string, args: unknown[]): any;
11
+ export declare function extendOptional(input: unknown, functionName: string): Function | undefined;
12
+ //# sourceMappingURL=extend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/extensions/extend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAO3C,CAAC;AAsEF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAkC3E;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,GAElB,QAAQ,GAAG,SAAS,CAgBtB"}