rezo 1.0.19 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/adapters/curl.cjs +39 -34
  2. package/dist/adapters/curl.js +39 -34
  3. package/dist/adapters/entries/curl.d.ts +19 -17
  4. package/dist/adapters/entries/fetch.d.ts +19 -17
  5. package/dist/adapters/entries/http.d.ts +19 -17
  6. package/dist/adapters/entries/http2.d.ts +19 -17
  7. package/dist/adapters/entries/react-native.d.ts +19 -17
  8. package/dist/adapters/entries/xhr.d.ts +19 -17
  9. package/dist/adapters/fetch.cjs +42 -41
  10. package/dist/adapters/fetch.js +42 -41
  11. package/dist/adapters/http.cjs +65 -46
  12. package/dist/adapters/http.js +65 -46
  13. package/dist/adapters/http2.cjs +41 -36
  14. package/dist/adapters/http2.js +41 -36
  15. package/dist/adapters/index.cjs +6 -6
  16. package/dist/adapters/react-native.cjs +41 -27
  17. package/dist/adapters/react-native.js +41 -27
  18. package/dist/adapters/xhr.cjs +43 -38
  19. package/dist/adapters/xhr.js +43 -38
  20. package/dist/cache/index.cjs +13 -13
  21. package/dist/crawler.d.ts +19 -17
  22. package/dist/entries/crawler.cjs +5 -5
  23. package/dist/index.cjs +24 -24
  24. package/dist/index.d.ts +19 -17
  25. package/dist/platform/browser.d.ts +19 -17
  26. package/dist/platform/bun.d.ts +19 -17
  27. package/dist/platform/deno.d.ts +19 -17
  28. package/dist/platform/node.d.ts +19 -17
  29. package/dist/platform/react-native.d.ts +19 -17
  30. package/dist/platform/worker.d.ts +19 -17
  31. package/dist/plugin/index.cjs +36 -36
  32. package/dist/proxy/index.cjs +2 -2
  33. package/dist/queue/index.cjs +8 -8
  34. package/dist/utils/http-config.cjs +5 -3
  35. package/dist/utils/http-config.js +5 -3
  36. package/dist/utils/timing.cjs +90 -0
  37. package/dist/utils/timing.js +78 -0
  38. package/package.json +1 -1
@@ -16,6 +16,30 @@ const Environment = {
16
16
  hasFormData: typeof FormData !== "undefined",
17
17
  hasBlob: typeof Blob !== "undefined"
18
18
  };
19
+ function updateTiming(config, timing, bodySize) {
20
+ const now = performance.now();
21
+ config.timing.domainLookupStart = config.timing.startTime;
22
+ config.timing.domainLookupEnd = config.timing.startTime;
23
+ config.timing.connectStart = config.timing.startTime;
24
+ config.timing.secureConnectionStart = 0;
25
+ config.timing.connectEnd = config.timing.startTime;
26
+ config.timing.requestStart = config.timing.startTime;
27
+ config.timing.responseStart = timing.firstByteTime || config.timing.startTime;
28
+ config.timing.responseEnd = now;
29
+ config.transfer.bodySize = bodySize;
30
+ config.transfer.responseSize = bodySize;
31
+ }
32
+ function getTimingDurations(config) {
33
+ const t = config.timing;
34
+ return {
35
+ total: t.responseEnd - t.startTime,
36
+ dns: t.domainLookupEnd - t.domainLookupStart,
37
+ tcp: t.secureConnectionStart > 0 ? t.secureConnectionStart - t.connectStart : t.connectEnd - t.connectStart,
38
+ tls: t.secureConnectionStart > 0 ? t.connectEnd - t.secureConnectionStart : undefined,
39
+ firstByte: t.responseStart - t.startTime,
40
+ download: t.responseEnd - t.responseStart
41
+ };
42
+ }
19
43
  const responseCacheInstances = new Map;
20
44
  function getCacheConfigKey(option) {
21
45
  if (option === true)
@@ -258,10 +282,11 @@ async function executeXHRRequest(fetchOptions, config, options, perform, streamR
258
282
  const maxRetries = config?.retry?.maxRetries || 0;
259
283
  const incrementDelay = config?.retry?.incrementDelay || false;
260
284
  const statusCodes = config?.retry?.statusCodes;
285
+ const startTime = performance.now();
261
286
  const timing = {
262
- startTime: performance.now(),
263
- startTimestamp: Date.now()
287
+ startTime
264
288
  };
289
+ config.timing.startTime = startTime;
265
290
  const ABSOLUTE_MAX_ATTEMPTS = 50;
266
291
  let totalAttempts = 0;
267
292
  config.setSignal();
@@ -326,7 +351,6 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
326
351
  config.isSecure = isSecure;
327
352
  config.finalUrl = url;
328
353
  config.network.protocol = isSecure ? "https" : "http";
329
- config.timing.startTimestamp = timing.startTimestamp;
330
354
  const xhr = new XMLHttpRequest;
331
355
  xhr.open(fetchOptions.method.toUpperCase(), url, true);
332
356
  const headers = toXHRHeaders(fetchOptions.headers);
@@ -370,9 +394,9 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
370
394
  });
371
395
  }
372
396
  xhr.onprogress = (event) => {
373
- if (!config.timing.ttfbMs) {
397
+ if (!timing.firstByteTime) {
374
398
  timing.firstByteTime = performance.now();
375
- config.timing.ttfbMs = timing.firstByteTime - timing.startTime;
399
+ config.timing.responseStart = timing.firstByteTime;
376
400
  }
377
401
  if (eventEmitter) {
378
402
  const progressEvent = {
@@ -404,13 +428,10 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
404
428
  };
405
429
  }
406
430
  xhr.onload = () => {
407
- if (!config.timing.ttfbMs) {
431
+ if (!timing.firstByteTime) {
408
432
  timing.firstByteTime = performance.now();
409
- config.timing.ttfbMs = timing.firstByteTime - timing.startTime;
433
+ config.timing.responseStart = timing.firstByteTime;
410
434
  }
411
- config.timing.endTimestamp = Date.now();
412
- config.timing.durationMs = performance.now() - timing.startTime;
413
- config.timing.transferMs = timing.firstByteTime ? performance.now() - timing.firstByteTime : config.timing.durationMs;
414
435
  const status = xhr.status;
415
436
  const statusText = xhr.statusText;
416
437
  const responseHeaders = parseXHRHeaders(xhr);
@@ -427,8 +448,8 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
427
448
  contentLength: contentLength ? parseInt(contentLength, 10) : undefined,
428
449
  cookies: cookies.array,
429
450
  timing: {
430
- firstByte: config.timing.ttfbMs,
431
- total: performance.now() - timing.startTime
451
+ firstByte: config.timing.responseStart - config.timing.startTime,
452
+ total: performance.now() - config.timing.startTime
432
453
  }
433
454
  };
434
455
  eventEmitter.emit("headers", headersEvent);
@@ -472,8 +493,7 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
472
493
  responseData = text;
473
494
  }
474
495
  }
475
- config.transfer.bodySize = bodySize;
476
- config.transfer.responseSize = bodySize;
496
+ updateTiming(config, timing, bodySize);
477
497
  if (status >= 400) {
478
498
  const error = builErrorFromResponse(`HTTP Error ${status}: ${statusText}`, {
479
499
  status,
@@ -509,14 +529,7 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
509
529
  finalUrl: xhr.responseURL || url,
510
530
  cookies,
511
531
  urls: buildUrlTree(config, xhr.responseURL || url),
512
- timing: {
513
- total: config.timing.durationMs || 0,
514
- dns: config.timing.dnsMs,
515
- tcp: config.timing.tcpMs,
516
- tls: config.timing.tlsMs,
517
- firstByte: config.timing.ttfbMs,
518
- download: config.timing.transferMs
519
- },
532
+ timing: getTimingDurations(config),
520
533
  config: sanitizeConfig(config)
521
534
  };
522
535
  streamResult.emit("finish", streamFinishEvent);
@@ -537,14 +550,10 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
537
550
  fileName: config.fileName || "",
538
551
  fileSize: bodySize,
539
552
  timing: {
540
- total: config.timing.durationMs || 0,
541
- dns: config.timing.dnsMs,
542
- tcp: config.timing.tcpMs,
543
- tls: config.timing.tlsMs,
544
- firstByte: config.timing.ttfbMs,
545
- download: config.timing.transferMs || 0
553
+ ...getTimingDurations(config),
554
+ download: getTimingDurations(config).download || 0
546
555
  },
547
- averageSpeed: config.timing.transferMs ? bodySize / config.timing.transferMs * 1000 : 0,
556
+ averageSpeed: getTimingDurations(config).download ? bodySize / getTimingDurations(config).download * 1000 : 0,
548
557
  config: sanitizeConfig(config)
549
558
  };
550
559
  downloadResult.emit("finish", downloadFinishEvent);
@@ -566,16 +575,12 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
566
575
  urls: buildUrlTree(config, xhr.responseURL || url),
567
576
  uploadSize: config.transfer.requestSize || 0,
568
577
  timing: {
569
- total: config.timing.durationMs || 0,
570
- dns: config.timing.dnsMs,
571
- tcp: config.timing.tcpMs,
572
- tls: config.timing.tlsMs,
573
- upload: config.timing.transferMs || 0,
574
- waiting: config.timing.ttfbMs || 0,
575
- download: config.timing.transferMs
578
+ ...getTimingDurations(config),
579
+ upload: getTimingDurations(config).firstByte || 0,
580
+ waiting: getTimingDurations(config).download > 0 && getTimingDurations(config).firstByte > 0 ? getTimingDurations(config).download - getTimingDurations(config).firstByte : 0
576
581
  },
577
- averageUploadSpeed: config.timing.transferMs ? (config.transfer.requestSize || 0) / config.timing.transferMs * 1000 : 0,
578
- averageDownloadSpeed: config.timing.transferMs ? bodySize / config.timing.transferMs * 1000 : 0,
582
+ averageUploadSpeed: getTimingDurations(config).firstByte && config.transfer.requestSize ? config.transfer.requestSize / getTimingDurations(config).firstByte * 1000 : 0,
583
+ averageDownloadSpeed: getTimingDurations(config).download ? bodySize / getTimingDurations(config).download * 1000 : 0,
579
584
  config: sanitizeConfig(config)
580
585
  };
581
586
  uploadResult.emit("finish", uploadFinishEvent);
@@ -16,6 +16,30 @@ const Environment = {
16
16
  hasFormData: typeof FormData !== "undefined",
17
17
  hasBlob: typeof Blob !== "undefined"
18
18
  };
19
+ function updateTiming(config, timing, bodySize) {
20
+ const now = performance.now();
21
+ config.timing.domainLookupStart = config.timing.startTime;
22
+ config.timing.domainLookupEnd = config.timing.startTime;
23
+ config.timing.connectStart = config.timing.startTime;
24
+ config.timing.secureConnectionStart = 0;
25
+ config.timing.connectEnd = config.timing.startTime;
26
+ config.timing.requestStart = config.timing.startTime;
27
+ config.timing.responseStart = timing.firstByteTime || config.timing.startTime;
28
+ config.timing.responseEnd = now;
29
+ config.transfer.bodySize = bodySize;
30
+ config.transfer.responseSize = bodySize;
31
+ }
32
+ function getTimingDurations(config) {
33
+ const t = config.timing;
34
+ return {
35
+ total: t.responseEnd - t.startTime,
36
+ dns: t.domainLookupEnd - t.domainLookupStart,
37
+ tcp: t.secureConnectionStart > 0 ? t.secureConnectionStart - t.connectStart : t.connectEnd - t.connectStart,
38
+ tls: t.secureConnectionStart > 0 ? t.connectEnd - t.secureConnectionStart : undefined,
39
+ firstByte: t.responseStart - t.startTime,
40
+ download: t.responseEnd - t.responseStart
41
+ };
42
+ }
19
43
  const responseCacheInstances = new Map;
20
44
  function getCacheConfigKey(option) {
21
45
  if (option === true)
@@ -258,10 +282,11 @@ async function executeXHRRequest(fetchOptions, config, options, perform, streamR
258
282
  const maxRetries = config?.retry?.maxRetries || 0;
259
283
  const incrementDelay = config?.retry?.incrementDelay || false;
260
284
  const statusCodes = config?.retry?.statusCodes;
285
+ const startTime = performance.now();
261
286
  const timing = {
262
- startTime: performance.now(),
263
- startTimestamp: Date.now()
287
+ startTime
264
288
  };
289
+ config.timing.startTime = startTime;
265
290
  const ABSOLUTE_MAX_ATTEMPTS = 50;
266
291
  let totalAttempts = 0;
267
292
  config.setSignal();
@@ -326,7 +351,6 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
326
351
  config.isSecure = isSecure;
327
352
  config.finalUrl = url;
328
353
  config.network.protocol = isSecure ? "https" : "http";
329
- config.timing.startTimestamp = timing.startTimestamp;
330
354
  const xhr = new XMLHttpRequest;
331
355
  xhr.open(fetchOptions.method.toUpperCase(), url, true);
332
356
  const headers = toXHRHeaders(fetchOptions.headers);
@@ -370,9 +394,9 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
370
394
  });
371
395
  }
372
396
  xhr.onprogress = (event) => {
373
- if (!config.timing.ttfbMs) {
397
+ if (!timing.firstByteTime) {
374
398
  timing.firstByteTime = performance.now();
375
- config.timing.ttfbMs = timing.firstByteTime - timing.startTime;
399
+ config.timing.responseStart = timing.firstByteTime;
376
400
  }
377
401
  if (eventEmitter) {
378
402
  const progressEvent = {
@@ -404,13 +428,10 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
404
428
  };
405
429
  }
406
430
  xhr.onload = () => {
407
- if (!config.timing.ttfbMs) {
431
+ if (!timing.firstByteTime) {
408
432
  timing.firstByteTime = performance.now();
409
- config.timing.ttfbMs = timing.firstByteTime - timing.startTime;
433
+ config.timing.responseStart = timing.firstByteTime;
410
434
  }
411
- config.timing.endTimestamp = Date.now();
412
- config.timing.durationMs = performance.now() - timing.startTime;
413
- config.timing.transferMs = timing.firstByteTime ? performance.now() - timing.firstByteTime : config.timing.durationMs;
414
435
  const status = xhr.status;
415
436
  const statusText = xhr.statusText;
416
437
  const responseHeaders = parseXHRHeaders(xhr);
@@ -427,8 +448,8 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
427
448
  contentLength: contentLength ? parseInt(contentLength, 10) : undefined,
428
449
  cookies: cookies.array,
429
450
  timing: {
430
- firstByte: config.timing.ttfbMs,
431
- total: performance.now() - timing.startTime
451
+ firstByte: config.timing.responseStart - config.timing.startTime,
452
+ total: performance.now() - config.timing.startTime
432
453
  }
433
454
  };
434
455
  eventEmitter.emit("headers", headersEvent);
@@ -472,8 +493,7 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
472
493
  responseData = text;
473
494
  }
474
495
  }
475
- config.transfer.bodySize = bodySize;
476
- config.transfer.responseSize = bodySize;
496
+ updateTiming(config, timing, bodySize);
477
497
  if (status >= 400) {
478
498
  const error = builErrorFromResponse(`HTTP Error ${status}: ${statusText}`, {
479
499
  status,
@@ -509,14 +529,7 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
509
529
  finalUrl: xhr.responseURL || url,
510
530
  cookies,
511
531
  urls: buildUrlTree(config, xhr.responseURL || url),
512
- timing: {
513
- total: config.timing.durationMs || 0,
514
- dns: config.timing.dnsMs,
515
- tcp: config.timing.tcpMs,
516
- tls: config.timing.tlsMs,
517
- firstByte: config.timing.ttfbMs,
518
- download: config.timing.transferMs
519
- },
532
+ timing: getTimingDurations(config),
520
533
  config: sanitizeConfig(config)
521
534
  };
522
535
  streamResult.emit("finish", streamFinishEvent);
@@ -537,14 +550,10 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
537
550
  fileName: config.fileName || "",
538
551
  fileSize: bodySize,
539
552
  timing: {
540
- total: config.timing.durationMs || 0,
541
- dns: config.timing.dnsMs,
542
- tcp: config.timing.tcpMs,
543
- tls: config.timing.tlsMs,
544
- firstByte: config.timing.ttfbMs,
545
- download: config.timing.transferMs || 0
553
+ ...getTimingDurations(config),
554
+ download: getTimingDurations(config).download || 0
546
555
  },
547
- averageSpeed: config.timing.transferMs ? bodySize / config.timing.transferMs * 1000 : 0,
556
+ averageSpeed: getTimingDurations(config).download ? bodySize / getTimingDurations(config).download * 1000 : 0,
548
557
  config: sanitizeConfig(config)
549
558
  };
550
559
  downloadResult.emit("finish", downloadFinishEvent);
@@ -566,16 +575,12 @@ function executeSingleXHRRequest(config, fetchOptions, timing, streamResult, dow
566
575
  urls: buildUrlTree(config, xhr.responseURL || url),
567
576
  uploadSize: config.transfer.requestSize || 0,
568
577
  timing: {
569
- total: config.timing.durationMs || 0,
570
- dns: config.timing.dnsMs,
571
- tcp: config.timing.tcpMs,
572
- tls: config.timing.tlsMs,
573
- upload: config.timing.transferMs || 0,
574
- waiting: config.timing.ttfbMs || 0,
575
- download: config.timing.transferMs
578
+ ...getTimingDurations(config),
579
+ upload: getTimingDurations(config).firstByte || 0,
580
+ waiting: getTimingDurations(config).download > 0 && getTimingDurations(config).firstByte > 0 ? getTimingDurations(config).download - getTimingDurations(config).firstByte : 0
576
581
  },
577
- averageUploadSpeed: config.timing.transferMs ? (config.transfer.requestSize || 0) / config.timing.transferMs * 1000 : 0,
578
- averageDownloadSpeed: config.timing.transferMs ? bodySize / config.timing.transferMs * 1000 : 0,
582
+ averageUploadSpeed: getTimingDurations(config).firstByte && config.transfer.requestSize ? config.transfer.requestSize / getTimingDurations(config).firstByte * 1000 : 0,
583
+ averageDownloadSpeed: getTimingDurations(config).download ? bodySize / getTimingDurations(config).download * 1000 : 0,
579
584
  config: sanitizeConfig(config)
580
585
  };
581
586
  uploadResult.emit("finish", uploadFinishEvent);
@@ -1,13 +1,13 @@
1
- const _mod_u4xci6 = require('./lru-cache.cjs');
2
- exports.LRUCache = _mod_u4xci6.LRUCache;;
3
- const _mod_ssvr55 = require('./dns-cache.cjs');
4
- exports.DNSCache = _mod_ssvr55.DNSCache;
5
- exports.getGlobalDNSCache = _mod_ssvr55.getGlobalDNSCache;
6
- exports.resetGlobalDNSCache = _mod_ssvr55.resetGlobalDNSCache;;
7
- const _mod_j1uyaq = require('./response-cache.cjs');
8
- exports.ResponseCache = _mod_j1uyaq.ResponseCache;
9
- exports.normalizeResponseCacheConfig = _mod_j1uyaq.normalizeResponseCacheConfig;;
10
- const _mod_elmslk = require('./file-cacher.cjs');
11
- exports.FileCacher = _mod_elmslk.FileCacher;;
12
- const _mod_2oycgy = require('./url-store.cjs');
13
- exports.UrlStore = _mod_2oycgy.UrlStore;;
1
+ const _mod_pcungp = require('./lru-cache.cjs');
2
+ exports.LRUCache = _mod_pcungp.LRUCache;;
3
+ const _mod_6vuqjm = require('./dns-cache.cjs');
4
+ exports.DNSCache = _mod_6vuqjm.DNSCache;
5
+ exports.getGlobalDNSCache = _mod_6vuqjm.getGlobalDNSCache;
6
+ exports.resetGlobalDNSCache = _mod_6vuqjm.resetGlobalDNSCache;;
7
+ const _mod_cklgi1 = require('./response-cache.cjs');
8
+ exports.ResponseCache = _mod_cklgi1.ResponseCache;
9
+ exports.normalizeResponseCacheConfig = _mod_cklgi1.normalizeResponseCacheConfig;;
10
+ const _mod_wlgf05 = require('./file-cacher.cjs');
11
+ exports.FileCacher = _mod_wlgf05.FileCacher;;
12
+ const _mod_ih62yw = require('./url-store.cjs');
13
+ exports.UrlStore = _mod_ih62yw.UrlStore;;
package/dist/crawler.d.ts CHANGED
@@ -2029,24 +2029,26 @@ export interface RezoConfig {
2029
2029
  * - removeAllCookiesSync(): Clear all cookies
2030
2030
  */
2031
2031
  cookieJar: RezoCookieJar;
2032
- /** @description Comprehensive timing information */
2032
+ /** @description Comprehensive timing information (matches PerformanceResourceTiming API) */
2033
2033
  timing: {
2034
- /** @description Request start timestamp (absolute performance.now() value) */
2035
- startTimestamp: number;
2036
- /** @description Request end timestamp (absolute performance.now() value) */
2037
- endTimestamp: number;
2038
- /** @description DNS lookup duration in milliseconds */
2039
- dnsMs?: number;
2040
- /** @description TCP connection duration in milliseconds */
2041
- tcpMs?: number;
2042
- /** @description TLS handshake duration in milliseconds */
2043
- tlsMs?: number;
2044
- /** @description Time to first byte in milliseconds (from start to first response byte) */
2045
- ttfbMs?: number;
2046
- /** @description Content transfer duration in milliseconds */
2047
- transferMs?: number;
2048
- /** @description Total request duration in milliseconds (endTimestamp - startTimestamp) */
2049
- durationMs: number;
2034
+ /** @description Request start timestamp (performance.now() value when request began) */
2035
+ startTime: number;
2036
+ /** @description Timestamp when DNS lookup started */
2037
+ domainLookupStart: number;
2038
+ /** @description Timestamp when DNS lookup ended */
2039
+ domainLookupEnd: number;
2040
+ /** @description Timestamp when connection started */
2041
+ connectStart: number;
2042
+ /** @description Timestamp when TLS handshake started (0 for HTTP) */
2043
+ secureConnectionStart: number;
2044
+ /** @description Timestamp when connection completed */
2045
+ connectEnd: number;
2046
+ /** @description Timestamp when request was sent */
2047
+ requestStart: number;
2048
+ /** @description Timestamp when first byte of response received */
2049
+ responseStart: number;
2050
+ /** @description Timestamp when response completed */
2051
+ responseEnd: number;
2050
2052
  };
2051
2053
  /** @description Network connection information */
2052
2054
  network: {
@@ -1,5 +1,5 @@
1
- const _mod_kiri7j = require('../plugin/crawler.cjs');
2
- exports.Crawler = _mod_kiri7j.Crawler;;
3
- const _mod_ebqdnd = require('../plugin/crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_ebqdnd.CrawlerOptions;
5
- exports.Domain = _mod_ebqdnd.Domain;;
1
+ const _mod_3tqnb0 = require('../plugin/crawler.cjs');
2
+ exports.Crawler = _mod_3tqnb0.Crawler;;
3
+ const _mod_a15878 = require('../plugin/crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_a15878.CrawlerOptions;
5
+ exports.Domain = _mod_a15878.Domain;;
package/dist/index.cjs CHANGED
@@ -1,27 +1,27 @@
1
- const _mod_yjmdny = require('./core/rezo.cjs');
2
- exports.Rezo = _mod_yjmdny.Rezo;
3
- exports.createRezoInstance = _mod_yjmdny.createRezoInstance;
4
- exports.createDefaultInstance = _mod_yjmdny.createDefaultInstance;;
5
- const _mod_pedo7e = require('./errors/rezo-error.cjs');
6
- exports.RezoError = _mod_pedo7e.RezoError;
7
- exports.RezoErrorCode = _mod_pedo7e.RezoErrorCode;;
8
- const _mod_57z5dh = require('./utils/headers.cjs');
9
- exports.RezoHeaders = _mod_57z5dh.RezoHeaders;;
10
- const _mod_0b2cgv = require('./utils/form-data.cjs');
11
- exports.RezoFormData = _mod_0b2cgv.RezoFormData;;
12
- const _mod_9plnvx = require('./utils/cookies.cjs');
13
- exports.RezoCookieJar = _mod_9plnvx.RezoCookieJar;
14
- exports.Cookie = _mod_9plnvx.Cookie;;
15
- const _mod_snalmm = require('./core/hooks.cjs');
16
- exports.createDefaultHooks = _mod_snalmm.createDefaultHooks;
17
- exports.mergeHooks = _mod_snalmm.mergeHooks;;
18
- const _mod_ykdb7e = require('./proxy/manager.cjs');
19
- exports.ProxyManager = _mod_ykdb7e.ProxyManager;;
20
- const _mod_tkp5ey = require('./queue/index.cjs');
21
- exports.RezoQueue = _mod_tkp5ey.RezoQueue;
22
- exports.HttpQueue = _mod_tkp5ey.HttpQueue;
23
- exports.Priority = _mod_tkp5ey.Priority;
24
- exports.HttpMethodPriority = _mod_tkp5ey.HttpMethodPriority;;
1
+ const _mod_duhs83 = require('./core/rezo.cjs');
2
+ exports.Rezo = _mod_duhs83.Rezo;
3
+ exports.createRezoInstance = _mod_duhs83.createRezoInstance;
4
+ exports.createDefaultInstance = _mod_duhs83.createDefaultInstance;;
5
+ const _mod_8z3sz9 = require('./errors/rezo-error.cjs');
6
+ exports.RezoError = _mod_8z3sz9.RezoError;
7
+ exports.RezoErrorCode = _mod_8z3sz9.RezoErrorCode;;
8
+ const _mod_o75xf9 = require('./utils/headers.cjs');
9
+ exports.RezoHeaders = _mod_o75xf9.RezoHeaders;;
10
+ const _mod_igc0kq = require('./utils/form-data.cjs');
11
+ exports.RezoFormData = _mod_igc0kq.RezoFormData;;
12
+ const _mod_kuocqq = require('./utils/cookies.cjs');
13
+ exports.RezoCookieJar = _mod_kuocqq.RezoCookieJar;
14
+ exports.Cookie = _mod_kuocqq.Cookie;;
15
+ const _mod_k7ozxh = require('./core/hooks.cjs');
16
+ exports.createDefaultHooks = _mod_k7ozxh.createDefaultHooks;
17
+ exports.mergeHooks = _mod_k7ozxh.mergeHooks;;
18
+ const _mod_5af6mv = require('./proxy/manager.cjs');
19
+ exports.ProxyManager = _mod_5af6mv.ProxyManager;;
20
+ const _mod_ahusy5 = require('./queue/index.cjs');
21
+ exports.RezoQueue = _mod_ahusy5.RezoQueue;
22
+ exports.HttpQueue = _mod_ahusy5.HttpQueue;
23
+ exports.Priority = _mod_ahusy5.Priority;
24
+ exports.HttpMethodPriority = _mod_ahusy5.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
@@ -1815,24 +1815,26 @@ export interface RezoConfig {
1815
1815
  * - removeAllCookiesSync(): Clear all cookies
1816
1816
  */
1817
1817
  cookieJar: RezoCookieJar;
1818
- /** @description Comprehensive timing information */
1818
+ /** @description Comprehensive timing information (matches PerformanceResourceTiming API) */
1819
1819
  timing: {
1820
- /** @description Request start timestamp (absolute performance.now() value) */
1821
- startTimestamp: number;
1822
- /** @description Request end timestamp (absolute performance.now() value) */
1823
- endTimestamp: number;
1824
- /** @description DNS lookup duration in milliseconds */
1825
- dnsMs?: number;
1826
- /** @description TCP connection duration in milliseconds */
1827
- tcpMs?: number;
1828
- /** @description TLS handshake duration in milliseconds */
1829
- tlsMs?: number;
1830
- /** @description Time to first byte in milliseconds (from start to first response byte) */
1831
- ttfbMs?: number;
1832
- /** @description Content transfer duration in milliseconds */
1833
- transferMs?: number;
1834
- /** @description Total request duration in milliseconds (endTimestamp - startTimestamp) */
1835
- durationMs: number;
1820
+ /** @description Request start timestamp (performance.now() value when request began) */
1821
+ startTime: number;
1822
+ /** @description Timestamp when DNS lookup started */
1823
+ domainLookupStart: number;
1824
+ /** @description Timestamp when DNS lookup ended */
1825
+ domainLookupEnd: number;
1826
+ /** @description Timestamp when connection started */
1827
+ connectStart: number;
1828
+ /** @description Timestamp when TLS handshake started (0 for HTTP) */
1829
+ secureConnectionStart: number;
1830
+ /** @description Timestamp when connection completed */
1831
+ connectEnd: number;
1832
+ /** @description Timestamp when request was sent */
1833
+ requestStart: number;
1834
+ /** @description Timestamp when first byte of response received */
1835
+ responseStart: number;
1836
+ /** @description Timestamp when response completed */
1837
+ responseEnd: number;
1836
1838
  };
1837
1839
  /** @description Network connection information */
1838
1840
  network: {
@@ -1815,24 +1815,26 @@ export interface RezoConfig {
1815
1815
  * - removeAllCookiesSync(): Clear all cookies
1816
1816
  */
1817
1817
  cookieJar: RezoCookieJar;
1818
- /** @description Comprehensive timing information */
1818
+ /** @description Comprehensive timing information (matches PerformanceResourceTiming API) */
1819
1819
  timing: {
1820
- /** @description Request start timestamp (absolute performance.now() value) */
1821
- startTimestamp: number;
1822
- /** @description Request end timestamp (absolute performance.now() value) */
1823
- endTimestamp: number;
1824
- /** @description DNS lookup duration in milliseconds */
1825
- dnsMs?: number;
1826
- /** @description TCP connection duration in milliseconds */
1827
- tcpMs?: number;
1828
- /** @description TLS handshake duration in milliseconds */
1829
- tlsMs?: number;
1830
- /** @description Time to first byte in milliseconds (from start to first response byte) */
1831
- ttfbMs?: number;
1832
- /** @description Content transfer duration in milliseconds */
1833
- transferMs?: number;
1834
- /** @description Total request duration in milliseconds (endTimestamp - startTimestamp) */
1835
- durationMs: number;
1820
+ /** @description Request start timestamp (performance.now() value when request began) */
1821
+ startTime: number;
1822
+ /** @description Timestamp when DNS lookup started */
1823
+ domainLookupStart: number;
1824
+ /** @description Timestamp when DNS lookup ended */
1825
+ domainLookupEnd: number;
1826
+ /** @description Timestamp when connection started */
1827
+ connectStart: number;
1828
+ /** @description Timestamp when TLS handshake started (0 for HTTP) */
1829
+ secureConnectionStart: number;
1830
+ /** @description Timestamp when connection completed */
1831
+ connectEnd: number;
1832
+ /** @description Timestamp when request was sent */
1833
+ requestStart: number;
1834
+ /** @description Timestamp when first byte of response received */
1835
+ responseStart: number;
1836
+ /** @description Timestamp when response completed */
1837
+ responseEnd: number;
1836
1838
  };
1837
1839
  /** @description Network connection information */
1838
1840
  network: {
@@ -1815,24 +1815,26 @@ export interface RezoConfig {
1815
1815
  * - removeAllCookiesSync(): Clear all cookies
1816
1816
  */
1817
1817
  cookieJar: RezoCookieJar;
1818
- /** @description Comprehensive timing information */
1818
+ /** @description Comprehensive timing information (matches PerformanceResourceTiming API) */
1819
1819
  timing: {
1820
- /** @description Request start timestamp (absolute performance.now() value) */
1821
- startTimestamp: number;
1822
- /** @description Request end timestamp (absolute performance.now() value) */
1823
- endTimestamp: number;
1824
- /** @description DNS lookup duration in milliseconds */
1825
- dnsMs?: number;
1826
- /** @description TCP connection duration in milliseconds */
1827
- tcpMs?: number;
1828
- /** @description TLS handshake duration in milliseconds */
1829
- tlsMs?: number;
1830
- /** @description Time to first byte in milliseconds (from start to first response byte) */
1831
- ttfbMs?: number;
1832
- /** @description Content transfer duration in milliseconds */
1833
- transferMs?: number;
1834
- /** @description Total request duration in milliseconds (endTimestamp - startTimestamp) */
1835
- durationMs: number;
1820
+ /** @description Request start timestamp (performance.now() value when request began) */
1821
+ startTime: number;
1822
+ /** @description Timestamp when DNS lookup started */
1823
+ domainLookupStart: number;
1824
+ /** @description Timestamp when DNS lookup ended */
1825
+ domainLookupEnd: number;
1826
+ /** @description Timestamp when connection started */
1827
+ connectStart: number;
1828
+ /** @description Timestamp when TLS handshake started (0 for HTTP) */
1829
+ secureConnectionStart: number;
1830
+ /** @description Timestamp when connection completed */
1831
+ connectEnd: number;
1832
+ /** @description Timestamp when request was sent */
1833
+ requestStart: number;
1834
+ /** @description Timestamp when first byte of response received */
1835
+ responseStart: number;
1836
+ /** @description Timestamp when response completed */
1837
+ responseEnd: number;
1836
1838
  };
1837
1839
  /** @description Network connection information */
1838
1840
  network: {
@@ -1815,24 +1815,26 @@ export interface RezoConfig {
1815
1815
  * - removeAllCookiesSync(): Clear all cookies
1816
1816
  */
1817
1817
  cookieJar: RezoCookieJar;
1818
- /** @description Comprehensive timing information */
1818
+ /** @description Comprehensive timing information (matches PerformanceResourceTiming API) */
1819
1819
  timing: {
1820
- /** @description Request start timestamp (absolute performance.now() value) */
1821
- startTimestamp: number;
1822
- /** @description Request end timestamp (absolute performance.now() value) */
1823
- endTimestamp: number;
1824
- /** @description DNS lookup duration in milliseconds */
1825
- dnsMs?: number;
1826
- /** @description TCP connection duration in milliseconds */
1827
- tcpMs?: number;
1828
- /** @description TLS handshake duration in milliseconds */
1829
- tlsMs?: number;
1830
- /** @description Time to first byte in milliseconds (from start to first response byte) */
1831
- ttfbMs?: number;
1832
- /** @description Content transfer duration in milliseconds */
1833
- transferMs?: number;
1834
- /** @description Total request duration in milliseconds (endTimestamp - startTimestamp) */
1835
- durationMs: number;
1820
+ /** @description Request start timestamp (performance.now() value when request began) */
1821
+ startTime: number;
1822
+ /** @description Timestamp when DNS lookup started */
1823
+ domainLookupStart: number;
1824
+ /** @description Timestamp when DNS lookup ended */
1825
+ domainLookupEnd: number;
1826
+ /** @description Timestamp when connection started */
1827
+ connectStart: number;
1828
+ /** @description Timestamp when TLS handshake started (0 for HTTP) */
1829
+ secureConnectionStart: number;
1830
+ /** @description Timestamp when connection completed */
1831
+ connectEnd: number;
1832
+ /** @description Timestamp when request was sent */
1833
+ requestStart: number;
1834
+ /** @description Timestamp when first byte of response received */
1835
+ responseStart: number;
1836
+ /** @description Timestamp when response completed */
1837
+ responseEnd: number;
1836
1838
  };
1837
1839
  /** @description Network connection information */
1838
1840
  network: {