n8n-workflow 1.71.1 → 1.72.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.
@@ -1,594 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.RoutingNode = void 0;
40
- const get_1 = __importDefault(require("lodash/get"));
41
- const merge_1 = __importDefault(require("lodash/merge"));
42
- const set_1 = __importDefault(require("lodash/set"));
43
- const node_url_1 = __importDefault(require("node:url"));
44
- const node_api_error_1 = require("./errors/node-api.error");
45
- const node_operation_error_1 = require("./errors/node-operation.error");
46
- const NodeHelpers = __importStar(require("./NodeHelpers"));
47
- const utils_1 = require("./utils");
48
- class RoutingNode {
49
- constructor(workflow, node, connectionInputData, runExecutionData, additionalData, mode) {
50
- this.additionalData = additionalData;
51
- this.connectionInputData = connectionInputData;
52
- this.runExecutionData = runExecutionData;
53
- this.mode = mode;
54
- this.node = node;
55
- this.workflow = workflow;
56
- }
57
- async runNode(inputData, runIndex, nodeType, executeData, nodeExecuteFunctions, credentialsDecrypted, abortSignal) {
58
- const items = inputData.main[0];
59
- const returnData = [];
60
- const closeFunctions = [];
61
- const executeFunctions = nodeExecuteFunctions.getExecuteFunctions(this.workflow, this.runExecutionData, runIndex, this.connectionInputData, inputData, this.node, this.additionalData, executeData, this.mode, closeFunctions, abortSignal);
62
- let credentialDescription;
63
- if (nodeType.description.credentials?.length) {
64
- if (nodeType.description.credentials.length === 1) {
65
- credentialDescription = nodeType.description.credentials[0];
66
- }
67
- else {
68
- const authenticationMethod = executeFunctions.getNodeParameter('authentication', 0);
69
- credentialDescription = nodeType.description.credentials.find((x) => x.displayOptions?.show?.authentication?.includes(authenticationMethod));
70
- if (!credentialDescription) {
71
- throw new node_operation_error_1.NodeOperationError(this.node, `Node type "${this.node.type}" does not have any credentials of type "${authenticationMethod}" defined`, { level: 'warning' });
72
- }
73
- }
74
- }
75
- let credentials;
76
- if (credentialsDecrypted) {
77
- credentials = credentialsDecrypted.data;
78
- }
79
- else if (credentialDescription) {
80
- try {
81
- credentials =
82
- (await executeFunctions.getCredentials(credentialDescription.name)) || {};
83
- }
84
- catch (error) {
85
- if (credentialDescription.required) {
86
- throw error;
87
- }
88
- else {
89
- credentialDescription = undefined;
90
- }
91
- }
92
- }
93
- const { batching } = executeFunctions.getNodeParameter('requestOptions', 0, {});
94
- const batchSize = batching?.batch?.batchSize > 0 ? batching?.batch?.batchSize : 1;
95
- const batchInterval = batching?.batch.batchInterval;
96
- const requestPromises = [];
97
- const itemContext = [];
98
- for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
99
- if (itemIndex > 0 && batchSize >= 0 && batchInterval > 0) {
100
- if (itemIndex % batchSize === 0) {
101
- await (0, utils_1.sleep)(batchInterval);
102
- }
103
- }
104
- itemContext.push({
105
- thisArgs: nodeExecuteFunctions.getExecuteSingleFunctions(this.workflow, this.runExecutionData, runIndex, this.connectionInputData, inputData, this.node, itemIndex, this.additionalData, executeData, this.mode, abortSignal),
106
- requestData: {
107
- options: {
108
- qs: {},
109
- body: {},
110
- headers: {},
111
- },
112
- preSend: [],
113
- postReceive: [],
114
- requestOperations: {},
115
- },
116
- });
117
- const { proxy, timeout, allowUnauthorizedCerts } = itemContext[itemIndex].thisArgs.getNodeParameter('requestOptions', 0, {});
118
- if (nodeType.description.requestOperations) {
119
- itemContext[itemIndex].requestData.requestOperations = {
120
- ...nodeType.description.requestOperations,
121
- };
122
- }
123
- if (nodeType.description.requestDefaults) {
124
- for (const key of Object.keys(nodeType.description.requestDefaults)) {
125
- let value = nodeType.description.requestDefaults[key];
126
- value = this.getParameterValue(value, itemIndex, runIndex, executeData, { $credentials: credentials, $version: this.node.typeVersion }, false);
127
- itemContext[itemIndex].requestData.options[key] = value;
128
- }
129
- }
130
- for (const property of nodeType.description.properties) {
131
- let value = (0, get_1.default)(this.node.parameters, property.name, []);
132
- value = this.getParameterValue(value, itemIndex, runIndex, executeData, { $credentials: credentials, $version: this.node.typeVersion }, false);
133
- const tempOptions = this.getRequestOptionsFromParameters(itemContext[itemIndex].thisArgs, property, itemIndex, runIndex, '', { $credentials: credentials, $value: value, $version: this.node.typeVersion });
134
- this.mergeOptions(itemContext[itemIndex].requestData, tempOptions);
135
- }
136
- if (proxy) {
137
- const proxyParsed = node_url_1.default.parse(proxy);
138
- const proxyProperties = ['host', 'port'];
139
- for (const property of proxyProperties) {
140
- if (!(property in proxyParsed) ||
141
- proxyParsed[property] === null) {
142
- throw new node_operation_error_1.NodeOperationError(this.node, 'The proxy is not value', {
143
- runIndex,
144
- itemIndex,
145
- description: `The proxy URL does not contain a valid value for "${property}"`,
146
- });
147
- }
148
- }
149
- itemContext[itemIndex].requestData.options.proxy = {
150
- host: proxyParsed.hostname,
151
- port: parseInt(proxyParsed.port),
152
- protocol: proxyParsed.protocol?.replace(/:$/, '') || undefined,
153
- };
154
- if (proxyParsed.auth) {
155
- const [username, password] = proxyParsed.auth.split(':');
156
- itemContext[itemIndex].requestData.options.proxy.auth = {
157
- username,
158
- password,
159
- };
160
- }
161
- }
162
- if (allowUnauthorizedCerts) {
163
- itemContext[itemIndex].requestData.options.skipSslCertificateValidation =
164
- allowUnauthorizedCerts;
165
- }
166
- if (timeout) {
167
- itemContext[itemIndex].requestData.options.timeout = timeout;
168
- }
169
- else {
170
- itemContext[itemIndex].requestData.options.timeout = 300_000;
171
- }
172
- requestPromises.push(this.makeRoutingRequest(itemContext[itemIndex].requestData, itemContext[itemIndex].thisArgs, itemIndex, runIndex, credentialDescription?.name, itemContext[itemIndex].requestData.requestOperations, credentialsDecrypted));
173
- }
174
- const promisesResponses = await Promise.allSettled(requestPromises);
175
- let responseData;
176
- for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
177
- responseData = promisesResponses.shift();
178
- if (responseData.status !== 'fulfilled') {
179
- if (responseData.reason.statusCode === 429) {
180
- responseData.reason.message =
181
- "Try spacing your requests out using the batching settings under 'Options'";
182
- }
183
- const error = responseData.reason;
184
- if (itemContext[itemIndex].thisArgs?.continueOnFail()) {
185
- returnData.push({ json: {}, error: error });
186
- continue;
187
- }
188
- if (error instanceof node_api_error_1.NodeApiError) {
189
- (0, set_1.default)(error, 'context.itemIndex', itemIndex);
190
- (0, set_1.default)(error, 'context.runIndex', runIndex);
191
- throw error;
192
- }
193
- throw new node_api_error_1.NodeApiError(this.node, error, {
194
- runIndex,
195
- itemIndex,
196
- message: error?.message,
197
- description: error?.description,
198
- httpCode: error.isAxiosError && error.response ? String(error.response?.status) : 'none',
199
- });
200
- }
201
- if (itemContext[itemIndex].requestData.maxResults) {
202
- responseData.value.splice(itemContext[itemIndex].requestData.maxResults);
203
- }
204
- returnData.push(...responseData.value);
205
- }
206
- return [returnData];
207
- }
208
- mergeOptions(destinationOptions, sourceOptions) {
209
- if (sourceOptions) {
210
- destinationOptions.paginate = destinationOptions.paginate ?? sourceOptions.paginate;
211
- destinationOptions.maxResults = sourceOptions.maxResults
212
- ? sourceOptions.maxResults
213
- : destinationOptions.maxResults;
214
- (0, merge_1.default)(destinationOptions.options, sourceOptions.options);
215
- destinationOptions.preSend.push(...sourceOptions.preSend);
216
- destinationOptions.postReceive.push(...sourceOptions.postReceive);
217
- if (sourceOptions.requestOperations && destinationOptions.requestOperations) {
218
- destinationOptions.requestOperations = Object.assign(destinationOptions.requestOperations, sourceOptions.requestOperations);
219
- }
220
- }
221
- }
222
- async runPostReceiveAction(executeSingleFunctions, action, inputData, responseData, parameterValue, itemIndex, runIndex) {
223
- if (typeof action === 'function') {
224
- return await action.call(executeSingleFunctions, inputData, responseData);
225
- }
226
- if (action.type === 'rootProperty') {
227
- try {
228
- return inputData.flatMap((item) => {
229
- let itemContent = (0, get_1.default)(item.json, action.properties.property);
230
- if (!Array.isArray(itemContent)) {
231
- itemContent = [itemContent];
232
- }
233
- return itemContent.map((json) => {
234
- return {
235
- json,
236
- };
237
- });
238
- });
239
- }
240
- catch (error) {
241
- throw new node_operation_error_1.NodeOperationError(this.node, error, {
242
- runIndex,
243
- itemIndex,
244
- description: `The rootProperty "${action.properties.property}" could not be found on item.`,
245
- });
246
- }
247
- }
248
- if (action.type === 'filter') {
249
- const passValue = action.properties.pass;
250
- inputData = inputData.filter((item) => {
251
- return this.getParameterValue(passValue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), {
252
- $response: responseData,
253
- $responseItem: item.json,
254
- $value: parameterValue,
255
- $version: this.node.typeVersion,
256
- }, false);
257
- });
258
- return inputData;
259
- }
260
- if (action.type === 'limit') {
261
- const maxResults = this.getParameterValue(action.properties.maxResults, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { $response: responseData, $value: parameterValue, $version: this.node.typeVersion }, false);
262
- return inputData.slice(0, parseInt(maxResults, 10));
263
- }
264
- if (action.type === 'set') {
265
- const { value } = action.properties;
266
- return [
267
- {
268
- json: this.getParameterValue(value, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { $response: responseData, $value: parameterValue, $version: this.node.typeVersion }, false),
269
- },
270
- ];
271
- }
272
- if (action.type === 'sort') {
273
- const sortKey = action.properties.key;
274
- inputData.sort((a, b) => {
275
- const aSortValue = a.json[sortKey]?.toString().toLowerCase() ?? '';
276
- const bSortValue = b.json[sortKey]?.toString().toLowerCase() ?? '';
277
- if (aSortValue < bSortValue) {
278
- return -1;
279
- }
280
- if (aSortValue > bSortValue) {
281
- return 1;
282
- }
283
- return 0;
284
- });
285
- return inputData;
286
- }
287
- if (action.type === 'setKeyValue') {
288
- const returnData = [];
289
- inputData.forEach((item) => {
290
- const returnItem = {};
291
- for (const key of Object.keys(action.properties)) {
292
- let propertyValue = action.properties[key];
293
- propertyValue = this.getParameterValue(propertyValue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), {
294
- $response: responseData,
295
- $responseItem: item.json,
296
- $value: parameterValue,
297
- $version: this.node.typeVersion,
298
- }, false);
299
- returnItem[key] = propertyValue;
300
- }
301
- returnData.push({ json: returnItem });
302
- });
303
- return returnData;
304
- }
305
- if (action.type === 'binaryData') {
306
- const body = (responseData.body = Buffer.from(responseData.body));
307
- let { destinationProperty } = action.properties;
308
- destinationProperty = this.getParameterValue(destinationProperty, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { $response: responseData, $value: parameterValue, $version: this.node.typeVersion }, false);
309
- const binaryData = await executeSingleFunctions.helpers.prepareBinaryData(body);
310
- return inputData.map((item) => {
311
- if (typeof item.json === 'string') {
312
- item.json = {};
313
- }
314
- item.binary = {
315
- [destinationProperty]: binaryData,
316
- };
317
- return item;
318
- });
319
- }
320
- return [];
321
- }
322
- async postProcessResponseData(executeSingleFunctions, responseData, requestData, itemIndex, runIndex) {
323
- let returnData = [
324
- {
325
- json: responseData.body,
326
- },
327
- ];
328
- if (requestData.postReceive.length) {
329
- for (const postReceiveMethod of requestData.postReceive) {
330
- for (const action of postReceiveMethod.actions) {
331
- returnData = await this.runPostReceiveAction(executeSingleFunctions, action, returnData, responseData, postReceiveMethod.data.parameterValue, itemIndex, runIndex);
332
- }
333
- }
334
- }
335
- else {
336
- if (Array.isArray(responseData.body)) {
337
- returnData = responseData.body.map((json) => {
338
- return {
339
- json,
340
- };
341
- });
342
- }
343
- else {
344
- returnData[0].json = responseData.body;
345
- }
346
- }
347
- return returnData;
348
- }
349
- async rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted) {
350
- let responseData;
351
- requestData.options.returnFullResponse = true;
352
- if (credentialType) {
353
- responseData = (await executeSingleFunctions.helpers.httpRequestWithAuthentication.call(executeSingleFunctions, credentialType, requestData.options, { credentialsDecrypted }));
354
- }
355
- else {
356
- responseData = (await executeSingleFunctions.helpers.httpRequest(requestData.options));
357
- }
358
- return responseData;
359
- }
360
- async makeRoutingRequest(requestData, executeSingleFunctions, itemIndex, runIndex, credentialType, requestOperations, credentialsDecrypted) {
361
- let responseData;
362
- for (const preSendMethod of requestData.preSend) {
363
- requestData.options = await preSendMethod.call(executeSingleFunctions, requestData.options);
364
- }
365
- const makeRoutingRequest = async (requestOptions) => {
366
- return await this.rawRoutingRequest(executeSingleFunctions, requestOptions, credentialType, credentialsDecrypted).then(async (data) => await this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
367
- };
368
- const executePaginationFunctions = Object.create(executeSingleFunctions, {
369
- makeRoutingRequest: { value: makeRoutingRequest },
370
- });
371
- if (requestData.paginate && requestOperations?.pagination) {
372
- if (typeof requestOperations.pagination === 'function') {
373
- responseData = await requestOperations.pagination.call(executePaginationFunctions, requestData);
374
- }
375
- else {
376
- responseData = [];
377
- if (!requestData.options.qs) {
378
- requestData.options.qs = {};
379
- }
380
- if (requestOperations.pagination.type === 'generic') {
381
- let tempResponseData;
382
- let tempResponseItems;
383
- let makeAdditionalRequest;
384
- let paginateRequestData;
385
- const additionalKeys = {
386
- $request: requestData.options,
387
- $response: {},
388
- $version: this.node.typeVersion,
389
- };
390
- do {
391
- additionalKeys.$request = requestData.options;
392
- paginateRequestData = this.getParameterValue(requestOperations.pagination.properties.request, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), additionalKeys, false);
393
- tempResponseData = await this.rawRoutingRequest(executeSingleFunctions, { ...requestData, options: { ...requestData.options, ...paginateRequestData } }, credentialType, credentialsDecrypted);
394
- additionalKeys.$response = tempResponseData;
395
- tempResponseItems = await this.postProcessResponseData(executeSingleFunctions, tempResponseData, requestData, itemIndex, runIndex);
396
- responseData.push(...tempResponseItems);
397
- makeAdditionalRequest = this.getParameterValue(requestOperations.pagination.properties.continue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), additionalKeys, false);
398
- } while (makeAdditionalRequest);
399
- }
400
- else if (requestOperations.pagination.type === 'offset') {
401
- const { properties } = requestOperations.pagination;
402
- const optionsType = properties.type === 'body' ? 'body' : 'qs';
403
- if (properties.type === 'body' && !requestData.options.body) {
404
- requestData.options.body = {};
405
- }
406
- requestData.options[optionsType][properties.limitParameter] =
407
- properties.pageSize;
408
- requestData.options[optionsType][properties.offsetParameter] = 0;
409
- let tempResponseData;
410
- do {
411
- if (requestData?.maxResults) {
412
- const resultsMissing = requestData?.maxResults - responseData.length;
413
- if (resultsMissing < 1) {
414
- break;
415
- }
416
- requestData.options[optionsType][properties.limitParameter] =
417
- Math.min(properties.pageSize, resultsMissing);
418
- }
419
- tempResponseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted).then(async (data) => await this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
420
- requestData.options[optionsType][properties.offsetParameter] =
421
- requestData.options[optionsType][properties.offsetParameter] + properties.pageSize;
422
- if (properties.rootProperty) {
423
- const tempResponseValue = (0, get_1.default)(tempResponseData[0].json, properties.rootProperty);
424
- if (tempResponseValue === undefined) {
425
- throw new node_operation_error_1.NodeOperationError(this.node, `The rootProperty "${properties.rootProperty}" could not be found on item.`, { runIndex, itemIndex });
426
- }
427
- tempResponseData = tempResponseValue.map((item) => {
428
- return {
429
- json: item,
430
- };
431
- });
432
- }
433
- responseData.push(...tempResponseData);
434
- } while (tempResponseData.length && tempResponseData.length === properties.pageSize);
435
- }
436
- }
437
- }
438
- else {
439
- responseData = await this.rawRoutingRequest(executeSingleFunctions, requestData, credentialType, credentialsDecrypted).then(async (data) => await this.postProcessResponseData(executeSingleFunctions, data, requestData, itemIndex, runIndex));
440
- }
441
- return responseData;
442
- }
443
- getParameterValue(parameterValue, itemIndex, runIndex, executeData, additionalKeys, returnObjectAsString = false) {
444
- if (typeof parameterValue === 'object' ||
445
- (typeof parameterValue === 'string' && parameterValue.charAt(0) === '=')) {
446
- return this.workflow.expression.getParameterValue(parameterValue, this.runExecutionData ?? null, runIndex, itemIndex, this.node.name, this.connectionInputData, this.mode, additionalKeys ?? {}, executeData, returnObjectAsString);
447
- }
448
- return parameterValue;
449
- }
450
- getRequestOptionsFromParameters(executeSingleFunctions, nodeProperties, itemIndex, runIndex, path, additionalKeys) {
451
- const returnData = {
452
- options: {
453
- qs: {},
454
- body: {},
455
- headers: {},
456
- },
457
- preSend: [],
458
- postReceive: [],
459
- requestOperations: {},
460
- };
461
- let basePath = path ? `${path}.` : '';
462
- if (!NodeHelpers.displayParameter(this.node.parameters, nodeProperties, this.node, this.node.parameters)) {
463
- return undefined;
464
- }
465
- if (nodeProperties.routing) {
466
- let parameterValue;
467
- if (basePath + nodeProperties.name && 'type' in nodeProperties) {
468
- const shouldExtractValue = nodeProperties.extractValue !== undefined || nodeProperties.type === 'resourceLocator';
469
- parameterValue = executeSingleFunctions.getNodeParameter(basePath + nodeProperties.name, undefined, { extractValue: shouldExtractValue });
470
- }
471
- if (nodeProperties.routing.operations) {
472
- returnData.requestOperations = { ...nodeProperties.routing.operations };
473
- }
474
- if (nodeProperties.routing.request) {
475
- for (const key of Object.keys(nodeProperties.routing.request)) {
476
- let propertyValue = nodeProperties.routing.request[key];
477
- propertyValue = this.getParameterValue(propertyValue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: parameterValue }, false);
478
- returnData.options[key] = propertyValue;
479
- }
480
- }
481
- if (nodeProperties.routing.send) {
482
- let propertyName = nodeProperties.routing.send.property;
483
- if (propertyName !== undefined) {
484
- propertyName = this.getParameterValue(propertyName, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), additionalKeys, true);
485
- let value = parameterValue;
486
- if (nodeProperties.routing.send.value) {
487
- const valueString = nodeProperties.routing.send.value;
488
- value = this.getParameterValue(valueString, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: value }, false);
489
- }
490
- if (nodeProperties.routing.send.type === 'body') {
491
- if (nodeProperties.routing.send.propertyInDotNotation === false) {
492
- returnData.options.body[propertyName] = value;
493
- }
494
- else {
495
- (0, set_1.default)(returnData.options.body, propertyName, value);
496
- }
497
- }
498
- else {
499
- if (nodeProperties.routing.send.propertyInDotNotation === false) {
500
- returnData.options.qs[propertyName] = value;
501
- }
502
- else {
503
- (0, set_1.default)(returnData.options.qs, propertyName, value);
504
- }
505
- }
506
- }
507
- if (nodeProperties.routing.send.paginate !== undefined) {
508
- let paginateValue = nodeProperties.routing.send.paginate;
509
- if (typeof paginateValue === 'string' && paginateValue.charAt(0) === '=') {
510
- paginateValue = this.getParameterValue(paginateValue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: parameterValue }, true);
511
- }
512
- returnData.paginate = !!paginateValue;
513
- }
514
- if (nodeProperties.routing.send.preSend) {
515
- returnData.preSend.push(...nodeProperties.routing.send.preSend);
516
- }
517
- }
518
- if (nodeProperties.routing.output) {
519
- if (nodeProperties.routing.output.maxResults !== undefined) {
520
- let maxResultsValue = nodeProperties.routing.output.maxResults;
521
- if (typeof maxResultsValue === 'string' && maxResultsValue.charAt(0) === '=') {
522
- maxResultsValue = this.getParameterValue(maxResultsValue, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: parameterValue }, true);
523
- }
524
- returnData.maxResults = maxResultsValue;
525
- }
526
- if (nodeProperties.routing.output.postReceive) {
527
- const postReceiveActions = nodeProperties.routing.output.postReceive.filter((action) => {
528
- if (typeof action === 'function') {
529
- return true;
530
- }
531
- if (typeof action.enabled === 'string' && action.enabled.charAt(0) === '=') {
532
- return this.getParameterValue(action.enabled, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys, $value: parameterValue }, true);
533
- }
534
- return action.enabled !== false;
535
- });
536
- if (postReceiveActions.length) {
537
- returnData.postReceive.push({
538
- data: {
539
- parameterValue,
540
- },
541
- actions: postReceiveActions,
542
- });
543
- }
544
- }
545
- }
546
- }
547
- if (!Object.prototype.hasOwnProperty.call(nodeProperties, 'options')) {
548
- return returnData;
549
- }
550
- nodeProperties = nodeProperties;
551
- let value;
552
- if (nodeProperties.type === 'options') {
553
- const optionValue = NodeHelpers.getParameterValueByPath(this.node.parameters, nodeProperties.name, basePath.slice(0, -1));
554
- const selectedOption = nodeProperties.options.filter((option) => option.value === optionValue);
555
- if (selectedOption.length) {
556
- const tempOptions = this.getRequestOptionsFromParameters(executeSingleFunctions, selectedOption[0], itemIndex, runIndex, `${basePath}${nodeProperties.name}`, { $value: optionValue, $version: this.node.typeVersion });
557
- this.mergeOptions(returnData, tempOptions);
558
- }
559
- }
560
- else if (nodeProperties.type === 'collection') {
561
- value = NodeHelpers.getParameterValueByPath(this.node.parameters, nodeProperties.name, basePath.slice(0, -1));
562
- for (const propertyOption of nodeProperties.options) {
563
- if (Object.keys(value).includes(propertyOption.name) &&
564
- propertyOption.type !== undefined) {
565
- const tempOptions = this.getRequestOptionsFromParameters(executeSingleFunctions, propertyOption, itemIndex, runIndex, `${basePath}${nodeProperties.name}`, { $version: this.node.typeVersion });
566
- this.mergeOptions(returnData, tempOptions);
567
- }
568
- }
569
- }
570
- else if (nodeProperties.type === 'fixedCollection') {
571
- basePath = `${basePath}${nodeProperties.name}.`;
572
- for (const propertyOptions of nodeProperties.options) {
573
- value = NodeHelpers.getParameterValueByPath(this.node.parameters, propertyOptions.name, basePath.slice(0, -1));
574
- if (value === undefined) {
575
- continue;
576
- }
577
- if (!Array.isArray(value)) {
578
- value = [value];
579
- }
580
- value = this.getParameterValue(value, itemIndex, runIndex, executeSingleFunctions.getExecuteData(), { ...additionalKeys }, false);
581
- const loopBasePath = `${basePath}${propertyOptions.name}`;
582
- for (let i = 0; i < value.length; i++) {
583
- for (const option of propertyOptions.values) {
584
- const tempOptions = this.getRequestOptionsFromParameters(executeSingleFunctions, option, itemIndex, runIndex, nodeProperties.typeOptions?.multipleValues ? `${loopBasePath}[${i}]` : loopBasePath, { ...(additionalKeys || {}), $index: i, $parent: value[i] });
585
- this.mergeOptions(returnData, tempOptions);
586
- }
587
- }
588
- }
589
- }
590
- return returnData;
591
- }
592
- }
593
- exports.RoutingNode = RoutingNode;
594
- //# sourceMappingURL=RoutingNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoutingNode.js","sourceRoot":"","sources":["../src/RoutingNode.ts"],"names":[],"mappings":"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"}