n8n-nodes-tls-request 1.1.1 → 1.2.1

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.
@@ -3,155 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TlsRequest = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const node_tls_client_1 = require("node-tls-client");
6
- // Global flag to track TLS initialization
6
+ // Track if TLS has been initialized
7
7
  let tlsInitialized = false;
8
- let tlsInitPromise = null;
9
- let initError = null;
10
- /**
11
- * Initialize TLS client (singleton pattern to avoid multiple initializations)
12
- */
13
- async function ensureTLSInitialized() {
14
- if (tlsInitialized) {
15
- return;
16
- }
17
- if (initError) {
18
- throw new Error(`TLS initialization previously failed: ${initError.message}`);
19
- }
20
- if (tlsInitPromise) {
21
- return tlsInitPromise;
22
- }
23
- tlsInitPromise = (async () => {
24
- try {
25
- await (0, node_tls_client_1.initTLS)();
26
- tlsInitialized = true;
27
- }
28
- catch (err) {
29
- initError = err;
30
- throw err;
31
- }
32
- })();
33
- return tlsInitPromise;
34
- }
35
- /**
36
- * Parse cURL command and extract request details
37
- * Handles multi-line curl commands with various flag formats
38
- */
39
- function parseCurlCommand(curlCommand) {
40
- const result = {
41
- method: 'GET',
42
- url: '',
43
- headers: {},
44
- body: undefined,
45
- cookies: undefined,
46
- };
47
- if (!curlCommand || curlCommand.trim() === '') {
48
- return result;
49
- }
50
- // Normalize the curl command - handle line continuations and extra whitespace
51
- let normalizedCmd = curlCommand
52
- .replace(/\\\n/g, ' ') // Handle line continuations (backslash + newline)
53
- .replace(/\n/g, ' ') // Remove newlines
54
- .replace(/\s+/g, ' ') // Normalize whitespace
55
- .trim();
56
- // Extract URL - try different patterns
57
- // Pattern 1: URL right after curl command
58
- const urlMatch1 = normalizedCmd.match(/curl\s+(?:-X\s+\w+\s+)?['"]?([^'"\s]+)['"]?/i);
59
- if (urlMatch1 && urlMatch1[1].startsWith('http')) {
60
- result.url = urlMatch1[1].trim();
61
- }
62
- // Pattern 2: URL in quotes after flags
63
- const urlPatterns = [
64
- /['"](https?:\/\/[^'"]+)['"]/i,
65
- /['"](http?:\/\/[^'"]+)['"]/i,
66
- ];
67
- for (const pattern of urlPatterns) {
68
- const match = normalizedCmd.match(pattern);
69
- if (match) {
70
- result.url = match[1];
71
- break;
72
- }
73
- }
74
- // Extract method (-X or --request)
75
- const methodMatch = normalizedCmd.match(/(?:^|\s)-X\s+(['"]?)(\w+)\1/i) ||
76
- normalizedCmd.match(/--request\s+(['"]?)(\w+)\1/i);
77
- if (methodMatch) {
78
- result.method = methodMatch[2].toUpperCase();
79
- }
80
- else if (normalizedCmd.includes('--data') || normalizedCmd.includes('-d') || normalizedCmd.includes('--data-raw')) {
81
- // If there's a body but no explicit method, default to POST
82
- result.method = 'POST';
83
- }
84
- // Extract headers (-H or --header)
85
- // Match -H 'header: value' or -H "header: value"
86
- const headerRegex = /-H\s+['"]([^'"]+)['"]/g;
87
- let headerMatch;
88
- while ((headerMatch = headerRegex.exec(normalizedCmd)) !== null) {
89
- const headerValue = headerMatch[1];
90
- const colonIndex = headerValue.indexOf(':');
91
- if (colonIndex > -1) {
92
- const key = headerValue.substring(0, colonIndex).trim();
93
- const value = headerValue.substring(colonIndex + 1).trim();
94
- // Handle cookies specially - extract from Cookie header
95
- if (key.toLowerCase() === 'cookie') {
96
- result.cookies = result.cookies || {};
97
- value.split(';').forEach(cookie => {
98
- const eqIndex = cookie.indexOf('=');
99
- if (eqIndex > -1) {
100
- const cookieKey = cookie.substring(0, eqIndex).trim();
101
- const cookieValue = cookie.substring(eqIndex + 1).trim();
102
- if (cookieKey) {
103
- result.cookies[cookieKey] = cookieValue;
104
- }
105
- }
106
- });
107
- }
108
- else {
109
- result.headers[key] = value;
110
- }
111
- }
112
- }
113
- // Extract body from various data flags
114
- // Priority: --data-raw > --data-binary > --data > -d
115
- const bodyPatterns = [
116
- { pattern: /--data-raw\s+['"]([\s\S]*?)['"](?:\s|$)/, group: 1 },
117
- { pattern: /--data-binary\s+['"]([\s\S]*?)['"](?:\s|$)/, group: 1 },
118
- { pattern: /--data\s+['"]([\s\S]*?)['"](?:\s|$)/, group: 1 },
119
- { pattern: /-d\s+['"]([\s\S]*?)['"](?:\s|$)/, group: 1 },
120
- ];
121
- for (const { pattern } of bodyPatterns) {
122
- const regex = new RegExp(pattern.source, 'i');
123
- const match = normalizedCmd.match(regex);
124
- if (match && match[1] !== undefined) {
125
- result.body = match[1];
126
- break;
127
- }
128
- }
129
- // Alternative: extract body from multi-line commands where data might be on new lines
130
- if (!result.body) {
131
- const dataRawMatch = curlCommand.match(/--data-raw\s+['"]([\s\S]*?)['"]\s*$/m);
132
- if (dataRawMatch) {
133
- result.body = dataRawMatch[1].replace(/\\\n/g, '\n').trim();
134
- }
135
- }
136
- // Extract cookies from -b or --cookie flag
137
- const cookieMatch = normalizedCmd.match(/-b\s+['"]([^'"]+)['"]/) ||
138
- normalizedCmd.match(/--cookie\s+['"]([^'"]+)['"]/);
139
- if (cookieMatch) {
140
- const cookieValue = cookieMatch[1];
141
- result.cookies = result.cookies || {};
142
- cookieValue.split(';').forEach(cookie => {
143
- const eqIndex = cookie.indexOf('=');
144
- if (eqIndex > -1) {
145
- const cookieKey = cookie.substring(0, eqIndex).trim();
146
- const cookieValue = cookie.substring(eqIndex + 1).trim();
147
- if (cookieKey) {
148
- result.cookies[cookieKey] = cookieValue;
149
- }
150
- }
151
- });
152
- }
153
- return result;
154
- }
155
8
  class TlsRequest {
156
9
  constructor() {
157
10
  this.description = {
@@ -160,7 +13,7 @@ class TlsRequest {
160
13
  icon: 'fa:globe',
161
14
  group: ['transform'],
162
15
  version: 1,
163
- description: 'Make HTTP requests with browser TLS fingerprints (like noble-tls)',
16
+ description: 'Make HTTP requests with browser TLS fingerprints',
164
17
  defaults: {
165
18
  name: 'TLS Request',
166
19
  },
@@ -168,44 +21,17 @@ class TlsRequest {
168
21
  outputs: ['main'],
169
22
  properties: [
170
23
  {
171
- displayName: 'cURL Import',
172
- name: 'curlImportNotice',
173
- type: 'notice',
174
- default: '',
175
- placeholder: 'Paste a cURL command below to automatically populate the request fields. The cURL command will be parsed when the node executes.',
176
- },
177
- {
178
- displayName: 'cURL Command',
179
- name: 'curlCommand',
24
+ displayName: 'URL',
25
+ name: 'url',
180
26
  type: 'string',
181
- typeOptions: {
182
- rows: 6,
183
- },
184
- default: '',
185
- placeholder: "curl 'https://api.example.com' -H 'Accept: application/json' ...",
186
- description: 'Paste a cURL command here. When provided, it will override the manual URL, Method, Headers, and Body settings below.',
187
- },
188
- {
189
- displayName: 'Manual Configuration',
190
- name: 'manualConfigNotice',
191
- type: 'notice',
192
27
  default: '',
193
- displayOptions: {
194
- show: {
195
- curlCommand: [''],
196
- },
197
- },
198
- placeholder: 'Configure the request manually below (ignored when cURL command is provided)',
28
+ placeholder: 'https://example.com',
29
+ required: true,
199
30
  },
200
31
  {
201
32
  displayName: 'Method',
202
33
  name: 'method',
203
34
  type: 'options',
204
- displayOptions: {
205
- show: {
206
- curlCommand: [''],
207
- },
208
- },
209
35
  options: [
210
36
  { name: 'DELETE', value: 'DELETE' },
211
37
  { name: 'GET', value: 'GET' },
@@ -218,100 +44,24 @@ class TlsRequest {
218
44
  default: 'GET',
219
45
  },
220
46
  {
221
- displayName: 'URL',
222
- name: 'url',
223
- type: 'string',
224
- displayOptions: {
225
- show: {
226
- curlCommand: [''],
227
- },
228
- },
229
- default: '',
230
- placeholder: 'https://example.com',
231
- required: true,
232
- },
233
- {
234
- displayName: 'Browser ID (TLS Fingerprint)',
47
+ displayName: 'Browser ID',
235
48
  name: 'browserId',
236
49
  type: 'options',
237
50
  options: [
238
- // Chrome
239
- { name: 'Chrome 120', value: 'chrome_120' },
240
- { name: 'Chrome 119', value: 'chrome_119' },
241
- { name: 'Chrome 118', value: 'chrome_118' },
242
51
  { name: 'Chrome 117', value: 'chrome_117' },
243
- { name: 'Chrome 116', value: 'chrome_116' },
244
- { name: 'Chrome 115', value: 'chrome_115' },
245
- { name: 'Chrome 114', value: 'chrome_114' },
246
- { name: 'Chrome 113', value: 'chrome_113' },
247
- { name: 'Chrome 112', value: 'chrome_112' },
248
- { name: 'Chrome 111', value: 'chrome_111' },
249
- { name: 'Chrome 110', value: 'chrome_110' },
250
- { name: 'Chrome 109', value: 'chrome_109' },
251
- { name: 'Chrome 108', value: 'chrome_108' },
252
- { name: 'Chrome 107', value: 'chrome_107' },
253
- { name: 'Chrome 106', value: 'chrome_106' },
254
- { name: 'Chrome 105', value: 'chrome_105' },
255
- { name: 'Chrome 104', value: 'chrome_104' },
256
- { name: 'Chrome 103', value: 'chrome_103' },
257
- // Firefox
258
- { name: 'Firefox 117', value: 'firefox_117' },
259
- { name: 'Firefox 116', value: 'firefox_116' },
260
- { name: 'Firefox 115', value: 'firefox_115' },
261
- { name: 'Firefox 114', value: 'firefox_114' },
262
- { name: 'Firefox 113', value: 'firefox_113' },
263
- { name: 'Firefox 112', value: 'firefox_112' },
264
- { name: 'Firefox 111', value: 'firefox_111' },
265
- { name: 'Firefox 110', value: 'firefox_110' },
266
- { name: 'Firefox 109', value: 'firefox_109' },
267
- { name: 'Firefox 108', value: 'firefox_108' },
268
- { name: 'Firefox 107', value: 'firefox_107' },
269
- { name: 'Firefox 106', value: 'firefox_106' },
270
- { name: 'Firefox 105', value: 'firefox_105' },
271
- { name: 'Firefox 104', value: 'firefox_104' },
272
- { name: 'Firefox 103', value: 'firefox_103' },
52
+ { name: 'Chrome 118', value: 'chrome_118' },
53
+ { name: 'Chrome 119', value: 'chrome_119' },
54
+ { name: 'Chrome 120', value: 'chrome_120' },
273
55
  { name: 'Firefox 102', value: 'firefox_102' },
274
- // Safari (macOS)
275
- { name: 'Safari 17.0', value: 'safari_17_0' },
276
- { name: 'Safari 16.5', value: 'safari_16_5' },
277
- { name: 'Safari 16.0', value: 'safari_16_0' },
278
- { name: 'Safari 15.6.1', value: 'safari_15_6_1' },
279
- { name: 'Safari 15.5', value: 'safari_15_5' },
56
+ { name: 'Firefox 110', value: 'firefox_110' },
57
+ { name: 'Firefox 117', value: 'firefox_117' },
280
58
  { name: 'Safari 15.3', value: 'safari_15_3' },
281
- // Mobile - iOS
282
- { name: 'Safari iOS 17.0', value: 'safari_ios_17_0' },
283
- { name: 'Safari iOS 16.0', value: 'safari_ios_16_0' },
284
- { name: 'Safari iOS 15.6', value: 'safari_ios_15_6' },
59
+ { name: 'Safari 15.6.1', value: 'safari_15_6_1' },
60
+ { name: 'Safari 16.0', value: 'safari_16_0' },
285
61
  { name: 'Safari iOS 15.5', value: 'safari_ios_15_5' },
286
- // Mobile - Android (OkHttp)
287
- { name: 'Android 13 (OkHttp 4.10)', value: 'okhttp4_android_13' },
288
- { name: 'Android 12 (OkHttp 4.9)', value: 'okhttp4_android_12' },
289
- { name: 'Android 11 (OkHttp 4.9)', value: 'okhttp4_android_11' },
290
- { name: 'Android 10 (OkHttp 4.9)', value: 'okhttp4_android_10' },
291
- { name: 'Android 9 (OkHttp 4.9)', value: 'okhttp4_android_9' },
292
- { name: 'Android 8 (OkHttp 4.9)', value: 'okhttp4_android_8' },
293
- { name: 'Android 7 (OkHttp 4.9)', value: 'okhttp4_android_7' },
294
- // Opera
295
- { name: 'Opera 90', value: 'opera_90' },
296
- { name: 'Opera 89', value: 'opera_89' },
62
+ { name: 'Safari iOS 16.0', value: 'safari_ios_16_0' },
297
63
  ],
298
64
  default: 'chrome_120',
299
- description: 'The browser TLS fingerprint to impersonate',
300
- },
301
- {
302
- displayName: 'Proxy',
303
- name: 'proxy',
304
- type: 'string',
305
- default: '',
306
- placeholder: 'http://user:pass@host:port',
307
- description: 'Proxy connection string (supports http:// and socks5://)',
308
- },
309
- {
310
- displayName: 'Send Headers',
311
- name: 'sendHeaders',
312
- type: 'boolean',
313
- default: false,
314
- description: 'Whether to send custom headers with the request',
315
65
  },
316
66
  {
317
67
  displayName: 'Headers',
@@ -321,12 +71,6 @@ class TlsRequest {
321
71
  multipleValues: true,
322
72
  },
323
73
  placeholder: 'Add Header',
324
- displayOptions: {
325
- show: {
326
- sendHeaders: [true],
327
- curlCommand: [''],
328
- },
329
- },
330
74
  default: {},
331
75
  options: [
332
76
  {
@@ -349,151 +93,19 @@ class TlsRequest {
349
93
  },
350
94
  ],
351
95
  },
352
- {
353
- displayName: 'Send Cookies',
354
- name: 'sendCookies',
355
- type: 'boolean',
356
- default: false,
357
- description: 'Whether to send cookies with the request',
358
- },
359
- {
360
- displayName: 'Cookies',
361
- name: 'cookies',
362
- type: 'fixedCollection',
363
- typeOptions: {
364
- multipleValues: true,
365
- },
366
- placeholder: 'Add Cookie',
367
- displayOptions: {
368
- show: {
369
- sendCookies: [true],
370
- curlCommand: [''],
371
- },
372
- },
373
- default: {},
374
- options: [
375
- {
376
- name: 'parameter',
377
- displayName: 'Cookie',
378
- values: [
379
- {
380
- displayName: 'Name',
381
- name: 'name',
382
- type: 'string',
383
- default: '',
384
- },
385
- {
386
- displayName: 'Value',
387
- name: 'value',
388
- type: 'string',
389
- default: '',
390
- },
391
- ],
392
- },
393
- ],
394
- },
395
- {
396
- displayName: 'Send Body',
397
- name: 'sendBody',
398
- type: 'boolean',
399
- default: false,
400
- displayOptions: {
401
- show: {
402
- method: ['POST', 'PUT', 'PATCH', 'DELETE'],
403
- curlCommand: [''],
404
- },
405
- },
406
- description: 'Whether to send a body with the request',
407
- },
408
- {
409
- displayName: 'Content Type',
410
- name: 'contentType',
411
- type: 'options',
412
- displayOptions: {
413
- show: {
414
- sendBody: [true],
415
- method: ['POST', 'PUT', 'PATCH', 'DELETE'],
416
- curlCommand: [''],
417
- },
418
- },
419
- options: [
420
- { name: 'JSON', value: 'json' },
421
- { name: 'Form-Data', value: 'form-data' },
422
- { name: 'Raw', value: 'raw' },
423
- ],
424
- default: 'json',
425
- description: 'The content type of the body',
426
- },
427
96
  {
428
97
  displayName: 'Body',
429
98
  name: 'body',
430
- type: 'json',
431
- displayOptions: {
432
- show: {
433
- sendBody: [true],
434
- contentType: ['json'],
435
- method: ['POST', 'PUT', 'PATCH', 'DELETE'],
436
- curlCommand: [''],
437
- },
438
- },
439
- default: '{}',
440
- description: 'The JSON body to send',
441
- },
442
- {
443
- displayName: 'Body (Form-Data)',
444
- name: 'bodyFormData',
445
- type: 'fixedCollection',
446
- typeOptions: {
447
- multipleValues: true,
448
- },
449
- placeholder: 'Add Field',
450
- displayOptions: {
451
- show: {
452
- sendBody: [true],
453
- contentType: ['form-data'],
454
- method: ['POST', 'PUT', 'PATCH', 'DELETE'],
455
- curlCommand: [''],
456
- },
457
- },
458
- default: {},
459
- options: [
460
- {
461
- name: 'parameter',
462
- displayName: 'Field',
463
- values: [
464
- {
465
- displayName: 'Name',
466
- name: 'name',
467
- type: 'string',
468
- default: '',
469
- },
470
- {
471
- displayName: 'Value',
472
- name: 'value',
473
- type: 'string',
474
- default: '',
475
- },
476
- ],
477
- },
478
- ],
479
- },
480
- {
481
- displayName: 'Body (Raw)',
482
- name: 'bodyRaw',
483
99
  type: 'string',
484
100
  typeOptions: {
485
101
  rows: 4,
486
102
  },
487
103
  displayOptions: {
488
104
  show: {
489
- sendBody: [true],
490
- contentType: ['raw'],
491
105
  method: ['POST', 'PUT', 'PATCH', 'DELETE'],
492
- curlCommand: [''],
493
106
  },
494
107
  },
495
108
  default: '',
496
- description: 'The raw body to send',
497
109
  },
498
110
  {
499
111
  displayName: 'Options',
@@ -502,26 +114,30 @@ class TlsRequest {
502
114
  placeholder: 'Add Option',
503
115
  default: {},
504
116
  options: [
117
+ {
118
+ displayName: 'Proxy',
119
+ name: 'proxy',
120
+ type: 'string',
121
+ default: '',
122
+ placeholder: 'http://user:pass@host:port',
123
+ },
505
124
  {
506
125
  displayName: 'Follow Redirects',
507
126
  name: 'followRedirects',
508
127
  type: 'boolean',
509
128
  default: true,
510
- description: 'Whether to follow HTTP redirects',
511
129
  },
512
130
  {
513
131
  displayName: 'Timeout (Seconds)',
514
132
  name: 'timeout',
515
133
  type: 'number',
516
134
  default: 30,
517
- description: 'Request timeout in seconds (max 120)',
518
135
  },
519
136
  {
520
- displayName: 'Insecure Skip Verify',
137
+ displayName: 'Skip Certificate Verification',
521
138
  name: 'insecureSkipVerify',
522
139
  type: 'boolean',
523
140
  default: false,
524
- description: 'Skip TLS certificate verification (not recommended for production)',
525
141
  },
526
142
  ],
527
143
  },
@@ -531,219 +147,124 @@ class TlsRequest {
531
147
  async execute() {
532
148
  const items = this.getInputData();
533
149
  const returnData = [];
534
- // Initialize TLS once at the start
535
- try {
536
- await ensureTLSInitialized();
537
- }
538
- catch (error) {
539
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to initialize TLS client: ${error.message}. Please ensure node-tls-client is properly installed.`);
150
+ // Initialize TLS once
151
+ if (!tlsInitialized) {
152
+ try {
153
+ await (0, node_tls_client_1.initTLS)();
154
+ tlsInitialized = true;
155
+ }
156
+ catch (error) {
157
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
158
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `TLS init failed: ${errorMessage}`);
159
+ }
540
160
  }
541
161
  for (let i = 0; i < items.length; i++) {
542
162
  let session;
543
163
  try {
544
- // Get parameters
164
+ const url = this.getNodeParameter('url', i);
165
+ const method = this.getNodeParameter('method', i);
545
166
  const browserId = this.getNodeParameter('browserId', i);
546
- const proxy = this.getNodeParameter('proxy', i, '');
547
- const curlCommand = this.getNodeParameter('curlCommand', i, '');
548
167
  const options = this.getNodeParameter('options', i, {});
549
- let method;
550
- let url;
551
- let headers = {};
552
- let cookies = {};
553
- let body = undefined;
554
- // Check if cURL command is provided and parse it
555
- if (curlCommand && curlCommand.trim() !== '') {
556
- const parsed = parseCurlCommand(curlCommand);
557
- if (!parsed.url) {
558
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Could not parse URL from cURL command. Please check the format.', { itemIndex: i });
559
- }
560
- method = parsed.method;
561
- url = parsed.url;
562
- headers = parsed.headers || {};
563
- if (parsed.cookies && Object.keys(parsed.cookies).length > 0) {
564
- cookies = parsed.cookies;
565
- }
566
- if (parsed.body) {
567
- body = parsed.body;
568
- }
168
+ if (!url) {
169
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'URL is required', { itemIndex: i });
569
170
  }
570
- else {
571
- // Use manual configuration
572
- method = this.getNodeParameter('method', i);
573
- url = this.getNodeParameter('url', i);
574
- if (!url) {
575
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'URL is required when not using cURL import', { itemIndex: i });
576
- }
577
- // Handle Headers
578
- const sendHeaders = this.getNodeParameter('sendHeaders', i, false);
579
- if (sendHeaders) {
580
- const headerItems = this.getNodeParameter('headers.parameter', i, []);
581
- for (const item of headerItems) {
582
- if (item.name) {
583
- headers[item.name] = item.value;
584
- }
585
- }
586
- }
587
- // Handle Cookies
588
- const sendCookies = this.getNodeParameter('sendCookies', i, false);
589
- if (sendCookies) {
590
- const cookieItems = this.getNodeParameter('cookies.parameter', i, []);
591
- for (const item of cookieItems) {
592
- if (item.name) {
593
- cookies[item.name] = item.value;
594
- }
595
- }
596
- }
597
- // Handle Body
598
- const sendBody = this.getNodeParameter('sendBody', i, false);
599
- if (sendBody && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)) {
600
- const contentType = this.getNodeParameter('contentType', i, 'json');
601
- if (contentType === 'json') {
602
- const bodyParam = this.getNodeParameter('body', i, '{}');
603
- if (typeof bodyParam === 'string') {
604
- try {
605
- body = JSON.parse(bodyParam);
606
- }
607
- catch {
608
- body = bodyParam;
609
- }
610
- }
611
- else {
612
- body = bodyParam;
613
- }
614
- // Set JSON content type if not already set
615
- if (!headers['content-type'] && !headers['Content-Type']) {
616
- headers['content-type'] = 'application/json';
617
- }
618
- }
619
- else if (contentType === 'form-data') {
620
- const formDataItems = this.getNodeParameter('bodyFormData.parameter', i, []);
621
- const formData = {};
622
- for (const item of formDataItems) {
623
- if (item.name) {
624
- formData[item.name] = item.value;
625
- }
626
- }
627
- body = new URLSearchParams(formData).toString();
628
- if (!headers['content-type'] && !headers['Content-Type']) {
629
- headers['content-type'] = 'application/x-www-form-urlencoded';
630
- }
631
- }
632
- else {
633
- body = this.getNodeParameter('bodyRaw', i, '');
634
- }
171
+ // Build headers
172
+ const headers = {};
173
+ const headerItems = this.getNodeParameter('headers.parameter', i, []);
174
+ for (const item of headerItems) {
175
+ if (item.name) {
176
+ headers[item.name] = item.value;
635
177
  }
636
178
  }
637
- // Validate URL
638
- if (!url || !url.startsWith('http')) {
639
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid URL: ${url}. URL must start with http:// or https://`, { itemIndex: i });
179
+ // Get body
180
+ let body;
181
+ if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)) {
182
+ body = this.getNodeParameter('body', i, '');
183
+ if (body === '') {
184
+ body = undefined;
185
+ }
640
186
  }
641
- // Initialize Node TLS Client Session
642
- const timeout = Math.min(options.timeout || 30, 120); // Cap at 120 seconds
187
+ // Create session
643
188
  const sessionConfig = {
644
- sessionId: `n8n-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,
645
189
  clientIdentifier: browserId,
646
- timeout: timeout * 1000, // Convert to milliseconds
190
+ timeout: (options.timeout || 30) * 1000,
647
191
  followRedirects: options.followRedirects !== false,
648
192
  };
649
- if (proxy) {
650
- sessionConfig.proxy = proxy;
193
+ if (options.proxy) {
194
+ sessionConfig.proxy = options.proxy;
651
195
  }
652
196
  if (options.insecureSkipVerify) {
653
197
  sessionConfig.insecureSkipVerify = true;
654
198
  }
655
- // Create session
656
199
  session = new node_tls_client_1.Session(sessionConfig);
657
- const requestOptions = {
658
- headers,
659
- };
660
- if (Object.keys(cookies).length > 0) {
661
- requestOptions.cookies = cookies;
662
- }
663
- if (body !== undefined && ['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)) {
664
- if (typeof body === 'object' && !(body instanceof URLSearchParams)) {
665
- requestOptions.body = JSON.stringify(body);
666
- }
667
- else {
668
- requestOptions.body = body;
669
- }
200
+ // Build request options
201
+ const requestOptions = { headers };
202
+ if (body !== undefined) {
203
+ requestOptions.body = body;
670
204
  }
671
- // Execute Request with timeout handling
205
+ // Make request
672
206
  let response;
673
- const methodLower = method.toLowerCase();
674
- try {
675
- switch (methodLower) {
676
- case 'get':
677
- response = await session.get(url, requestOptions);
678
- break;
679
- case 'post':
680
- response = await session.post(url, requestOptions);
681
- break;
682
- case 'put':
683
- response = await session.put(url, requestOptions);
684
- break;
685
- case 'patch':
686
- response = await session.patch(url, requestOptions);
687
- break;
688
- case 'delete':
689
- response = await session.delete(url, requestOptions);
690
- break;
691
- case 'head':
692
- response = await session.head(url, requestOptions);
693
- break;
694
- case 'options':
695
- response = await session.options(url, requestOptions);
696
- break;
697
- default:
698
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Method ${method} not supported`, { itemIndex: i });
699
- }
207
+ switch (method) {
208
+ case 'GET':
209
+ response = await session.get(url, requestOptions);
210
+ break;
211
+ case 'POST':
212
+ response = await session.post(url, requestOptions);
213
+ break;
214
+ case 'PUT':
215
+ response = await session.put(url, requestOptions);
216
+ break;
217
+ case 'PATCH':
218
+ response = await session.patch(url, requestOptions);
219
+ break;
220
+ case 'DELETE':
221
+ response = await session.delete(url, requestOptions);
222
+ break;
223
+ case 'HEAD':
224
+ response = await session.head(url, requestOptions);
225
+ break;
226
+ case 'OPTIONS':
227
+ response = await session.options(url, requestOptions);
228
+ break;
229
+ default:
230
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported method: ${method}`, { itemIndex: i });
700
231
  }
701
- catch (requestError) {
702
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Request failed: ${requestError.message}`, { itemIndex: i });
703
- }
704
- // Process response
705
- let responseData;
232
+ // Parse response body if JSON
233
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
234
+ let responseData = response.body;
706
235
  if (typeof response.body === 'string') {
707
- // Try to parse as JSON
708
236
  try {
709
237
  responseData = JSON.parse(response.body);
710
238
  }
711
239
  catch {
712
- responseData = response.body;
240
+ // Keep as string
713
241
  }
714
242
  }
715
- else {
716
- responseData = response.body;
717
- }
718
243
  returnData.push({
719
244
  json: {
720
245
  status: response.status,
721
- statusText: response.statusText || '',
722
246
  headers: response.headers,
723
- data: responseData,
724
- url: response.url || url,
247
+ body: responseData,
725
248
  },
726
249
  });
727
250
  }
728
251
  catch (error) {
729
252
  if (this.continueOnFail()) {
253
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
730
254
  returnData.push({
731
- json: {
732
- error: error.message,
733
- },
255
+ json: { error: errorMessage },
734
256
  });
735
257
  continue;
736
258
  }
737
259
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i });
738
260
  }
739
261
  finally {
740
- // Always close the session to free resources
741
262
  if (session) {
742
263
  try {
743
264
  await session.close();
744
265
  }
745
266
  catch {
746
- // Ignore close errors
267
+ // Ignore
747
268
  }
748
269
  }
749
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TlsRequest.node.js","sourceRoot":"","sources":["../../../nodes/TlsRequest/TlsRequest.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TlsRequest.node.js","sourceRoot":"","sources":["../../../nodes/TlsRequest/TlsRequest.node.ts"],"names":[],"mappings":";;;AAAA,+CAMsB;AACtB,qDAAmD;AAEnD,oCAAoC;AACpC,IAAI,cAAc,GAAG,KAAK,CAAC;AA0B3B,MAAa,UAAU;IAAvB;QACI,gBAAW,GAAyB;YAChC,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE;gBACN,IAAI,EAAE,aAAa;aACtB;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,UAAU,EAAE;gBACR;oBACI,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,qBAAqB;oBAClC,QAAQ,EAAE,IAAI;iBACjB;gBACD;oBACI,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;qBAChC;oBACD,OAAO,EAAE,KAAK;iBACjB;gBACD;oBACI,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;wBACjD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;wBACrD,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;qBACxD;oBACD,OAAO,EAAE,YAAY;iBACxB;gBACD;oBACI,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE;wBACT,cAAc,EAAE,IAAI;qBACvB;oBACD,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,WAAW;4BACjB,WAAW,EAAE,QAAQ;4BACrB,MAAM,EAAE;gCACJ;oCACI,WAAW,EAAE,MAAM;oCACnB,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;iCACd;gCACD;oCACI,WAAW,EAAE,OAAO;oCACpB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;iCACd;6BACJ;yBACJ;qBACJ;iBACJ;gBACD;oBACI,WAAW,EAAE,MAAM;oBACnB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;wBACT,IAAI,EAAE,CAAC;qBACV;oBACD,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;yBAC7C;qBACJ;oBACD,OAAO,EAAE,EAAE;iBACd;gBACD;oBACI,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACL;4BACI,WAAW,EAAE,OAAO;4BACpB,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,4BAA4B;yBAC5C;wBACD;4BACI,WAAW,EAAE,kBAAkB;4BAC/B,IAAI,EAAE,iBAAiB;4BACvB,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,IAAI;yBAChB;wBACD;4BACI,WAAW,EAAE,mBAAmB;4BAChC,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,EAAE;yBACd;wBACD;4BACI,WAAW,EAAE,+BAA+B;4BAC5C,IAAI,EAAE,oBAAoB;4BAC1B,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;yBACjB;qBACJ;iBACJ;aACJ;SACJ,CAAC;IAiJN,CAAC;IA/IG,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,sBAAsB;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,IAAA,yBAAO,GAAE,CAAC;gBAChB,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC9E,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,oBAAoB,YAAY,EAAE,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,OAA4B,CAAC;YAEjC,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAW,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAW,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;gBAClE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAKrD,CAAC;gBAEF,IAAI,CAAC,GAAG,EAAE,CAAC;oBACP,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;gBAED,gBAAgB;gBAChB,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAA2C,CAAC;gBAChH,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBACpC,CAAC;gBACL,CAAC;gBAED,WAAW;gBACX,IAAI,IAAwB,CAAC;gBAC7B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtD,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAW,CAAC;oBACtD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBACd,IAAI,GAAG,SAAS,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,iBAAiB;gBACjB,MAAM,aAAa,GAAkB;oBACjC,gBAAgB,EAAE,SAAS;oBAC3B,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI;oBACvC,eAAe,EAAE,OAAO,CAAC,eAAe,KAAK,KAAK;iBACrD,CAAC;gBAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxC,CAAC;gBAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC7B,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAED,OAAO,GAAG,IAAI,yBAAO,CAAC,aAAoE,CAAC,CAAC;gBAE5F,wBAAwB;gBACxB,MAAM,cAAc,GAAmB,EAAE,OAAO,EAAE,CAAC;gBACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrB,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC/B,CAAC;gBAED,eAAe;gBACf,IAAI,QAAqB,CAAC;gBAC1B,QAAQ,MAAM,EAAE,CAAC;oBACb,KAAK,KAAK;wBACN,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBACjE,MAAM;oBACV,KAAK,MAAM;wBACP,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBAClE,MAAM;oBACV,KAAK,KAAK;wBACN,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBACjE,MAAM;oBACV,KAAK,OAAO;wBACR,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBACnE,MAAM;oBACV,KAAK,QAAQ;wBACT,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBACpE,MAAM;oBACV,KAAK,MAAM;wBACP,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBAClE,MAAM;oBACV,KAAK,SAAS;wBACV,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAgB,CAAC;wBACrE,MAAM;oBACV;wBACI,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxG,CAAC;gBAED,8BAA8B;gBAC9B,8DAA8D;gBAC9D,IAAI,YAAY,GAAQ,QAAQ,CAAC,IAAI,CAAC;gBACtC,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC;oBAAC,MAAM,CAAC;wBACL,iBAAiB;oBACrB,CAAC;gBACL,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE;wBACF,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,YAAY;qBACrB;iBACJ,CAAC,CAAC;YAEP,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC9E,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;qBAChC,CAAC,CAAC;oBACH,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;oBAAS,CAAC;gBACP,IAAI,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC;wBACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBACL,SAAS;oBACb,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;CACJ;AAzRD,gCAyRC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-tls-request",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "n8n node for making HTTP requests with custom TLS fingerprints (Chrome, Firefox, Safari) using node-tls-client.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package"
@@ -18,7 +18,8 @@
18
18
  "scripts": {
19
19
  "build": "tsc",
20
20
  "dev": "tsc --watch",
21
- "lint": "tslint -p tsconfig.json -c tslint.json",
21
+ "lint": "eslint nodes/**/*.ts",
22
+ "lintfix": "eslint nodes/**/*.ts --fix",
22
23
  "prepublishOnly": "npm run build"
23
24
  },
24
25
  "files": [
@@ -34,7 +35,11 @@
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/node": "^18.0.0",
38
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
39
+ "@typescript-eslint/parser": "^8.54.0",
40
+ "eslint": "^9.39.2",
41
+ "eslint-plugin-n8n-nodes-base": "^1.16.6",
37
42
  "n8n-workflow": "*",
38
43
  "typescript": "^5.0.0"
39
44
  }
40
- }
45
+ }