@n8n/expression-runtime 0.2.0 → 0.4.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 (192) hide show
  1. package/ARCHITECTURE.md +5 -6
  2. package/LICENSE_EE.md +27 -0
  3. package/README.md +11 -11
  4. package/dist/bundle/runtime.esm.js +45 -0
  5. package/dist/bundle/runtime.esm.js.map +7 -0
  6. package/dist/bundle/runtime.iife.js +45 -0
  7. package/dist/bundle/runtime.iife.js.map +7 -0
  8. package/dist/cjs/bridge/isolated-vm-bridge.d.ts +132 -0
  9. package/dist/cjs/bridge/isolated-vm-bridge.d.ts.map +1 -0
  10. package/dist/cjs/bridge/isolated-vm-bridge.js +500 -0
  11. package/dist/cjs/bridge/isolated-vm-bridge.js.map +1 -0
  12. package/dist/cjs/build.tsbuildinfo +1 -0
  13. package/dist/cjs/evaluator/expression-evaluator.d.ts +23 -0
  14. package/dist/cjs/evaluator/expression-evaluator.d.ts.map +1 -0
  15. package/dist/cjs/evaluator/expression-evaluator.js +87 -0
  16. package/dist/cjs/evaluator/expression-evaluator.js.map +1 -0
  17. package/dist/cjs/extensions/array-extensions.d.ts +34 -0
  18. package/dist/cjs/extensions/array-extensions.d.ts.map +1 -0
  19. package/dist/cjs/extensions/array-extensions.js +632 -0
  20. package/dist/cjs/extensions/array-extensions.js.map +1 -0
  21. package/dist/cjs/extensions/boolean-extensions.d.ts +6 -0
  22. package/dist/cjs/extensions/boolean-extensions.d.ts.map +1 -0
  23. package/dist/cjs/extensions/boolean-extensions.js +49 -0
  24. package/dist/cjs/extensions/boolean-extensions.js.map +1 -0
  25. package/dist/cjs/extensions/date-extensions.d.ts +3 -0
  26. package/dist/cjs/extensions/date-extensions.d.ts.map +1 -0
  27. package/dist/cjs/extensions/date-extensions.js +528 -0
  28. package/dist/cjs/extensions/date-extensions.js.map +1 -0
  29. package/dist/cjs/extensions/expression-extension-error.d.ts +7 -0
  30. package/dist/cjs/extensions/expression-extension-error.d.ts.map +1 -0
  31. package/dist/cjs/extensions/expression-extension-error.js +25 -0
  32. package/dist/cjs/extensions/expression-extension-error.js.map +1 -0
  33. package/dist/cjs/extensions/extend.d.ts +12 -0
  34. package/dist/cjs/extensions/extend.d.ts.map +1 -0
  35. package/dist/cjs/extensions/extend.js +149 -0
  36. package/dist/cjs/extensions/extend.js.map +1 -0
  37. package/dist/cjs/extensions/extensions.d.ts +43 -0
  38. package/dist/cjs/extensions/extensions.d.ts.map +1 -0
  39. package/dist/cjs/extensions/extensions.js +13 -0
  40. package/dist/cjs/extensions/extensions.js.map +1 -0
  41. package/dist/cjs/extensions/number-extensions.d.ts +27 -0
  42. package/dist/cjs/extensions/number-extensions.d.ts.map +1 -0
  43. package/dist/cjs/extensions/number-extensions.js +235 -0
  44. package/dist/cjs/extensions/number-extensions.js.map +1 -0
  45. package/dist/cjs/extensions/object-extensions.d.ts +46 -0
  46. package/dist/cjs/extensions/object-extensions.d.ts.map +1 -0
  47. package/dist/cjs/extensions/object-extensions.js +297 -0
  48. package/dist/cjs/extensions/object-extensions.js.map +1 -0
  49. package/dist/cjs/extensions/string-extensions.d.ts +38 -0
  50. package/dist/cjs/extensions/string-extensions.d.ts.map +1 -0
  51. package/dist/cjs/extensions/string-extensions.js +753 -0
  52. package/dist/cjs/extensions/string-extensions.js.map +1 -0
  53. package/dist/cjs/extensions/utils.d.ts +4 -0
  54. package/dist/cjs/extensions/utils.d.ts.map +1 -0
  55. package/dist/cjs/extensions/utils.js +42 -0
  56. package/dist/cjs/extensions/utils.js.map +1 -0
  57. package/dist/cjs/index.d.ts +7 -0
  58. package/dist/cjs/index.d.ts.map +1 -0
  59. package/dist/cjs/index.js +34 -0
  60. package/dist/cjs/index.js.map +1 -0
  61. package/dist/cjs/runtime/index.d.ts +17 -0
  62. package/dist/cjs/runtime/index.d.ts.map +1 -0
  63. package/dist/cjs/runtime/index.js +35 -0
  64. package/dist/cjs/runtime/index.js.map +1 -0
  65. package/dist/cjs/runtime/lazy-proxy.d.ts +22 -0
  66. package/dist/cjs/runtime/lazy-proxy.d.ts.map +1 -0
  67. package/dist/cjs/runtime/lazy-proxy.js +179 -0
  68. package/dist/cjs/runtime/lazy-proxy.js.map +1 -0
  69. package/dist/cjs/runtime/reset.d.ts +16 -0
  70. package/dist/cjs/runtime/reset.d.ts.map +1 -0
  71. package/dist/cjs/runtime/reset.js +137 -0
  72. package/dist/cjs/runtime/reset.js.map +1 -0
  73. package/dist/cjs/runtime/safe-globals.d.ts +21 -0
  74. package/dist/cjs/runtime/safe-globals.d.ts.map +1 -0
  75. package/dist/cjs/runtime/safe-globals.js +125 -0
  76. package/dist/cjs/runtime/safe-globals.js.map +1 -0
  77. package/dist/{types → cjs/types}/bridge.d.ts +2 -0
  78. package/dist/cjs/types/bridge.d.ts.map +1 -0
  79. package/dist/cjs/types/bridge.js +26 -0
  80. package/dist/cjs/types/bridge.js.map +1 -0
  81. package/dist/{types → cjs/types}/evaluator.d.ts +1 -4
  82. package/dist/cjs/types/evaluator.d.ts.map +1 -0
  83. package/dist/cjs/types/evaluator.js +47 -0
  84. package/dist/cjs/types/evaluator.js.map +1 -0
  85. package/dist/{types → cjs/types}/index.d.ts +2 -2
  86. package/dist/cjs/types/index.d.ts.map +1 -0
  87. package/dist/cjs/types/index.js +30 -0
  88. package/dist/cjs/types/index.js.map +1 -0
  89. package/dist/cjs/types/runtime.d.ts +20 -0
  90. package/dist/cjs/types/runtime.d.ts.map +1 -0
  91. package/dist/cjs/types/runtime.js +39 -0
  92. package/dist/cjs/types/runtime.js.map +1 -0
  93. package/dist/esm/bridge/isolated-vm-bridge.d.ts +132 -0
  94. package/dist/esm/bridge/isolated-vm-bridge.d.ts.map +1 -0
  95. package/dist/esm/bridge/isolated-vm-bridge.js +450 -0
  96. package/dist/esm/bridge/isolated-vm-bridge.js.map +1 -0
  97. package/dist/esm/build.tsbuildinfo +1 -0
  98. package/dist/esm/evaluator/expression-evaluator.d.ts +23 -0
  99. package/dist/esm/evaluator/expression-evaluator.d.ts.map +1 -0
  100. package/dist/esm/evaluator/expression-evaluator.js +73 -0
  101. package/dist/esm/evaluator/expression-evaluator.js.map +1 -0
  102. package/dist/esm/extensions/array-extensions.d.ts +34 -0
  103. package/dist/esm/extensions/array-extensions.d.ts.map +1 -0
  104. package/dist/esm/extensions/array-extensions.js +610 -0
  105. package/dist/esm/extensions/array-extensions.js.map +1 -0
  106. package/dist/esm/extensions/boolean-extensions.d.ts +6 -0
  107. package/dist/esm/extensions/boolean-extensions.d.ts.map +1 -0
  108. package/dist/esm/extensions/boolean-extensions.js +33 -0
  109. package/dist/esm/extensions/boolean-extensions.js.map +1 -0
  110. package/dist/esm/extensions/date-extensions.d.ts +3 -0
  111. package/dist/esm/extensions/date-extensions.d.ts.map +1 -0
  112. package/dist/esm/extensions/date-extensions.js +515 -0
  113. package/dist/esm/extensions/date-extensions.js.map +1 -0
  114. package/dist/esm/extensions/expression-extension-error.d.ts +7 -0
  115. package/dist/esm/extensions/expression-extension-error.d.ts.map +1 -0
  116. package/dist/esm/extensions/expression-extension-error.js +11 -0
  117. package/dist/esm/extensions/expression-extension-error.js.map +1 -0
  118. package/dist/esm/extensions/extend.d.ts +12 -0
  119. package/dist/esm/extensions/extend.d.ts.map +1 -0
  120. package/dist/esm/extensions/extend.js +134 -0
  121. package/dist/esm/extensions/extend.js.map +1 -0
  122. package/dist/esm/extensions/extensions.d.ts +43 -0
  123. package/dist/esm/extensions/extensions.d.ts.map +1 -0
  124. package/dist/esm/extensions/extensions.js +2 -0
  125. package/dist/esm/extensions/extensions.js.map +1 -0
  126. package/dist/esm/extensions/number-extensions.d.ts +27 -0
  127. package/dist/esm/extensions/number-extensions.d.ts.map +1 -0
  128. package/dist/esm/extensions/number-extensions.js +221 -0
  129. package/dist/esm/extensions/number-extensions.js.map +1 -0
  130. package/dist/esm/extensions/object-extensions.d.ts +46 -0
  131. package/dist/esm/extensions/object-extensions.d.ts.map +1 -0
  132. package/dist/esm/extensions/object-extensions.js +277 -0
  133. package/dist/esm/extensions/object-extensions.js.map +1 -0
  134. package/dist/esm/extensions/string-extensions.d.ts +38 -0
  135. package/dist/esm/extensions/string-extensions.d.ts.map +1 -0
  136. package/dist/esm/extensions/string-extensions.js +735 -0
  137. package/dist/esm/extensions/string-extensions.js.map +1 -0
  138. package/dist/esm/extensions/utils.d.ts +4 -0
  139. package/dist/esm/extensions/utils.d.ts.map +1 -0
  140. package/dist/esm/extensions/utils.js +27 -0
  141. package/dist/esm/extensions/utils.js.map +1 -0
  142. package/dist/esm/index.d.ts +7 -0
  143. package/dist/esm/index.d.ts.map +1 -0
  144. package/dist/esm/index.js +10 -0
  145. package/dist/esm/index.js.map +1 -0
  146. package/dist/esm/runtime/index.d.ts +17 -0
  147. package/dist/esm/runtime/index.d.ts.map +1 -0
  148. package/dist/esm/runtime/index.js +23 -0
  149. package/dist/esm/runtime/index.js.map +1 -0
  150. package/dist/esm/runtime/lazy-proxy.d.ts +22 -0
  151. package/dist/esm/runtime/lazy-proxy.d.ts.map +1 -0
  152. package/dist/esm/runtime/lazy-proxy.js +164 -0
  153. package/dist/esm/runtime/lazy-proxy.js.map +1 -0
  154. package/dist/esm/runtime/reset.d.ts +16 -0
  155. package/dist/esm/runtime/reset.d.ts.map +1 -0
  156. package/dist/esm/runtime/reset.js +124 -0
  157. package/dist/esm/runtime/reset.js.map +1 -0
  158. package/dist/esm/runtime/safe-globals.d.ts +21 -0
  159. package/dist/esm/runtime/safe-globals.d.ts.map +1 -0
  160. package/dist/esm/runtime/safe-globals.js +110 -0
  161. package/dist/esm/runtime/safe-globals.js.map +1 -0
  162. package/dist/esm/types/bridge.d.ts +63 -0
  163. package/dist/esm/types/bridge.d.ts.map +1 -0
  164. package/dist/{types → esm/types}/bridge.js +6 -1
  165. package/dist/esm/types/bridge.js.map +1 -0
  166. package/dist/esm/types/evaluator.d.ts +194 -0
  167. package/dist/esm/types/evaluator.d.ts.map +1 -0
  168. package/dist/esm/types/evaluator.js.map +1 -0
  169. package/dist/esm/types/index.d.ts +11 -0
  170. package/dist/esm/types/index.d.ts.map +1 -0
  171. package/dist/{types → esm/types}/index.js +2 -0
  172. package/dist/esm/types/index.js.map +1 -0
  173. package/dist/esm/types/runtime.d.ts +20 -0
  174. package/dist/esm/types/runtime.d.ts.map +1 -0
  175. package/dist/{types → esm/types}/runtime.js +0 -6
  176. package/dist/esm/types/runtime.js.map +1 -0
  177. package/package.json +29 -6
  178. package/dist/build.tsbuildinfo +0 -1
  179. package/dist/index.d.ts +0 -3
  180. package/dist/index.d.ts.map +0 -1
  181. package/dist/index.js +0 -2
  182. package/dist/index.js.map +0 -1
  183. package/dist/types/bridge.d.ts.map +0 -1
  184. package/dist/types/bridge.js.map +0 -1
  185. package/dist/types/evaluator.d.ts.map +0 -1
  186. package/dist/types/evaluator.js.map +0 -1
  187. package/dist/types/index.d.ts.map +0 -1
  188. package/dist/types/index.js.map +0 -1
  189. package/dist/types/runtime.d.ts +0 -122
  190. package/dist/types/runtime.d.ts.map +0 -1
  191. package/dist/types/runtime.js.map +0 -1
  192. /package/dist/{types → esm/types}/evaluator.js +0 -0
@@ -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"}
@@ -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,43 @@
1
+ export interface ExtensionMap {
2
+ typeName: string;
3
+ functions: Record<string, Extension>;
4
+ }
5
+ export type Extension = Function & {
6
+ doc?: DocMetadata;
7
+ };
8
+ export type NativeDoc = {
9
+ typeName: string;
10
+ properties?: Record<string, {
11
+ doc?: DocMetadata;
12
+ }>;
13
+ functions: Record<string, {
14
+ doc?: DocMetadata;
15
+ }>;
16
+ };
17
+ export type DocMetadataArgument = {
18
+ name: string;
19
+ type?: string;
20
+ optional?: boolean;
21
+ variadic?: boolean;
22
+ description?: string;
23
+ default?: string;
24
+ args?: DocMetadataArgument[];
25
+ };
26
+ export type DocMetadataExample = {
27
+ example: string;
28
+ evaluated?: string;
29
+ description?: string;
30
+ };
31
+ export type DocMetadata = {
32
+ name: string;
33
+ returnType: string;
34
+ description?: string;
35
+ section?: string;
36
+ hidden?: boolean;
37
+ aliases?: string[];
38
+ aliasMode?: 'prefix' | 'exact';
39
+ args?: DocMetadataArgument[];
40
+ examples?: DocMetadataExample[];
41
+ docURL?: string;
42
+ };
43
+ //# sourceMappingURL=extensions.d.ts.map
@@ -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,27 @@
1
+ import { DateTime } from 'luxon';
2
+ import type { ExtensionMap } from './extensions';
3
+ type DateTimeFormat = 'ms' | 's' | 'us' | 'excel';
4
+ export declare function toDateTime(value: number, extraArgs: [DateTimeFormat]): DateTime;
5
+ export declare namespace toDateTime {
6
+ var doc: {
7
+ name: string;
8
+ description: string;
9
+ examples: {
10
+ example: string;
11
+ evaluated: string;
12
+ }[];
13
+ section: string;
14
+ returnType: string;
15
+ args: {
16
+ name: string;
17
+ optional: boolean;
18
+ description: string;
19
+ default: string;
20
+ type: string;
21
+ }[];
22
+ docURL: string;
23
+ };
24
+ }
25
+ export declare const numberExtensions: ExtensionMap;
26
+ export {};
27
+ //# sourceMappingURL=number-extensions.d.ts.map
@@ -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;AA2DjD,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,235 @@
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
+ function format(value, extraArgs) {
17
+ const [locales = 'en-US', config = {}] = extraArgs;
18
+ return new Intl.NumberFormat(locales, config).format(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');
23
+ }
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');
29
+ }
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'.`);
61
+ }
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);
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);
78
+ }
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',
192
+ },
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
+ };
234
+ });
235
+ //# 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,46 @@
1
+ import type { ExtensionMap } from './extensions';
2
+ export declare function compact(value: object): object;
3
+ export declare namespace compact {
4
+ var doc: {
5
+ name: string;
6
+ description: string;
7
+ examples: {
8
+ example: string;
9
+ evaluated: string;
10
+ }[];
11
+ returnType: string;
12
+ docURL: string;
13
+ };
14
+ }
15
+ export declare function urlEncode(value: object): string;
16
+ export declare namespace urlEncode {
17
+ var doc: {
18
+ name: string;
19
+ description: string;
20
+ examples: {
21
+ example: string;
22
+ evaluated: string;
23
+ }[];
24
+ returnType: string;
25
+ docURL: string;
26
+ };
27
+ }
28
+ export declare function toJsonString(value: object): string;
29
+ export declare namespace toJsonString {
30
+ var doc: {
31
+ name: string;
32
+ description: string;
33
+ examples: {
34
+ example: string;
35
+ evaluated: string;
36
+ }[];
37
+ docURL: string;
38
+ returnType: string;
39
+ };
40
+ }
41
+ export declare function toInt(): undefined;
42
+ export declare function toFloat(): undefined;
43
+ export declare function toBoolean(): undefined;
44
+ export declare function toDateTime(): undefined;
45
+ export declare const objectExtensions: ExtensionMap;
46
+ //# sourceMappingURL=object-extensions.d.ts.map
@@ -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;;;;;;;;;;;;AAmBvB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAEtC;yBAFe,SAAS;;;;;;;;;;;;AAIzB,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"}