n8n-nodes-better-http-request 0.1.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.
@@ -0,0 +1,743 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mainProperties = void 0;
4
+ exports.mainProperties = [
5
+ {
6
+ displayName: 'Method',
7
+ name: 'method',
8
+ type: 'options',
9
+ options: [
10
+ { name: 'DELETE', value: 'DELETE' },
11
+ { name: 'GET', value: 'GET' },
12
+ { name: 'HEAD', value: 'HEAD' },
13
+ { name: 'OPTIONS', value: 'OPTIONS' },
14
+ { name: 'PATCH', value: 'PATCH' },
15
+ { name: 'POST', value: 'POST' },
16
+ { name: 'PUT', value: 'PUT' },
17
+ ],
18
+ default: 'GET',
19
+ description: 'The request method to use',
20
+ },
21
+ {
22
+ displayName: 'URL',
23
+ name: 'url',
24
+ type: 'string',
25
+ default: '',
26
+ placeholder: 'http://example.com/index.html',
27
+ description: 'The URL to make the request to',
28
+ required: true,
29
+ },
30
+ {
31
+ displayName: 'Authentication',
32
+ name: 'authentication',
33
+ noDataExpression: true,
34
+ type: 'options',
35
+ options: [
36
+ { name: 'None', value: 'none' },
37
+ {
38
+ name: 'Predefined Credential Type',
39
+ value: 'predefinedCredentialType',
40
+ description: "We've already implemented auth for many services so that you don't have to set it up manually",
41
+ },
42
+ {
43
+ name: 'Generic Credential Type',
44
+ value: 'genericCredentialType',
45
+ description: 'Fully customizable. Choose between basic, header, OAuth2, etc.',
46
+ },
47
+ ],
48
+ default: 'none',
49
+ },
50
+ {
51
+ displayName: 'Credential Type',
52
+ name: 'nodeCredentialType',
53
+ type: 'credentialsSelect',
54
+ noDataExpression: true,
55
+ required: true,
56
+ default: '',
57
+ credentialTypes: ['extends:oAuth2Api', 'extends:oAuth1Api', 'has:authenticate'],
58
+ displayOptions: {
59
+ show: {
60
+ authentication: ['predefinedCredentialType'],
61
+ },
62
+ },
63
+ },
64
+ {
65
+ displayName: 'Make sure you have specified the scope(s) for the Service Account in the credential',
66
+ name: 'googleApiWarning',
67
+ type: 'notice',
68
+ default: '',
69
+ displayOptions: {
70
+ show: {
71
+ nodeCredentialType: ['googleApi'],
72
+ },
73
+ },
74
+ },
75
+ {
76
+ displayName: 'Generic Auth Type',
77
+ name: 'genericAuthType',
78
+ type: 'credentialsSelect',
79
+ required: true,
80
+ default: '',
81
+ credentialTypes: ['has:genericAuth'],
82
+ displayOptions: {
83
+ show: {
84
+ authentication: ['genericCredentialType'],
85
+ },
86
+ },
87
+ },
88
+ {
89
+ displayName: 'SSL Certificates',
90
+ name: 'provideSslCertificates',
91
+ type: 'boolean',
92
+ default: false,
93
+ isNodeSetting: true,
94
+ },
95
+ {
96
+ displayName: "Provide certificates in node's 'Credential for SSL Certificates' parameter",
97
+ name: 'provideSslCertificatesNotice',
98
+ type: 'notice',
99
+ default: '',
100
+ isNodeSetting: true,
101
+ displayOptions: {
102
+ show: {
103
+ provideSslCertificates: [true],
104
+ },
105
+ },
106
+ },
107
+ {
108
+ displayName: 'SSL Certificate',
109
+ name: 'sslCertificate',
110
+ type: 'credentials',
111
+ default: '',
112
+ displayOptions: {
113
+ show: {
114
+ provideSslCertificates: [true],
115
+ },
116
+ },
117
+ },
118
+ {
119
+ displayName: 'Send Query Parameters',
120
+ name: 'sendQuery',
121
+ type: 'boolean',
122
+ default: false,
123
+ noDataExpression: true,
124
+ description: 'Whether the request has query params or not',
125
+ },
126
+ {
127
+ displayName: 'Specify Query Parameters',
128
+ name: 'specifyQuery',
129
+ type: 'options',
130
+ displayOptions: { show: { sendQuery: [true] } },
131
+ options: [
132
+ { name: 'Using Fields Below', value: 'keypair' },
133
+ { name: 'Using JSON', value: 'json' },
134
+ ],
135
+ default: 'keypair',
136
+ },
137
+ {
138
+ displayName: 'Query Parameters',
139
+ name: 'queryParameters',
140
+ type: 'fixedCollection',
141
+ displayOptions: { show: { sendQuery: [true], specifyQuery: ['keypair'] } },
142
+ typeOptions: { multipleValues: true },
143
+ placeholder: 'Add Query Parameter',
144
+ default: { parameters: [{ name: '', value: '' }] },
145
+ options: [
146
+ {
147
+ name: 'parameters',
148
+ displayName: 'Query Parameter',
149
+ values: [
150
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
151
+ { displayName: 'Value', name: 'value', type: 'string', default: '' },
152
+ ],
153
+ },
154
+ ],
155
+ },
156
+ {
157
+ displayName: 'JSON',
158
+ name: 'jsonQuery',
159
+ type: 'json',
160
+ displayOptions: { show: { sendQuery: [true], specifyQuery: ['json'] } },
161
+ default: '',
162
+ },
163
+ {
164
+ displayName: 'Send Headers',
165
+ name: 'sendHeaders',
166
+ type: 'boolean',
167
+ default: false,
168
+ noDataExpression: true,
169
+ description: 'Whether the request has headers or not',
170
+ },
171
+ {
172
+ displayName: 'Specify Headers',
173
+ name: 'specifyHeaders',
174
+ type: 'options',
175
+ displayOptions: { show: { sendHeaders: [true] } },
176
+ options: [
177
+ { name: 'Using Fields Below', value: 'keypair' },
178
+ { name: 'Using JSON', value: 'json' },
179
+ ],
180
+ default: 'keypair',
181
+ },
182
+ {
183
+ displayName: 'Headers',
184
+ name: 'headerParameters',
185
+ type: 'fixedCollection',
186
+ displayOptions: { show: { sendHeaders: [true], specifyHeaders: ['keypair'] } },
187
+ typeOptions: { multipleValues: true },
188
+ placeholder: 'Add Header',
189
+ default: { parameters: [{ name: '', value: '' }] },
190
+ options: [
191
+ {
192
+ name: 'parameters',
193
+ displayName: 'Header',
194
+ values: [
195
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
196
+ { displayName: 'Value', name: 'value', type: 'string', default: '' },
197
+ ],
198
+ },
199
+ ],
200
+ },
201
+ {
202
+ displayName: 'JSON',
203
+ name: 'jsonHeaders',
204
+ type: 'json',
205
+ displayOptions: { show: { sendHeaders: [true], specifyHeaders: ['json'] } },
206
+ default: '',
207
+ },
208
+ {
209
+ displayName: 'Send Body',
210
+ name: 'sendBody',
211
+ type: 'boolean',
212
+ default: false,
213
+ noDataExpression: true,
214
+ description: 'Whether the request has a body or not',
215
+ },
216
+ {
217
+ displayName: 'Body Content Type',
218
+ name: 'contentType',
219
+ type: 'options',
220
+ displayOptions: { show: { sendBody: [true] } },
221
+ options: [
222
+ { name: 'Form Urlencoded', value: 'form-urlencoded' },
223
+ { name: 'Form-Data', value: 'multipart-form-data' },
224
+ { name: 'JSON', value: 'json' },
225
+ { name: 'n8n Binary File', value: 'binaryData' },
226
+ { name: 'Raw', value: 'raw' },
227
+ ],
228
+ default: 'json',
229
+ description: 'Content-Type to use to send body parameters',
230
+ },
231
+ {
232
+ displayName: 'Specify Body',
233
+ name: 'specifyBody',
234
+ type: 'options',
235
+ displayOptions: { show: { sendBody: [true], contentType: ['json'] } },
236
+ options: [
237
+ { name: 'Using Fields Below', value: 'keypair' },
238
+ { name: 'Using JSON', value: 'json' },
239
+ ],
240
+ default: 'keypair',
241
+ },
242
+ {
243
+ displayName: 'Body Parameters',
244
+ name: 'bodyParameters',
245
+ type: 'fixedCollection',
246
+ displayOptions: { show: { sendBody: [true], contentType: ['json'], specifyBody: ['keypair'] } },
247
+ typeOptions: { multipleValues: true },
248
+ placeholder: 'Add Body Field',
249
+ default: { parameters: [{ name: '', value: '' }] },
250
+ options: [
251
+ {
252
+ name: 'parameters',
253
+ displayName: 'Body Field',
254
+ values: [
255
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
256
+ { displayName: 'Value', name: 'value', type: 'string', default: '' },
257
+ ],
258
+ },
259
+ ],
260
+ },
261
+ {
262
+ displayName: 'JSON',
263
+ name: 'jsonBody',
264
+ type: 'json',
265
+ displayOptions: { show: { sendBody: [true], contentType: ['json'], specifyBody: ['json'] } },
266
+ default: '',
267
+ },
268
+ {
269
+ displayName: 'Body',
270
+ name: 'bodyParameters',
271
+ type: 'fixedCollection',
272
+ displayOptions: { show: { sendBody: [true], contentType: ['multipart-form-data'] } },
273
+ typeOptions: { multipleValues: true },
274
+ placeholder: 'Add Body Field',
275
+ default: { parameters: [{ name: '', value: '' }] },
276
+ options: [
277
+ {
278
+ name: 'parameters',
279
+ displayName: 'Body Field',
280
+ values: [
281
+ {
282
+ displayName: 'Type',
283
+ name: 'parameterType',
284
+ type: 'options',
285
+ options: [
286
+ { name: 'n8n Binary File', value: 'formBinaryData' },
287
+ { name: 'Form Data', value: 'formData' },
288
+ ],
289
+ default: 'formData',
290
+ },
291
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
292
+ {
293
+ displayName: 'Value',
294
+ name: 'value',
295
+ type: 'string',
296
+ displayOptions: { show: { parameterType: ['formData'] } },
297
+ default: '',
298
+ },
299
+ {
300
+ displayName: 'Input Data Field Name',
301
+ name: 'inputDataFieldName',
302
+ type: 'string',
303
+ displayOptions: { show: { parameterType: ['formBinaryData'] } },
304
+ default: '',
305
+ },
306
+ ],
307
+ },
308
+ ],
309
+ },
310
+ {
311
+ displayName: 'Specify Body',
312
+ name: 'specifyBody',
313
+ type: 'options',
314
+ displayOptions: { show: { sendBody: [true], contentType: ['form-urlencoded'] } },
315
+ options: [
316
+ { name: 'Using Fields Below', value: 'keypair' },
317
+ { name: 'Using Single Field', value: 'string' },
318
+ ],
319
+ default: 'keypair',
320
+ },
321
+ {
322
+ displayName: 'Body Fields',
323
+ name: 'bodyParameters',
324
+ type: 'fixedCollection',
325
+ displayOptions: {
326
+ show: { sendBody: [true], contentType: ['form-urlencoded'], specifyBody: ['keypair'] },
327
+ },
328
+ typeOptions: { multipleValues: true },
329
+ placeholder: 'Add Field',
330
+ default: { parameters: [{ name: '', value: '' }] },
331
+ options: [
332
+ {
333
+ name: 'parameters',
334
+ displayName: 'Field',
335
+ values: [
336
+ { displayName: 'Name', name: 'name', type: 'string', default: '' },
337
+ { displayName: 'Value', name: 'value', type: 'string', default: '' },
338
+ ],
339
+ },
340
+ ],
341
+ },
342
+ {
343
+ displayName: 'Body',
344
+ name: 'body',
345
+ type: 'string',
346
+ displayOptions: { show: { sendBody: [true], specifyBody: ['string'] } },
347
+ default: '',
348
+ placeholder: 'field1=value1&field2=value2',
349
+ },
350
+ {
351
+ displayName: 'Input Data Field Name',
352
+ name: 'inputDataFieldName',
353
+ type: 'string',
354
+ displayOptions: { show: { sendBody: [true], contentType: ['binaryData'] } },
355
+ default: '',
356
+ description: 'The name of the incoming field containing the binary file data to be processed',
357
+ },
358
+ {
359
+ displayName: 'Content Type',
360
+ name: 'rawContentType',
361
+ type: 'string',
362
+ displayOptions: { show: { sendBody: [true], contentType: ['raw'] } },
363
+ default: '',
364
+ placeholder: 'text/html',
365
+ },
366
+ {
367
+ displayName: 'Body',
368
+ name: 'body',
369
+ type: 'string',
370
+ displayOptions: { show: { sendBody: [true], contentType: ['raw'] } },
371
+ default: '',
372
+ placeholder: '',
373
+ },
374
+ {
375
+ displayName: 'Options',
376
+ name: 'options',
377
+ type: 'collection',
378
+ placeholder: 'Add option',
379
+ default: {},
380
+ options: [
381
+ {
382
+ displayName: 'Batching',
383
+ name: 'batching',
384
+ placeholder: 'Add Batching',
385
+ type: 'fixedCollection',
386
+ typeOptions: { multipleValues: false },
387
+ default: { batch: {} },
388
+ options: [
389
+ {
390
+ displayName: 'Batching',
391
+ name: 'batch',
392
+ values: [
393
+ {
394
+ displayName: 'Items per Batch',
395
+ name: 'batchSize',
396
+ type: 'number',
397
+ typeOptions: { minValue: -1 },
398
+ default: 50,
399
+ description: 'Input will be split in batches to throttle requests. -1 for disabled. 0 will be treated as 1.',
400
+ },
401
+ {
402
+ displayName: 'Batch Interval (ms)',
403
+ name: 'batchInterval',
404
+ type: 'number',
405
+ typeOptions: { minValue: 0 },
406
+ default: 1000,
407
+ description: 'Time (in milliseconds) between each batch of requests. 0 for disabled.',
408
+ },
409
+ ],
410
+ },
411
+ ],
412
+ },
413
+ {
414
+ displayName: 'Ignore SSL Issues (Insecure)',
415
+ name: 'allowUnauthorizedCerts',
416
+ type: 'boolean',
417
+ noDataExpression: true,
418
+ default: false,
419
+ description: 'Whether to download the response even if SSL certificate validation is not possible',
420
+ },
421
+ {
422
+ displayName: 'Array Format in Query Parameters',
423
+ name: 'queryParameterArrays',
424
+ type: 'options',
425
+ displayOptions: { show: { '/sendQuery': [true] } },
426
+ options: [
427
+ { name: 'No Brackets', value: 'repeat', description: 'e.g. foo=bar&foo=qux' },
428
+ { name: 'Brackets Only', value: 'brackets', description: 'e.g. foo[]=bar&foo[]=qux' },
429
+ {
430
+ name: 'Brackets with Indices',
431
+ value: 'indices',
432
+ description: 'e.g. foo[0]=bar&foo[1]=qux',
433
+ },
434
+ ],
435
+ default: 'brackets',
436
+ },
437
+ {
438
+ displayName: 'Lowercase Headers',
439
+ name: 'lowercaseHeaders',
440
+ type: 'boolean',
441
+ default: true,
442
+ description: 'Whether to lowercase header names',
443
+ },
444
+ {
445
+ displayName: 'Redirects',
446
+ name: 'redirect',
447
+ placeholder: 'Add Redirect',
448
+ type: 'fixedCollection',
449
+ typeOptions: { multipleValues: false },
450
+ default: { redirect: {} },
451
+ options: [
452
+ {
453
+ displayName: 'Redirect',
454
+ name: 'redirect',
455
+ values: [
456
+ {
457
+ displayName: 'Follow Redirects',
458
+ name: 'followRedirects',
459
+ type: 'boolean',
460
+ default: true,
461
+ noDataExpression: true,
462
+ description: 'Whether to follow all redirects',
463
+ },
464
+ {
465
+ displayName: 'Max Redirects',
466
+ name: 'maxRedirects',
467
+ type: 'number',
468
+ displayOptions: { show: { followRedirects: [true] } },
469
+ default: 21,
470
+ description: 'Max number of redirects to follow',
471
+ },
472
+ ],
473
+ },
474
+ ],
475
+ },
476
+ {
477
+ displayName: 'Response',
478
+ name: 'response',
479
+ placeholder: 'Add response',
480
+ type: 'fixedCollection',
481
+ typeOptions: { multipleValues: false },
482
+ default: { response: {} },
483
+ options: [
484
+ {
485
+ displayName: 'Response',
486
+ name: 'response',
487
+ values: [
488
+ {
489
+ displayName: 'Include Response Headers and Status',
490
+ name: 'fullResponse',
491
+ type: 'boolean',
492
+ default: false,
493
+ description: 'Whether to return the full response (headers and response status code) data instead of only the body',
494
+ },
495
+ {
496
+ displayName: 'Never Error',
497
+ name: 'neverError',
498
+ type: 'boolean',
499
+ default: false,
500
+ description: 'Whether to succeeds also when status code is not 2xx',
501
+ },
502
+ {
503
+ displayName: 'Response Format',
504
+ name: 'responseFormat',
505
+ type: 'options',
506
+ noDataExpression: true,
507
+ options: [
508
+ { name: 'Autodetect', value: 'autodetect' },
509
+ { name: 'File', value: 'file' },
510
+ { name: 'JSON', value: 'json' },
511
+ { name: 'Text', value: 'text' },
512
+ ],
513
+ default: 'autodetect',
514
+ description: 'The format in which the data gets returned from the URL',
515
+ },
516
+ {
517
+ displayName: 'Put Output in Field',
518
+ name: 'outputPropertyName',
519
+ type: 'string',
520
+ default: 'data',
521
+ required: true,
522
+ displayOptions: { show: { responseFormat: ['file', 'text'] } },
523
+ description: 'Name of the binary property to which to write the data of the read file',
524
+ },
525
+ ],
526
+ },
527
+ ],
528
+ },
529
+ {
530
+ displayName: 'Pagination',
531
+ name: 'pagination',
532
+ placeholder: 'Add pagination',
533
+ type: 'fixedCollection',
534
+ typeOptions: { multipleValues: false },
535
+ default: { pagination: {} },
536
+ options: [
537
+ {
538
+ displayName: 'Pagination',
539
+ name: 'pagination',
540
+ values: [
541
+ {
542
+ displayName: 'Pagination Mode',
543
+ name: 'paginationMode',
544
+ type: 'options',
545
+ typeOptions: { noDataExpression: true },
546
+ options: [
547
+ { name: 'Off', value: 'off' },
548
+ {
549
+ name: 'Update a Parameter in Each Request',
550
+ value: 'updateAParameterInEachRequest',
551
+ },
552
+ { name: 'Response Contains Next URL', value: 'responseContainsNextURL' },
553
+ ],
554
+ default: 'updateAParameterInEachRequest',
555
+ description: 'If pagination should be used',
556
+ },
557
+ {
558
+ displayName: 'Use the $response variables to access the data of the previous response.',
559
+ name: 'webhookNotice',
560
+ displayOptions: { hide: { paginationMode: ['off'] } },
561
+ type: 'notice',
562
+ default: '',
563
+ },
564
+ {
565
+ displayName: 'Next URL',
566
+ name: 'nextURL',
567
+ type: 'string',
568
+ displayOptions: { show: { paginationMode: ['responseContainsNextURL'] } },
569
+ default: '',
570
+ },
571
+ {
572
+ displayName: 'Parameters',
573
+ name: 'parameters',
574
+ type: 'fixedCollection',
575
+ displayOptions: {
576
+ show: { paginationMode: ['updateAParameterInEachRequest'] },
577
+ },
578
+ typeOptions: { multipleValues: true, noExpression: true },
579
+ placeholder: 'Add Parameter',
580
+ default: { parameters: [{ type: 'qs', name: '', value: '' }] },
581
+ options: [
582
+ {
583
+ name: 'parameters',
584
+ displayName: 'Parameter',
585
+ values: [
586
+ {
587
+ displayName: 'Type',
588
+ name: 'type',
589
+ type: 'options',
590
+ options: [
591
+ { name: 'Body', value: 'body' },
592
+ { name: 'Header', value: 'headers' },
593
+ { name: 'Query', value: 'qs' },
594
+ ],
595
+ default: 'qs',
596
+ },
597
+ {
598
+ displayName: 'Name',
599
+ name: 'name',
600
+ type: 'string',
601
+ default: '',
602
+ placeholder: 'e.g page',
603
+ },
604
+ {
605
+ displayName: 'Value',
606
+ name: 'value',
607
+ type: 'string',
608
+ default: '',
609
+ hint: 'Use expression mode and $response to access response data',
610
+ },
611
+ ],
612
+ },
613
+ ],
614
+ },
615
+ {
616
+ displayName: 'Pagination Complete When',
617
+ name: 'paginationCompleteWhen',
618
+ type: 'options',
619
+ typeOptions: { noDataExpression: true },
620
+ displayOptions: { hide: { paginationMode: ['off'] } },
621
+ options: [
622
+ { name: 'Response Is Empty', value: 'responseIsEmpty' },
623
+ {
624
+ name: 'Receive Specific Status Code(s)',
625
+ value: 'receiveSpecificStatusCodes',
626
+ },
627
+ { name: 'Other', value: 'other' },
628
+ ],
629
+ default: 'responseIsEmpty',
630
+ },
631
+ {
632
+ displayName: 'Status Code(s) when Complete',
633
+ name: 'statusCodesWhenComplete',
634
+ type: 'string',
635
+ typeOptions: { noDataExpression: true },
636
+ displayOptions: {
637
+ show: { paginationCompleteWhen: ['receiveSpecificStatusCodes'] },
638
+ },
639
+ default: '',
640
+ },
641
+ {
642
+ displayName: 'Complete Expression',
643
+ name: 'completeExpression',
644
+ type: 'string',
645
+ displayOptions: { show: { paginationCompleteWhen: ['other'] } },
646
+ default: '',
647
+ },
648
+ {
649
+ displayName: 'Limit Pages Fetched',
650
+ name: 'limitPagesFetched',
651
+ type: 'boolean',
652
+ typeOptions: { noDataExpression: true },
653
+ displayOptions: { hide: { paginationMode: ['off'] } },
654
+ default: false,
655
+ noDataExpression: true,
656
+ },
657
+ {
658
+ displayName: 'Max Pages',
659
+ name: 'maxRequests',
660
+ type: 'number',
661
+ typeOptions: { noDataExpression: true },
662
+ displayOptions: { show: { limitPagesFetched: [true] } },
663
+ default: 100,
664
+ },
665
+ {
666
+ displayName: 'Interval Between Requests (ms)',
667
+ name: 'requestInterval',
668
+ type: 'number',
669
+ displayOptions: { hide: { paginationMode: ['off'] } },
670
+ default: 0,
671
+ description: 'Time in milliseconds to wait between requests',
672
+ typeOptions: { minValue: 0 },
673
+ },
674
+ ],
675
+ },
676
+ ],
677
+ },
678
+ {
679
+ displayName: 'Proxy',
680
+ name: 'proxy',
681
+ type: 'string',
682
+ default: '',
683
+ placeholder: 'e.g. http://myproxy:3128',
684
+ description: 'HTTP proxy to use',
685
+ },
686
+ {
687
+ displayName: 'Timeout',
688
+ name: 'timeout',
689
+ type: 'number',
690
+ typeOptions: { minValue: 1 },
691
+ default: 10000,
692
+ description: 'Time in ms to wait for the server to send response headers (and start the response body) before aborting the request',
693
+ },
694
+ {
695
+ displayName: 'Send Credentials on Cross-Origin Redirect',
696
+ name: 'sendCredentialsOnCrossOriginRedirect',
697
+ type: 'boolean',
698
+ default: false,
699
+ description: 'Whether to send credentials, like the "Authorization" header, on redirects to a different origin',
700
+ },
701
+ {
702
+ displayName: 'Retry Failed Items',
703
+ name: 'retryOnFail',
704
+ type: 'boolean',
705
+ default: false,
706
+ description: 'Whether to automatically retry items that failed with retryable HTTP status codes. Requires "Continue On Fail" to be enabled on the node.',
707
+ },
708
+ {
709
+ displayName: 'Max Retries',
710
+ name: 'maxRetries',
711
+ type: 'number',
712
+ typeOptions: { minValue: 1, maxValue: 10 },
713
+ default: 3,
714
+ description: 'Maximum number of retry attempts for each failed item',
715
+ displayOptions: { show: { retryOnFail: [true] } },
716
+ },
717
+ {
718
+ displayName: 'Retry Delay (ms)',
719
+ name: 'retryDelay',
720
+ type: 'number',
721
+ typeOptions: { minValue: 0 },
722
+ default: 1000,
723
+ description: 'Time in milliseconds to wait between retry attempts. For 429 responses, the Retry-After header value is used if present.',
724
+ displayOptions: { show: { retryOnFail: [true] } },
725
+ },
726
+ {
727
+ displayName: 'Retry On Status Codes',
728
+ name: 'retryOnStatusCodes',
729
+ type: 'string',
730
+ default: '429,500,502,503,504',
731
+ description: 'Comma-separated list of HTTP status codes that should trigger a retry',
732
+ displayOptions: { show: { retryOnFail: [true] } },
733
+ },
734
+ ],
735
+ },
736
+ {
737
+ displayName: "You can view the raw requests this node makes in your browser's developer console",
738
+ name: 'infoMessage',
739
+ type: 'notice',
740
+ default: '',
741
+ },
742
+ ];
743
+ //# sourceMappingURL=Description.js.map