rezo 1.0.11 → 1.0.12

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.
package/dist/index.cjs CHANGED
@@ -1,27 +1,27 @@
1
- const _mod_ivdy34 = require('./core/rezo.cjs');
2
- exports.Rezo = _mod_ivdy34.Rezo;
3
- exports.createRezoInstance = _mod_ivdy34.createRezoInstance;
4
- exports.createDefaultInstance = _mod_ivdy34.createDefaultInstance;;
5
- const _mod_eleqc6 = require('./errors/rezo-error.cjs');
6
- exports.RezoError = _mod_eleqc6.RezoError;
7
- exports.RezoErrorCode = _mod_eleqc6.RezoErrorCode;;
8
- const _mod_s3mojl = require('./utils/headers.cjs');
9
- exports.RezoHeaders = _mod_s3mojl.RezoHeaders;;
10
- const _mod_ltzvhk = require('./utils/form-data.cjs');
11
- exports.RezoFormData = _mod_ltzvhk.RezoFormData;;
12
- const _mod_9b4i5y = require('./utils/cookies.cjs');
13
- exports.RezoCookieJar = _mod_9b4i5y.RezoCookieJar;
14
- exports.Cookie = _mod_9b4i5y.Cookie;;
15
- const _mod_ip126y = require('./core/hooks.cjs');
16
- exports.createDefaultHooks = _mod_ip126y.createDefaultHooks;
17
- exports.mergeHooks = _mod_ip126y.mergeHooks;;
18
- const _mod_zptoz7 = require('./proxy/manager.cjs');
19
- exports.ProxyManager = _mod_zptoz7.ProxyManager;;
20
- const _mod_qvzoi6 = require('./queue/index.cjs');
21
- exports.RezoQueue = _mod_qvzoi6.RezoQueue;
22
- exports.HttpQueue = _mod_qvzoi6.HttpQueue;
23
- exports.Priority = _mod_qvzoi6.Priority;
24
- exports.HttpMethodPriority = _mod_qvzoi6.HttpMethodPriority;;
1
+ const _mod_jr843j = require('./core/rezo.cjs');
2
+ exports.Rezo = _mod_jr843j.Rezo;
3
+ exports.createRezoInstance = _mod_jr843j.createRezoInstance;
4
+ exports.createDefaultInstance = _mod_jr843j.createDefaultInstance;;
5
+ const _mod_tk44ak = require('./errors/rezo-error.cjs');
6
+ exports.RezoError = _mod_tk44ak.RezoError;
7
+ exports.RezoErrorCode = _mod_tk44ak.RezoErrorCode;;
8
+ const _mod_n1xwl0 = require('./utils/headers.cjs');
9
+ exports.RezoHeaders = _mod_n1xwl0.RezoHeaders;;
10
+ const _mod_ci344r = require('./utils/form-data.cjs');
11
+ exports.RezoFormData = _mod_ci344r.RezoFormData;;
12
+ const _mod_611jzw = require('./utils/cookies.cjs');
13
+ exports.RezoCookieJar = _mod_611jzw.RezoCookieJar;
14
+ exports.Cookie = _mod_611jzw.Cookie;;
15
+ const _mod_7h5jew = require('./core/hooks.cjs');
16
+ exports.createDefaultHooks = _mod_7h5jew.createDefaultHooks;
17
+ exports.mergeHooks = _mod_7h5jew.mergeHooks;;
18
+ const _mod_0rf8qu = require('./proxy/manager.cjs');
19
+ exports.ProxyManager = _mod_0rf8qu.ProxyManager;;
20
+ const _mod_ho3aaq = require('./queue/index.cjs');
21
+ exports.RezoQueue = _mod_ho3aaq.RezoQueue;
22
+ exports.HttpQueue = _mod_ho3aaq.HttpQueue;
23
+ exports.Priority = _mod_ho3aaq.Priority;
24
+ exports.HttpMethodPriority = _mod_ho3aaq.HttpMethodPriority;;
25
25
  const { RezoError } = require('./errors/rezo-error.cjs');
26
26
  const isRezoError = exports.isRezoError = RezoError.isRezoError;
27
27
  const Cancel = exports.Cancel = RezoError;
package/dist/index.d.ts CHANGED
@@ -2628,8 +2628,73 @@ export interface RezoRequestConfig<D = any> {
2628
2628
  maxRedirects?: number;
2629
2629
  /** Whether to automatically decompress response data */
2630
2630
  decompress?: boolean;
2631
- /** Whether to keep the connection alive for reuse */
2631
+ /**
2632
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2633
+ *
2634
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2635
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2636
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2637
+ * TLS negotiation for HTTPS).
2638
+ *
2639
+ * **Behavior:**
2640
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2641
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2642
+ *
2643
+ * **When to use `keepAlive: true`:**
2644
+ * - Making multiple requests to the same host in sequence
2645
+ * - Long-running applications (servers, bots, scrapers)
2646
+ * - Performance-critical applications where connection overhead matters
2647
+ *
2648
+ * **When to use `keepAlive: false` (default):**
2649
+ * - Single requests or scripts that should exit immediately
2650
+ * - CLI tools that make one-off requests
2651
+ * - When you need predictable process termination
2652
+ *
2653
+ * @example
2654
+ * ```typescript
2655
+ * // Default: process exits immediately after request
2656
+ * const { data } = await rezo.get('https://api.example.com/data');
2657
+ *
2658
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2659
+ * const client = new Rezo({ keepAlive: true });
2660
+ * await client.get('https://api.example.com/users');
2661
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2662
+ *
2663
+ * // Custom keep-alive timeout (30 seconds)
2664
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2665
+ * ```
2666
+ *
2667
+ * @default false
2668
+ */
2632
2669
  keepAlive?: boolean;
2670
+ /**
2671
+ * How long to keep idle connections alive in milliseconds.
2672
+ *
2673
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2674
+ * the connection is closed automatically. This prevents resource leaks
2675
+ * from connections that are no longer needed.
2676
+ *
2677
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2678
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2679
+ *
2680
+ * @example
2681
+ * ```typescript
2682
+ * // Keep connections alive for 30 seconds
2683
+ * const client = new Rezo({
2684
+ * keepAlive: true,
2685
+ * keepAliveMsecs: 30000
2686
+ * });
2687
+ *
2688
+ * // Keep connections alive for 2 minutes
2689
+ * const client = new Rezo({
2690
+ * keepAlive: true,
2691
+ * keepAliveMsecs: 120000
2692
+ * });
2693
+ * ```
2694
+ *
2695
+ * @default 60000 (1 minute)
2696
+ */
2697
+ keepAliveMsecs?: number;
2633
2698
  withoutBodyOnRedirect?: boolean;
2634
2699
  autoSetReferer?: boolean;
2635
2700
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -2502,8 +2502,73 @@ export interface RezoRequestConfig<D = any> {
2502
2502
  maxRedirects?: number;
2503
2503
  /** Whether to automatically decompress response data */
2504
2504
  decompress?: boolean;
2505
- /** Whether to keep the connection alive for reuse */
2505
+ /**
2506
+ * Whether to keep TCP connections alive for reuse across multiple requests.
2507
+ *
2508
+ * When enabled, the underlying TCP connection is kept open after a request completes,
2509
+ * allowing subsequent requests to the same host to reuse the connection. This reduces
2510
+ * latency by avoiding the overhead of establishing new connections (TCP handshake,
2511
+ * TLS negotiation for HTTPS).
2512
+ *
2513
+ * **Behavior:**
2514
+ * - `false` (default) - Connection closes after each request. Process exits immediately.
2515
+ * - `true` - Connection stays open for reuse. Idle connections close after `keepAliveMsecs`.
2516
+ *
2517
+ * **When to use `keepAlive: true`:**
2518
+ * - Making multiple requests to the same host in sequence
2519
+ * - Long-running applications (servers, bots, scrapers)
2520
+ * - Performance-critical applications where connection overhead matters
2521
+ *
2522
+ * **When to use `keepAlive: false` (default):**
2523
+ * - Single requests or scripts that should exit immediately
2524
+ * - CLI tools that make one-off requests
2525
+ * - When you need predictable process termination
2526
+ *
2527
+ * @example
2528
+ * ```typescript
2529
+ * // Default: process exits immediately after request
2530
+ * const { data } = await rezo.get('https://api.example.com/data');
2531
+ *
2532
+ * // Keep connection alive for 1 minute (default) for subsequent requests
2533
+ * const client = new Rezo({ keepAlive: true });
2534
+ * await client.get('https://api.example.com/users');
2535
+ * await client.get('https://api.example.com/posts'); // Reuses connection
2536
+ *
2537
+ * // Custom keep-alive timeout (30 seconds)
2538
+ * const client = new Rezo({ keepAlive: true, keepAliveMsecs: 30000 });
2539
+ * ```
2540
+ *
2541
+ * @default false
2542
+ */
2506
2543
  keepAlive?: boolean;
2544
+ /**
2545
+ * How long to keep idle connections alive in milliseconds.
2546
+ *
2547
+ * Only applies when `keepAlive: true`. After this duration of inactivity,
2548
+ * the connection is closed automatically. This prevents resource leaks
2549
+ * from connections that are no longer needed.
2550
+ *
2551
+ * **Note:** Even with keep-alive enabled, the Node.js process can still exit
2552
+ * cleanly when there's no other work to do, thanks to socket unreferencing.
2553
+ *
2554
+ * @example
2555
+ * ```typescript
2556
+ * // Keep connections alive for 30 seconds
2557
+ * const client = new Rezo({
2558
+ * keepAlive: true,
2559
+ * keepAliveMsecs: 30000
2560
+ * });
2561
+ *
2562
+ * // Keep connections alive for 2 minutes
2563
+ * const client = new Rezo({
2564
+ * keepAlive: true,
2565
+ * keepAliveMsecs: 120000
2566
+ * });
2567
+ * ```
2568
+ *
2569
+ * @default 60000 (1 minute)
2570
+ */
2571
+ keepAliveMsecs?: number;
2507
2572
  withoutBodyOnRedirect?: boolean;
2508
2573
  autoSetReferer?: boolean;
2509
2574
  autoSetOrigin?: boolean;
@@ -1,36 +1,36 @@
1
- const _mod_rw5uzi = require('./crawler.cjs');
2
- exports.Crawler = _mod_rw5uzi.Crawler;;
3
- const _mod_uowipj = require('./crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_uowipj.CrawlerOptions;;
5
- const _mod_o9zvdc = require('../cache/file-cacher.cjs');
6
- exports.FileCacher = _mod_o9zvdc.FileCacher;;
7
- const _mod_vh8a1z = require('../cache/url-store.cjs');
8
- exports.UrlStore = _mod_vh8a1z.UrlStore;;
9
- const _mod_7g0lot = require('./addon/oxylabs/index.cjs');
10
- exports.Oxylabs = _mod_7g0lot.Oxylabs;;
11
- const _mod_hjsucp = require('./addon/oxylabs/options.cjs');
12
- exports.OXYLABS_BROWSER_TYPES = _mod_hjsucp.OXYLABS_BROWSER_TYPES;
13
- exports.OXYLABS_COMMON_LOCALES = _mod_hjsucp.OXYLABS_COMMON_LOCALES;
14
- exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_hjsucp.OXYLABS_COMMON_GEO_LOCATIONS;
15
- exports.OXYLABS_US_STATES = _mod_hjsucp.OXYLABS_US_STATES;
16
- exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_hjsucp.OXYLABS_EUROPEAN_COUNTRIES;
17
- exports.OXYLABS_ASIAN_COUNTRIES = _mod_hjsucp.OXYLABS_ASIAN_COUNTRIES;
18
- exports.getRandomOxylabsBrowserType = _mod_hjsucp.getRandomBrowserType;
19
- exports.getRandomOxylabsLocale = _mod_hjsucp.getRandomLocale;
20
- exports.getRandomOxylabsGeoLocation = _mod_hjsucp.getRandomGeoLocation;;
21
- const _mod_775tfq = require('./addon/decodo/index.cjs');
22
- exports.Decodo = _mod_775tfq.Decodo;;
23
- const _mod_hpojjz = require('./addon/decodo/options.cjs');
24
- exports.DECODO_DEVICE_TYPES = _mod_hpojjz.DECODO_DEVICE_TYPES;
25
- exports.DECODO_HEADLESS_MODES = _mod_hpojjz.DECODO_HEADLESS_MODES;
26
- exports.DECODO_COMMON_LOCALES = _mod_hpojjz.DECODO_COMMON_LOCALES;
27
- exports.DECODO_COMMON_COUNTRIES = _mod_hpojjz.DECODO_COMMON_COUNTRIES;
28
- exports.DECODO_EUROPEAN_COUNTRIES = _mod_hpojjz.DECODO_EUROPEAN_COUNTRIES;
29
- exports.DECODO_ASIAN_COUNTRIES = _mod_hpojjz.DECODO_ASIAN_COUNTRIES;
30
- exports.DECODO_US_STATES = _mod_hpojjz.DECODO_US_STATES;
31
- exports.DECODO_COMMON_CITIES = _mod_hpojjz.DECODO_COMMON_CITIES;
32
- exports.getRandomDecodoDeviceType = _mod_hpojjz.getRandomDeviceType;
33
- exports.getRandomDecodoLocale = _mod_hpojjz.getRandomLocale;
34
- exports.getRandomDecodoCountry = _mod_hpojjz.getRandomCountry;
35
- exports.getRandomDecodoCity = _mod_hpojjz.getRandomCity;
36
- exports.generateDecodoSessionId = _mod_hpojjz.generateSessionId;;
1
+ const _mod_a9kn57 = require('./crawler.cjs');
2
+ exports.Crawler = _mod_a9kn57.Crawler;;
3
+ const _mod_6ccm6s = require('./crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_6ccm6s.CrawlerOptions;;
5
+ const _mod_7naagm = require('../cache/file-cacher.cjs');
6
+ exports.FileCacher = _mod_7naagm.FileCacher;;
7
+ const _mod_22i2ua = require('../cache/url-store.cjs');
8
+ exports.UrlStore = _mod_22i2ua.UrlStore;;
9
+ const _mod_37jf5t = require('./addon/oxylabs/index.cjs');
10
+ exports.Oxylabs = _mod_37jf5t.Oxylabs;;
11
+ const _mod_u1lbrx = require('./addon/oxylabs/options.cjs');
12
+ exports.OXYLABS_BROWSER_TYPES = _mod_u1lbrx.OXYLABS_BROWSER_TYPES;
13
+ exports.OXYLABS_COMMON_LOCALES = _mod_u1lbrx.OXYLABS_COMMON_LOCALES;
14
+ exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_u1lbrx.OXYLABS_COMMON_GEO_LOCATIONS;
15
+ exports.OXYLABS_US_STATES = _mod_u1lbrx.OXYLABS_US_STATES;
16
+ exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_u1lbrx.OXYLABS_EUROPEAN_COUNTRIES;
17
+ exports.OXYLABS_ASIAN_COUNTRIES = _mod_u1lbrx.OXYLABS_ASIAN_COUNTRIES;
18
+ exports.getRandomOxylabsBrowserType = _mod_u1lbrx.getRandomBrowserType;
19
+ exports.getRandomOxylabsLocale = _mod_u1lbrx.getRandomLocale;
20
+ exports.getRandomOxylabsGeoLocation = _mod_u1lbrx.getRandomGeoLocation;;
21
+ const _mod_mozpwt = require('./addon/decodo/index.cjs');
22
+ exports.Decodo = _mod_mozpwt.Decodo;;
23
+ const _mod_g6f0a3 = require('./addon/decodo/options.cjs');
24
+ exports.DECODO_DEVICE_TYPES = _mod_g6f0a3.DECODO_DEVICE_TYPES;
25
+ exports.DECODO_HEADLESS_MODES = _mod_g6f0a3.DECODO_HEADLESS_MODES;
26
+ exports.DECODO_COMMON_LOCALES = _mod_g6f0a3.DECODO_COMMON_LOCALES;
27
+ exports.DECODO_COMMON_COUNTRIES = _mod_g6f0a3.DECODO_COMMON_COUNTRIES;
28
+ exports.DECODO_EUROPEAN_COUNTRIES = _mod_g6f0a3.DECODO_EUROPEAN_COUNTRIES;
29
+ exports.DECODO_ASIAN_COUNTRIES = _mod_g6f0a3.DECODO_ASIAN_COUNTRIES;
30
+ exports.DECODO_US_STATES = _mod_g6f0a3.DECODO_US_STATES;
31
+ exports.DECODO_COMMON_CITIES = _mod_g6f0a3.DECODO_COMMON_CITIES;
32
+ exports.getRandomDecodoDeviceType = _mod_g6f0a3.getRandomDeviceType;
33
+ exports.getRandomDecodoLocale = _mod_g6f0a3.getRandomLocale;
34
+ exports.getRandomDecodoCountry = _mod_g6f0a3.getRandomCountry;
35
+ exports.getRandomDecodoCity = _mod_g6f0a3.getRandomCity;
36
+ exports.generateDecodoSessionId = _mod_g6f0a3.generateSessionId;;
@@ -1,8 +1,8 @@
1
1
  const { SocksProxyAgent: RezoSocksProxy } = require("socks-proxy-agent");
2
2
  const { HttpsProxyAgent: RezoHttpsSocks } = require("https-proxy-agent");
3
3
  const { HttpProxyAgent: RezoHttpSocks } = require("http-proxy-agent");
4
- const _mod_6xqrgv = require('./manager.cjs');
5
- exports.ProxyManager = _mod_6xqrgv.ProxyManager;;
4
+ const _mod_448ob0 = require('./manager.cjs');
5
+ exports.ProxyManager = _mod_448ob0.ProxyManager;;
6
6
  function createOptions(uri, opts) {
7
7
  if (uri instanceof URL || typeof uri === "string") {
8
8
  return {