rezo 1.0.25 → 1.0.26

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.
@@ -134,6 +134,10 @@ function getResponseCache(option) {
134
134
  let cache = responseCacheInstances.get(key);
135
135
  if (!cache) {
136
136
  cache = new ResponseCache(option);
137
+ const existing = responseCacheInstances.get(key);
138
+ if (existing) {
139
+ return existing;
140
+ }
137
141
  responseCacheInstances.set(key, cache);
138
142
  }
139
143
  return cache;
@@ -981,7 +985,8 @@ async function request(config, fetchOptions, requestCount, timing, _stats, respo
981
985
  config.security.validationResults = {
982
986
  certificateValid: !cert.fingerprint?.includes("error"),
983
987
  hostnameMatch: cert.subject?.CN === url.hostname,
984
- chainValid: true
988
+ chainValid: socket.authorized === true,
989
+ authorizationError: socket.authorizationError || null
985
990
  };
986
991
  if (config.hooks?.onTls && config.hooks.onTls.length > 0) {
987
992
  for (const hook of config.hooks.onTls) {
@@ -1207,7 +1212,7 @@ function buildHTTPOptions(fetchOptions, isSecure, url) {
1207
1212
  keepAliveMsecs: keepAlive ? keepAliveMsecs : undefined
1208
1213
  }) : undefined;
1209
1214
  const customAgent = url.protocol === "https:" && httpsAgent ? httpsAgent : httpAgent ? httpAgent : undefined;
1210
- const agent = parseProxy(proxy) || customAgent || secureContext;
1215
+ const agent = parseProxy(proxy, isSecure, rejectUnauthorized) || customAgent || secureContext;
1211
1216
  let lookup;
1212
1217
  if (dnsCacheOption) {
1213
1218
  if (!dnsCache) {
@@ -134,6 +134,10 @@ function getResponseCache(option) {
134
134
  let cache = responseCacheInstances.get(key);
135
135
  if (!cache) {
136
136
  cache = new ResponseCache(option);
137
+ const existing = responseCacheInstances.get(key);
138
+ if (existing) {
139
+ return existing;
140
+ }
137
141
  responseCacheInstances.set(key, cache);
138
142
  }
139
143
  return cache;
@@ -981,7 +985,8 @@ async function request(config, fetchOptions, requestCount, timing, _stats, respo
981
985
  config.security.validationResults = {
982
986
  certificateValid: !cert.fingerprint?.includes("error"),
983
987
  hostnameMatch: cert.subject?.CN === url.hostname,
984
- chainValid: true
988
+ chainValid: socket.authorized === true,
989
+ authorizationError: socket.authorizationError || null
985
990
  };
986
991
  if (config.hooks?.onTls && config.hooks.onTls.length > 0) {
987
992
  for (const hook of config.hooks.onTls) {
@@ -1207,7 +1212,7 @@ function buildHTTPOptions(fetchOptions, isSecure, url) {
1207
1212
  keepAliveMsecs: keepAlive ? keepAliveMsecs : undefined
1208
1213
  }) : undefined;
1209
1214
  const customAgent = url.protocol === "https:" && httpsAgent ? httpsAgent : httpAgent ? httpAgent : undefined;
1210
- const agent = parseProxy(proxy) || customAgent || secureContext;
1215
+ const agent = parseProxy(proxy, isSecure, rejectUnauthorized) || customAgent || secureContext;
1211
1216
  let lookup;
1212
1217
  if (dnsCacheOption) {
1213
1218
  if (!dnsCache) {
@@ -1,6 +1,6 @@
1
- const _mod_8vsbsk = require('./picker.cjs');
2
- exports.detectRuntime = _mod_8vsbsk.detectRuntime;
3
- exports.getAdapterCapabilities = _mod_8vsbsk.getAdapterCapabilities;
4
- exports.buildAdapterContext = _mod_8vsbsk.buildAdapterContext;
5
- exports.getAvailableAdapters = _mod_8vsbsk.getAvailableAdapters;
6
- exports.selectAdapter = _mod_8vsbsk.selectAdapter;;
1
+ const _mod_o7l274 = require('./picker.cjs');
2
+ exports.detectRuntime = _mod_o7l274.detectRuntime;
3
+ exports.getAdapterCapabilities = _mod_o7l274.getAdapterCapabilities;
4
+ exports.buildAdapterContext = _mod_o7l274.buildAdapterContext;
5
+ exports.getAvailableAdapters = _mod_o7l274.getAvailableAdapters;
6
+ exports.selectAdapter = _mod_o7l274.selectAdapter;;
@@ -1,13 +1,13 @@
1
- const _mod_3nlvak = require('./lru-cache.cjs');
2
- exports.LRUCache = _mod_3nlvak.LRUCache;;
3
- const _mod_jjdx5e = require('./dns-cache.cjs');
4
- exports.DNSCache = _mod_jjdx5e.DNSCache;
5
- exports.getGlobalDNSCache = _mod_jjdx5e.getGlobalDNSCache;
6
- exports.resetGlobalDNSCache = _mod_jjdx5e.resetGlobalDNSCache;;
7
- const _mod_6grfwd = require('./response-cache.cjs');
8
- exports.ResponseCache = _mod_6grfwd.ResponseCache;
9
- exports.normalizeResponseCacheConfig = _mod_6grfwd.normalizeResponseCacheConfig;;
10
- const _mod_ietsvu = require('./file-cacher.cjs');
11
- exports.FileCacher = _mod_ietsvu.FileCacher;;
12
- const _mod_o14hsh = require('./url-store.cjs');
13
- exports.UrlStore = _mod_o14hsh.UrlStore;;
1
+ const _mod_5btjkv = require('./lru-cache.cjs');
2
+ exports.LRUCache = _mod_5btjkv.LRUCache;;
3
+ const _mod_mpluoa = require('./dns-cache.cjs');
4
+ exports.DNSCache = _mod_mpluoa.DNSCache;
5
+ exports.getGlobalDNSCache = _mod_mpluoa.getGlobalDNSCache;
6
+ exports.resetGlobalDNSCache = _mod_mpluoa.resetGlobalDNSCache;;
7
+ const _mod_j0a64m = require('./response-cache.cjs');
8
+ exports.ResponseCache = _mod_j0a64m.ResponseCache;
9
+ exports.normalizeResponseCacheConfig = _mod_j0a64m.normalizeResponseCacheConfig;;
10
+ const _mod_rrkz86 = require('./file-cacher.cjs');
11
+ exports.FileCacher = _mod_rrkz86.FileCacher;;
12
+ const _mod_r38vpf = require('./url-store.cjs');
13
+ exports.UrlStore = _mod_r38vpf.UrlStore;;
@@ -1,5 +1,5 @@
1
- const _mod_n2jqd1 = require('../plugin/crawler.cjs');
2
- exports.Crawler = _mod_n2jqd1.Crawler;;
3
- const _mod_wyfomf = require('../plugin/crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_wyfomf.CrawlerOptions;
5
- exports.Domain = _mod_wyfomf.Domain;;
1
+ const _mod_i5eyqo = require('../plugin/crawler.cjs');
2
+ exports.Crawler = _mod_i5eyqo.Crawler;;
3
+ const _mod_23z5l6 = require('../plugin/crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_23z5l6.CrawlerOptions;
5
+ exports.Domain = _mod_23z5l6.Domain;;
package/dist/index.cjs CHANGED
@@ -1,27 +1,27 @@
1
- const _mod_c5wnbk = require('./core/rezo.cjs');
2
- exports.Rezo = _mod_c5wnbk.Rezo;
3
- exports.createRezoInstance = _mod_c5wnbk.createRezoInstance;
4
- exports.createDefaultInstance = _mod_c5wnbk.createDefaultInstance;;
5
- const _mod_vk9phy = require('./errors/rezo-error.cjs');
6
- exports.RezoError = _mod_vk9phy.RezoError;
7
- exports.RezoErrorCode = _mod_vk9phy.RezoErrorCode;;
8
- const _mod_smhm1d = require('./utils/headers.cjs');
9
- exports.RezoHeaders = _mod_smhm1d.RezoHeaders;;
10
- const _mod_umbtma = require('./utils/form-data.cjs');
11
- exports.RezoFormData = _mod_umbtma.RezoFormData;;
12
- const _mod_s4d2mf = require('./utils/cookies.cjs');
13
- exports.RezoCookieJar = _mod_s4d2mf.RezoCookieJar;
14
- exports.Cookie = _mod_s4d2mf.Cookie;;
15
- const _mod_lqyqqc = require('./core/hooks.cjs');
16
- exports.createDefaultHooks = _mod_lqyqqc.createDefaultHooks;
17
- exports.mergeHooks = _mod_lqyqqc.mergeHooks;;
18
- const _mod_9k2fte = require('./proxy/manager.cjs');
19
- exports.ProxyManager = _mod_9k2fte.ProxyManager;;
20
- const _mod_dw7oqs = require('./queue/index.cjs');
21
- exports.RezoQueue = _mod_dw7oqs.RezoQueue;
22
- exports.HttpQueue = _mod_dw7oqs.HttpQueue;
23
- exports.Priority = _mod_dw7oqs.Priority;
24
- exports.HttpMethodPriority = _mod_dw7oqs.HttpMethodPriority;;
1
+ const _mod_8s1u6r = require('./core/rezo.cjs');
2
+ exports.Rezo = _mod_8s1u6r.Rezo;
3
+ exports.createRezoInstance = _mod_8s1u6r.createRezoInstance;
4
+ exports.createDefaultInstance = _mod_8s1u6r.createDefaultInstance;;
5
+ const _mod_5xnerq = require('./errors/rezo-error.cjs');
6
+ exports.RezoError = _mod_5xnerq.RezoError;
7
+ exports.RezoErrorCode = _mod_5xnerq.RezoErrorCode;;
8
+ const _mod_u1yvbk = require('./utils/headers.cjs');
9
+ exports.RezoHeaders = _mod_u1yvbk.RezoHeaders;;
10
+ const _mod_74a3gc = require('./utils/form-data.cjs');
11
+ exports.RezoFormData = _mod_74a3gc.RezoFormData;;
12
+ const _mod_q9jplq = require('./utils/cookies.cjs');
13
+ exports.RezoCookieJar = _mod_q9jplq.RezoCookieJar;
14
+ exports.Cookie = _mod_q9jplq.Cookie;;
15
+ const _mod_8lz5zg = require('./core/hooks.cjs');
16
+ exports.createDefaultHooks = _mod_8lz5zg.createDefaultHooks;
17
+ exports.mergeHooks = _mod_8lz5zg.mergeHooks;;
18
+ const _mod_o4hztx = require('./proxy/manager.cjs');
19
+ exports.ProxyManager = _mod_o4hztx.ProxyManager;;
20
+ const _mod_2wo2pr = require('./queue/index.cjs');
21
+ exports.RezoQueue = _mod_2wo2pr.RezoQueue;
22
+ exports.HttpQueue = _mod_2wo2pr.HttpQueue;
23
+ exports.Priority = _mod_2wo2pr.Priority;
24
+ exports.HttpMethodPriority = _mod_2wo2pr.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;
@@ -1,36 +1,36 @@
1
- const _mod_nllk9k = require('./crawler.cjs');
2
- exports.Crawler = _mod_nllk9k.Crawler;;
3
- const _mod_qrdenz = require('./crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_qrdenz.CrawlerOptions;;
5
- const _mod_zrawfy = require('../cache/file-cacher.cjs');
6
- exports.FileCacher = _mod_zrawfy.FileCacher;;
7
- const _mod_uvh0y9 = require('../cache/url-store.cjs');
8
- exports.UrlStore = _mod_uvh0y9.UrlStore;;
9
- const _mod_cg499j = require('./addon/oxylabs/index.cjs');
10
- exports.Oxylabs = _mod_cg499j.Oxylabs;;
11
- const _mod_vqortf = require('./addon/oxylabs/options.cjs');
12
- exports.OXYLABS_BROWSER_TYPES = _mod_vqortf.OXYLABS_BROWSER_TYPES;
13
- exports.OXYLABS_COMMON_LOCALES = _mod_vqortf.OXYLABS_COMMON_LOCALES;
14
- exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_vqortf.OXYLABS_COMMON_GEO_LOCATIONS;
15
- exports.OXYLABS_US_STATES = _mod_vqortf.OXYLABS_US_STATES;
16
- exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_vqortf.OXYLABS_EUROPEAN_COUNTRIES;
17
- exports.OXYLABS_ASIAN_COUNTRIES = _mod_vqortf.OXYLABS_ASIAN_COUNTRIES;
18
- exports.getRandomOxylabsBrowserType = _mod_vqortf.getRandomBrowserType;
19
- exports.getRandomOxylabsLocale = _mod_vqortf.getRandomLocale;
20
- exports.getRandomOxylabsGeoLocation = _mod_vqortf.getRandomGeoLocation;;
21
- const _mod_tmdzgo = require('./addon/decodo/index.cjs');
22
- exports.Decodo = _mod_tmdzgo.Decodo;;
23
- const _mod_lmu5vf = require('./addon/decodo/options.cjs');
24
- exports.DECODO_DEVICE_TYPES = _mod_lmu5vf.DECODO_DEVICE_TYPES;
25
- exports.DECODO_HEADLESS_MODES = _mod_lmu5vf.DECODO_HEADLESS_MODES;
26
- exports.DECODO_COMMON_LOCALES = _mod_lmu5vf.DECODO_COMMON_LOCALES;
27
- exports.DECODO_COMMON_COUNTRIES = _mod_lmu5vf.DECODO_COMMON_COUNTRIES;
28
- exports.DECODO_EUROPEAN_COUNTRIES = _mod_lmu5vf.DECODO_EUROPEAN_COUNTRIES;
29
- exports.DECODO_ASIAN_COUNTRIES = _mod_lmu5vf.DECODO_ASIAN_COUNTRIES;
30
- exports.DECODO_US_STATES = _mod_lmu5vf.DECODO_US_STATES;
31
- exports.DECODO_COMMON_CITIES = _mod_lmu5vf.DECODO_COMMON_CITIES;
32
- exports.getRandomDecodoDeviceType = _mod_lmu5vf.getRandomDeviceType;
33
- exports.getRandomDecodoLocale = _mod_lmu5vf.getRandomLocale;
34
- exports.getRandomDecodoCountry = _mod_lmu5vf.getRandomCountry;
35
- exports.getRandomDecodoCity = _mod_lmu5vf.getRandomCity;
36
- exports.generateDecodoSessionId = _mod_lmu5vf.generateSessionId;;
1
+ const _mod_9ihf6y = require('./crawler.cjs');
2
+ exports.Crawler = _mod_9ihf6y.Crawler;;
3
+ const _mod_il96ln = require('./crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_il96ln.CrawlerOptions;;
5
+ const _mod_4jfja2 = require('../cache/file-cacher.cjs');
6
+ exports.FileCacher = _mod_4jfja2.FileCacher;;
7
+ const _mod_fjusao = require('../cache/url-store.cjs');
8
+ exports.UrlStore = _mod_fjusao.UrlStore;;
9
+ const _mod_8vdehu = require('./addon/oxylabs/index.cjs');
10
+ exports.Oxylabs = _mod_8vdehu.Oxylabs;;
11
+ const _mod_m21nvo = require('./addon/oxylabs/options.cjs');
12
+ exports.OXYLABS_BROWSER_TYPES = _mod_m21nvo.OXYLABS_BROWSER_TYPES;
13
+ exports.OXYLABS_COMMON_LOCALES = _mod_m21nvo.OXYLABS_COMMON_LOCALES;
14
+ exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_m21nvo.OXYLABS_COMMON_GEO_LOCATIONS;
15
+ exports.OXYLABS_US_STATES = _mod_m21nvo.OXYLABS_US_STATES;
16
+ exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_m21nvo.OXYLABS_EUROPEAN_COUNTRIES;
17
+ exports.OXYLABS_ASIAN_COUNTRIES = _mod_m21nvo.OXYLABS_ASIAN_COUNTRIES;
18
+ exports.getRandomOxylabsBrowserType = _mod_m21nvo.getRandomBrowserType;
19
+ exports.getRandomOxylabsLocale = _mod_m21nvo.getRandomLocale;
20
+ exports.getRandomOxylabsGeoLocation = _mod_m21nvo.getRandomGeoLocation;;
21
+ const _mod_lfchws = require('./addon/decodo/index.cjs');
22
+ exports.Decodo = _mod_lfchws.Decodo;;
23
+ const _mod_2fmvy3 = require('./addon/decodo/options.cjs');
24
+ exports.DECODO_DEVICE_TYPES = _mod_2fmvy3.DECODO_DEVICE_TYPES;
25
+ exports.DECODO_HEADLESS_MODES = _mod_2fmvy3.DECODO_HEADLESS_MODES;
26
+ exports.DECODO_COMMON_LOCALES = _mod_2fmvy3.DECODO_COMMON_LOCALES;
27
+ exports.DECODO_COMMON_COUNTRIES = _mod_2fmvy3.DECODO_COMMON_COUNTRIES;
28
+ exports.DECODO_EUROPEAN_COUNTRIES = _mod_2fmvy3.DECODO_EUROPEAN_COUNTRIES;
29
+ exports.DECODO_ASIAN_COUNTRIES = _mod_2fmvy3.DECODO_ASIAN_COUNTRIES;
30
+ exports.DECODO_US_STATES = _mod_2fmvy3.DECODO_US_STATES;
31
+ exports.DECODO_COMMON_CITIES = _mod_2fmvy3.DECODO_COMMON_CITIES;
32
+ exports.getRandomDecodoDeviceType = _mod_2fmvy3.getRandomDeviceType;
33
+ exports.getRandomDecodoLocale = _mod_2fmvy3.getRandomLocale;
34
+ exports.getRandomDecodoCountry = _mod_2fmvy3.getRandomCountry;
35
+ exports.getRandomDecodoCity = _mod_2fmvy3.getRandomCity;
36
+ exports.generateDecodoSessionId = _mod_2fmvy3.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_0qa1hk = require('./manager.cjs');
5
- exports.ProxyManager = _mod_0qa1hk.ProxyManager;;
4
+ const _mod_ocud4i = require('./manager.cjs');
5
+ exports.ProxyManager = _mod_ocud4i.ProxyManager;;
6
6
  function createOptions(uri, opts) {
7
7
  if (uri instanceof URL || typeof uri === "string") {
8
8
  return {
@@ -102,7 +102,7 @@ function rezoProxy(uri, over, opts) {
102
102
  if (over === "http") {
103
103
  return new RezoHttpSocks(config.uri, config.opts);
104
104
  }
105
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
105
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
106
106
  } else {
107
107
  const isHttp = uri.startsWith("http:");
108
108
  const isHttps = uri.startsWith("https:");
@@ -117,7 +117,7 @@ function rezoProxy(uri, over, opts) {
117
117
  }
118
118
  if (isHttps) {
119
119
  const config = createOptions(uri, over || opts);
120
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
120
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
121
121
  }
122
122
  const proxy = parseProxyString(uri);
123
123
  if (proxy) {
@@ -133,8 +133,7 @@ function rezoProxy(uri, over, opts) {
133
133
  if (over === "http") {
134
134
  return new RezoHttpSocks(config.uri, config.opts);
135
135
  }
136
- console.log(config.uri);
137
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
136
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
138
137
  }
139
138
  const config = createOptions(uri, opts);
140
139
  return new RezoSocksProxy(config.uri, config.opts);
@@ -101,7 +101,7 @@ export function rezoProxy(uri, over, opts) {
101
101
  if (over === "http") {
102
102
  return new RezoHttpSocks(config.uri, config.opts);
103
103
  }
104
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
104
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
105
105
  } else {
106
106
  const isHttp = uri.startsWith("http:");
107
107
  const isHttps = uri.startsWith("https:");
@@ -116,7 +116,7 @@ export function rezoProxy(uri, over, opts) {
116
116
  }
117
117
  if (isHttps) {
118
118
  const config = createOptions(uri, over || opts);
119
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
119
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
120
120
  }
121
121
  const proxy = parseProxyString(uri);
122
122
  if (proxy) {
@@ -132,8 +132,7 @@ export function rezoProxy(uri, over, opts) {
132
132
  if (over === "http") {
133
133
  return new RezoHttpSocks(config.uri, config.opts);
134
134
  }
135
- console.log(config.uri);
136
- return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: false });
135
+ return new RezoHttpsSocks(config.uri, { ...config.opts, rejectUnauthorized: config.opts?.rejectUnauthorized ?? false });
137
136
  }
138
137
  const config = createOptions(uri, opts);
139
138
  return new RezoSocksProxy(config.uri, config.opts);
@@ -1,8 +1,8 @@
1
- const _mod_0h7eic = require('./queue.cjs');
2
- exports.RezoQueue = _mod_0h7eic.RezoQueue;;
3
- const _mod_0yp12v = require('./http-queue.cjs');
4
- exports.HttpQueue = _mod_0yp12v.HttpQueue;
5
- exports.extractDomain = _mod_0yp12v.extractDomain;;
6
- const _mod_a7m6vx = require('./types.cjs');
7
- exports.Priority = _mod_a7m6vx.Priority;
8
- exports.HttpMethodPriority = _mod_a7m6vx.HttpMethodPriority;;
1
+ const _mod_efs8gf = require('./queue.cjs');
2
+ exports.RezoQueue = _mod_efs8gf.RezoQueue;;
3
+ const _mod_jx0qzm = require('./http-queue.cjs');
4
+ exports.HttpQueue = _mod_jx0qzm.HttpQueue;
5
+ exports.extractDomain = _mod_jx0qzm.extractDomain;;
6
+ const _mod_r67ygd = require('./types.cjs');
7
+ exports.Priority = _mod_r67ygd.Priority;
8
+ exports.HttpMethodPriority = _mod_r67ygd.HttpMethodPriority;;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rezo",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "description": "Lightning-fast, enterprise-grade HTTP client for modern JavaScript. Full HTTP/2 support, intelligent cookie management, multiple adapters (HTTP, Fetch, cURL, XHR), streaming, proxy support (HTTP/HTTPS/SOCKS), and cross-environment compatibility.",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",