@n8n/expression-runtime 0.3.0 → 0.5.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 (236) hide show
  1. package/README.md +3 -3
  2. package/dist/bundle/runtime.esm.js +17 -17
  3. package/dist/bundle/runtime.esm.js.map +4 -4
  4. package/dist/bundle/runtime.iife.js +17 -17
  5. package/dist/bundle/runtime.iife.js.map +4 -4
  6. package/dist/{bridge → cjs/bridge}/isolated-vm-bridge.d.ts +3 -2
  7. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -0
  8. package/dist/cjs/bridge/isolated-vm-bridge.js +512 -0
  9. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -0
  10. package/dist/cjs/build.tsbuildinfo +1 -0
  11. package/dist/cjs/evaluator/expression-evaluator.d.ts +23 -0
  12. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -0
  13. package/dist/cjs/evaluator/expression-evaluator.js +89 -0
  14. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -0
  15. package/dist/cjs/extensions/array-extensions.d.ts.map +1 -0
  16. package/dist/cjs/extensions/array-extensions.js +637 -0
  17. package/dist/cjs/extensions/array-extensions.js.map +1 -0
  18. package/dist/cjs/extensions/boolean-extensions.d.ts.map +1 -0
  19. package/dist/cjs/extensions/boolean-extensions.js +49 -0
  20. package/dist/cjs/extensions/boolean-extensions.js.map +1 -0
  21. package/dist/cjs/extensions/date-extensions.d.ts.map +1 -0
  22. package/dist/cjs/extensions/date-extensions.js +528 -0
  23. package/dist/cjs/extensions/date-extensions.js.map +1 -0
  24. package/dist/cjs/extensions/expression-extension-error.d.ts.map +1 -0
  25. package/dist/cjs/extensions/expression-extension-error.js +25 -0
  26. package/dist/cjs/extensions/expression-extension-error.js.map +1 -0
  27. package/dist/cjs/extensions/extend.d.ts.map +1 -0
  28. package/dist/cjs/extensions/extend.js +149 -0
  29. package/dist/cjs/extensions/extend.js.map +1 -0
  30. package/dist/cjs/extensions/extensions.d.ts.map +1 -0
  31. package/dist/cjs/extensions/extensions.js +13 -0
  32. package/dist/cjs/extensions/extensions.js.map +1 -0
  33. package/dist/cjs/extensions/function-extensions.d.ts +28 -0
  34. package/dist/cjs/extensions/function-extensions.d.ts.map +1 -0
  35. package/dist/cjs/extensions/function-extensions.js +92 -0
  36. package/dist/cjs/extensions/function-extensions.js.map +1 -0
  37. package/dist/cjs/extensions/number-extensions.d.ts.map +1 -0
  38. package/dist/cjs/extensions/number-extensions.js +244 -0
  39. package/dist/cjs/extensions/number-extensions.js.map +1 -0
  40. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -0
  41. package/dist/cjs/extensions/object-extensions.js +305 -0
  42. package/dist/cjs/extensions/object-extensions.js.map +1 -0
  43. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -0
  44. package/dist/cjs/extensions/string-extensions.js +790 -0
  45. package/dist/cjs/extensions/string-extensions.js.map +1 -0
  46. package/dist/cjs/extensions/utils.d.ts.map +1 -0
  47. package/dist/cjs/extensions/utils.js +42 -0
  48. package/dist/cjs/extensions/utils.js.map +1 -0
  49. package/dist/cjs/index.d.ts +7 -0
  50. package/dist/cjs/index.d.ts.map +1 -0
  51. package/dist/cjs/index.js +35 -0
  52. package/dist/cjs/index.js.map +1 -0
  53. package/dist/cjs/runtime/index.d.ts +34 -0
  54. package/dist/cjs/runtime/index.d.ts.map +1 -0
  55. package/dist/cjs/runtime/index.js +39 -0
  56. package/dist/cjs/runtime/index.js.map +1 -0
  57. package/dist/{runtime → cjs/runtime}/lazy-proxy.d.ts +4 -0
  58. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -0
  59. package/dist/cjs/runtime/lazy-proxy.js +179 -0
  60. package/dist/cjs/runtime/lazy-proxy.js.map +1 -0
  61. package/dist/{runtime → cjs/runtime}/reset.d.ts +1 -1
  62. package/dist/cjs/runtime/reset.d.ts.map +1 -0
  63. package/dist/cjs/runtime/reset.js +157 -0
  64. package/dist/cjs/runtime/reset.js.map +1 -0
  65. package/dist/cjs/runtime/safe-globals.d.ts.map +1 -0
  66. package/dist/cjs/runtime/safe-globals.js +125 -0
  67. package/dist/cjs/runtime/safe-globals.js.map +1 -0
  68. package/dist/cjs/runtime/serialize.d.ts +19 -0
  69. package/dist/cjs/runtime/serialize.d.ts.map +1 -0
  70. package/dist/cjs/runtime/serialize.js +67 -0
  71. package/dist/cjs/runtime/serialize.js.map +1 -0
  72. package/dist/{types → cjs/types}/bridge.d.ts +11 -1
  73. package/dist/cjs/types/bridge.d.ts.map +1 -0
  74. package/dist/cjs/types/bridge.js +26 -0
  75. package/dist/cjs/types/bridge.js.map +1 -0
  76. package/dist/{types → cjs/types}/evaluator.d.ts +6 -7
  77. package/dist/cjs/types/evaluator.d.ts.map +1 -0
  78. package/dist/cjs/types/evaluator.js +47 -0
  79. package/dist/cjs/types/evaluator.js.map +1 -0
  80. package/dist/{types → cjs/types}/index.d.ts +3 -2
  81. package/dist/cjs/types/index.d.ts.map +1 -0
  82. package/dist/cjs/types/index.js +30 -0
  83. package/dist/cjs/types/index.js.map +1 -0
  84. package/dist/cjs/types/runtime.d.ts.map +1 -0
  85. package/dist/cjs/types/runtime.js +39 -0
  86. package/dist/cjs/types/runtime.js.map +1 -0
  87. package/dist/esm/bridge/isolated-vm-bridge.d.ts +133 -0
  88. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -0
  89. package/dist/{bridge → esm/bridge}/isolated-vm-bridge.js +62 -24
  90. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -0
  91. package/dist/esm/build.tsbuildinfo +1 -0
  92. package/dist/esm/evaluator/expression-evaluator.d.ts +23 -0
  93. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -0
  94. package/dist/esm/evaluator/expression-evaluator.js +75 -0
  95. package/dist/esm/evaluator/expression-evaluator.js.map +1 -0
  96. package/dist/esm/extensions/array-extensions.d.ts +34 -0
  97. package/dist/esm/extensions/array-extensions.d.ts.map +1 -0
  98. package/dist/{extensions → esm/extensions}/array-extensions.js +6 -1
  99. package/dist/esm/extensions/array-extensions.js.map +1 -0
  100. package/dist/esm/extensions/boolean-extensions.d.ts +6 -0
  101. package/dist/esm/extensions/boolean-extensions.d.ts.map +1 -0
  102. package/dist/esm/extensions/boolean-extensions.js.map +1 -0
  103. package/dist/esm/extensions/date-extensions.d.ts +3 -0
  104. package/dist/esm/extensions/date-extensions.d.ts.map +1 -0
  105. package/dist/esm/extensions/date-extensions.js.map +1 -0
  106. package/dist/esm/extensions/expression-extension-error.d.ts +7 -0
  107. package/dist/esm/extensions/expression-extension-error.d.ts.map +1 -0
  108. package/dist/esm/extensions/expression-extension-error.js.map +1 -0
  109. package/dist/esm/extensions/extend.d.ts +12 -0
  110. package/dist/esm/extensions/extend.d.ts.map +1 -0
  111. package/dist/esm/extensions/extend.js.map +1 -0
  112. package/dist/esm/extensions/extensions.d.ts +43 -0
  113. package/dist/esm/extensions/extensions.d.ts.map +1 -0
  114. package/dist/esm/extensions/extensions.js.map +1 -0
  115. package/dist/esm/extensions/function-extensions.d.ts +28 -0
  116. package/dist/esm/extensions/function-extensions.d.ts.map +1 -0
  117. package/dist/esm/extensions/function-extensions.js +79 -0
  118. package/dist/esm/extensions/function-extensions.js.map +1 -0
  119. package/dist/esm/extensions/number-extensions.d.ts +27 -0
  120. package/dist/esm/extensions/number-extensions.d.ts.map +1 -0
  121. package/dist/{extensions → esm/extensions}/number-extensions.js +10 -1
  122. package/dist/esm/extensions/number-extensions.js.map +1 -0
  123. package/dist/esm/extensions/object-extensions.d.ts +46 -0
  124. package/dist/esm/extensions/object-extensions.d.ts.map +1 -0
  125. package/dist/{extensions → esm/extensions}/object-extensions.js +9 -1
  126. package/dist/esm/extensions/object-extensions.js.map +1 -0
  127. package/dist/esm/extensions/string-extensions.d.ts +38 -0
  128. package/dist/esm/extensions/string-extensions.d.ts.map +1 -0
  129. package/dist/{extensions → esm/extensions}/string-extensions.js +41 -4
  130. package/dist/esm/extensions/string-extensions.js.map +1 -0
  131. package/dist/esm/extensions/utils.d.ts +4 -0
  132. package/dist/esm/extensions/utils.d.ts.map +1 -0
  133. package/dist/esm/extensions/utils.js.map +1 -0
  134. package/dist/esm/index.d.ts +7 -0
  135. package/dist/esm/index.d.ts.map +1 -0
  136. package/dist/esm/index.js +11 -0
  137. package/dist/esm/index.js.map +1 -0
  138. package/dist/esm/runtime/index.d.ts +34 -0
  139. package/dist/esm/runtime/index.d.ts.map +1 -0
  140. package/dist/{runtime → esm/runtime}/index.js +5 -1
  141. package/dist/esm/runtime/index.js.map +1 -0
  142. package/dist/esm/runtime/lazy-proxy.d.ts +22 -0
  143. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -0
  144. package/dist/{runtime → esm/runtime}/lazy-proxy.js +20 -6
  145. package/dist/esm/runtime/lazy-proxy.js.map +1 -0
  146. package/dist/esm/runtime/reset.d.ts +16 -0
  147. package/dist/esm/runtime/reset.d.ts.map +1 -0
  148. package/dist/{runtime → esm/runtime}/reset.js +21 -1
  149. package/dist/esm/runtime/reset.js.map +1 -0
  150. package/dist/esm/runtime/safe-globals.d.ts +21 -0
  151. package/dist/esm/runtime/safe-globals.d.ts.map +1 -0
  152. package/dist/esm/runtime/safe-globals.js.map +1 -0
  153. package/dist/esm/runtime/serialize.d.ts +19 -0
  154. package/dist/esm/runtime/serialize.d.ts.map +1 -0
  155. package/dist/esm/runtime/serialize.js +54 -0
  156. package/dist/esm/runtime/serialize.js.map +1 -0
  157. package/dist/esm/types/bridge.d.ts +71 -0
  158. package/dist/esm/types/bridge.d.ts.map +1 -0
  159. package/dist/{types → esm/types}/bridge.js +6 -1
  160. package/dist/esm/types/bridge.js.map +1 -0
  161. package/dist/esm/types/evaluator.d.ts +196 -0
  162. package/dist/esm/types/evaluator.d.ts.map +1 -0
  163. package/dist/esm/types/evaluator.js.map +1 -0
  164. package/dist/esm/types/index.d.ts +11 -0
  165. package/dist/esm/types/index.d.ts.map +1 -0
  166. package/dist/{types → esm/types}/index.js +1 -0
  167. package/dist/esm/types/index.js.map +1 -0
  168. package/dist/esm/types/runtime.d.ts +20 -0
  169. package/dist/esm/types/runtime.d.ts.map +1 -0
  170. package/dist/esm/types/runtime.js.map +1 -0
  171. package/package.json +16 -5
  172. package/dist/bridge/isolated-vm-bridge.d.ts.map +0 -1
  173. package/dist/bridge/isolated-vm-bridge.js.map +0 -1
  174. package/dist/build.tsbuildinfo +0 -1
  175. package/dist/extensions/array-extensions.d.ts.map +0 -1
  176. package/dist/extensions/array-extensions.js.map +0 -1
  177. package/dist/extensions/boolean-extensions.d.ts.map +0 -1
  178. package/dist/extensions/boolean-extensions.js.map +0 -1
  179. package/dist/extensions/date-extensions.d.ts.map +0 -1
  180. package/dist/extensions/date-extensions.js.map +0 -1
  181. package/dist/extensions/expression-extension-error.d.ts.map +0 -1
  182. package/dist/extensions/expression-extension-error.js.map +0 -1
  183. package/dist/extensions/extend.d.ts.map +0 -1
  184. package/dist/extensions/extend.js.map +0 -1
  185. package/dist/extensions/extensions.d.ts.map +0 -1
  186. package/dist/extensions/extensions.js.map +0 -1
  187. package/dist/extensions/number-extensions.d.ts.map +0 -1
  188. package/dist/extensions/number-extensions.js.map +0 -1
  189. package/dist/extensions/object-extensions.d.ts.map +0 -1
  190. package/dist/extensions/object-extensions.js.map +0 -1
  191. package/dist/extensions/string-extensions.d.ts.map +0 -1
  192. package/dist/extensions/string-extensions.js.map +0 -1
  193. package/dist/extensions/utils.d.ts.map +0 -1
  194. package/dist/extensions/utils.js.map +0 -1
  195. package/dist/index.d.ts +0 -3
  196. package/dist/index.d.ts.map +0 -1
  197. package/dist/index.js +0 -2
  198. package/dist/index.js.map +0 -1
  199. package/dist/runtime/index.d.ts +0 -17
  200. package/dist/runtime/index.d.ts.map +0 -1
  201. package/dist/runtime/index.js.map +0 -1
  202. package/dist/runtime/lazy-proxy.d.ts.map +0 -1
  203. package/dist/runtime/lazy-proxy.js.map +0 -1
  204. package/dist/runtime/reset.d.ts.map +0 -1
  205. package/dist/runtime/reset.js.map +0 -1
  206. package/dist/runtime/safe-globals.d.ts.map +0 -1
  207. package/dist/runtime/safe-globals.js.map +0 -1
  208. package/dist/types/bridge.d.ts.map +0 -1
  209. package/dist/types/bridge.js.map +0 -1
  210. package/dist/types/evaluator.d.ts.map +0 -1
  211. package/dist/types/evaluator.js.map +0 -1
  212. package/dist/types/index.d.ts.map +0 -1
  213. package/dist/types/index.js.map +0 -1
  214. package/dist/types/runtime.d.ts.map +0 -1
  215. package/dist/types/runtime.js.map +0 -1
  216. /package/dist/{extensions → cjs/extensions}/array-extensions.d.ts +0 -0
  217. /package/dist/{extensions → cjs/extensions}/boolean-extensions.d.ts +0 -0
  218. /package/dist/{extensions → cjs/extensions}/date-extensions.d.ts +0 -0
  219. /package/dist/{extensions → cjs/extensions}/expression-extension-error.d.ts +0 -0
  220. /package/dist/{extensions → cjs/extensions}/extend.d.ts +0 -0
  221. /package/dist/{extensions → cjs/extensions}/extensions.d.ts +0 -0
  222. /package/dist/{extensions → cjs/extensions}/number-extensions.d.ts +0 -0
  223. /package/dist/{extensions → cjs/extensions}/object-extensions.d.ts +0 -0
  224. /package/dist/{extensions → cjs/extensions}/string-extensions.d.ts +0 -0
  225. /package/dist/{extensions → cjs/extensions}/utils.d.ts +0 -0
  226. /package/dist/{runtime → cjs/runtime}/safe-globals.d.ts +0 -0
  227. /package/dist/{types → cjs/types}/runtime.d.ts +0 -0
  228. /package/dist/{extensions → esm/extensions}/boolean-extensions.js +0 -0
  229. /package/dist/{extensions → esm/extensions}/date-extensions.js +0 -0
  230. /package/dist/{extensions → esm/extensions}/expression-extension-error.js +0 -0
  231. /package/dist/{extensions → esm/extensions}/extend.js +0 -0
  232. /package/dist/{extensions → esm/extensions}/extensions.js +0 -0
  233. /package/dist/{extensions → esm/extensions}/utils.js +0 -0
  234. /package/dist/{runtime → esm/runtime}/safe-globals.js +0 -0
  235. /package/dist/{types → esm/types}/evaluator.js +0 -0
  236. /package/dist/{types → esm/types}/runtime.js +0 -0
@@ -0,0 +1,149 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "luxon", "./array-extensions", "./boolean-extensions", "./date-extensions", "./expression-extension-error", "./number-extensions", "./object-extensions", "./string-extensions", "./utils"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EXTENSION_OBJECTS = void 0;
13
+ exports.extend = extend;
14
+ exports.extendOptional = extendOptional;
15
+ const luxon_1 = require("luxon");
16
+ const array_extensions_1 = require("./array-extensions");
17
+ const boolean_extensions_1 = require("./boolean-extensions");
18
+ const date_extensions_1 = require("./date-extensions");
19
+ const expression_extension_error_1 = require("./expression-extension-error");
20
+ const number_extensions_1 = require("./number-extensions");
21
+ const object_extensions_1 = require("./object-extensions");
22
+ const string_extensions_1 = require("./string-extensions");
23
+ const utils_1 = require("./utils");
24
+ function isEmpty(value) {
25
+ return value === null || value === undefined || !value;
26
+ }
27
+ function isNotEmpty(value) {
28
+ return !isEmpty(value);
29
+ }
30
+ exports.EXTENSION_OBJECTS = [
31
+ array_extensions_1.arrayExtensions,
32
+ date_extensions_1.dateExtensions,
33
+ number_extensions_1.numberExtensions,
34
+ object_extensions_1.objectExtensions,
35
+ string_extensions_1.stringExtensions,
36
+ boolean_extensions_1.booleanExtensions,
37
+ ];
38
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
39
+ const genericExtensions = {
40
+ isEmpty,
41
+ isNotEmpty,
42
+ };
43
+ function isDate(input) {
44
+ if (typeof input !== 'string' || !input.length) {
45
+ return false;
46
+ }
47
+ if (!/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(input)) {
48
+ return false;
49
+ }
50
+ const d = new Date(input);
51
+ return d instanceof Date && !isNaN(d.valueOf()) && d.toISOString() === input;
52
+ }
53
+ function findExtendedFunction(input, functionName) {
54
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
55
+ let foundFunction;
56
+ if (Array.isArray(input)) {
57
+ foundFunction = array_extensions_1.arrayExtensions.functions[functionName];
58
+ }
59
+ else if (isDate(input) && functionName !== 'toDate' && functionName !== 'toDateTime') {
60
+ // If it's a string date (from $json), convert it to a Date object,
61
+ // unless that function is `toDate`, since `toDate` does something
62
+ // very different on date objects
63
+ input = new Date(input);
64
+ foundFunction = date_extensions_1.dateExtensions.functions[functionName];
65
+ }
66
+ else if (typeof input === 'string') {
67
+ foundFunction = string_extensions_1.stringExtensions.functions[functionName];
68
+ }
69
+ else if (typeof input === 'number') {
70
+ foundFunction = number_extensions_1.numberExtensions.functions[functionName];
71
+ }
72
+ else if (input && (luxon_1.DateTime.isDateTime(input) || input instanceof Date)) {
73
+ foundFunction = date_extensions_1.dateExtensions.functions[functionName];
74
+ }
75
+ else if (input !== null && typeof input === 'object') {
76
+ foundFunction = object_extensions_1.objectExtensions.functions[functionName];
77
+ }
78
+ else if (typeof input === 'boolean') {
79
+ foundFunction = boolean_extensions_1.booleanExtensions.functions[functionName];
80
+ }
81
+ // Look for generic or builtin
82
+ if (!foundFunction) {
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ const inputAny = input;
85
+ // This is likely a builtin we're implementing for another type
86
+ // (e.g. toLocaleString). We'll return that instead
87
+ if (inputAny && functionName && typeof inputAny[functionName] === 'function') {
88
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
89
+ return { type: 'native', function: inputAny[functionName] };
90
+ }
91
+ // Use a generic version if available
92
+ foundFunction = genericExtensions[functionName];
93
+ }
94
+ if (!foundFunction) {
95
+ return undefined;
96
+ }
97
+ return { type: 'extended', function: foundFunction };
98
+ }
99
+ /**
100
+ * Extender function injected by expression extension plugin to allow calls to extensions.
101
+ *
102
+ * ```ts
103
+ * extend(input, "functionName", [...args]);
104
+ * ```
105
+ */
106
+ function extend(input, functionName, args) {
107
+ const foundFunction = findExtendedFunction(input, functionName);
108
+ // No type specific or generic function found. Check to see if
109
+ // any types have a function with that name. Then throw an error
110
+ // letting the user know the available types.
111
+ if (!foundFunction) {
112
+ (0, utils_1.checkIfValueDefinedOrThrow)(input, functionName);
113
+ const haveFunction = exports.EXTENSION_OBJECTS.filter((v) => functionName in v.functions);
114
+ if (!haveFunction.length) {
115
+ // This shouldn't really be possible but we should cover it anyway
116
+ throw new expression_extension_error_1.ExpressionExtensionError(`Unknown expression function: ${functionName}`);
117
+ }
118
+ if (haveFunction.length > 1) {
119
+ const lastType = `"${haveFunction.pop().typeName}"`;
120
+ const typeNames = `${haveFunction.map((v) => `"${v.typeName}"`).join(', ')}, and ${lastType}`;
121
+ throw new expression_extension_error_1.ExpressionExtensionError(`${functionName}() is only callable on types ${typeNames}`);
122
+ }
123
+ else {
124
+ throw new expression_extension_error_1.ExpressionExtensionError(`${functionName}() is only callable on type "${haveFunction[0].typeName}"`);
125
+ }
126
+ }
127
+ if (foundFunction.type === 'native') {
128
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
129
+ return foundFunction.function.apply(input, args);
130
+ }
131
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
132
+ return foundFunction.function(input, args);
133
+ }
134
+ function extendOptional(input, functionName) {
135
+ const foundFunction = findExtendedFunction(input, functionName);
136
+ if (!foundFunction) {
137
+ return undefined;
138
+ }
139
+ if (foundFunction.type === 'native') {
140
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
141
+ return foundFunction.function.bind(input);
142
+ }
143
+ return (...args) => {
144
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
145
+ return foundFunction.function(input, args);
146
+ };
147
+ }
148
+ });
149
+ //# sourceMappingURL=extend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/extensions/extend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/extensions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACrC;AAGD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,GAAG,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ });
13
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/extensions/extensions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ declare function ifEmpty<T, V>(value: V, defaultValue: T): T | (V & {});
2
+ declare namespace ifEmpty {
3
+ var doc: {
4
+ name: string;
5
+ description: string;
6
+ returnType: string;
7
+ args: {
8
+ name: string;
9
+ type: string;
10
+ }[];
11
+ docURL: string;
12
+ };
13
+ }
14
+ export declare const extendedFunctions: {
15
+ min: (...values: number[]) => number;
16
+ max: (...values: number[]) => number;
17
+ not: (value: unknown) => boolean;
18
+ average: (...args: number[]) => number;
19
+ numberList: (start: number, end: number) => number[];
20
+ zip: (keys: unknown[], values: unknown[]) => unknown;
21
+ $min: (...values: number[]) => number;
22
+ $max: (...values: number[]) => number;
23
+ $average: (...args: number[]) => number;
24
+ $not: (value: unknown) => boolean;
25
+ $ifEmpty: typeof ifEmpty;
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=function-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":"AAyCA,iBAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,gBAsB/C;kBAtBQ,OAAO;;;;;;;;;;;;AAoChB,eAAO,MAAM,iBAAiB;;;iBAxCV,OAAO,KAAG,OAAO;uBAJX,MAAM,EAAE;wBA3BP,MAAM,OAAO,MAAM,KAAG,MAAM,EAAE;gBAgBtC,OAAO,EAAE,UAAU,OAAO,EAAE,KAAG,OAAO;;;wBAW/B,MAAM,EAAE;kBAId,OAAO,KAAG,OAAO;;CAoDpC,CAAC"}
@@ -0,0 +1,92 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./array-extensions", "./expression-extension-error"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.extendedFunctions = void 0;
13
+ const array_extensions_1 = require("./array-extensions");
14
+ const expression_extension_error_1 = require("./expression-extension-error");
15
+ const min = Math.min;
16
+ const max = Math.max;
17
+ const numberList = (start, end) => {
18
+ const size = Math.abs(start - end) + 1;
19
+ const arr = new Array(size);
20
+ let curr = start;
21
+ for (let i = 0; i < size; i++) {
22
+ if (start < end) {
23
+ arr[i] = curr++;
24
+ }
25
+ else {
26
+ arr[i] = curr--;
27
+ }
28
+ }
29
+ return arr;
30
+ };
31
+ const zip = (keys, values) => {
32
+ if (keys.length !== values.length) {
33
+ throw new expression_extension_error_1.ExpressionExtensionError('keys and values not of equal length');
34
+ }
35
+ return keys.reduce((p, c, i) => {
36
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
37
+ p[c] = values[i];
38
+ return p;
39
+ }, {});
40
+ };
41
+ const average = (...args) => {
42
+ return (0, array_extensions_1.average)(args);
43
+ };
44
+ const not = (value) => {
45
+ return !value;
46
+ };
47
+ function ifEmpty(value, defaultValue) {
48
+ if (arguments.length !== 2) {
49
+ // DIVERGENCE from packages/workflow/src/extensions/extended-functions.ts:
50
+ // The original throws ExpressionError (from ExecutionBaseError). The runtime
51
+ // uses ExpressionExtensionError because the full ExpressionError class is not
52
+ // available in the extensions layer — only a minimal shim exists in safe-globals.
53
+ throw new expression_extension_error_1.ExpressionExtensionError('expected two arguments (value, defaultValue) for this function');
54
+ }
55
+ if (value === undefined || value === null || value === '') {
56
+ return defaultValue;
57
+ }
58
+ if (typeof value === 'object') {
59
+ if (Array.isArray(value) && !value.length) {
60
+ return defaultValue;
61
+ }
62
+ if (!Object.keys(value).length) {
63
+ return defaultValue;
64
+ }
65
+ }
66
+ return value;
67
+ }
68
+ ifEmpty.doc = {
69
+ name: 'ifEmpty',
70
+ description: 'Returns the default value if the value is empty. Empty values are undefined, null, empty strings, arrays without elements and objects without keys.',
71
+ returnType: 'any',
72
+ args: [
73
+ { name: 'value', type: 'any' },
74
+ { name: 'defaultValue', type: 'any' },
75
+ ],
76
+ docURL: 'https://docs.n8n.io/code/builtin/convenience',
77
+ };
78
+ exports.extendedFunctions = {
79
+ min,
80
+ max,
81
+ not,
82
+ average,
83
+ numberList,
84
+ zip,
85
+ $min: min,
86
+ $max: max,
87
+ $average: average,
88
+ $not: not,
89
+ $ifEmpty: ifEmpty,
90
+ };
91
+ });
92
+ //# sourceMappingURL=function-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-extensions.js","sourceRoot":"","sources":["../../../src/extensions/function-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/number-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmEjD,KAAK,cAAc,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,YA4BpE;yBA5Be,UAAU;;;;;;;;;;;;;;;;;;;;AA4L1B,eAAO,MAAM,gBAAgB,EAAE,YAgB9B,CAAC"}
@@ -0,0 +1,244 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "luxon", "./expression-extension-error"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.numberExtensions = void 0;
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);
49
+ }
50
+ function isInteger(value) {
51
+ return Number.isInteger(value);
52
+ }
53
+ function round(value, extraArgs) {
54
+ const [decimalPlaces = 0] = extraArgs;
55
+ return +value.toFixed(decimalPlaces);
56
+ }
57
+ function toBoolean(value) {
58
+ return value !== 0;
59
+ }
60
+ function toInt(value) {
61
+ return round(value, []);
62
+ }
63
+ function toFloat(value) {
64
+ return value;
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);
87
+ }
88
+ }
89
+ ceil.doc = {
90
+ name: 'ceil',
91
+ description: 'Rounds the number up to the next whole number',
92
+ examples: [{ example: '(1.234).ceil()', evaluated: '2' }],
93
+ returnType: 'number',
94
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-ceil',
95
+ };
96
+ floor.doc = {
97
+ name: 'floor',
98
+ description: 'Rounds the number down to the nearest whole number',
99
+ examples: [{ example: '(1.234).floor()', evaluated: '1' }],
100
+ returnType: 'number',
101
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-floor',
102
+ };
103
+ isEven.doc = {
104
+ name: 'isEven',
105
+ 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.",
106
+ examples: [
107
+ { example: '(33).isEven()', evaluated: 'false' },
108
+ { example: '(42).isEven()', evaluated: 'true' },
109
+ ],
110
+ returnType: 'boolean',
111
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isEven',
112
+ };
113
+ isOdd.doc = {
114
+ name: 'isOdd',
115
+ 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.",
116
+ examples: [
117
+ { example: '(33).isOdd()', evaluated: 'true' },
118
+ { example: '(42).isOdd()', evaluated: 'false' },
119
+ ],
120
+ returnType: 'boolean',
121
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-isOdd',
122
+ };
123
+ format.doc = {
124
+ name: 'format',
125
+ 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>.',
126
+ examples: [
127
+ { example: "(123456.789).format('de-DE')", evaluated: '123.456,789' },
128
+ {
129
+ example: "(123456.789).format('de-DE', {'style': 'currency', 'currency': 'EUR'})",
130
+ evaluated: '123.456,79 €',
131
+ },
132
+ ],
133
+ returnType: 'string',
134
+ args: [
135
+ {
136
+ name: 'locale',
137
+ optional: true,
138
+ 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>',
139
+ default: '"en-US"',
140
+ type: 'string',
141
+ },
142
+ {
143
+ name: 'options',
144
+ optional: true,
145
+ 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>',
146
+ type: 'object',
147
+ },
148
+ ],
149
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-format',
150
+ };
151
+ round.doc = {
152
+ name: 'round',
153
+ description: 'Rounds the number to the nearest integer (or decimal place)',
154
+ examples: [
155
+ { example: '(1.256).round()', evaluated: '1' },
156
+ { example: '(1.256).round(1)', evaluated: '1.3' },
157
+ { example: '(1.256).round(2)', evaluated: '1.26' },
158
+ ],
159
+ returnType: 'number',
160
+ args: [
161
+ {
162
+ name: 'decimalPlaces',
163
+ optional: true,
164
+ description: 'The number of decimal places to round to',
165
+ default: '0',
166
+ type: 'number',
167
+ },
168
+ ],
169
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-round',
170
+ };
171
+ toBoolean.doc = {
172
+ name: 'toBoolean',
173
+ description: 'Returns <code>false</code> for <code>0</code> and <code>true</code> for any other number (including negative numbers).',
174
+ examples: [
175
+ { example: '(12).toBoolean()', evaluated: 'true' },
176
+ { example: '(0).toBoolean()', evaluated: 'false' },
177
+ { example: '(-1.3).toBoolean()', evaluated: 'true' },
178
+ ],
179
+ section: 'cast',
180
+ returnType: 'boolean',
181
+ docURL: 'https://docs.n8n.io/code/builtin/data-transformation-functions/numbers/#number-toBoolean',
182
+ };
183
+ toDateTime.doc = {
184
+ name: 'toDateTime',
185
+ 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.',
186
+ examples: [
187
+ { example: "(1708695471).toDateTime('s')", evaluated: '2024-02-23T14:37:51.000+01:00' },
188
+ { example: "(1708695471000).toDateTime('ms')", evaluated: '2024-02-23T14:37:51.000+01:00' },
189
+ { example: "(1708695471000000).toDateTime('us')", evaluated: '2024-02-23T14:37:51.000+01:00' },
190
+ { example: "(45345).toDateTime('excel')", evaluated: '2024-02-23T01:00:00.000+01:00' },
191
+ ],
192
+ section: 'cast',
193
+ returnType: 'DateTime',
194
+ args: [
195
+ {
196
+ name: 'format',
197
+ optional: true,
198
+ 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).',
199
+ default: '"ms"',
200
+ type: 'string',
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,
241
+ },
242
+ };
243
+ });
244
+ //# sourceMappingURL=number-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-extensions.js","sourceRoot":"","sources":["../../../src/extensions/number-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-extensions.d.ts","sourceRoot":"","sources":["../../../src/extensions/object-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB7C;yBAjBe,OAAO;;;;;;;;;;;;AAuBvB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAStC;yBATe,SAAS;;;;;;;;;;;;AAWzB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC;yBAFe,YAAY;;;;;;;;;;;;AAI5B,wBAAgB,KAAK,cAEpB;AAED,wBAAgB,OAAO,cAEtB;AAED,wBAAgB,SAAS,cAExB;AAED,wBAAgB,UAAU,cAEzB;AA+LD,eAAO,MAAM,gBAAgB,EAAE,YAmB9B,CAAC"}