n8n-workflow 0.134.0 → 0.135.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 (45) hide show
  1. package/dist/ErrorReporterProxy.js +9 -1
  2. package/dist/ErrorReporterProxy.js.map +1 -1
  3. package/dist/Expression.d.ts +2 -0
  4. package/dist/Expression.js +30 -3
  5. package/dist/Expression.js.map +1 -1
  6. package/dist/ExpressionError.d.ts +2 -0
  7. package/dist/ExpressionError.js +4 -0
  8. package/dist/ExpressionError.js.map +1 -1
  9. package/dist/Extensions/ArrayExtensions.d.ts +7 -0
  10. package/dist/Extensions/ArrayExtensions.js +116 -38
  11. package/dist/Extensions/ArrayExtensions.js.map +1 -1
  12. package/dist/Extensions/DateExtensions.js +47 -64
  13. package/dist/Extensions/DateExtensions.js.map +1 -1
  14. package/dist/Extensions/ExpressionExtension.d.ts +1 -0
  15. package/dist/Extensions/ExpressionExtension.js +8 -8
  16. package/dist/Extensions/ExpressionExtension.js.map +1 -1
  17. package/dist/Extensions/Extensions.d.ts +10 -1
  18. package/dist/Extensions/NumberExtensions.js +28 -21
  19. package/dist/Extensions/NumberExtensions.js.map +1 -1
  20. package/dist/Extensions/ObjectExtensions.d.ts +20 -0
  21. package/dist/Extensions/ObjectExtensions.js +50 -4
  22. package/dist/Extensions/ObjectExtensions.js.map +1 -1
  23. package/dist/Extensions/StringExtensions.js +165 -49
  24. package/dist/Extensions/StringExtensions.js.map +1 -1
  25. package/dist/Extensions/index.d.ts +2 -1
  26. package/dist/Extensions/index.js +2 -1
  27. package/dist/Extensions/index.js.map +1 -1
  28. package/dist/Interfaces.d.ts +11 -2
  29. package/dist/Interfaces.js.map +1 -1
  30. package/dist/NativeMethods/String.methods.d.ts +4 -0
  31. package/dist/NativeMethods/String.methods.js +8 -0
  32. package/dist/NativeMethods/String.methods.js.map +1 -0
  33. package/dist/NativeMethods/index.d.ts +5 -0
  34. package/dist/NativeMethods/index.js +7 -0
  35. package/dist/NativeMethods/index.js.map +1 -0
  36. package/dist/RoutingNode.d.ts +2 -1
  37. package/dist/RoutingNode.js +40 -17
  38. package/dist/RoutingNode.js.map +1 -1
  39. package/dist/WorkflowDataProxy.js +30 -1
  40. package/dist/WorkflowDataProxy.js.map +1 -1
  41. package/dist/build.tsbuildinfo +1 -1
  42. package/dist/index.d.ts +3 -0
  43. package/dist/index.js +5 -1
  44. package/dist/index.js.map +1 -1
  45. package/package.json +3 -2
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.stringExtensions = void 0;
30
+ const title_case_1 = require("title-case");
30
31
  const ExpressionError = __importStar(require("../ExpressionError"));
31
32
  const crypto_js_1 = __importDefault(require("crypto-js"));
32
33
  const js_base64_1 = require("js-base64");
@@ -47,33 +48,24 @@ const EMAIL_REGEXP = /(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"
47
48
  const URL_REGEXP = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{2,}\b([-a-zA-Z0-9()\[\]@:%_\+.~#?&//=]*)/;
48
49
  const CHAR_TEST_REGEXP = /\p{L}/u;
49
50
  const PUNC_TEST_REGEXP = /[!?.]/;
50
- const TRUE_VALUES = ['true', '1', 't', 'yes', 'y'];
51
- const FALSE_VALUES = ['false', '0', 'f', 'no', 'n'];
52
- function encrypt(value, extraArgs) {
53
- const [format = 'MD5'] = extraArgs;
54
- if (format.toLowerCase() === 'base64') {
51
+ function hash(value, extraArgs) {
52
+ const [algorithm = 'MD5'] = extraArgs;
53
+ if (algorithm.toLowerCase() === 'base64') {
55
54
  return (0, js_base64_1.encode)(value);
56
55
  }
57
- const hashFunction = hashFunctions[format.toLowerCase()];
56
+ const hashFunction = hashFunctions[algorithm.toLowerCase()];
58
57
  if (!hashFunction) {
59
- throw new ExpressionError.ExpressionExtensionError(`Unknown encrypt type ${format}. Available types are: ${Object.keys(hashFunctions)
58
+ throw new ExpressionError.ExpressionExtensionError(`Unknown algorithm ${algorithm}. Available algorithms are: ${Object.keys(hashFunctions)
60
59
  .map((s) => s.toUpperCase())
61
60
  .join(', ')}, and Base64.`);
62
61
  }
63
62
  return hashFunction(value.toString()).toString();
64
63
  }
65
- function getOnlyFirstCharacters(value, extraArgs) {
66
- const [end] = extraArgs;
67
- if (typeof end !== 'number') {
68
- throw new ExpressionError.ExpressionExtensionError('getOnlyFirstCharacters() requires a argument');
69
- }
70
- return value.slice(0, end);
71
- }
72
- function isBlank(value) {
64
+ function isEmpty(value) {
73
65
  return value === '';
74
66
  }
75
- function isPresent(value) {
76
- return !isBlank(value);
67
+ function isNotEmpty(value) {
68
+ return !isEmpty(value);
77
69
  }
78
70
  function length(value) {
79
71
  return value.length;
@@ -107,14 +99,15 @@ function removeMarkdown(value) {
107
99
  }
108
100
  return output;
109
101
  }
110
- function sayHi(value) {
111
- return `hi ${value}`;
112
- }
113
- function stripTags(value) {
102
+ function removeTags(value) {
114
103
  return value.replace(/<[^>]*>?/gm, '');
115
104
  }
116
105
  function toDate(value) {
117
- return new Date(value.toString());
106
+ const date = new Date(value.toString());
107
+ if (date.toString() === 'Invalid Date') {
108
+ throw new ExpressionError.ExpressionExtensionError('cannot convert to date');
109
+ }
110
+ return date;
118
111
  }
119
112
  function urlDecode(value, extraArgs) {
120
113
  const [entireString = false] = extraArgs;
@@ -132,10 +125,21 @@ function urlEncode(value, extraArgs) {
132
125
  }
133
126
  function toInt(value, extraArgs) {
134
127
  const [radix] = extraArgs;
135
- return parseInt(value.replace(CURRENCY_REGEXP, ''), radix);
128
+ const int = parseInt(value.replace(CURRENCY_REGEXP, ''), radix);
129
+ if (isNaN(int)) {
130
+ throw new ExpressionError.ExpressionExtensionError('cannot convert to integer');
131
+ }
132
+ return int;
136
133
  }
137
134
  function toFloat(value) {
138
- return parseFloat(value.replace(CURRENCY_REGEXP, ''));
135
+ if (value.includes(',')) {
136
+ throw new ExpressionError.ExpressionExtensionError('cannot convert to float, expected . as decimal separator');
137
+ }
138
+ const float = parseFloat(value.replace(CURRENCY_REGEXP, ''));
139
+ if (isNaN(float)) {
140
+ throw new ExpressionError.ExpressionExtensionError('cannot convert to float');
141
+ }
142
+ return float;
139
143
  }
140
144
  function quote(value, extraArgs) {
141
145
  const [quoteChar = '"'] = extraArgs;
@@ -143,13 +147,9 @@ function quote(value, extraArgs) {
143
147
  .replace(/\\/g, '\\\\')
144
148
  .replace(new RegExp(`\\${quoteChar}`, 'g'), `\\${quoteChar}`)}${quoteChar}`;
145
149
  }
146
- function isTrue(value) {
147
- return TRUE_VALUES.includes(value.toLowerCase());
148
- }
149
- function isFalse(value) {
150
- return FALSE_VALUES.includes(value.toLowerCase());
151
- }
152
150
  function isNumeric(value) {
151
+ if (value.includes(' '))
152
+ return false;
153
153
  return !isNaN(value) && !isNaN(parseFloat(value));
154
154
  }
155
155
  function isUrl(value) {
@@ -160,19 +160,29 @@ function isUrl(value) {
160
160
  catch (_error) {
161
161
  return false;
162
162
  }
163
- return url.protocol === 'http:' || url.protocol === 'https:';
163
+ for (const scheme of ['http:', 'https:']) {
164
+ if (url.protocol === scheme &&
165
+ value.slice(scheme.length, scheme.length + '//'.length) === '//') {
166
+ return true;
167
+ }
168
+ }
169
+ return false;
164
170
  }
165
171
  function isDomain(value) {
166
172
  return DOMAIN_REGEXP.test(value);
167
173
  }
168
174
  function isEmail(value) {
169
- return EMAIL_REGEXP.test(value);
170
- }
171
- function stripSpecialChars(value) {
172
- return (0, transliteration_1.transliterate)(value, { unknown: '?' });
175
+ const result = EMAIL_REGEXP.test(value);
176
+ if (result && value.includes(' ')) {
177
+ return false;
178
+ }
179
+ return result;
173
180
  }
174
181
  function toTitleCase(value) {
175
- return value.replace(/\w\S*/g, (v) => v.charAt(0).toLocaleUpperCase() + v.slice(1));
182
+ return (0, title_case_1.titleCase)(value);
183
+ }
184
+ function replaceSpecialChars(value) {
185
+ return (0, transliteration_1.transliterate)(value, { unknown: '?' });
176
186
  }
177
187
  function toSentenceCase(value) {
178
188
  let current = value.slice();
@@ -228,16 +238,126 @@ function extractUrl(value) {
228
238
  }
229
239
  return matched[0];
230
240
  }
241
+ removeMarkdown.doc = {
242
+ name: 'removeMarkdown',
243
+ description: 'Removes Markdown formatting from a string',
244
+ returnType: 'string',
245
+ };
246
+ removeTags.doc = {
247
+ name: 'removeTags',
248
+ description: 'Removes tags, such as HTML or XML, from a string',
249
+ returnType: 'string',
250
+ };
251
+ toDate.doc = {
252
+ name: 'toDate',
253
+ description: 'Converts a string to a date',
254
+ returnType: 'Date',
255
+ };
256
+ toFloat.doc = {
257
+ name: 'toFloat',
258
+ description: 'Converts a string to a decimal number',
259
+ returnType: 'number',
260
+ aliases: ['toDecimalNumber'],
261
+ };
262
+ toInt.doc = {
263
+ name: 'toInt',
264
+ description: 'Converts a string to an integer',
265
+ returnType: 'number',
266
+ aliases: ['toWholeNumber'],
267
+ };
268
+ toSentenceCase.doc = {
269
+ name: 'toSentenceCase',
270
+ description: 'Formats a string to sentence case. Example: "This is a sentence"',
271
+ returnType: 'string',
272
+ };
273
+ toSnakeCase.doc = {
274
+ name: 'toSnakeCase',
275
+ description: 'Formats a string to snake case. Example: "this_is_snake_case"',
276
+ returnType: 'string',
277
+ };
278
+ toTitleCase.doc = {
279
+ name: 'toTitleCase',
280
+ description: 'Formats a string to title case. Example: "This Is a Title"',
281
+ returnType: 'string',
282
+ };
283
+ urlDecode.doc = {
284
+ name: 'urlDecode',
285
+ description: 'Decodes a URL-encoded string. It decodes any percent-encoded characters in the input string, and replaces them with their original characters.',
286
+ returnType: 'string',
287
+ };
288
+ replaceSpecialChars.doc = {
289
+ name: 'replaceSpecialChars',
290
+ description: 'Replaces non-ASCII characters in a string with an ASCII representation',
291
+ returnType: 'string',
292
+ };
293
+ length.doc = {
294
+ name: 'length',
295
+ description: 'Returns the character count of a string',
296
+ returnType: 'number',
297
+ };
298
+ isDomain.doc = {
299
+ name: 'isDomain',
300
+ description: 'Checks if a string is a domain',
301
+ returnType: 'boolean',
302
+ };
303
+ isEmail.doc = {
304
+ name: 'isEmail',
305
+ description: 'Checks if a string is an email',
306
+ returnType: 'boolean',
307
+ };
308
+ isNumeric.doc = {
309
+ name: 'isEmail',
310
+ description: 'Checks if a string only contains digits',
311
+ returnType: 'boolean',
312
+ };
313
+ isUrl.doc = {
314
+ name: 'isUrl',
315
+ description: 'Checks if a string is a valid URL',
316
+ returnType: 'boolean',
317
+ };
318
+ isEmpty.doc = {
319
+ name: 'isEmpty',
320
+ description: 'Checks if a string is empty',
321
+ returnType: 'boolean',
322
+ };
323
+ isNotEmpty.doc = {
324
+ name: 'isNotEmpty',
325
+ description: 'Checks if a string has content',
326
+ returnType: 'boolean',
327
+ };
328
+ extractEmail.doc = {
329
+ name: 'extractEmail',
330
+ description: 'Extracts an email from a string. Returns undefined if none is found.',
331
+ returnType: 'string',
332
+ };
333
+ extractDomain.doc = {
334
+ name: 'extractDomain',
335
+ description: 'Extracts a domain from a string containing a valid URL. Returns undefined if none is found.',
336
+ returnType: 'string',
337
+ };
338
+ extractUrl.doc = {
339
+ name: 'extractUrl',
340
+ description: 'Extracts a URL from a string. Returns undefined if none is found.',
341
+ returnType: 'string',
342
+ };
343
+ hash.doc = {
344
+ name: 'hash',
345
+ returnType: 'string',
346
+ };
347
+ urlEncode.doc = {
348
+ name: 'urlEncode',
349
+ returnType: 'string',
350
+ };
351
+ quote.doc = {
352
+ name: 'quote',
353
+ returnType: 'string',
354
+ };
231
355
  exports.stringExtensions = {
232
356
  typeName: 'String',
233
357
  functions: {
234
- encrypt,
235
- hash: encrypt,
236
- getOnlyFirstCharacters,
358
+ hash,
237
359
  removeMarkdown,
238
- sayHi,
239
- stripTags,
240
- toBoolean: isTrue,
360
+ removeTags,
241
361
  toDate,
242
362
  toDecimalNumber: toFloat,
243
363
  toFloat,
@@ -249,18 +369,14 @@ exports.stringExtensions = {
249
369
  urlDecode,
250
370
  urlEncode,
251
371
  quote,
252
- stripSpecialChars,
372
+ replaceSpecialChars,
253
373
  length,
254
374
  isDomain,
255
375
  isEmail,
256
- isTrue,
257
- isFalse,
258
- isNotTrue: isFalse,
259
376
  isNumeric,
260
377
  isUrl,
261
- isURL: isUrl,
262
- isBlank,
263
- isPresent,
378
+ isEmpty,
379
+ isNotEmpty,
264
380
  extractEmail,
265
381
  extractDomain,
266
382
  extractUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"StringExtensions.js","sourceRoot":"","sources":["../../src/Extensions/StringExtensions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oEAAsD;AAEtD,0DAAiC;AACjC,yCAAmC;AACnC,qDAAgD;AAEhD,MAAM,aAAa,GAAwC;IAC1D,GAAG,EAAE,mBAAQ,CAAC,GAAG;IACjB,IAAI,EAAE,mBAAQ,CAAC,IAAI;IACnB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,IAAI,EAAE,mBAAQ,CAAC,IAAI;IACnB,SAAS,EAAE,mBAAQ,CAAC,SAAS;CAC7B,CAAC;AAGF,MAAM,eAAe,GACpB,8pBAA8pB,CAAC;AAChqB,MAAM,aAAa,GAAG,+DAA+D,CAAC;AAItF,MAAM,YAAY,GACjB,+JAA+J,CAAC;AAGjK,MAAM,UAAU,GACf,0GAA0G,CAAC;AAE5G,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAEpD,SAAS,OAAO,CAAC,KAAa,EAAE,SAAmB;IAClD,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,SAAqB,CAAC;IAC/C,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;QAGtC,OAAO,IAAA,kBAAM,EAAC,KAAK,CAAC,CAAC;KACrB;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,eAAe,CAAC,wBAAwB,CACjD,wBAAwB,MAAM,0BAA0B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;aAChF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,CAC3B,CAAC;KACF;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAElD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,SAAmB;IACjE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAExB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAI,eAAe,CAAC,wBAAwB,CACjD,8CAA8C,CAC9C,CAAC;KACF;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,KAAK,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI;QACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,GAAG,MAAM;aAEb,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aAEzB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAElB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3B,MAAM,GAAG,MAAM;aAEb,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC;aAE1D,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAE7B,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aAEpC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aAEpC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;aAEvC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aAEjB,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC;aAErD,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC;aAChD,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;aACxC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;aACjC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACX,OAAO,KAAK,CAAC;KACb;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,OAAO,MAAM,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,SAAoB;IACrD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,IAAI,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,SAAoB;IACrD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,IAAI,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAoC;IACjE,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1B,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAmB;IAChD,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,OAAO,GAAG,SAAS,GAAG,KAAK;SACzB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,CAAC,KAAK,CAAC,KAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,IAAI,GAAQ,CAAC;IACb,IAAI;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KACrB;IAAC,OAAO,MAAM,EAAE;QAChB,OAAO,KAAK,CAAC;KACb;IACD,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC9B,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACvC,OAAO,IAAA,+BAAa,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,OAAO;YACN,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;gBAE3B,OAAO,CAAC,SAAS,CAAE,CAAC,iBAAiB,EAAE;gBACvC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACrB,MAAM,IAAI,OAAO,CAAC;YAClB,OAAO,GAAG,EAAE,CAAC;YACb,MAAM;SACN;QACD,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;KACvC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,OAAO,KAAK;SACV,iBAAiB,EAAE;SACnB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,iEAAiE,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IAClC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACb,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;;IACnC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE;YACb,OAAO,SAAS,CAAC;SACjB;QACD,OAAO,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;KAC9B;SAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;KAC/B;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE;QACb,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAEY,QAAA,gBAAgB,GAAiB;IAC7C,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE;QACV,OAAO;QACP,IAAI,EAAE,OAAO;QACb,sBAAsB;QACtB,cAAc;QACd,KAAK;QACL,SAAS;QACT,SAAS,EAAE,MAAM;QACjB,MAAM;QACN,eAAe,EAAE,OAAO;QACxB,OAAO;QACP,KAAK;QACL,aAAa,EAAE,KAAK;QACpB,cAAc;QACd,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,KAAK;QACL,iBAAiB;QACjB,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS,EAAE,OAAO;QAClB,SAAS;QACT,KAAK;QACL,KAAK,EAAE,KAAK;QACZ,OAAO;QACP,SAAS;QACT,YAAY;QACZ,aAAa;QACb,UAAU;KACV;CACD,CAAC"}
1
+ {"version":3,"file":"StringExtensions.js","sourceRoot":"","sources":["../../src/Extensions/StringExtensions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2CAAuC;AACvC,oEAAsD;AAEtD,0DAAiC;AACjC,yCAAmC;AACnC,qDAAgD;AAEhD,MAAM,aAAa,GAAwC;IAC1D,GAAG,EAAE,mBAAQ,CAAC,GAAG;IACjB,IAAI,EAAE,mBAAQ,CAAC,IAAI;IACnB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,mBAAQ,CAAC,MAAM;IACvB,IAAI,EAAE,mBAAQ,CAAC,IAAI;IACnB,SAAS,EAAE,mBAAQ,CAAC,SAAS;CAC7B,CAAC;AAGF,MAAM,eAAe,GACpB,8pBAA8pB,CAAC;AAChqB,MAAM,aAAa,GAAG,+DAA+D,CAAC;AAItF,MAAM,YAAY,GACjB,+JAA+J,CAAC;AAGjK,MAAM,UAAU,GACf,0GAA0G,CAAC;AAE5G,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,SAAS,IAAI,CAAC,KAAa,EAAE,SAAmB;IAC/C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,SAAqB,CAAC;IAClD,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;QAGzC,OAAO,IAAA,kBAAM,EAAC,KAAK,CAAC,CAAC;KACrB;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,eAAe,CAAC,wBAAwB,CACjD,qBAAqB,SAAS,+BAA+B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;aACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,CAC3B,CAAC;KACF;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAElD,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,OAAO,KAAK,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI;QACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,GAAG,MAAM;aAEb,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aAEzB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAElB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3B,MAAM,GAAG,MAAM;aAEb,OAAO,CAAC,6CAA6C,EAAE,EAAE,CAAC;aAE1D,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAE7B,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aAEpC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aAEpC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;aAEvC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aAEjB,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC;aAErD,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC;aAChD,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;aACxC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;aACjC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACX,OAAO,KAAK,CAAC;KACb;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,cAAc,EAAE;QACvC,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;KAC7E;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,SAAoB;IACrD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,IAAI,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,SAAoB;IACrD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,IAAI,YAAY,EAAE;QACjB,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;IACD,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAoC;IACjE,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAEhE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;QACf,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,CAAC;KAChF;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACxB,MAAM,IAAI,eAAe,CAAC,wBAAwB,CACjD,0DAA0D,CAC1D,CAAC;KACF;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACjB,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;KAC9E;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,SAAmB;IAChD,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IACpC,OAAO,GAAG,SAAS,GAAG,KAAK;SACzB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,OAAO,CAAC,KAAK,CAAC,KAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC3B,IAAI,GAAQ,CAAC;IACb,IAAI;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KACrB;IAAC,OAAO,MAAM,EAAE;QAChB,OAAO,KAAK,CAAC;KACb;IAGD,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACzC,IACC,GAAG,CAAC,QAAQ,KAAK,MAAM;YACvB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAC/D;YACD,OAAO,IAAI,CAAC;SACZ;KACD;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC9B,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAGxC,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClC,OAAO,KAAK,CAAC;KACb;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,OAAO,IAAA,sBAAS,EAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACzC,OAAO,IAAA,+BAAa,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,OAAO;YACN,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;gBAE3B,OAAO,CAAC,SAAS,CAAE,CAAC,iBAAiB,EAAE;gBACvC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACrB,MAAM,IAAI,OAAO,CAAC;YAClB,OAAO,GAAG,EAAE,CAAC;YACb,MAAM;SACN;QACD,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;QAC1C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;KACvC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,OAAO,KAAK;SACV,iBAAiB,EAAE;SACnB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,iEAAiE,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IAClC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACb,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;;IACnC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE;YACb,OAAO,SAAS,CAAC;SACjB;QACD,OAAO,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;KAC9B;SAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;KAC/B;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE;QACb,OAAO,SAAS,CAAC;KACjB;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,cAAc,CAAC,GAAG,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,2CAA2C;IACxD,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,UAAU,CAAC,GAAG,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,kDAAkD;IAC/D,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,CAAC,GAAG,GAAG;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,MAAM;CAClB,CAAC;AAEF,OAAO,CAAC,GAAG,GAAG;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uCAAuC;IACpD,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,CAAC,iBAAiB,CAAC;CAC5B,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iCAAiC;IAC9C,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,CAAC,eAAe,CAAC;CAC1B,CAAC;AAEF,cAAc,CAAC,GAAG,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,kEAAkE;IAC/E,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,WAAW,CAAC,GAAG,GAAG;IACjB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,+DAA+D;IAC5E,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,WAAW,CAAC,GAAG,GAAG;IACjB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,4DAA4D;IACzE,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,SAAS,CAAC,GAAG,GAAG;IACf,IAAI,EAAE,WAAW;IACjB,WAAW,EACV,gJAAgJ;IACjJ,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,mBAAmB,CAAC,GAAG,GAAG;IACzB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,wEAAwE;IACrF,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,CAAC,GAAG,GAAG;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,yCAAyC;IACtD,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,QAAQ,CAAC,GAAG,GAAG;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,gCAAgC;IAC7C,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,OAAO,CAAC,GAAG,GAAG;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gCAAgC;IAC7C,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,SAAS,CAAC,GAAG,GAAG;IACf,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,yCAAyC;IACtD,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,mCAAmC;IAChD,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,OAAO,CAAC,GAAG,GAAG;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,UAAU,CAAC,GAAG,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,gCAAgC;IAC7C,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,YAAY,CAAC,GAAG,GAAG;IAClB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,sEAAsE;IACnF,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,aAAa,CAAC,GAAG,GAAG;IACnB,IAAI,EAAE,eAAe;IACrB,WAAW,EACV,6FAA6F;IAC9F,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,UAAU,CAAC,GAAG,GAAG;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,mEAAmE;IAChF,UAAU,EAAE,QAAQ;CACpB,CAAC;AAIF,IAAI,CAAC,GAAG,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,SAAS,CAAC,GAAG,GAAG;IACf,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,KAAK,CAAC,GAAG,GAAG;IACX,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEW,QAAA,gBAAgB,GAAiB;IAC7C,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE;QACV,IAAI;QACJ,cAAc;QACd,UAAU;QACV,MAAM;QACN,eAAe,EAAE,OAAO;QACxB,OAAO;QACP,KAAK;QACL,aAAa,EAAE,KAAK;QACpB,cAAc;QACd,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,KAAK;QACL,mBAAmB;QACnB,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,YAAY;QACZ,aAAa;QACb,UAAU;KACV;CACD,CAAC"}
@@ -1 +1,2 @@
1
- export { extend, hasExpressionExtension, hasNativeMethod, extendTransform, } from './ExpressionExtension';
1
+ export { extend, hasExpressionExtension, hasNativeMethod, extendTransform, EXTENSION_OBJECTS as ExpressionExtensions, } from './ExpressionExtension';
2
+ export type { DocMetadata } from './Extensions';
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extendTransform = exports.hasNativeMethod = exports.hasExpressionExtension = exports.extend = void 0;
3
+ exports.ExpressionExtensions = exports.extendTransform = exports.hasNativeMethod = exports.hasExpressionExtension = exports.extend = void 0;
4
4
  var ExpressionExtension_1 = require("./ExpressionExtension");
5
5
  Object.defineProperty(exports, "extend", { enumerable: true, get: function () { return ExpressionExtension_1.extend; } });
6
6
  Object.defineProperty(exports, "hasExpressionExtension", { enumerable: true, get: function () { return ExpressionExtension_1.hasExpressionExtension; } });
7
7
  Object.defineProperty(exports, "hasNativeMethod", { enumerable: true, get: function () { return ExpressionExtension_1.hasNativeMethod; } });
8
8
  Object.defineProperty(exports, "extendTransform", { enumerable: true, get: function () { return ExpressionExtension_1.extendTransform; } });
9
+ Object.defineProperty(exports, "ExpressionExtensions", { enumerable: true, get: function () { return ExpressionExtension_1.EXTENSION_OBJECTS; } });
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Extensions/index.ts"],"names":[],"mappings":";;;AACA,6DAK+B;AAJ9B,6GAAA,MAAM,OAAA;AACN,6HAAA,sBAAsB,OAAA;AACtB,sHAAA,eAAe,OAAA;AACf,sHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Extensions/index.ts"],"names":[],"mappings":";;;AACA,6DAM+B;AAL9B,6GAAA,MAAM,OAAA;AACN,6HAAA,sBAAsB,OAAA;AACtB,sHAAA,eAAe,OAAA;AACf,sHAAA,eAAe,OAAA;AACf,2HAAA,iBAAiB,OAAwB"}
@@ -123,6 +123,7 @@ export interface IRequestOptionsSimplifiedAuth {
123
123
  body?: IDataObject;
124
124
  headers?: IDataObject;
125
125
  qs?: IDataObject;
126
+ url?: string;
126
127
  skipSslCertificateValidation?: boolean | string;
127
128
  }
128
129
  export interface IHttpRequestHelper {
@@ -325,12 +326,19 @@ export interface IN8nHttpFullResponse {
325
326
  statusMessage?: string;
326
327
  }
327
328
  export interface IN8nRequestOperations {
328
- pagination?: IN8nRequestOperationPaginationOffset | ((this: IExecutePaginationFunctions, requestOptions: DeclarativeRestApiSettings.ResultOptions) => Promise<INodeExecutionData[]>);
329
+ pagination?: IN8nRequestOperationPaginationGeneric | IN8nRequestOperationPaginationOffset | ((this: IExecutePaginationFunctions, requestOptions: DeclarativeRestApiSettings.ResultOptions) => Promise<INodeExecutionData[]>);
329
330
  }
330
331
  export interface IN8nRequestOperationPaginationBase {
331
332
  type: string;
332
333
  properties: {
333
- [key: string]: string | number;
334
+ [key: string]: unknown;
335
+ };
336
+ }
337
+ export interface IN8nRequestOperationPaginationGeneric extends IN8nRequestOperationPaginationBase {
338
+ type: 'generic';
339
+ properties: {
340
+ continue: boolean | string;
341
+ request: IRequestOptionsSimplifiedAuth;
334
342
  };
335
343
  }
336
344
  export interface IN8nRequestOperationPaginationOffset extends IN8nRequestOperationPaginationBase {
@@ -621,6 +629,7 @@ export interface INodeProperties {
621
629
  credentialTypes?: Array<'extends:oAuth2Api' | 'extends:oAuth1Api' | 'has:authenticate' | 'has:genericAuth'>;
622
630
  extractValue?: INodePropertyValueExtractor;
623
631
  modes?: INodePropertyMode[];
632
+ requiresDataPath?: 'single' | 'multiple';
624
633
  }
625
634
  export interface INodePropertyModeTypeOptions {
626
635
  searchListMethod?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../src/Interfaces.ts"],"names":[],"mappings":";;;AAyFA,MAAsB,YAAY;IAWjC,YACC,eAAwC,EACxC,IAAY,EACZ,WAAoC,EACpC,IAAa;;QAEb,IAAI,CAAC,EAAE,GAAG,MAAA,eAAe,CAAC,EAAE,mCAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CAaD;AAnCD,oCAmCC;AAqED,MAAsB,kBAAkB;IACvC,YAAqB,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;CAwC9C;AAzCD,gDAyCC;AAmiDD,IAAY,eAGX;AAHD,WAAY,eAAe;IAC1B,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;AACxC,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B"}
1
+ {"version":3,"file":"Interfaces.js","sourceRoot":"","sources":["../src/Interfaces.ts"],"names":[],"mappings":";;;AAyFA,MAAsB,YAAY;IAWjC,YACC,eAAwC,EACxC,IAAY,EACZ,WAAoC,EACpC,IAAa;;QAEb,IAAI,CAAC,EAAE,GAAG,MAAA,eAAe,CAAC,EAAE,mCAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CAaD;AAnCD,oCAmCC;AAsED,MAAsB,kBAAkB;IACvC,YAAqB,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;IAAG,CAAC;CAwC9C;AAzCD,gDAyCC;AA6iDD,IAAY,eAGX;AAHD,WAAY,eAAe;IAC1B,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;AACxC,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B"}
@@ -0,0 +1,4 @@
1
+ export declare const stringMethods: {
2
+ typeName: string;
3
+ functions: {};
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringMethods = void 0;
4
+ exports.stringMethods = {
5
+ typeName: 'String',
6
+ functions: {},
7
+ };
8
+ //# sourceMappingURL=String.methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"String.methods.js","sourceRoot":"","sources":["../../src/NativeMethods/String.methods.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IAC5B,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,EASV;CACD,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare const NATIVE_METHODS: {
2
+ typeName: string;
3
+ functions: {};
4
+ }[];
5
+ export { NATIVE_METHODS as NativeMethods };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeMethods = void 0;
4
+ const String_methods_1 = require("./String.methods");
5
+ const NATIVE_METHODS = [String_methods_1.stringMethods];
6
+ exports.NativeMethods = NATIVE_METHODS;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/NativeMethods/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD,MAAM,cAAc,GAAG,CAAC,8BAAa,CAAC,CAAC;AAEZ,uCAAa"}
@@ -11,7 +11,8 @@ export declare class RoutingNode {
11
11
  runNode(inputData: ITaskDataConnections, runIndex: number, nodeType: INodeType, executeData: IExecuteData, nodeExecuteFunctions: INodeExecuteFunctions, credentialsDecrypted?: ICredentialsDecrypted): Promise<INodeExecutionData[][] | null | undefined>;
12
12
  mergeOptions(destinationOptions: DeclarativeRestApiSettings.ResultOptions, sourceOptions?: DeclarativeRestApiSettings.ResultOptions): void;
13
13
  runPostReceiveAction(executeSingleFunctions: IExecuteSingleFunctions, action: PostReceiveAction, inputData: INodeExecutionData[], responseData: IN8nHttpFullResponse, parameterValue: string | IDataObject | undefined, itemIndex: number, runIndex: number): Promise<INodeExecutionData[]>;
14
- rawRoutingRequest(executeSingleFunctions: IExecuteSingleFunctions, requestData: DeclarativeRestApiSettings.ResultOptions, itemIndex: number, runIndex: number, credentialType?: string, credentialsDecrypted?: ICredentialsDecrypted): Promise<INodeExecutionData[]>;
14
+ postProcessResponseData(executeSingleFunctions: IExecuteSingleFunctions, responseData: IN8nHttpFullResponse, requestData: DeclarativeRestApiSettings.ResultOptions, itemIndex: number, runIndex: number): Promise<INodeExecutionData[]>;
15
+ rawRoutingRequest(executeSingleFunctions: IExecuteSingleFunctions, requestData: DeclarativeRestApiSettings.ResultOptions, credentialType?: string, credentialsDecrypted?: ICredentialsDecrypted): Promise<IN8nHttpFullResponse>;
15
16
  makeRoutingRequest(requestData: DeclarativeRestApiSettings.ResultOptions, executeSingleFunctions: IExecuteSingleFunctions, itemIndex: number, runIndex: number, credentialType?: string, requestOperations?: IN8nRequestOperations, credentialsDecrypted?: ICredentialsDecrypted): Promise<INodeExecutionData[]>;
16
17
  getParameterValue(parameterValue: NodeParameterValueType, itemIndex: number, runIndex: number, executeData: IExecuteData, additionalKeys?: IWorkflowDataProxyAdditionalKeys, returnObjectAsString?: boolean): NodeParameterValueType;
17
18
  getRequestOptionsFromParameters(executeSingleFunctions: IExecuteSingleFunctions, nodeProperties: INodeProperties | INodePropertyOptions, itemIndex: number, runIndex: number, path: string, additionalKeys?: IWorkflowDataProxyAdditionalKeys): DeclarativeRestApiSettings.ResultOptions | undefined;
@@ -94,7 +94,7 @@ class RoutingNode {
94
94
  }
95
95
  for (const property of nodeType.description.properties) {
96
96
  let value = (0, lodash_get_1.default)(this.node.parameters, property.name, []);
97
- value = this.getParameterValue(value, i, runIndex, executeData, { $credentials: credentials, $version: this.node.typeVersion }, true);
97
+ value = this.getParameterValue(value, i, runIndex, executeData, { $credentials: credentials, $version: this.node.typeVersion }, false);
98
98
  const tempOptions = this.getRequestOptionsFromParameters(thisArgs, property, i, runIndex, '', { $credentials: credentials, $value: value, $version: this.node.typeVersion });
99
99
  this.mergeOptions(requestData, tempOptions);
100
100
  }
@@ -215,7 +215,7 @@ class RoutingNode {
215
215
  $responseItem: item.json,
216
216
  $value: parameterValue,
217
217
  $version: this.node.typeVersion,
218
- }, true);
218
+ }, false);
219
219
  returnItem[key] = propertyValue;
220
220
  }
221
221
  returnData.push({ json: returnItem });
@@ -239,15 +239,7 @@ class RoutingNode {
239
239
  }
240
240
  return [];
241
241
  }
242
- async rawRoutingRequest(executeSingleFunctions, requestData, itemIndex, runIndex, credentialType, credentialsDecrypted) {
243
- let responseData;
244
- requestData.options.returnFullResponse = true;
245
- if (credentialType) {
246
- responseData = (await executeSingleFunctions.helpers.httpRequestWithAuthentication.call(executeSingleFunctions, credentialType, requestData.options, { credentialsDecrypted }));
247
- }
248
- else {
249
- responseData = (await executeSingleFunctions.helpers.httpRequest(requestData.options));
250
- }
242
+ async postProcessResponseData(executeSingleFunctions, responseData, requestData, itemIndex, runIndex) {
251
243
  let returnData = [
252
244
  {
253
245
  json: responseData.body,
@@ -274,6 +266,17 @@ class RoutingNode {
274
266
  }
275
267
  return returnData;
276
268
  }
269
+ async rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted) {
270
+ let responseData;
271
+ requestData.options.returnFullResponse = true;
272
+ if (credentialType) {
273
+ responseData = (await executeSingleFunctions.helpers.httpRequestWithAuthentication.call(executeSingleFunctions, credentialType, requestData.options, { credentialsDecrypted }));
274
+ }
275
+ else {
276
+ responseData = (await executeSingleFunctions.helpers.httpRequest(requestData.options));
277
+ }
278
+ return responseData;
279
+ }
277
280
  async makeRoutingRequest(requestData, executeSingleFunctions, itemIndex, runIndex, credentialType, requestOperations, credentialsDecrypted) {
278
281
  let responseData;
279
282
  for (const preSendMethod of requestData.preSend) {
@@ -282,7 +285,7 @@ class RoutingNode {
282
285
  const executePaginationFunctions = {
283
286
  ...executeSingleFunctions,
284
287
  makeRoutingRequest: async (requestOptions) => {
285
- return this.rawRoutingRequest(executeSingleFunctions, requestOptions, itemIndex, runIndex, credentialType, credentialsDecrypted);
288
+ return this.rawRoutingRequest(executeSingleFunctions, requestOptions, credentialType, credentialsDecrypted).then(async (data) => this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
286
289
  },
287
290
  };
288
291
  if (requestData.paginate && (requestOperations === null || requestOperations === void 0 ? void 0 : requestOperations.pagination)) {
@@ -290,12 +293,32 @@ class RoutingNode {
290
293
  responseData = await requestOperations.pagination.call(executePaginationFunctions, requestData);
291
294
  }
292
295
  else {
293
- const { properties } = requestOperations.pagination;
294
296
  responseData = [];
295
297
  if (!requestData.options.qs) {
296
298
  requestData.options.qs = {};
297
299
  }
298
- if (requestOperations.pagination.type === 'offset') {
300
+ if (requestOperations.pagination.type === 'generic') {
301
+ let tempResponseData;
302
+ let tempResponseItems;
303
+ let makeAdditionalRequest;
304
+ let paginateRequestData;
305
+ const additionalKeys = {
306
+ $request: requestData.options,
307
+ $response: {},
308
+ $version: this.node.typeVersion,
309
+ };
310
+ do {
311
+ additionalKeys.$request = requestData.options;
312
+ paginateRequestData = this.getParameterValue(requestOperations.pagination.properties.request, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), additionalKeys, false);
313
+ tempResponseData = await this.rawRoutingRequest(executeSingleFunctions, { ...requestData, options: { ...requestData.options, ...paginateRequestData } }, credentialType, credentialsDecrypted);
314
+ additionalKeys.$response = tempResponseData;
315
+ tempResponseItems = await this.postProcessResponseData(executeSingleFunctions, tempResponseData, requestData, itemIndex, runIndex);
316
+ responseData.push(...tempResponseItems);
317
+ makeAdditionalRequest = this.getParameterValue(requestOperations.pagination.properties.continue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), additionalKeys, false);
318
+ } while (makeAdditionalRequest);
319
+ }
320
+ else if (requestOperations.pagination.type === 'offset') {
321
+ const { properties } = requestOperations.pagination;
299
322
  const optionsType = properties.type === 'body' ? 'body' : 'qs';
300
323
  if (properties.type === 'body' && !requestData.options.body) {
301
324
  requestData.options.body = {};
@@ -313,7 +336,7 @@ class RoutingNode {
313
336
  requestData.options[optionsType][properties.limitParameter] =
314
337
  Math.min(properties.pageSize, resultsMissing);
315
338
  }
316
- tempResponseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, itemIndex, runIndex, credentialType, credentialsDecrypted);
339
+ tempResponseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted).then(async (data) => this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
317
340
  requestData.options[optionsType][properties.offsetParameter] =
318
341
  requestData.options[optionsType][properties.offsetParameter] + properties.pageSize;
319
342
  if (properties.rootProperty) {
@@ -333,7 +356,7 @@ class RoutingNode {
333
356
  }
334
357
  }
335
358
  else {
336
- responseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, itemIndex, runIndex, credentialType, credentialsDecrypted);
359
+ responseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted).then(async (data) => this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
337
360
  }
338
361
  return responseData;
339
362
  }
@@ -384,7 +407,7 @@ class RoutingNode {
384
407
  let value = parameterValue;
385
408
  if (nodeProperties.routing.send.value) {
386
409
  const valueString = nodeProperties.routing.send.value;
387
- value = this.getParameterValue(valueString, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: value }, true);
410
+ value = this.getParameterValue(valueString, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: value }, false);
388
411
  }
389
412
  if (nodeProperties.routing.send.type === 'body') {
390
413
  if (nodeProperties.routing.send.propertyInDotNotation === false) {