rezo 1.0.59 → 1.0.60

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.
@@ -1,6 +1,6 @@
1
- const _mod_u1e5ql = require('./picker.cjs');
2
- exports.detectRuntime = _mod_u1e5ql.detectRuntime;
3
- exports.getAdapterCapabilities = _mod_u1e5ql.getAdapterCapabilities;
4
- exports.buildAdapterContext = _mod_u1e5ql.buildAdapterContext;
5
- exports.getAvailableAdapters = _mod_u1e5ql.getAvailableAdapters;
6
- exports.selectAdapter = _mod_u1e5ql.selectAdapter;;
1
+ const _mod_nokt0c = require('./picker.cjs');
2
+ exports.detectRuntime = _mod_nokt0c.detectRuntime;
3
+ exports.getAdapterCapabilities = _mod_nokt0c.getAdapterCapabilities;
4
+ exports.buildAdapterContext = _mod_nokt0c.buildAdapterContext;
5
+ exports.getAvailableAdapters = _mod_nokt0c.getAvailableAdapters;
6
+ exports.selectAdapter = _mod_nokt0c.selectAdapter;;
@@ -1,9 +1,9 @@
1
- const _mod_fjdlws = require('./lru-cache.cjs');
2
- exports.LRUCache = _mod_fjdlws.LRUCache;;
3
- const _mod_oob4e4 = require('./dns-cache.cjs');
4
- exports.DNSCache = _mod_oob4e4.DNSCache;
5
- exports.getGlobalDNSCache = _mod_oob4e4.getGlobalDNSCache;
6
- exports.resetGlobalDNSCache = _mod_oob4e4.resetGlobalDNSCache;;
7
- const _mod_zyli6l = require('./response-cache.cjs');
8
- exports.ResponseCache = _mod_zyli6l.ResponseCache;
9
- exports.normalizeResponseCacheConfig = _mod_zyli6l.normalizeResponseCacheConfig;;
1
+ const _mod_7oe5nv = require('./lru-cache.cjs');
2
+ exports.LRUCache = _mod_7oe5nv.LRUCache;;
3
+ const _mod_eq897z = require('./dns-cache.cjs');
4
+ exports.DNSCache = _mod_eq897z.DNSCache;
5
+ exports.getGlobalDNSCache = _mod_eq897z.getGlobalDNSCache;
6
+ exports.resetGlobalDNSCache = _mod_eq897z.resetGlobalDNSCache;;
7
+ const _mod_g6t5mx = require('./response-cache.cjs');
8
+ exports.ResponseCache = _mod_g6t5mx.ResponseCache;
9
+ exports.normalizeResponseCacheConfig = _mod_g6t5mx.normalizeResponseCacheConfig;;
@@ -1 +1 @@
1
- var{Rezo:p}=require("../../../core/rezo.cjs"),a=require("./options.cjs");exports.OXYLABS_BROWSER_TYPES=a.OXYLABS_BROWSER_TYPES;exports.OXYLABS_COMMON_LOCALES=a.OXYLABS_COMMON_LOCALES;exports.OXYLABS_COMMON_GEO_LOCATIONS=a.OXYLABS_COMMON_GEO_LOCATIONS;exports.OXYLABS_US_STATES=a.OXYLABS_US_STATES;exports.OXYLABS_EUROPEAN_COUNTRIES=a.OXYLABS_EUROPEAN_COUNTRIES;exports.OXYLABS_ASIAN_COUNTRIES=a.OXYLABS_ASIAN_COUNTRIES;exports.getRandomBrowserType=a.getRandomBrowserType;exports.getRandomLocale=a.getRandomLocale;exports.getRandomGeoLocation=a.getRandomGeoLocation;var c="https://realtime.oxylabs.io/v1/queries";class u{config;http;authHeader;constructor(e){if(!e.username||!e.password)throw Error("Oxylabs username and password are required");this.config={username:e.username,password:e.password,browserType:e.browserType??"desktop",locale:e.locale??"en-US",geoLocation:e.geoLocation??"",render:e.render??!1,context:e.context??{},timeout:e.timeout??120000},this.http=new p({baseURL:c,timeout:this.config.timeout}),this.authHeader=`Basic ${Buffer.from(`${e.username}:${e.password}`).toString("base64")}`}async scrape(e,t){let r={...this.config,...t},s=this.buildRequestBody(e,r),o=(await this.http.postJson(c,s,{headers:{Authorization:this.authHeader,"Content-Type":"application/json"}})).data;if(o.error)throw Error(`Oxylabs API error: ${o.error}`);if(!o.results||o.results.length===0)throw Error("Oxylabs API returned no results");let n=o.results[0],d=n._response?.cookies||[],l=n._response?.headers||{};return{statusCode:n.status_code,url:n.url,content:n.content,cookies:d,headers:l,jobId:o.job_id||n.job_id,rendered:r.render,geoLocation:r.geoLocation||void 0,locale:r.locale,browserType:r.browserType,raw:o}}async scrapeMany(e,t,r=1000){let s=[];for(let i=0;i<e.length;i++){let o=await this.scrape(e[i],t);if(s.push(o),i<e.length-1&&r>0)await new Promise((n)=>setTimeout(n,r))}return s}buildRequestBody(e,t){let r=[];if(r.push({key:"return_page_cookies",value:!0}),r.push({key:"return_page_headers",value:!0}),t.context)for(let[i,o]of Object.entries(t.context))r.push({key:i,value:o});let s={source:"universal",url:e,context:r};if(t.render)s.render="html";if(t.browserType)s.user_agent_type=t.browserType;if(t.locale)s.locale=t.locale;if(t.geoLocation)s.geo_location=t.geoLocation;return s}getConfig(){return{...this.config,password:"***"}}withConfig(e){return new u({...this.config,...e})}async testConnection(){try{return await this.scrape("https://httpbin.org/ip"),!0}catch(e){throw Error(`Oxylabs connection test failed: ${e.message}`)}}}exports.Oxylabs=u;exports.default=u;module.exports=Object.assign(u,exports);
1
+ var{Rezo:h}=require("../../../core/rezo.cjs"),a=require("./options.cjs");exports.OXYLABS_BROWSER_TYPES=a.OXYLABS_BROWSER_TYPES;exports.OXYLABS_COMMON_LOCALES=a.OXYLABS_COMMON_LOCALES;exports.OXYLABS_COMMON_GEO_LOCATIONS=a.OXYLABS_COMMON_GEO_LOCATIONS;exports.OXYLABS_US_STATES=a.OXYLABS_US_STATES;exports.OXYLABS_EUROPEAN_COUNTRIES=a.OXYLABS_EUROPEAN_COUNTRIES;exports.OXYLABS_ASIAN_COUNTRIES=a.OXYLABS_ASIAN_COUNTRIES;exports.getRandomBrowserType=a.getRandomBrowserType;exports.getRandomLocale=a.getRandomLocale;exports.getRandomGeoLocation=a.getRandomGeoLocation;var c="https://realtime.oxylabs.io/v1/queries";class u{config;http;authHeader;constructor(e){if(!e.username||!e.password)throw Error("Oxylabs username and password are required");this.config={username:e.username,password:e.password,browserType:e.browserType??"desktop",locale:e.locale??"en-US",geoLocation:e.geoLocation??"",render:e.render??!1,context:e.context??{},timeout:e.timeout??120000},this.http=new h({baseURL:c,timeout:this.config.timeout}),this.authHeader=`Basic ${Buffer.from(`${e.username}:${e.password}`).toString("base64")}`}async scrape(e,t){let r={...this.config,...t},s=this.buildRequestBody(e,r),o=(await this.http.postJson(c,s,{headers:{Authorization:this.authHeader,"Content-Type":"application/json"}})).data;if(o.error)throw Error(`Oxylabs API error: ${o.error}`);if(!o.results||o.results.length===0)throw Error("Oxylabs API returned no results");let n=o.results[0],d=n._response?.cookies||[],l=n._response?.headers||{};return{statusCode:n.status_code,url:n.url,content:n.content,cookies:d,headers:l,jobId:o.job_id||n.job_id,rendered:r.render,geoLocation:r.geoLocation||void 0,locale:r.locale,browserType:r.browserType,raw:o}}async scrapeMany(e,t,r=1000){let s=[];for(let i=0;i<e.length;i++){let o=await this.scrape(e[i],t);if(s.push(o),i<e.length-1&&r>0)await new Promise((n)=>setTimeout(n,r))}return s}buildRequestBody(e,t){let r=[];if(r.push({key:"return_page_cookies",value:!0}),r.push({key:"return_page_headers",value:!0}),t.context)for(let[i,o]of Object.entries(t.context))r.push({key:i,value:o});let s={source:"universal",url:e,context:r};if(t.render)s.render="html";if(t.browserType)s.user_agent_type=t.browserType;if(t.locale)s.locale=t.locale;if(t.geoLocation)s.geo_location=t.geoLocation;return s}getConfig(){return{...this.config,password:"***"}}withConfig(e){return new u({...this.config,...e})}async testConnection(){try{return await this.scrape("https://httpbin.org/ip"),!0}catch(e){throw Error(`Oxylabs connection test failed: ${e.message}`)}}}exports.Oxylabs=u;exports.default=u;module.exports=Object.assign(u,exports);
@@ -1,40 +1,40 @@
1
- const _mod_dc78xf = require('./crawler.cjs');
2
- exports.Crawler = _mod_dc78xf.Crawler;;
3
- const _mod_imtiet = require('./crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_imtiet.CrawlerOptions;;
5
- const _mod_3t38pb = require('./plugin/robots-txt.cjs');
6
- exports.RobotsTxt = _mod_3t38pb.RobotsTxt;;
7
- const _mod_781asb = require('./plugin/file-cacher.cjs');
8
- exports.FileCacher = _mod_781asb.FileCacher;;
9
- const _mod_f2dfet = require('./plugin/url-store.cjs');
10
- exports.UrlStore = _mod_f2dfet.UrlStore;;
11
- const _mod_d89338 = require('./plugin/navigation-history.cjs');
12
- exports.NavigationHistory = _mod_d89338.NavigationHistory;;
13
- const _mod_ha39m0 = require('./addon/oxylabs/index.cjs');
14
- exports.Oxylabs = _mod_ha39m0.Oxylabs;;
15
- const _mod_x8qas7 = require('./addon/oxylabs/options.cjs');
16
- exports.OXYLABS_BROWSER_TYPES = _mod_x8qas7.OXYLABS_BROWSER_TYPES;
17
- exports.OXYLABS_COMMON_LOCALES = _mod_x8qas7.OXYLABS_COMMON_LOCALES;
18
- exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_x8qas7.OXYLABS_COMMON_GEO_LOCATIONS;
19
- exports.OXYLABS_US_STATES = _mod_x8qas7.OXYLABS_US_STATES;
20
- exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_x8qas7.OXYLABS_EUROPEAN_COUNTRIES;
21
- exports.OXYLABS_ASIAN_COUNTRIES = _mod_x8qas7.OXYLABS_ASIAN_COUNTRIES;
22
- exports.getRandomOxylabsBrowserType = _mod_x8qas7.getRandomBrowserType;
23
- exports.getRandomOxylabsLocale = _mod_x8qas7.getRandomLocale;
24
- exports.getRandomOxylabsGeoLocation = _mod_x8qas7.getRandomGeoLocation;;
25
- const _mod_ytfhuf = require('./addon/decodo/index.cjs');
26
- exports.Decodo = _mod_ytfhuf.Decodo;;
27
- const _mod_lgg0nr = require('./addon/decodo/options.cjs');
28
- exports.DECODO_DEVICE_TYPES = _mod_lgg0nr.DECODO_DEVICE_TYPES;
29
- exports.DECODO_HEADLESS_MODES = _mod_lgg0nr.DECODO_HEADLESS_MODES;
30
- exports.DECODO_COMMON_LOCALES = _mod_lgg0nr.DECODO_COMMON_LOCALES;
31
- exports.DECODO_COMMON_COUNTRIES = _mod_lgg0nr.DECODO_COMMON_COUNTRIES;
32
- exports.DECODO_EUROPEAN_COUNTRIES = _mod_lgg0nr.DECODO_EUROPEAN_COUNTRIES;
33
- exports.DECODO_ASIAN_COUNTRIES = _mod_lgg0nr.DECODO_ASIAN_COUNTRIES;
34
- exports.DECODO_US_STATES = _mod_lgg0nr.DECODO_US_STATES;
35
- exports.DECODO_COMMON_CITIES = _mod_lgg0nr.DECODO_COMMON_CITIES;
36
- exports.getRandomDecodoDeviceType = _mod_lgg0nr.getRandomDeviceType;
37
- exports.getRandomDecodoLocale = _mod_lgg0nr.getRandomLocale;
38
- exports.getRandomDecodoCountry = _mod_lgg0nr.getRandomCountry;
39
- exports.getRandomDecodoCity = _mod_lgg0nr.getRandomCity;
40
- exports.generateDecodoSessionId = _mod_lgg0nr.generateSessionId;;
1
+ const _mod_zggpqi = require('./crawler.cjs');
2
+ exports.Crawler = _mod_zggpqi.Crawler;;
3
+ const _mod_w5j7ew = require('./crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_w5j7ew.CrawlerOptions;;
5
+ const _mod_7tdth8 = require('./plugin/robots-txt.cjs');
6
+ exports.RobotsTxt = _mod_7tdth8.RobotsTxt;;
7
+ const _mod_u7vv7i = require('./plugin/file-cacher.cjs');
8
+ exports.FileCacher = _mod_u7vv7i.FileCacher;;
9
+ const _mod_d1ldj8 = require('./plugin/url-store.cjs');
10
+ exports.UrlStore = _mod_d1ldj8.UrlStore;;
11
+ const _mod_k72ti5 = require('./plugin/navigation-history.cjs');
12
+ exports.NavigationHistory = _mod_k72ti5.NavigationHistory;;
13
+ const _mod_pt5rej = require('./addon/oxylabs/index.cjs');
14
+ exports.Oxylabs = _mod_pt5rej.Oxylabs;;
15
+ const _mod_mnmjv5 = require('./addon/oxylabs/options.cjs');
16
+ exports.OXYLABS_BROWSER_TYPES = _mod_mnmjv5.OXYLABS_BROWSER_TYPES;
17
+ exports.OXYLABS_COMMON_LOCALES = _mod_mnmjv5.OXYLABS_COMMON_LOCALES;
18
+ exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_mnmjv5.OXYLABS_COMMON_GEO_LOCATIONS;
19
+ exports.OXYLABS_US_STATES = _mod_mnmjv5.OXYLABS_US_STATES;
20
+ exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_mnmjv5.OXYLABS_EUROPEAN_COUNTRIES;
21
+ exports.OXYLABS_ASIAN_COUNTRIES = _mod_mnmjv5.OXYLABS_ASIAN_COUNTRIES;
22
+ exports.getRandomOxylabsBrowserType = _mod_mnmjv5.getRandomBrowserType;
23
+ exports.getRandomOxylabsLocale = _mod_mnmjv5.getRandomLocale;
24
+ exports.getRandomOxylabsGeoLocation = _mod_mnmjv5.getRandomGeoLocation;;
25
+ const _mod_15fgrr = require('./addon/decodo/index.cjs');
26
+ exports.Decodo = _mod_15fgrr.Decodo;;
27
+ const _mod_mpk0ak = require('./addon/decodo/options.cjs');
28
+ exports.DECODO_DEVICE_TYPES = _mod_mpk0ak.DECODO_DEVICE_TYPES;
29
+ exports.DECODO_HEADLESS_MODES = _mod_mpk0ak.DECODO_HEADLESS_MODES;
30
+ exports.DECODO_COMMON_LOCALES = _mod_mpk0ak.DECODO_COMMON_LOCALES;
31
+ exports.DECODO_COMMON_COUNTRIES = _mod_mpk0ak.DECODO_COMMON_COUNTRIES;
32
+ exports.DECODO_EUROPEAN_COUNTRIES = _mod_mpk0ak.DECODO_EUROPEAN_COUNTRIES;
33
+ exports.DECODO_ASIAN_COUNTRIES = _mod_mpk0ak.DECODO_ASIAN_COUNTRIES;
34
+ exports.DECODO_US_STATES = _mod_mpk0ak.DECODO_US_STATES;
35
+ exports.DECODO_COMMON_CITIES = _mod_mpk0ak.DECODO_COMMON_CITIES;
36
+ exports.getRandomDecodoDeviceType = _mod_mpk0ak.getRandomDeviceType;
37
+ exports.getRandomDecodoLocale = _mod_mpk0ak.getRandomLocale;
38
+ exports.getRandomDecodoCountry = _mod_mpk0ak.getRandomCountry;
39
+ exports.getRandomDecodoCity = _mod_mpk0ak.getRandomCity;
40
+ exports.generateDecodoSessionId = _mod_mpk0ak.generateSessionId;;
@@ -1,4 +1,4 @@
1
- const _mod_v7e9uq = require('../crawler/crawler.cjs');
2
- exports.Crawler = _mod_v7e9uq.Crawler;;
3
- const _mod_4s1ziu = require('../crawler/crawler-options.cjs');
4
- exports.CrawlerOptions = _mod_4s1ziu.CrawlerOptions;;
1
+ const _mod_92x3i3 = require('../crawler/crawler.cjs');
2
+ exports.Crawler = _mod_92x3i3.Crawler;;
3
+ const _mod_n5bqoe = require('../crawler/crawler-options.cjs');
4
+ exports.CrawlerOptions = _mod_n5bqoe.CrawlerOptions;;
package/dist/index.cjs CHANGED
@@ -1,30 +1,30 @@
1
- const _mod_ctxufv = require('./core/rezo.cjs');
2
- exports.Rezo = _mod_ctxufv.Rezo;
3
- exports.createRezoInstance = _mod_ctxufv.createRezoInstance;
4
- exports.createDefaultInstance = _mod_ctxufv.createDefaultInstance;;
5
- const _mod_k9ypks = require('./errors/rezo-error.cjs');
6
- exports.RezoError = _mod_k9ypks.RezoError;
7
- exports.RezoErrorCode = _mod_k9ypks.RezoErrorCode;;
8
- const _mod_vuolvc = require('./utils/headers.cjs');
9
- exports.RezoHeaders = _mod_vuolvc.RezoHeaders;;
10
- const _mod_nkv8ku = require('./utils/form-data.cjs');
11
- exports.RezoFormData = _mod_nkv8ku.RezoFormData;;
12
- const _mod_df5jv4 = require('./utils/cookies.cjs');
13
- exports.RezoCookieJar = _mod_df5jv4.RezoCookieJar;
14
- exports.Cookie = _mod_df5jv4.Cookie;;
15
- const _mod_feu23v = require('./utils/curl.cjs');
16
- exports.toCurl = _mod_feu23v.toCurl;
17
- exports.fromCurl = _mod_feu23v.fromCurl;;
18
- const _mod_lrfy77 = require('./core/hooks.cjs');
19
- exports.createDefaultHooks = _mod_lrfy77.createDefaultHooks;
20
- exports.mergeHooks = _mod_lrfy77.mergeHooks;;
21
- const _mod_i1yv6t = require('./proxy/manager.cjs');
22
- exports.ProxyManager = _mod_i1yv6t.ProxyManager;;
23
- const _mod_sr2iby = require('./queue/index.cjs');
24
- exports.RezoQueue = _mod_sr2iby.RezoQueue;
25
- exports.HttpQueue = _mod_sr2iby.HttpQueue;
26
- exports.Priority = _mod_sr2iby.Priority;
27
- exports.HttpMethodPriority = _mod_sr2iby.HttpMethodPriority;;
1
+ const _mod_q6srzt = require('./core/rezo.cjs');
2
+ exports.Rezo = _mod_q6srzt.Rezo;
3
+ exports.createRezoInstance = _mod_q6srzt.createRezoInstance;
4
+ exports.createDefaultInstance = _mod_q6srzt.createDefaultInstance;;
5
+ const _mod_gn3oqh = require('./errors/rezo-error.cjs');
6
+ exports.RezoError = _mod_gn3oqh.RezoError;
7
+ exports.RezoErrorCode = _mod_gn3oqh.RezoErrorCode;;
8
+ const _mod_a4aibp = require('./utils/headers.cjs');
9
+ exports.RezoHeaders = _mod_a4aibp.RezoHeaders;;
10
+ const _mod_55sc23 = require('./utils/form-data.cjs');
11
+ exports.RezoFormData = _mod_55sc23.RezoFormData;;
12
+ const _mod_fh683m = require('./utils/cookies.cjs');
13
+ exports.RezoCookieJar = _mod_fh683m.RezoCookieJar;
14
+ exports.Cookie = _mod_fh683m.Cookie;;
15
+ const _mod_zbzua6 = require('./utils/curl.cjs');
16
+ exports.toCurl = _mod_zbzua6.toCurl;
17
+ exports.fromCurl = _mod_zbzua6.fromCurl;;
18
+ const _mod_76yfai = require('./core/hooks.cjs');
19
+ exports.createDefaultHooks = _mod_76yfai.createDefaultHooks;
20
+ exports.mergeHooks = _mod_76yfai.mergeHooks;;
21
+ const _mod_3b2yju = require('./proxy/manager.cjs');
22
+ exports.ProxyManager = _mod_3b2yju.ProxyManager;;
23
+ const _mod_8pnv4s = require('./queue/index.cjs');
24
+ exports.RezoQueue = _mod_8pnv4s.RezoQueue;
25
+ exports.HttpQueue = _mod_8pnv4s.HttpQueue;
26
+ exports.Priority = _mod_8pnv4s.Priority;
27
+ exports.HttpMethodPriority = _mod_8pnv4s.HttpMethodPriority;;
28
28
  const { RezoError } = require('./errors/rezo-error.cjs');
29
29
  const isRezoError = exports.isRezoError = RezoError.isRezoError;
30
30
  const Cancel = exports.Cancel = RezoError;
@@ -1,10 +1,10 @@
1
- const _mod_wcqh71 = require('./base.cjs');
2
- exports.Agent = _mod_wcqh71.Agent;;
3
- const _mod_wmtr1f = require('./http-proxy.cjs');
4
- exports.HttpProxyAgent = _mod_wmtr1f.HttpProxyAgent;;
5
- const _mod_al0sp0 = require('./https-proxy.cjs');
6
- exports.HttpsProxyAgent = _mod_al0sp0.HttpsProxyAgent;;
7
- const _mod_m4ejbj = require('./socks-proxy.cjs');
8
- exports.SocksProxyAgent = _mod_m4ejbj.SocksProxyAgent;;
9
- const _mod_lihuil = require('./socks-client.cjs');
10
- exports.SocksClient = _mod_lihuil.SocksClient;;
1
+ const _mod_bf5fu2 = require('./base.cjs');
2
+ exports.Agent = _mod_bf5fu2.Agent;;
3
+ const _mod_kwrpcj = require('./http-proxy.cjs');
4
+ exports.HttpProxyAgent = _mod_kwrpcj.HttpProxyAgent;;
5
+ const _mod_ykdpvq = require('./https-proxy.cjs');
6
+ exports.HttpsProxyAgent = _mod_ykdpvq.HttpsProxyAgent;;
7
+ const _mod_a0kdcz = require('./socks-proxy.cjs');
8
+ exports.SocksProxyAgent = _mod_a0kdcz.SocksProxyAgent;;
9
+ const _mod_itvmz3 = require('./socks-client.cjs');
10
+ exports.SocksClient = _mod_itvmz3.SocksClient;;
@@ -1,9 +1,9 @@
1
1
  const { Agent, HttpProxyAgent, HttpsProxyAgent, SocksProxyAgent } = require('../internal/agents/index.cjs');
2
2
  const { parseProxyString } = require('./parse.cjs');
3
- const _mod_1ct44k = require('./manager.cjs');
4
- exports.ProxyManager = _mod_1ct44k.ProxyManager;;
5
- const _mod_ago4qr = require('./parse.cjs');
6
- exports.parseProxyString = _mod_ago4qr.parseProxyString;;
3
+ const _mod_kclb7u = require('./manager.cjs');
4
+ exports.ProxyManager = _mod_kclb7u.ProxyManager;;
5
+ const _mod_33tnsz = require('./parse.cjs');
6
+ exports.parseProxyString = _mod_33tnsz.parseProxyString;;
7
7
  function createOptions(uri, opts) {
8
8
  if (uri instanceof URL || typeof uri === "string") {
9
9
  return {
@@ -1,8 +1,8 @@
1
- const _mod_1c2jtg = require('./queue.cjs');
2
- exports.RezoQueue = _mod_1c2jtg.RezoQueue;;
3
- const _mod_inigu3 = require('./http-queue.cjs');
4
- exports.HttpQueue = _mod_inigu3.HttpQueue;
5
- exports.extractDomain = _mod_inigu3.extractDomain;;
6
- const _mod_7zduxr = require('./types.cjs');
7
- exports.Priority = _mod_7zduxr.Priority;
8
- exports.HttpMethodPriority = _mod_7zduxr.HttpMethodPriority;;
1
+ const _mod_mzwr2r = require('./queue.cjs');
2
+ exports.RezoQueue = _mod_mzwr2r.RezoQueue;;
3
+ const _mod_lepqvc = require('./http-queue.cjs');
4
+ exports.HttpQueue = _mod_lepqvc.HttpQueue;
5
+ exports.extractDomain = _mod_lepqvc.extractDomain;;
6
+ const _mod_g0cvqm = require('./types.cjs');
7
+ exports.Priority = _mod_g0cvqm.Priority;
8
+ exports.HttpMethodPriority = _mod_g0cvqm.HttpMethodPriority;;
@@ -1,11 +1,11 @@
1
- const _mod_sddco6 = require('./event-emitter.cjs');
2
- exports.UniversalEventEmitter = _mod_sddco6.UniversalEventEmitter;;
3
- const _mod_ifefgz = require('./stream.cjs');
4
- exports.UniversalStreamResponse = _mod_ifefgz.UniversalStreamResponse;
5
- exports.StreamResponse = _mod_ifefgz.StreamResponse;;
6
- const _mod_z0dcc3 = require('./download.cjs');
7
- exports.UniversalDownloadResponse = _mod_z0dcc3.UniversalDownloadResponse;
8
- exports.DownloadResponse = _mod_z0dcc3.DownloadResponse;;
9
- const _mod_mmtx2a = require('./upload.cjs');
10
- exports.UniversalUploadResponse = _mod_mmtx2a.UniversalUploadResponse;
11
- exports.UploadResponse = _mod_mmtx2a.UploadResponse;;
1
+ const _mod_p57m80 = require('./event-emitter.cjs');
2
+ exports.UniversalEventEmitter = _mod_p57m80.UniversalEventEmitter;;
3
+ const _mod_c77x9z = require('./stream.cjs');
4
+ exports.UniversalStreamResponse = _mod_c77x9z.UniversalStreamResponse;
5
+ exports.StreamResponse = _mod_c77x9z.StreamResponse;;
6
+ const _mod_4rsxgf = require('./download.cjs');
7
+ exports.UniversalDownloadResponse = _mod_4rsxgf.UniversalDownloadResponse;
8
+ exports.DownloadResponse = _mod_4rsxgf.DownloadResponse;;
9
+ const _mod_kbsfm9 = require('./upload.cjs');
10
+ exports.UniversalUploadResponse = _mod_kbsfm9.UniversalUploadResponse;
11
+ exports.UploadResponse = _mod_kbsfm9.UploadResponse;;
@@ -69,7 +69,16 @@ class AgentPool {
69
69
  if (lookup) {
70
70
  agentOptions.lookup = lookup;
71
71
  }
72
- return new http.Agent(agentOptions);
72
+ const agent = new http.Agent(agentOptions);
73
+ this.setupAgentSocketUnref(agent);
74
+ return agent;
75
+ }
76
+ setupAgentSocketUnref(agent) {
77
+ agent.on("free", (socket) => {
78
+ if (socket && typeof socket.unref === "function") {
79
+ socket.unref();
80
+ }
81
+ });
73
82
  }
74
83
  createHttpsAgent(key, tlsOptions) {
75
84
  const agentOptions = {
@@ -85,7 +94,9 @@ class AgentPool {
85
94
  if (lookup) {
86
95
  agentOptions.lookup = lookup;
87
96
  }
88
- return new https.Agent(agentOptions);
97
+ const agent = new https.Agent(agentOptions);
98
+ this.setupAgentSocketUnref(agent);
99
+ return agent;
89
100
  }
90
101
  getHttpAgent(options) {
91
102
  const key = this.buildAgentKey(options);
@@ -152,14 +163,44 @@ class AgentPool {
152
163
  this.evictionTimer = null;
153
164
  }
154
165
  for (const pooled of this.httpAgents.values()) {
166
+ this.destroyAgentSockets(pooled.agent);
155
167
  pooled.agent.destroy();
156
168
  }
157
169
  this.httpAgents.clear();
158
170
  for (const pooled of this.httpsAgents.values()) {
171
+ this.destroyAgentSockets(pooled.agent);
159
172
  pooled.agent.destroy();
160
173
  }
161
174
  this.httpsAgents.clear();
162
175
  }
176
+ destroyAgentSockets(agent) {
177
+ const sockets = agent.sockets;
178
+ if (sockets && typeof sockets === "object") {
179
+ for (const key of Object.keys(sockets)) {
180
+ const socketList = sockets[key];
181
+ if (Array.isArray(socketList)) {
182
+ for (const socket of socketList) {
183
+ try {
184
+ socket.destroy();
185
+ } catch {}
186
+ }
187
+ }
188
+ }
189
+ }
190
+ const freeSockets = agent.freeSockets;
191
+ if (freeSockets && typeof freeSockets === "object") {
192
+ for (const key of Object.keys(freeSockets)) {
193
+ const socketList = freeSockets[key];
194
+ if (Array.isArray(socketList)) {
195
+ for (const socket of socketList) {
196
+ try {
197
+ socket.destroy();
198
+ } catch {}
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
163
204
  clear() {
164
205
  this.destroy();
165
206
  if (this.config.idleEvictionMs > 0) {
@@ -69,7 +69,16 @@ class AgentPool {
69
69
  if (lookup) {
70
70
  agentOptions.lookup = lookup;
71
71
  }
72
- return new http.Agent(agentOptions);
72
+ const agent = new http.Agent(agentOptions);
73
+ this.setupAgentSocketUnref(agent);
74
+ return agent;
75
+ }
76
+ setupAgentSocketUnref(agent) {
77
+ agent.on("free", (socket) => {
78
+ if (socket && typeof socket.unref === "function") {
79
+ socket.unref();
80
+ }
81
+ });
73
82
  }
74
83
  createHttpsAgent(key, tlsOptions) {
75
84
  const agentOptions = {
@@ -85,7 +94,9 @@ class AgentPool {
85
94
  if (lookup) {
86
95
  agentOptions.lookup = lookup;
87
96
  }
88
- return new https.Agent(agentOptions);
97
+ const agent = new https.Agent(agentOptions);
98
+ this.setupAgentSocketUnref(agent);
99
+ return agent;
89
100
  }
90
101
  getHttpAgent(options) {
91
102
  const key = this.buildAgentKey(options);
@@ -152,14 +163,44 @@ class AgentPool {
152
163
  this.evictionTimer = null;
153
164
  }
154
165
  for (const pooled of this.httpAgents.values()) {
166
+ this.destroyAgentSockets(pooled.agent);
155
167
  pooled.agent.destroy();
156
168
  }
157
169
  this.httpAgents.clear();
158
170
  for (const pooled of this.httpsAgents.values()) {
171
+ this.destroyAgentSockets(pooled.agent);
159
172
  pooled.agent.destroy();
160
173
  }
161
174
  this.httpsAgents.clear();
162
175
  }
176
+ destroyAgentSockets(agent) {
177
+ const sockets = agent.sockets;
178
+ if (sockets && typeof sockets === "object") {
179
+ for (const key of Object.keys(sockets)) {
180
+ const socketList = sockets[key];
181
+ if (Array.isArray(socketList)) {
182
+ for (const socket of socketList) {
183
+ try {
184
+ socket.destroy();
185
+ } catch {}
186
+ }
187
+ }
188
+ }
189
+ }
190
+ const freeSockets = agent.freeSockets;
191
+ if (freeSockets && typeof freeSockets === "object") {
192
+ for (const key of Object.keys(freeSockets)) {
193
+ const socketList = freeSockets[key];
194
+ if (Array.isArray(socketList)) {
195
+ for (const socket of socketList) {
196
+ try {
197
+ socket.destroy();
198
+ } catch {}
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
163
204
  clear() {
164
205
  this.destroy();
165
206
  if (this.config.idleEvictionMs > 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rezo",
3
- "version": "1.0.59",
3
+ "version": "1.0.60",
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",