rezo 1.0.26 → 1.0.27
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/adapters/entries/curl.d.ts +45 -0
- package/dist/adapters/entries/fetch.d.ts +45 -0
- package/dist/adapters/entries/http.d.ts +45 -0
- package/dist/adapters/entries/http2.d.ts +45 -0
- package/dist/adapters/entries/react-native.d.ts +45 -0
- package/dist/adapters/entries/xhr.d.ts +45 -0
- package/dist/adapters/fetch.cjs +1 -1
- package/dist/adapters/fetch.js +1 -1
- package/dist/adapters/http.cjs +1 -1
- package/dist/adapters/http.js +1 -1
- package/dist/adapters/http2.cjs +1 -1
- package/dist/adapters/http2.js +1 -1
- package/dist/adapters/index.cjs +6 -6
- package/dist/cache/index.cjs +13 -13
- package/dist/crawler.d.ts +45 -0
- package/dist/entries/crawler.cjs +5 -5
- package/dist/index.cjs +24 -24
- package/dist/index.d.ts +45 -0
- package/dist/platform/browser.d.ts +45 -0
- package/dist/platform/bun.d.ts +45 -0
- package/dist/platform/deno.d.ts +45 -0
- package/dist/platform/node.d.ts +45 -0
- package/dist/platform/react-native.d.ts +45 -0
- package/dist/platform/worker.d.ts +45 -0
- package/dist/plugin/index.cjs +36 -36
- package/dist/proxy/index.cjs +2 -2
- package/dist/queue/index.cjs +8 -8
- package/dist/utils/cookies.cjs +39 -0
- package/dist/utils/cookies.js +39 -0
- package/dist/utils/http-config.cjs +16 -4
- package/dist/utils/http-config.js +16 -4
- package/package.json +1 -1
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/adapters/fetch.cjs
CHANGED
|
@@ -183,7 +183,7 @@ async function parseCookiesFromHeaders(headers, url, config) {
|
|
|
183
183
|
} else {
|
|
184
184
|
acceptedCookies.push(...parsedCookies.array);
|
|
185
185
|
}
|
|
186
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
186
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
187
187
|
const jar = new RezoCookieJar;
|
|
188
188
|
jar.setCookiesSync(acceptedCookieStrings, url);
|
|
189
189
|
if (config?.enableCookieJar && config?.cookieJar) {
|
package/dist/adapters/fetch.js
CHANGED
|
@@ -183,7 +183,7 @@ async function parseCookiesFromHeaders(headers, url, config) {
|
|
|
183
183
|
} else {
|
|
184
184
|
acceptedCookies.push(...parsedCookies.array);
|
|
185
185
|
}
|
|
186
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
186
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
187
187
|
const jar = new RezoCookieJar;
|
|
188
188
|
jar.setCookiesSync(acceptedCookieStrings, url);
|
|
189
189
|
if (config?.enableCookieJar && config?.cookieJar) {
|
package/dist/adapters/http.cjs
CHANGED
|
@@ -1482,7 +1482,7 @@ async function updateCookies(config, headers, url) {
|
|
|
1482
1482
|
} else {
|
|
1483
1483
|
acceptedCookies.push(...parsedCookies.array);
|
|
1484
1484
|
}
|
|
1485
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
1485
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
1486
1486
|
if (config.enableCookieJar && config.cookieJar) {
|
|
1487
1487
|
config.cookieJar.setCookiesSync(acceptedCookieStrings, url);
|
|
1488
1488
|
}
|
package/dist/adapters/http.js
CHANGED
|
@@ -1482,7 +1482,7 @@ async function updateCookies(config, headers, url) {
|
|
|
1482
1482
|
} else {
|
|
1483
1483
|
acceptedCookies.push(...parsedCookies.array);
|
|
1484
1484
|
}
|
|
1485
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
1485
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
1486
1486
|
if (config.enableCookieJar && config.cookieJar) {
|
|
1487
1487
|
config.cookieJar.setCookiesSync(acceptedCookieStrings, url);
|
|
1488
1488
|
}
|
package/dist/adapters/http2.cjs
CHANGED
|
@@ -341,7 +341,7 @@ async function updateCookies(config, headers, url) {
|
|
|
341
341
|
} else {
|
|
342
342
|
acceptedCookies.push(...parsedCookies.array);
|
|
343
343
|
}
|
|
344
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
344
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
345
345
|
const jar = new RezoCookieJar;
|
|
346
346
|
jar.setCookiesSync(acceptedCookieStrings, url);
|
|
347
347
|
if (config.enableCookieJar && config.cookieJar) {
|
package/dist/adapters/http2.js
CHANGED
|
@@ -341,7 +341,7 @@ async function updateCookies(config, headers, url) {
|
|
|
341
341
|
} else {
|
|
342
342
|
acceptedCookies.push(...parsedCookies.array);
|
|
343
343
|
}
|
|
344
|
-
const acceptedCookieStrings = acceptedCookies.map((c) => c.
|
|
344
|
+
const acceptedCookieStrings = acceptedCookies.map((c) => c.toSetCookieString());
|
|
345
345
|
const jar = new RezoCookieJar;
|
|
346
346
|
jar.setCookiesSync(acceptedCookieStrings, url);
|
|
347
347
|
if (config.enableCookieJar && config.cookieJar) {
|
package/dist/adapters/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.detectRuntime =
|
|
3
|
-
exports.getAdapterCapabilities =
|
|
4
|
-
exports.buildAdapterContext =
|
|
5
|
-
exports.getAvailableAdapters =
|
|
6
|
-
exports.selectAdapter =
|
|
1
|
+
const _mod_c82agb = require('./picker.cjs');
|
|
2
|
+
exports.detectRuntime = _mod_c82agb.detectRuntime;
|
|
3
|
+
exports.getAdapterCapabilities = _mod_c82agb.getAdapterCapabilities;
|
|
4
|
+
exports.buildAdapterContext = _mod_c82agb.buildAdapterContext;
|
|
5
|
+
exports.getAvailableAdapters = _mod_c82agb.getAvailableAdapters;
|
|
6
|
+
exports.selectAdapter = _mod_c82agb.selectAdapter;;
|
package/dist/cache/index.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.LRUCache =
|
|
3
|
-
const
|
|
4
|
-
exports.DNSCache =
|
|
5
|
-
exports.getGlobalDNSCache =
|
|
6
|
-
exports.resetGlobalDNSCache =
|
|
7
|
-
const
|
|
8
|
-
exports.ResponseCache =
|
|
9
|
-
exports.normalizeResponseCacheConfig =
|
|
10
|
-
const
|
|
11
|
-
exports.FileCacher =
|
|
12
|
-
const
|
|
13
|
-
exports.UrlStore =
|
|
1
|
+
const _mod_wg0295 = require('./lru-cache.cjs');
|
|
2
|
+
exports.LRUCache = _mod_wg0295.LRUCache;;
|
|
3
|
+
const _mod_udgn2v = require('./dns-cache.cjs');
|
|
4
|
+
exports.DNSCache = _mod_udgn2v.DNSCache;
|
|
5
|
+
exports.getGlobalDNSCache = _mod_udgn2v.getGlobalDNSCache;
|
|
6
|
+
exports.resetGlobalDNSCache = _mod_udgn2v.resetGlobalDNSCache;;
|
|
7
|
+
const _mod_6kolan = require('./response-cache.cjs');
|
|
8
|
+
exports.ResponseCache = _mod_6kolan.ResponseCache;
|
|
9
|
+
exports.normalizeResponseCacheConfig = _mod_6kolan.normalizeResponseCacheConfig;;
|
|
10
|
+
const _mod_pl3tv0 = require('./file-cacher.cjs');
|
|
11
|
+
exports.FileCacher = _mod_pl3tv0.FileCacher;;
|
|
12
|
+
const _mod_zya6gr = require('./url-store.cjs');
|
|
13
|
+
exports.UrlStore = _mod_zya6gr.UrlStore;;
|
package/dist/crawler.d.ts
CHANGED
|
@@ -428,6 +428,51 @@ declare class RezoCookieJar extends TouchCookieJar {
|
|
|
428
428
|
toArray(): Cookie[];
|
|
429
429
|
toSetCookies(): string[];
|
|
430
430
|
toSerializedCookies(): SerializedCookie[];
|
|
431
|
+
/**
|
|
432
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
433
|
+
* This method properly handles:
|
|
434
|
+
* - Domain matching (exact or parent domain)
|
|
435
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
436
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
437
|
+
* - Expiry (expired cookies not returned)
|
|
438
|
+
*
|
|
439
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
440
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
441
|
+
*/
|
|
442
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
443
|
+
/**
|
|
444
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
445
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
446
|
+
*
|
|
447
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
448
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
449
|
+
*
|
|
450
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
451
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
452
|
+
*/
|
|
453
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
454
|
+
/**
|
|
455
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
456
|
+
* Useful for troubleshooting cookie matching issues.
|
|
457
|
+
*
|
|
458
|
+
* @param requestUrl - The full request URL including path
|
|
459
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
460
|
+
*/
|
|
461
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
462
|
+
url: string;
|
|
463
|
+
matchingCookies: Array<{
|
|
464
|
+
key: string;
|
|
465
|
+
value: string;
|
|
466
|
+
domain: string;
|
|
467
|
+
path: string;
|
|
468
|
+
}>;
|
|
469
|
+
cookieHeader: string;
|
|
470
|
+
allCookies: Array<{
|
|
471
|
+
key: string;
|
|
472
|
+
domain: string;
|
|
473
|
+
path: string;
|
|
474
|
+
}>;
|
|
475
|
+
};
|
|
431
476
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
432
477
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
433
478
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/entries/crawler.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.Crawler =
|
|
3
|
-
const
|
|
4
|
-
exports.CrawlerOptions =
|
|
5
|
-
exports.Domain =
|
|
1
|
+
const _mod_lymkfq = require('../plugin/crawler.cjs');
|
|
2
|
+
exports.Crawler = _mod_lymkfq.Crawler;;
|
|
3
|
+
const _mod_kvs0ei = require('../plugin/crawler-options.cjs');
|
|
4
|
+
exports.CrawlerOptions = _mod_kvs0ei.CrawlerOptions;
|
|
5
|
+
exports.Domain = _mod_kvs0ei.Domain;;
|
package/dist/index.cjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.Rezo =
|
|
3
|
-
exports.createRezoInstance =
|
|
4
|
-
exports.createDefaultInstance =
|
|
5
|
-
const
|
|
6
|
-
exports.RezoError =
|
|
7
|
-
exports.RezoErrorCode =
|
|
8
|
-
const
|
|
9
|
-
exports.RezoHeaders =
|
|
10
|
-
const
|
|
11
|
-
exports.RezoFormData =
|
|
12
|
-
const
|
|
13
|
-
exports.RezoCookieJar =
|
|
14
|
-
exports.Cookie =
|
|
15
|
-
const
|
|
16
|
-
exports.createDefaultHooks =
|
|
17
|
-
exports.mergeHooks =
|
|
18
|
-
const
|
|
19
|
-
exports.ProxyManager =
|
|
20
|
-
const
|
|
21
|
-
exports.RezoQueue =
|
|
22
|
-
exports.HttpQueue =
|
|
23
|
-
exports.Priority =
|
|
24
|
-
exports.HttpMethodPriority =
|
|
1
|
+
const _mod_lyypom = require('./core/rezo.cjs');
|
|
2
|
+
exports.Rezo = _mod_lyypom.Rezo;
|
|
3
|
+
exports.createRezoInstance = _mod_lyypom.createRezoInstance;
|
|
4
|
+
exports.createDefaultInstance = _mod_lyypom.createDefaultInstance;;
|
|
5
|
+
const _mod_z2q5wr = require('./errors/rezo-error.cjs');
|
|
6
|
+
exports.RezoError = _mod_z2q5wr.RezoError;
|
|
7
|
+
exports.RezoErrorCode = _mod_z2q5wr.RezoErrorCode;;
|
|
8
|
+
const _mod_qyu99x = require('./utils/headers.cjs');
|
|
9
|
+
exports.RezoHeaders = _mod_qyu99x.RezoHeaders;;
|
|
10
|
+
const _mod_z17ic3 = require('./utils/form-data.cjs');
|
|
11
|
+
exports.RezoFormData = _mod_z17ic3.RezoFormData;;
|
|
12
|
+
const _mod_2sml8j = require('./utils/cookies.cjs');
|
|
13
|
+
exports.RezoCookieJar = _mod_2sml8j.RezoCookieJar;
|
|
14
|
+
exports.Cookie = _mod_2sml8j.Cookie;;
|
|
15
|
+
const _mod_vuhwqj = require('./core/hooks.cjs');
|
|
16
|
+
exports.createDefaultHooks = _mod_vuhwqj.createDefaultHooks;
|
|
17
|
+
exports.mergeHooks = _mod_vuhwqj.mergeHooks;;
|
|
18
|
+
const _mod_srexi8 = require('./proxy/manager.cjs');
|
|
19
|
+
exports.ProxyManager = _mod_srexi8.ProxyManager;;
|
|
20
|
+
const _mod_p29w3c = require('./queue/index.cjs');
|
|
21
|
+
exports.RezoQueue = _mod_p29w3c.RezoQueue;
|
|
22
|
+
exports.HttpQueue = _mod_p29w3c.HttpQueue;
|
|
23
|
+
exports.Priority = _mod_p29w3c.Priority;
|
|
24
|
+
exports.HttpMethodPriority = _mod_p29w3c.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
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/platform/bun.d.ts
CHANGED
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/platform/deno.d.ts
CHANGED
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/platform/node.d.ts
CHANGED
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
|
@@ -205,6 +205,51 @@ export declare class RezoCookieJar extends TouchCookieJar {
|
|
|
205
205
|
toArray(): Cookie[];
|
|
206
206
|
toSetCookies(): string[];
|
|
207
207
|
toSerializedCookies(): SerializedCookie[];
|
|
208
|
+
/**
|
|
209
|
+
* Get cookies for a request URL with proper browser-like matching.
|
|
210
|
+
* This method properly handles:
|
|
211
|
+
* - Domain matching (exact or parent domain)
|
|
212
|
+
* - Path matching (cookie path must be prefix of request path)
|
|
213
|
+
* - Secure flag (secure cookies only over HTTPS)
|
|
214
|
+
* - Expiry (expired cookies not returned)
|
|
215
|
+
*
|
|
216
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
217
|
+
* @returns Array of Cookie objects that should be sent with the request
|
|
218
|
+
*/
|
|
219
|
+
getCookiesForRequest(requestUrl: string | URL): Cookie[];
|
|
220
|
+
/**
|
|
221
|
+
* Get the Cookie header value for a request URL with proper browser-like matching.
|
|
222
|
+
* Returns cookies in the format: "key1=value1; key2=value2"
|
|
223
|
+
*
|
|
224
|
+
* This is the browser-accurate way to build the Cookie header, properly filtering
|
|
225
|
+
* cookies by domain, path, secure flag, and expiry.
|
|
226
|
+
*
|
|
227
|
+
* @param requestUrl - The full request URL including path (e.g., 'https://example.com/api/users')
|
|
228
|
+
* @returns Cookie header string in "key=value; key=value" format
|
|
229
|
+
*/
|
|
230
|
+
getCookieHeader(requestUrl: string | URL): string;
|
|
231
|
+
/**
|
|
232
|
+
* Debug method to show which cookies would be sent for a given URL.
|
|
233
|
+
* Useful for troubleshooting cookie matching issues.
|
|
234
|
+
*
|
|
235
|
+
* @param requestUrl - The full request URL including path
|
|
236
|
+
* @returns Object with matching cookies and the Cookie header that would be sent
|
|
237
|
+
*/
|
|
238
|
+
debugCookiesForRequest(requestUrl: string | URL): {
|
|
239
|
+
url: string;
|
|
240
|
+
matchingCookies: Array<{
|
|
241
|
+
key: string;
|
|
242
|
+
value: string;
|
|
243
|
+
domain: string;
|
|
244
|
+
path: string;
|
|
245
|
+
}>;
|
|
246
|
+
cookieHeader: string;
|
|
247
|
+
allCookies: Array<{
|
|
248
|
+
key: string;
|
|
249
|
+
domain: string;
|
|
250
|
+
path: string;
|
|
251
|
+
}>;
|
|
252
|
+
};
|
|
208
253
|
setCookiesSync(setCookieArray: string[]): Cookies;
|
|
209
254
|
setCookiesSync(setCookieArray: string[], url: string): Cookies;
|
|
210
255
|
setCookiesSync(cookiesString: string): Cookies;
|
package/dist/plugin/index.cjs
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.Crawler =
|
|
3
|
-
const
|
|
4
|
-
exports.CrawlerOptions =
|
|
5
|
-
const
|
|
6
|
-
exports.FileCacher =
|
|
7
|
-
const
|
|
8
|
-
exports.UrlStore =
|
|
9
|
-
const
|
|
10
|
-
exports.Oxylabs =
|
|
11
|
-
const
|
|
12
|
-
exports.OXYLABS_BROWSER_TYPES =
|
|
13
|
-
exports.OXYLABS_COMMON_LOCALES =
|
|
14
|
-
exports.OXYLABS_COMMON_GEO_LOCATIONS =
|
|
15
|
-
exports.OXYLABS_US_STATES =
|
|
16
|
-
exports.OXYLABS_EUROPEAN_COUNTRIES =
|
|
17
|
-
exports.OXYLABS_ASIAN_COUNTRIES =
|
|
18
|
-
exports.getRandomOxylabsBrowserType =
|
|
19
|
-
exports.getRandomOxylabsLocale =
|
|
20
|
-
exports.getRandomOxylabsGeoLocation =
|
|
21
|
-
const
|
|
22
|
-
exports.Decodo =
|
|
23
|
-
const
|
|
24
|
-
exports.DECODO_DEVICE_TYPES =
|
|
25
|
-
exports.DECODO_HEADLESS_MODES =
|
|
26
|
-
exports.DECODO_COMMON_LOCALES =
|
|
27
|
-
exports.DECODO_COMMON_COUNTRIES =
|
|
28
|
-
exports.DECODO_EUROPEAN_COUNTRIES =
|
|
29
|
-
exports.DECODO_ASIAN_COUNTRIES =
|
|
30
|
-
exports.DECODO_US_STATES =
|
|
31
|
-
exports.DECODO_COMMON_CITIES =
|
|
32
|
-
exports.getRandomDecodoDeviceType =
|
|
33
|
-
exports.getRandomDecodoLocale =
|
|
34
|
-
exports.getRandomDecodoCountry =
|
|
35
|
-
exports.getRandomDecodoCity =
|
|
36
|
-
exports.generateDecodoSessionId =
|
|
1
|
+
const _mod_5rfty9 = require('./crawler.cjs');
|
|
2
|
+
exports.Crawler = _mod_5rfty9.Crawler;;
|
|
3
|
+
const _mod_q2p8s0 = require('./crawler-options.cjs');
|
|
4
|
+
exports.CrawlerOptions = _mod_q2p8s0.CrawlerOptions;;
|
|
5
|
+
const _mod_7r8b7r = require('../cache/file-cacher.cjs');
|
|
6
|
+
exports.FileCacher = _mod_7r8b7r.FileCacher;;
|
|
7
|
+
const _mod_sftl5f = require('../cache/url-store.cjs');
|
|
8
|
+
exports.UrlStore = _mod_sftl5f.UrlStore;;
|
|
9
|
+
const _mod_unhfzc = require('./addon/oxylabs/index.cjs');
|
|
10
|
+
exports.Oxylabs = _mod_unhfzc.Oxylabs;;
|
|
11
|
+
const _mod_rvlmj1 = require('./addon/oxylabs/options.cjs');
|
|
12
|
+
exports.OXYLABS_BROWSER_TYPES = _mod_rvlmj1.OXYLABS_BROWSER_TYPES;
|
|
13
|
+
exports.OXYLABS_COMMON_LOCALES = _mod_rvlmj1.OXYLABS_COMMON_LOCALES;
|
|
14
|
+
exports.OXYLABS_COMMON_GEO_LOCATIONS = _mod_rvlmj1.OXYLABS_COMMON_GEO_LOCATIONS;
|
|
15
|
+
exports.OXYLABS_US_STATES = _mod_rvlmj1.OXYLABS_US_STATES;
|
|
16
|
+
exports.OXYLABS_EUROPEAN_COUNTRIES = _mod_rvlmj1.OXYLABS_EUROPEAN_COUNTRIES;
|
|
17
|
+
exports.OXYLABS_ASIAN_COUNTRIES = _mod_rvlmj1.OXYLABS_ASIAN_COUNTRIES;
|
|
18
|
+
exports.getRandomOxylabsBrowserType = _mod_rvlmj1.getRandomBrowserType;
|
|
19
|
+
exports.getRandomOxylabsLocale = _mod_rvlmj1.getRandomLocale;
|
|
20
|
+
exports.getRandomOxylabsGeoLocation = _mod_rvlmj1.getRandomGeoLocation;;
|
|
21
|
+
const _mod_ue1bzq = require('./addon/decodo/index.cjs');
|
|
22
|
+
exports.Decodo = _mod_ue1bzq.Decodo;;
|
|
23
|
+
const _mod_897fd1 = require('./addon/decodo/options.cjs');
|
|
24
|
+
exports.DECODO_DEVICE_TYPES = _mod_897fd1.DECODO_DEVICE_TYPES;
|
|
25
|
+
exports.DECODO_HEADLESS_MODES = _mod_897fd1.DECODO_HEADLESS_MODES;
|
|
26
|
+
exports.DECODO_COMMON_LOCALES = _mod_897fd1.DECODO_COMMON_LOCALES;
|
|
27
|
+
exports.DECODO_COMMON_COUNTRIES = _mod_897fd1.DECODO_COMMON_COUNTRIES;
|
|
28
|
+
exports.DECODO_EUROPEAN_COUNTRIES = _mod_897fd1.DECODO_EUROPEAN_COUNTRIES;
|
|
29
|
+
exports.DECODO_ASIAN_COUNTRIES = _mod_897fd1.DECODO_ASIAN_COUNTRIES;
|
|
30
|
+
exports.DECODO_US_STATES = _mod_897fd1.DECODO_US_STATES;
|
|
31
|
+
exports.DECODO_COMMON_CITIES = _mod_897fd1.DECODO_COMMON_CITIES;
|
|
32
|
+
exports.getRandomDecodoDeviceType = _mod_897fd1.getRandomDeviceType;
|
|
33
|
+
exports.getRandomDecodoLocale = _mod_897fd1.getRandomLocale;
|
|
34
|
+
exports.getRandomDecodoCountry = _mod_897fd1.getRandomCountry;
|
|
35
|
+
exports.getRandomDecodoCity = _mod_897fd1.getRandomCity;
|
|
36
|
+
exports.generateDecodoSessionId = _mod_897fd1.generateSessionId;;
|
package/dist/proxy/index.cjs
CHANGED
|
@@ -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
|
|
5
|
-
exports.ProxyManager =
|
|
4
|
+
const _mod_xspbrb = require('./manager.cjs');
|
|
5
|
+
exports.ProxyManager = _mod_xspbrb.ProxyManager;;
|
|
6
6
|
function createOptions(uri, opts) {
|
|
7
7
|
if (uri instanceof URL || typeof uri === "string") {
|
|
8
8
|
return {
|
package/dist/queue/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const
|
|
2
|
-
exports.RezoQueue =
|
|
3
|
-
const
|
|
4
|
-
exports.HttpQueue =
|
|
5
|
-
exports.extractDomain =
|
|
6
|
-
const
|
|
7
|
-
exports.Priority =
|
|
8
|
-
exports.HttpMethodPriority =
|
|
1
|
+
const _mod_gkacib = require('./queue.cjs');
|
|
2
|
+
exports.RezoQueue = _mod_gkacib.RezoQueue;;
|
|
3
|
+
const _mod_3w4xq6 = require('./http-queue.cjs');
|
|
4
|
+
exports.HttpQueue = _mod_3w4xq6.HttpQueue;
|
|
5
|
+
exports.extractDomain = _mod_3w4xq6.extractDomain;;
|
|
6
|
+
const _mod_5dkbxw = require('./types.cjs');
|
|
7
|
+
exports.Priority = _mod_5dkbxw.Priority;
|
|
8
|
+
exports.HttpMethodPriority = _mod_5dkbxw.HttpMethodPriority;;
|
package/dist/utils/cookies.cjs
CHANGED
|
@@ -156,6 +156,45 @@ class RezoCookieJar extends TouchCookieJar {
|
|
|
156
156
|
toSerializedCookies() {
|
|
157
157
|
return this.cookies().serialized;
|
|
158
158
|
}
|
|
159
|
+
getCookiesForRequest(requestUrl) {
|
|
160
|
+
try {
|
|
161
|
+
const url = typeof requestUrl === "string" ? new URL(requestUrl) : requestUrl;
|
|
162
|
+
const fullUrl = url.href;
|
|
163
|
+
const cookies = this.getCookiesSync(fullUrl);
|
|
164
|
+
return cookies.map((c) => new Cookie(c));
|
|
165
|
+
} catch (e) {
|
|
166
|
+
return this.cookies().array;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
getCookieHeader(requestUrl) {
|
|
170
|
+
try {
|
|
171
|
+
const url = typeof requestUrl === "string" ? new URL(requestUrl) : requestUrl;
|
|
172
|
+
const fullUrl = url.href;
|
|
173
|
+
return this.getCookieStringSync(fullUrl);
|
|
174
|
+
} catch (e) {
|
|
175
|
+
return "";
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
debugCookiesForRequest(requestUrl) {
|
|
179
|
+
const url = typeof requestUrl === "string" ? requestUrl : requestUrl.href;
|
|
180
|
+
const matching = this.getCookiesForRequest(requestUrl);
|
|
181
|
+
const all = this.cookies().array;
|
|
182
|
+
return {
|
|
183
|
+
url,
|
|
184
|
+
matchingCookies: matching.map((c) => ({
|
|
185
|
+
key: c.key,
|
|
186
|
+
value: c.value,
|
|
187
|
+
domain: c.domain || "",
|
|
188
|
+
path: c.path || "/"
|
|
189
|
+
})),
|
|
190
|
+
cookieHeader: this.getCookieHeader(requestUrl),
|
|
191
|
+
allCookies: all.map((c) => ({
|
|
192
|
+
key: c.key,
|
|
193
|
+
domain: c.domain || "",
|
|
194
|
+
path: c.path || "/"
|
|
195
|
+
}))
|
|
196
|
+
};
|
|
197
|
+
}
|
|
159
198
|
setCookiesSync(cookiesData, url) {
|
|
160
199
|
const cookies = [];
|
|
161
200
|
if (Array.isArray(cookiesData)) {
|
package/dist/utils/cookies.js
CHANGED
|
@@ -156,6 +156,45 @@ export class RezoCookieJar extends TouchCookieJar {
|
|
|
156
156
|
toSerializedCookies() {
|
|
157
157
|
return this.cookies().serialized;
|
|
158
158
|
}
|
|
159
|
+
getCookiesForRequest(requestUrl) {
|
|
160
|
+
try {
|
|
161
|
+
const url = typeof requestUrl === "string" ? new URL(requestUrl) : requestUrl;
|
|
162
|
+
const fullUrl = url.href;
|
|
163
|
+
const cookies = this.getCookiesSync(fullUrl);
|
|
164
|
+
return cookies.map((c) => new Cookie(c));
|
|
165
|
+
} catch (e) {
|
|
166
|
+
return this.cookies().array;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
getCookieHeader(requestUrl) {
|
|
170
|
+
try {
|
|
171
|
+
const url = typeof requestUrl === "string" ? new URL(requestUrl) : requestUrl;
|
|
172
|
+
const fullUrl = url.href;
|
|
173
|
+
return this.getCookieStringSync(fullUrl);
|
|
174
|
+
} catch (e) {
|
|
175
|
+
return "";
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
debugCookiesForRequest(requestUrl) {
|
|
179
|
+
const url = typeof requestUrl === "string" ? requestUrl : requestUrl.href;
|
|
180
|
+
const matching = this.getCookiesForRequest(requestUrl);
|
|
181
|
+
const all = this.cookies().array;
|
|
182
|
+
return {
|
|
183
|
+
url,
|
|
184
|
+
matchingCookies: matching.map((c) => ({
|
|
185
|
+
key: c.key,
|
|
186
|
+
value: c.value,
|
|
187
|
+
domain: c.domain || "",
|
|
188
|
+
path: c.path || "/"
|
|
189
|
+
})),
|
|
190
|
+
cookieHeader: this.getCookieHeader(requestUrl),
|
|
191
|
+
allCookies: all.map((c) => ({
|
|
192
|
+
key: c.key,
|
|
193
|
+
domain: c.domain || "",
|
|
194
|
+
path: c.path || "/"
|
|
195
|
+
}))
|
|
196
|
+
};
|
|
197
|
+
}
|
|
159
198
|
setCookiesSync(cookiesData, url) {
|
|
160
199
|
const cookies = [];
|
|
161
200
|
if (Array.isArray(cookiesData)) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { RezoCookieJar } = require('./cookies.cjs');
|
|
2
2
|
const RezoFormData = require('./form-data.cjs');
|
|
3
3
|
const { RezoHeaders } = require('./headers.cjs');
|
|
4
4
|
const { RezoURLSearchParams } = require('./data-operations.cjs');
|
|
@@ -268,11 +268,23 @@ function prepareHTTPOptions(options, jar, addedOptions, config) {
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
const resolvedUrl = fetchOptions.url || options.url;
|
|
271
|
-
|
|
271
|
+
let cookieUrl;
|
|
272
|
+
if (resolvedUrl instanceof URL) {
|
|
273
|
+
cookieUrl = resolvedUrl.href;
|
|
274
|
+
} else if (typeof resolvedUrl === "string") {
|
|
275
|
+
try {
|
|
276
|
+
const parsed = new URL(resolvedUrl);
|
|
277
|
+
cookieUrl = parsed.href;
|
|
278
|
+
} catch {
|
|
279
|
+
cookieUrl = resolvedUrl;
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
cookieUrl = String(resolvedUrl);
|
|
283
|
+
}
|
|
272
284
|
let cookiesString = "";
|
|
273
285
|
if (config.useCookies) {
|
|
274
|
-
requestCookies = cookieJar.
|
|
275
|
-
cookiesString = cookieJar.
|
|
286
|
+
requestCookies = cookieJar.getCookiesForRequest(cookieUrl);
|
|
287
|
+
cookiesString = cookieJar.getCookieHeader(cookieUrl);
|
|
276
288
|
}
|
|
277
289
|
if (options.xsrfCookieName && options.xsrfHeaderName && requestCookies.length > 0) {
|
|
278
290
|
const xsrfCookie = requestCookies.find((c) => c.key === options.xsrfCookieName);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RezoCookieJar } from './cookies.js';
|
|
2
2
|
import RezoFormData from './form-data.js';
|
|
3
3
|
import { RezoHeaders } from './headers.js';
|
|
4
4
|
import { RezoURLSearchParams } from './data-operations.js';
|
|
@@ -268,11 +268,23 @@ export function prepareHTTPOptions(options, jar, addedOptions, config) {
|
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
const resolvedUrl = fetchOptions.url || options.url;
|
|
271
|
-
|
|
271
|
+
let cookieUrl;
|
|
272
|
+
if (resolvedUrl instanceof URL) {
|
|
273
|
+
cookieUrl = resolvedUrl.href;
|
|
274
|
+
} else if (typeof resolvedUrl === "string") {
|
|
275
|
+
try {
|
|
276
|
+
const parsed = new URL(resolvedUrl);
|
|
277
|
+
cookieUrl = parsed.href;
|
|
278
|
+
} catch {
|
|
279
|
+
cookieUrl = resolvedUrl;
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
cookieUrl = String(resolvedUrl);
|
|
283
|
+
}
|
|
272
284
|
let cookiesString = "";
|
|
273
285
|
if (config.useCookies) {
|
|
274
|
-
requestCookies = cookieJar.
|
|
275
|
-
cookiesString = cookieJar.
|
|
286
|
+
requestCookies = cookieJar.getCookiesForRequest(cookieUrl);
|
|
287
|
+
cookiesString = cookieJar.getCookieHeader(cookieUrl);
|
|
276
288
|
}
|
|
277
289
|
if (options.xsrfCookieName && options.xsrfHeaderName && requestCookies.length > 0) {
|
|
278
290
|
const xsrfCookie = requestCookies.find((c) => c.key === options.xsrfCookieName);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rezo",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.27",
|
|
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",
|