@emircansahin/ghostfetch 0.1.2 → 0.2.1
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/README.md +109 -112
- package/dist/cjs/client.js +68 -11
- package/dist/cjs/client.js.map +1 -1
- package/dist/esm/client.js +68 -11
- package/dist/types/client.d.ts +4 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +53 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -6,16 +6,11 @@ Built for backend developers who need to fetch data from sites that aggressively
|
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- **CycleTLS** — TLS fingerprint spoofing (
|
|
10
|
-
- **Proxy rotation** — random proxy selection
|
|
11
|
-
- **Smart
|
|
12
|
-
- **Proxy banning** — auto-ban failing proxies with configurable TTL
|
|
13
|
-
- **Custom interceptors** — per-site response handling (`retry`, `ban`, `skip`)
|
|
14
|
-
- **Default status handling** — 429/503 auto-retry, 407 proxy ban
|
|
9
|
+
- **CycleTLS** — TLS fingerprint spoofing (JA3, JA4R, HTTP/2, QUIC)
|
|
10
|
+
- **Proxy rotation** — random proxy selection with health check, banning, and country filtering
|
|
11
|
+
- **Smart retry** — auto-retry on 429/503, custom interceptors for per-site logic
|
|
15
12
|
- **Cloudflare detection** — JS challenge detection with descriptive errors
|
|
16
|
-
- **
|
|
17
|
-
- **forceProxy mode** — wait for available proxy instead of proceeding without one
|
|
18
|
-
- **Health check on init** — dead proxies are discarded before any request
|
|
13
|
+
- **Protocol control** — force HTTP/1.1 or HTTP/3, disable redirects, header ordering
|
|
19
14
|
|
|
20
15
|
## Install
|
|
21
16
|
|
|
@@ -36,164 +31,169 @@ const client = new GhostFetch({
|
|
|
36
31
|
'http://user:pass@host:8002',
|
|
37
32
|
],
|
|
38
33
|
timeout: 30000,
|
|
39
|
-
retry: { delays: [5000, 15000, 30000] },
|
|
34
|
+
retry: { delays: [5000, 15000, 30000] },
|
|
40
35
|
ban: { maxFailures: 3, duration: 60 * 60 * 1000 },
|
|
41
36
|
// ban: false — disable proxy banning entirely
|
|
42
37
|
});
|
|
43
38
|
|
|
44
|
-
// Wait for health check to complete
|
|
45
39
|
const health = await client.ready();
|
|
46
|
-
console.log(health);
|
|
47
40
|
// { total: 2, healthy: 2, dead: 0, countries: { US: 1, DE: 1 }, proxies: { ... } }
|
|
48
41
|
|
|
49
|
-
// Make requests
|
|
50
42
|
const res = await client.get('https://api.example.com/data');
|
|
51
43
|
console.log(res.status, res.body);
|
|
52
44
|
```
|
|
53
45
|
|
|
54
|
-
##
|
|
46
|
+
## TLS Fingerprinting & Advanced Options
|
|
55
47
|
|
|
56
|
-
|
|
48
|
+
All fingerprint options are **config-level only** — they define the client identity and apply to every request. Other options can be set at config level (default) and overridden per-request.
|
|
57
49
|
|
|
58
|
-
|
|
50
|
+
**Getting your fingerprint:** Open your browser and visit [`https://tls.peet.ws/api/all`](https://tls.peet.ws/api/all). The JSON response contains everything you need:
|
|
59
51
|
|
|
60
|
-
|
|
52
|
+
| peet.ws field | GhostFetch option |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `tls.ja3` | `ja3` |
|
|
55
|
+
| `tls.ja4_r` | `ja4r` |
|
|
56
|
+
| `http2.akamai_fingerprint` | `http2Fingerprint` |
|
|
57
|
+
| `user_agent` | `userAgent` |
|
|
58
|
+
| `http2.sent_frames[2].headers` | `headerOrder` (exclude pseudo-headers like `:method`, `:path`) |
|
|
61
59
|
|
|
62
60
|
```ts
|
|
61
|
+
const client = new GhostFetch({
|
|
62
|
+
// Copy these from tls.peet.ws (use the same browser for all values)
|
|
63
|
+
ja3: '771,4865-4866-4867-...',
|
|
64
|
+
ja4r: 't13d1516h2_002f,0035,...',
|
|
65
|
+
http2Fingerprint: '1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p',
|
|
66
|
+
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...',
|
|
67
|
+
headerOrder: ['upgrade-insecure-requests', 'user-agent', 'accept', 'accept-encoding', 'accept-language'],
|
|
68
|
+
|
|
69
|
+
// Protocol & behavior (config default, overridable per-request)
|
|
70
|
+
disableRedirect: false,
|
|
71
|
+
insecureSkipVerify: false,
|
|
72
|
+
cookies: { session: 'abc123' },
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// Per-request override
|
|
76
|
+
await client.get('https://example.com', {
|
|
77
|
+
disableRedirect: true,
|
|
78
|
+
cookies: [{ name: 'token', value: 'xyz', domain: '.example.com' }],
|
|
79
|
+
serverName: 'cdn.example.com',
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
> **Important:** All fingerprint values (`ja3`, `ja4r`, `http2Fingerprint`, `userAgent`) must come from the same browser. Mixing Chrome JA3 with Firefox User-Agent is a common detection vector.
|
|
84
|
+
|
|
85
|
+
| Option | Config | Per-request | Default | What it does |
|
|
86
|
+
|--------|:------:|:-----------:|---------|-------------|
|
|
87
|
+
| `ja3` / `ja4r` | yes | — | auto | TLS ClientHello fingerprint |
|
|
88
|
+
| `http2Fingerprint` | yes | — | auto | HTTP/2 SETTINGS frame fingerprint |
|
|
89
|
+
| `quicFingerprint` | yes | — | auto | QUIC transport parameters fingerprint |
|
|
90
|
+
| `disableGrease` | yes | — | `false` | Disable random GREASE values |
|
|
91
|
+
| `headerOrder` | yes | yes | auto | Control header send order |
|
|
92
|
+
| `orderAsProvided` | yes | yes | `false` | Send headers in provided order |
|
|
93
|
+
| `forceHTTP1` / `forceHTTP3` | yes | yes | `false` | Force protocol version |
|
|
94
|
+
| `disableRedirect` | yes | yes | `false` | Return 3xx instead of following |
|
|
95
|
+
| `insecureSkipVerify` | yes | yes | `false` | Skip TLS cert validation |
|
|
96
|
+
| `serverName` | yes | yes | from URL | Override TLS SNI hostname |
|
|
97
|
+
| `cookies` | yes | yes | none | Send cookies (per-request replaces config) |
|
|
98
|
+
|
|
99
|
+
## Request Body
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
// JSON — auto content-type: application/json
|
|
103
|
+
await client.post(url, { body: { key: 'value' } });
|
|
104
|
+
|
|
105
|
+
// Form — auto content-type: application/x-www-form-urlencoded
|
|
106
|
+
await client.post(url, { body: new URLSearchParams({ user: 'foo', pass: 'bar' }) });
|
|
107
|
+
|
|
108
|
+
// Raw string — set content-type yourself
|
|
109
|
+
await client.post(url, { body: '<xml/>', headers: { 'content-type': 'application/xml' } });
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Custom Interceptors
|
|
113
|
+
|
|
114
|
+
Define per-site response handling. Instance-level interceptors match by URL; request-level interceptors apply to that single request and take priority.
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
// Instance-level
|
|
63
118
|
client.addInterceptor({
|
|
64
119
|
name: 'example-api',
|
|
65
120
|
match: (url) => url.includes('example.com'),
|
|
66
121
|
check: (res) => {
|
|
67
|
-
if (res.status === 401) return 'skip'; // don't retry
|
|
68
|
-
if (res.body.includes('rate limit')) return 'retry'; // retry
|
|
69
|
-
if (res.body.includes('blocked')) return 'ban'; //
|
|
70
|
-
return null; //
|
|
122
|
+
if (res.status === 401) return 'skip'; // don't retry
|
|
123
|
+
if (res.body.includes('rate limit')) return 'retry'; // retry, proxy is fine
|
|
124
|
+
if (res.body.includes('blocked')) return 'ban'; // retry + penalize proxy
|
|
125
|
+
return null; // default behavior
|
|
71
126
|
},
|
|
72
127
|
});
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Request-level interceptor
|
|
76
|
-
|
|
77
|
-
No `match` needed — it applies to this specific request. Takes priority over instance-level interceptors.
|
|
78
128
|
|
|
79
|
-
|
|
80
|
-
|
|
129
|
+
// Request-level (no match needed, takes priority)
|
|
130
|
+
await client.get('https://special-api.com/data', {
|
|
81
131
|
interceptor: {
|
|
82
|
-
check: (res) =>
|
|
83
|
-
if (res.status === 401) return 'skip';
|
|
84
|
-
if (res.status === 200 && res.body.includes('error')) return 'retry';
|
|
85
|
-
return null;
|
|
86
|
-
},
|
|
132
|
+
check: (res) => res.status === 401 ? 'skip' : null,
|
|
87
133
|
},
|
|
88
134
|
});
|
|
89
135
|
```
|
|
90
136
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
### Actions
|
|
137
|
+
| Action | Proxy effect | Retry? |
|
|
138
|
+
|--------|-------------|--------|
|
|
139
|
+
| `'retry'` | not penalized | yes |
|
|
140
|
+
| `'ban'` | fail count +1 | yes |
|
|
141
|
+
| `'skip'` | not penalized | no, returns response |
|
|
142
|
+
| `null` | — | falls through to defaults |
|
|
98
143
|
|
|
99
|
-
|
|
100
|
-
|--------|-------------|-------|----------------|
|
|
101
|
-
| `'retry'` | not penalized | yes | yes |
|
|
102
|
-
| `'ban'` | fail count +1 | yes | yes |
|
|
103
|
-
| `'skip'` | not penalized | no, return response | yes |
|
|
104
|
-
| `null` | — | — | no, defaults apply |
|
|
144
|
+
## Proxy Options
|
|
105
145
|
|
|
106
|
-
|
|
146
|
+
### Country selection
|
|
107
147
|
|
|
108
|
-
|
|
148
|
+
Proxies are auto-resolved via ipinfo.io on init. Request a specific country:
|
|
109
149
|
|
|
110
150
|
```ts
|
|
111
|
-
|
|
112
|
-
const res = await client.get('https://eu-only-api.com/data', {
|
|
113
|
-
country: 'DE',
|
|
114
|
-
});
|
|
151
|
+
const res = await client.get('https://eu-only-api.com/data', { country: 'DE' });
|
|
115
152
|
```
|
|
116
153
|
|
|
117
|
-
|
|
154
|
+
### Force proxy mode
|
|
118
155
|
|
|
119
|
-
By default, if all proxies are banned
|
|
156
|
+
By default, if all proxies are banned, requests proceed without one. Set `forceProxy: true` to wait until a proxy becomes available.
|
|
120
157
|
|
|
121
|
-
|
|
158
|
+
```ts
|
|
159
|
+
const client = new GhostFetch({ proxies: [...], forceProxy: true });
|
|
122
160
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
| Proxies exist but all banned | Waits until a ban expires or `onProxyRefresh` provides fresh proxies |
|
|
161
|
+
// Override per-request
|
|
162
|
+
await client.get('https://public-api.com', { forceProxy: false });
|
|
163
|
+
```
|
|
127
164
|
|
|
128
|
-
|
|
165
|
+
### Proxy refresh
|
|
129
166
|
|
|
130
167
|
```ts
|
|
131
|
-
// Instance default: all requests wait for proxy
|
|
132
168
|
const client = new GhostFetch({
|
|
133
169
|
proxies: [...],
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
// Override per-request: this specific endpoint works without proxy
|
|
138
|
-
const publicData = await client.get('https://public-api.com/data', {
|
|
139
|
-
forceProxy: false,
|
|
170
|
+
proxyRefreshInterval: 60 * 60 * 1000,
|
|
171
|
+
onProxyRefresh: async () => ['http://user:pass@newhost:8001'],
|
|
140
172
|
});
|
|
141
173
|
|
|
142
|
-
// Or
|
|
143
|
-
const protectedData = await client.get('https://protected-api.com/data', {
|
|
144
|
-
forceProxy: true,
|
|
145
|
-
});
|
|
174
|
+
// Or manual: await client.refreshProxies()
|
|
146
175
|
```
|
|
147
176
|
|
|
148
|
-
|
|
177
|
+
### Get available proxies
|
|
149
178
|
|
|
150
|
-
|
|
179
|
+
Retrieve all non-banned proxy URLs. Useful for sharing the proxy pool with other tools (e.g. Puppeteer) while respecting ghostfetch's ban state.
|
|
151
180
|
|
|
152
181
|
```ts
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
ban: false, // no proxy will ever be banned
|
|
156
|
-
});
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
With `ban: false`, failed proxies are never penalized — they stay in rotation regardless of errors. Retry still works, just without proxy exclusion logic.
|
|
160
|
-
|
|
161
|
-
## Proxy Refresh
|
|
182
|
+
// All healthy proxies
|
|
183
|
+
const proxies = client.getAvailableProxies();
|
|
162
184
|
|
|
163
|
-
|
|
185
|
+
// Only US proxies
|
|
186
|
+
const usProxies = client.getAvailableProxies({ country: 'US' });
|
|
187
|
+
```
|
|
164
188
|
|
|
165
|
-
|
|
166
|
-
|--------|----------|
|
|
167
|
-
| `onProxyRefresh` only | No automatic refresh — call `client.refreshProxies()` manually |
|
|
168
|
-
| `onProxyRefresh` + `proxyRefreshInterval` | Auto-refresh at the given interval |
|
|
169
|
-
| Neither | No refresh capability — initial proxy list is used for the lifetime |
|
|
189
|
+
### Disable banning
|
|
170
190
|
|
|
171
191
|
```ts
|
|
172
|
-
|
|
173
|
-
const client = new GhostFetch({
|
|
174
|
-
proxies: [...],
|
|
175
|
-
proxyRefreshInterval: 60 * 60 * 1000,
|
|
176
|
-
onProxyRefresh: async () => {
|
|
177
|
-
return ['http://user:pass@newhost:8001', ...];
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
// Or manual-only: no interval, call when you need it
|
|
182
|
-
const client2 = new GhostFetch({
|
|
183
|
-
proxies: [...],
|
|
184
|
-
onProxyRefresh: async () => fetchFromProvider(),
|
|
185
|
-
});
|
|
186
|
-
await client2.refreshProxies(); // triggers onProxyRefresh → health check → pool updated
|
|
192
|
+
const client = new GhostFetch({ proxies: [...], ban: false });
|
|
187
193
|
```
|
|
188
194
|
|
|
189
195
|
## Error Handling
|
|
190
196
|
|
|
191
|
-
ghostfetch throws specific error classes so you can handle each scenario precisely:
|
|
192
|
-
|
|
193
|
-
- **`CloudflareJSChallengeError`** — the target site requires a browser-level JS challenge that CycleTLS can't solve. You'll need puppeteer-extra with stealth plugin for this.
|
|
194
|
-
- **`NoProxyAvailableError`** — all proxies are banned and `forceProxy` is not enabled, or the proxy list is empty.
|
|
195
|
-
- **`MaxRetriesExceededError`** — all retry attempts failed. Contains `.attempts` count and `.lastError` with the final error details.
|
|
196
|
-
|
|
197
197
|
```ts
|
|
198
198
|
import {
|
|
199
199
|
CloudflareJSChallengeError,
|
|
@@ -207,9 +207,6 @@ try {
|
|
|
207
207
|
if (err instanceof CloudflareJSChallengeError) {
|
|
208
208
|
// Needs headless browser (puppeteer-extra with stealth plugin)
|
|
209
209
|
}
|
|
210
|
-
if (err instanceof NoProxyAvailableError) {
|
|
211
|
-
// All proxies banned or list empty
|
|
212
|
-
}
|
|
213
210
|
if (err instanceof MaxRetriesExceededError) {
|
|
214
211
|
console.log(err.attempts, err.lastError);
|
|
215
212
|
}
|
package/dist/cjs/client.js
CHANGED
|
@@ -103,6 +103,13 @@ class GhostFetch {
|
|
|
103
103
|
bannedProxies: this.proxyManager.banned,
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
+
/** Get all non-banned proxy URLs, optionally filtered by country. */
|
|
107
|
+
getAvailableProxies(opts) {
|
|
108
|
+
const proxies = this.proxyManager.getAvailableProxies();
|
|
109
|
+
if (!opts?.country)
|
|
110
|
+
return proxies;
|
|
111
|
+
return proxies.filter((p) => this.proxyManager.getCountry(p) === opts.country.toUpperCase());
|
|
112
|
+
}
|
|
106
113
|
// --- HTTP methods ---
|
|
107
114
|
async get(url, options) {
|
|
108
115
|
return this.request('GET', url, options);
|
|
@@ -303,22 +310,60 @@ class GhostFetch {
|
|
|
303
310
|
const cycleTLSOptions = {
|
|
304
311
|
headers,
|
|
305
312
|
timeout,
|
|
306
|
-
disableRedirect: false,
|
|
313
|
+
disableRedirect: options?.disableRedirect ?? this.config.disableRedirect ?? false,
|
|
307
314
|
};
|
|
308
315
|
if (proxy) {
|
|
309
316
|
cycleTLSOptions.proxy = proxy;
|
|
310
317
|
}
|
|
311
|
-
|
|
318
|
+
// Client identity fingerprints (config-only)
|
|
319
|
+
if (this.config.ja3)
|
|
312
320
|
cycleTLSOptions.ja3 = this.config.ja3;
|
|
313
|
-
|
|
314
|
-
if (this.config.userAgent) {
|
|
321
|
+
if (this.config.userAgent)
|
|
315
322
|
cycleTLSOptions.userAgent = this.config.userAgent;
|
|
316
|
-
|
|
323
|
+
if (this.config.ja4r)
|
|
324
|
+
cycleTLSOptions.ja4r = this.config.ja4r;
|
|
325
|
+
if (this.config.http2Fingerprint)
|
|
326
|
+
cycleTLSOptions.http2Fingerprint = this.config.http2Fingerprint;
|
|
327
|
+
if (this.config.quicFingerprint)
|
|
328
|
+
cycleTLSOptions.quicFingerprint = this.config.quicFingerprint;
|
|
329
|
+
if (this.config.disableGrease != null)
|
|
330
|
+
cycleTLSOptions.disableGrease = this.config.disableGrease;
|
|
331
|
+
// Per-request overrides (request > config)
|
|
332
|
+
const headerOrder = options?.headerOrder ?? this.config.headerOrder;
|
|
333
|
+
if (headerOrder)
|
|
334
|
+
cycleTLSOptions.headerOrder = headerOrder;
|
|
335
|
+
const orderAsProvided = options?.orderAsProvided ?? this.config.orderAsProvided;
|
|
336
|
+
if (orderAsProvided != null)
|
|
337
|
+
cycleTLSOptions.orderAsProvided = orderAsProvided;
|
|
338
|
+
const insecureSkipVerify = options?.insecureSkipVerify ?? this.config.insecureSkipVerify;
|
|
339
|
+
if (insecureSkipVerify != null)
|
|
340
|
+
cycleTLSOptions.insecureSkipVerify = insecureSkipVerify;
|
|
341
|
+
const forceHTTP1 = options?.forceHTTP1 ?? this.config.forceHTTP1;
|
|
342
|
+
if (forceHTTP1 != null)
|
|
343
|
+
cycleTLSOptions.forceHTTP1 = forceHTTP1;
|
|
344
|
+
const forceHTTP3 = options?.forceHTTP3 ?? this.config.forceHTTP3;
|
|
345
|
+
if (forceHTTP3 != null)
|
|
346
|
+
cycleTLSOptions.forceHTTP3 = forceHTTP3;
|
|
347
|
+
const serverName = options?.serverName ?? this.config.serverName;
|
|
348
|
+
if (serverName)
|
|
349
|
+
cycleTLSOptions.serverName = serverName;
|
|
350
|
+
const cookies = options?.cookies ?? this.config.cookies;
|
|
351
|
+
if (cookies)
|
|
352
|
+
cycleTLSOptions.cookies = cookies;
|
|
353
|
+
// Body handling
|
|
317
354
|
if (options?.body) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
355
|
+
if (options.body instanceof URLSearchParams) {
|
|
356
|
+
cycleTLSOptions.body = options.body;
|
|
357
|
+
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
358
|
+
if (!hasContentType) {
|
|
359
|
+
headers['content-type'] = 'application/x-www-form-urlencoded';
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
else if (typeof options.body === 'string') {
|
|
363
|
+
cycleTLSOptions.body = options.body;
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
cycleTLSOptions.body = JSON.stringify(options.body);
|
|
322
367
|
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
323
368
|
if (!hasContentType) {
|
|
324
369
|
headers['content-type'] = 'application/json';
|
|
@@ -326,7 +371,7 @@ class GhostFetch {
|
|
|
326
371
|
}
|
|
327
372
|
}
|
|
328
373
|
const response = await client(url, cycleTLSOptions, method.toLowerCase());
|
|
329
|
-
const body =
|
|
374
|
+
const body = decodeResponseData(response.data);
|
|
330
375
|
return {
|
|
331
376
|
status: response.status,
|
|
332
377
|
headers: (response.headers ?? {}),
|
|
@@ -357,7 +402,8 @@ class GhostFetch {
|
|
|
357
402
|
}
|
|
358
403
|
try {
|
|
359
404
|
const res = await client('https://ipinfo.io/json', { proxy, timeout: 10000, headers: {} }, 'get');
|
|
360
|
-
const
|
|
405
|
+
const decoded = decodeResponseData(res.data);
|
|
406
|
+
const data = decoded ? JSON.parse(decoded) : {};
|
|
361
407
|
const country = data.country ?? null;
|
|
362
408
|
if (country) {
|
|
363
409
|
countryEntries.push([proxy, country]);
|
|
@@ -410,4 +456,15 @@ exports.GhostFetch = GhostFetch;
|
|
|
410
456
|
function sleep(ms) {
|
|
411
457
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
412
458
|
}
|
|
459
|
+
/** Decode CycleTLS v2 response data — v2 returns native Buffer objects. */
|
|
460
|
+
function decodeResponseData(data) {
|
|
461
|
+
if (data == null)
|
|
462
|
+
return '';
|
|
463
|
+
if (Buffer.isBuffer(data)) {
|
|
464
|
+
return data.length === 0 ? '' : data.toString('utf-8');
|
|
465
|
+
}
|
|
466
|
+
if (typeof data === 'string')
|
|
467
|
+
return data;
|
|
468
|
+
return JSON.stringify(data);
|
|
469
|
+
}
|
|
413
470
|
//# sourceMappingURL=client.js.map
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgF;AAChF,mDAA+C;AAC/C,6CAAgH;AAChH,qCAA8H;AAW9H,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1C,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB;AAEvE,MAAa,UAAU;IAWrB,YAAY,SAA2B,EAAE;QAVjC,aAAQ,GAA0B,IAAI,CAAC;QACvC,gBAAW,GAAyB,IAAI,CAAC;QAEzC,iBAAY,GAAkB,EAAE,CAAC;QAGjC,iBAAY,GAA0C,IAAI,CAAC;QAC3D,eAAU,GAAG,KAAK,CAAC;QACnB,uBAAkB,GAAsC,IAAI,CAAC;QAGnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,6DAA6D;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;QAExE,gDAAgD;QAChD,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9E,+EAA+E;gBAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACjH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,+EAA+E;QAC/E,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACzD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,yCAAyC;IACjC,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAA,kBAAY,GAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC,QAAS,CAAC;IACxB,CAAC;IAED,iEAAiE;IACjE,cAAc,CAAC,WAAwB;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,qCAAqC;IACrC,iBAAiB,CAAC,IAAY;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO;QACxC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,gCAAgC;QAE7D,gEAAgE;QAChE,IAAI,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAE3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACnD,mDAAmD;YACnD,uEAAuE;YACvE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,KAAK;QACP,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;YACrC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;YAC7C,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;SACxC,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,mBAAmB,CAAC,IAA2B;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAQ,CAAC,WAAW,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,OAAwB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAwB;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,GAAW,EAAE,OAAwB;QACrE,uDAAuD;QACvD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,cAAc,CAAC;QACrF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B;QACjE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC;QAC1E,IAAI,SAAS,GAAkC,IAAI,CAAC;QACpD,IAAI,eAAe,GAA8B,IAAI,CAAC;QAEtD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,2CAA2C;YAC3C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,eAAe;YACf,MAAM,KAAK,GAAkB,OAAO,EAAE,KAAK,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnH,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAExE,oDAAoD;gBACpD,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACtD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACnF,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAAC,OAAO,QAAQ,CAAC;wBAAC,CAAC;wBAC7C,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;wBACzB,eAAe,GAAG,KAAK,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,+CAA+C;gBACjD,CAAC;gBAED,oEAAoE;gBACpE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,8BAAiB,EAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAElG,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACzC,IAAI,KAAK;4BAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAClD,OAAO,QAAQ,CAAC;oBAClB,CAAC;oBAED,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACrG,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAAC,OAAO,QAAQ,CAAC;oBAAC,CAAC;oBAC7C,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;oBACzB,eAAe,GAAG,KAAK,CAAC;oBACxB,SAAS;gBACX,CAAC;gBAED,6EAA6E;gBAC7E,IAAI,IAAA,kCAAqB,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,mCAA0B,CAAC,GAAG,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;gBAChE,CAAC;gBAED,2EAA2E;gBAC3E,MAAM,YAAY,GAAG,IAAA,oCAAuB,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,KAAK,EAAE,CAAC;wBACV,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;4BAC7B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBACzC,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;oBACD,SAAS,GAAG,IAAI,+BAAsB,CAAC;wBACrC,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE;wBAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,KAAK,EAAE,KAAK,IAAI,SAAS;qBAC1B,CAAC,CAAC;oBACH,eAAe,GAAG,KAAK,CAAC;oBACxB,SAAS;gBACX,CAAC;gBAED,iCAAiC;gBACjC,IAAI,KAAK;oBAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAClD,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,mCAA0B,EAAE,CAAC;oBAChD,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,KAAK,YAAY,8BAAqB,EAAE,CAAC;oBAC3C,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,SAAS,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;gBACvC,MAAM,YAAY,GAAG,KAAK,YAAY,+BAAsB;oBAC1D,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,+BAAsB,CAAC;wBACzB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC/D,KAAK,EAAE,KAAK,IAAI,SAAS;wBACzB,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;gBAEP,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAC1B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACzC,CAAC;yBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAClC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACzC,CAAC;oBACD,2BAA2B;gBAC7B,CAAC;gBAED,SAAS,GAAG,YAAY,CAAC;gBACzB,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,gCAAuB,CAAC,WAAW,EAAE,SAAU,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,SAAS,CACrB,UAAmB,EACnB,OAAuB,EACvB,OAAgB;QAEhB,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,qBAAqB;QACrB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAClC,+BAA+B;YAC/B,IAAI,UAAU;gBAAE,MAAM,IAAI,8BAAqB,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gEAAgE;QAChE,IAAI,UAAU,EAAE,CAAC;YACf,kFAAkF;YAClF,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,8BAAqB,EAAE,CAAC;YACpC,CAAC;YACD,oEAAoE;YACpE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,qCAAqC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6HAA6H;IACrH,uBAAuB,CAC7B,MAAgC,EAChC,IAAY,EACZ,QAA4B,EAC5B,KAAoB;QAEpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,KAAK;gBAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,KAAK;gBAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO;gBACL,KAAK,EAAE,IAAI,+BAAsB,CAAC;oBAChC,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,QAAQ,CAAC,MAAM,GAAG;oBAC/D,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,KAAK,IAAI,SAAS;iBAC1B,CAAC;aACH,CAAC;QACJ,CAAC;QAED,QAAQ;QACR,IAAI,KAAK;YAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,IAAI,+BAAsB,CAAC;gBAChC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,QAAQ,CAAC,MAAM,GAAG;gBACjE,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,KAAK,IAAI,SAAS;aAC1B,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,MAAkB,EAClB,GAAW,EACX,KAAoB,EACpB,OAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC;QAE3E,MAAM,OAAO,GAA2B;YACtC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;YACtB,GAAG,OAAO,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,eAAe,GAA2B;YAC9C,OAAO;YACP,OAAO;YACP,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK;SAClF,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;YAAE,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAAE,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAClG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/F,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI;YAAE,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAEjG,2CAA2C;QAC3C,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACpE,IAAI,WAAW;YAAE,eAAe,CAAC,WAAW,GAAG,WAAW,CAAC;QAE3D,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAChF,IAAI,eAAe,IAAI,IAAI;YAAE,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC;QAE/E,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACzF,IAAI,kBAAkB,IAAI,IAAI;YAAE,eAAe,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAExF,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjE,IAAI,UAAU,IAAI,IAAI;YAAE,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;QAEhE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjE,IAAI,UAAU,IAAI,IAAI;YAAE,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;QAEhE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACjE,IAAI,UAAU;YAAE,eAAe,CAAC,UAAU,GAAG,UAAU,CAAC;QAExD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACxD,IAAI,OAAO;YAAE,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;QAE/C,gBAAgB;QAChB,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,IAAI,YAAY,eAAe,EAAE,CAAC;gBAC5C,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACpC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,cAAc,CAC1C,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO,CAAC,cAAc,CAAC,GAAG,mCAAmC,CAAC;gBAChE,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,eAAe,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,cAAc,CAC1C,CAAC;gBACF,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAsE,CAAC,CAAC;QAE9I,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAA2B;YAC3D,IAAI;YACJ,GAAG,EAAE,QAAQ,CAAC,QAAQ,IAAI,GAAG;YAC7B,IAAI,EAAE,GAAgB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM;SAC/C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAAiB;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAkC,EAAE,CAAC;QACvD,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAuB,EAAE,CAAC;QAE9C,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,CAAC;YAE7D,MAAM,OAAO,CAAC,UAAU,CACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;oBACtE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,MAAM,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC5C,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,wBAAwB,EACxB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EACtC,KAAK,CACN,CAAC;wBAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,MAAM,OAAO,GAAkB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;wBAEpD,IAAI,OAAO,EAAE,CAAC;4BACZ,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;4BACtC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrD,CAAC;wBAED,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;wBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACpB,OAAO;oBACT,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;gBACD,wCAAwC;gBACxC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YACrC,SAAS;YACT,OAAO,EAAE,YAAY;SACtB,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;YACjE,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAxfD,gCAwfC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,2EAA2E;AAC3E,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/esm/client.js
CHANGED
|
@@ -97,6 +97,13 @@ export class GhostFetch {
|
|
|
97
97
|
bannedProxies: this.proxyManager.banned,
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
+
/** Get all non-banned proxy URLs, optionally filtered by country. */
|
|
101
|
+
getAvailableProxies(opts) {
|
|
102
|
+
const proxies = this.proxyManager.getAvailableProxies();
|
|
103
|
+
if (!opts?.country)
|
|
104
|
+
return proxies;
|
|
105
|
+
return proxies.filter((p) => this.proxyManager.getCountry(p) === opts.country.toUpperCase());
|
|
106
|
+
}
|
|
100
107
|
// --- HTTP methods ---
|
|
101
108
|
async get(url, options) {
|
|
102
109
|
return this.request('GET', url, options);
|
|
@@ -297,22 +304,60 @@ export class GhostFetch {
|
|
|
297
304
|
const cycleTLSOptions = {
|
|
298
305
|
headers,
|
|
299
306
|
timeout,
|
|
300
|
-
disableRedirect: false,
|
|
307
|
+
disableRedirect: options?.disableRedirect ?? this.config.disableRedirect ?? false,
|
|
301
308
|
};
|
|
302
309
|
if (proxy) {
|
|
303
310
|
cycleTLSOptions.proxy = proxy;
|
|
304
311
|
}
|
|
305
|
-
|
|
312
|
+
// Client identity fingerprints (config-only)
|
|
313
|
+
if (this.config.ja3)
|
|
306
314
|
cycleTLSOptions.ja3 = this.config.ja3;
|
|
307
|
-
|
|
308
|
-
if (this.config.userAgent) {
|
|
315
|
+
if (this.config.userAgent)
|
|
309
316
|
cycleTLSOptions.userAgent = this.config.userAgent;
|
|
310
|
-
|
|
317
|
+
if (this.config.ja4r)
|
|
318
|
+
cycleTLSOptions.ja4r = this.config.ja4r;
|
|
319
|
+
if (this.config.http2Fingerprint)
|
|
320
|
+
cycleTLSOptions.http2Fingerprint = this.config.http2Fingerprint;
|
|
321
|
+
if (this.config.quicFingerprint)
|
|
322
|
+
cycleTLSOptions.quicFingerprint = this.config.quicFingerprint;
|
|
323
|
+
if (this.config.disableGrease != null)
|
|
324
|
+
cycleTLSOptions.disableGrease = this.config.disableGrease;
|
|
325
|
+
// Per-request overrides (request > config)
|
|
326
|
+
const headerOrder = options?.headerOrder ?? this.config.headerOrder;
|
|
327
|
+
if (headerOrder)
|
|
328
|
+
cycleTLSOptions.headerOrder = headerOrder;
|
|
329
|
+
const orderAsProvided = options?.orderAsProvided ?? this.config.orderAsProvided;
|
|
330
|
+
if (orderAsProvided != null)
|
|
331
|
+
cycleTLSOptions.orderAsProvided = orderAsProvided;
|
|
332
|
+
const insecureSkipVerify = options?.insecureSkipVerify ?? this.config.insecureSkipVerify;
|
|
333
|
+
if (insecureSkipVerify != null)
|
|
334
|
+
cycleTLSOptions.insecureSkipVerify = insecureSkipVerify;
|
|
335
|
+
const forceHTTP1 = options?.forceHTTP1 ?? this.config.forceHTTP1;
|
|
336
|
+
if (forceHTTP1 != null)
|
|
337
|
+
cycleTLSOptions.forceHTTP1 = forceHTTP1;
|
|
338
|
+
const forceHTTP3 = options?.forceHTTP3 ?? this.config.forceHTTP3;
|
|
339
|
+
if (forceHTTP3 != null)
|
|
340
|
+
cycleTLSOptions.forceHTTP3 = forceHTTP3;
|
|
341
|
+
const serverName = options?.serverName ?? this.config.serverName;
|
|
342
|
+
if (serverName)
|
|
343
|
+
cycleTLSOptions.serverName = serverName;
|
|
344
|
+
const cookies = options?.cookies ?? this.config.cookies;
|
|
345
|
+
if (cookies)
|
|
346
|
+
cycleTLSOptions.cookies = cookies;
|
|
347
|
+
// Body handling
|
|
311
348
|
if (options?.body) {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
349
|
+
if (options.body instanceof URLSearchParams) {
|
|
350
|
+
cycleTLSOptions.body = options.body;
|
|
351
|
+
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
352
|
+
if (!hasContentType) {
|
|
353
|
+
headers['content-type'] = 'application/x-www-form-urlencoded';
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
else if (typeof options.body === 'string') {
|
|
357
|
+
cycleTLSOptions.body = options.body;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
cycleTLSOptions.body = JSON.stringify(options.body);
|
|
316
361
|
const hasContentType = Object.keys(headers).some((k) => k.toLowerCase() === 'content-type');
|
|
317
362
|
if (!hasContentType) {
|
|
318
363
|
headers['content-type'] = 'application/json';
|
|
@@ -320,7 +365,7 @@ export class GhostFetch {
|
|
|
320
365
|
}
|
|
321
366
|
}
|
|
322
367
|
const response = await client(url, cycleTLSOptions, method.toLowerCase());
|
|
323
|
-
const body =
|
|
368
|
+
const body = decodeResponseData(response.data);
|
|
324
369
|
return {
|
|
325
370
|
status: response.status,
|
|
326
371
|
headers: (response.headers ?? {}),
|
|
@@ -351,7 +396,8 @@ export class GhostFetch {
|
|
|
351
396
|
}
|
|
352
397
|
try {
|
|
353
398
|
const res = await client('https://ipinfo.io/json', { proxy, timeout: 10000, headers: {} }, 'get');
|
|
354
|
-
const
|
|
399
|
+
const decoded = decodeResponseData(res.data);
|
|
400
|
+
const data = decoded ? JSON.parse(decoded) : {};
|
|
355
401
|
const country = data.country ?? null;
|
|
356
402
|
if (country) {
|
|
357
403
|
countryEntries.push([proxy, country]);
|
|
@@ -403,3 +449,14 @@ export class GhostFetch {
|
|
|
403
449
|
function sleep(ms) {
|
|
404
450
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
405
451
|
}
|
|
452
|
+
/** Decode CycleTLS v2 response data — v2 returns native Buffer objects. */
|
|
453
|
+
function decodeResponseData(data) {
|
|
454
|
+
if (data == null)
|
|
455
|
+
return '';
|
|
456
|
+
if (Buffer.isBuffer(data)) {
|
|
457
|
+
return data.length === 0 ? '' : data.toString('utf-8');
|
|
458
|
+
}
|
|
459
|
+
if (typeof data === 'string')
|
|
460
|
+
return data;
|
|
461
|
+
return JSON.stringify(data);
|
|
462
|
+
}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -39,6 +39,10 @@ export declare class GhostFetch {
|
|
|
39
39
|
availableProxies: number;
|
|
40
40
|
bannedProxies: number;
|
|
41
41
|
};
|
|
42
|
+
/** Get all non-banned proxy URLs, optionally filtered by country. */
|
|
43
|
+
getAvailableProxies(opts?: {
|
|
44
|
+
country?: string;
|
|
45
|
+
}): string[];
|
|
42
46
|
get(url: string, options?: RequestOptions): Promise<GhostFetchResponse>;
|
|
43
47
|
post(url: string, options?: RequestOptions): Promise<GhostFetchResponse>;
|
|
44
48
|
put(url: string, options?: RequestOptions): Promise<GhostFetchResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,cAAc,EAEd,UAAU,EACX,MAAM,SAAS,CAAC;AAQjB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA2C;gBAEzD,MAAM,GAAE,gBAAqB;IAoBzC;;;;;;;;;;;;;OAaG;IACG,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKzC,yCAAyC;YAC3B,YAAY;IAa1B,iEAAiE;IACjE,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C,qCAAqC;IACrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,uEAAuE;IACjE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC,+BAA+B;IAC/B,IAAI,KAAK;;;;MAMR;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,cAAc,EAEd,UAAU,EACX,MAAM,SAAS,CAAC;AAQjB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA2C;gBAEzD,MAAM,GAAE,gBAAqB;IAoBzC;;;;;;;;;;;;;OAaG;IACG,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKzC,yCAAyC;YAC3B,YAAY;IAa1B,iEAAiE;IACjE,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C,qCAAqC;IACrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,uEAAuE;IACjE,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC,+BAA+B;IAC/B,IAAI,KAAK;;;;MAMR;IAED,qEAAqE;IACrE,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAUpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIvE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI1E,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMxE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoHrG;;;;OAIG;YACW,SAAS;IA+BvB,6HAA6H;IAC7H,OAAO,CAAC,uBAAuB;YAqCjB,cAAc;IA0F5B;;;;;OAKG;YACW,kBAAkB;IA8DhC,mEAAmE;IAC7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB/B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { GhostFetch } from './client';
|
|
2
2
|
export { ProxyManager } from './proxy-manager';
|
|
3
3
|
export { GhostFetchRequestError, CloudflareJSChallengeError, NoProxyAvailableError, MaxRetriesExceededError, } from './errors';
|
|
4
|
-
export type { GhostFetchConfig, GhostFetchResponse, GhostFetchError, HealthCheckResult, Interceptor, InterceptorAction, RequestInterceptor, RequestOptions, RetryConfig, BanConfig, ErrorType, HttpMethod, } from './types';
|
|
4
|
+
export type { Cookie, GhostFetchConfig, GhostFetchResponse, GhostFetchError, HealthCheckResult, Interceptor, InterceptorAction, RequestInterceptor, RequestOptions, RetryConfig, BanConfig, ErrorType, HttpMethod, } from './types';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
export interface Cookie {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
path?: string;
|
|
5
|
+
domain?: string;
|
|
6
|
+
expires?: string;
|
|
7
|
+
rawExpires?: string;
|
|
8
|
+
maxAge?: number;
|
|
9
|
+
secure?: boolean;
|
|
10
|
+
httpOnly?: boolean;
|
|
11
|
+
sameSite?: string;
|
|
12
|
+
}
|
|
1
13
|
export interface GhostFetchConfig {
|
|
2
14
|
/** List of proxy URLs in format http://user:pass@host:port */
|
|
3
15
|
proxies?: string[];
|
|
@@ -26,6 +38,30 @@ export interface GhostFetchConfig {
|
|
|
26
38
|
ja3?: string;
|
|
27
39
|
/** User-Agent string (optional — CycleTLS picks a realistic default) */
|
|
28
40
|
userAgent?: string;
|
|
41
|
+
/** JA4R fingerprint string (client identity — applied to all requests) */
|
|
42
|
+
ja4r?: string;
|
|
43
|
+
/** HTTP/2 frame settings fingerprint (client identity — applied to all requests) */
|
|
44
|
+
http2Fingerprint?: string;
|
|
45
|
+
/** QUIC fingerprint (client identity — applied to all requests) */
|
|
46
|
+
quicFingerprint?: string;
|
|
47
|
+
/** Disable GREASE (applied to all requests) */
|
|
48
|
+
disableGrease?: boolean;
|
|
49
|
+
/** Default header order for all requests */
|
|
50
|
+
headerOrder?: string[];
|
|
51
|
+
/** Send headers in the order they are provided */
|
|
52
|
+
orderAsProvided?: boolean;
|
|
53
|
+
/** Disable following redirects (default: false) */
|
|
54
|
+
disableRedirect?: boolean;
|
|
55
|
+
/** Skip TLS certificate verification */
|
|
56
|
+
insecureSkipVerify?: boolean;
|
|
57
|
+
/** Force HTTP/1.1 for all requests */
|
|
58
|
+
forceHTTP1?: boolean;
|
|
59
|
+
/** Force HTTP/3 (QUIC) for all requests */
|
|
60
|
+
forceHTTP3?: boolean;
|
|
61
|
+
/** Override TLS SNI server name */
|
|
62
|
+
serverName?: string;
|
|
63
|
+
/** Default cookies for all requests */
|
|
64
|
+
cookies?: Cookie[] | Record<string, string>;
|
|
29
65
|
}
|
|
30
66
|
export interface RetryConfig {
|
|
31
67
|
/**
|
|
@@ -106,7 +142,7 @@ export interface RequestOptions {
|
|
|
106
142
|
/** Override timeout for this request */
|
|
107
143
|
timeout?: number;
|
|
108
144
|
/** Request body (for POST, PUT, PATCH) */
|
|
109
|
-
body?: string | Record<string, unknown
|
|
145
|
+
body?: string | Record<string, unknown> | URLSearchParams;
|
|
110
146
|
/** Force a specific proxy for this request */
|
|
111
147
|
proxy?: string;
|
|
112
148
|
/** Override retry config for this request */
|
|
@@ -126,6 +162,22 @@ export interface RequestOptions {
|
|
|
126
162
|
* Require a proxy from this country (ISO 3166-1 alpha-2, e.g. 'US', 'DE').
|
|
127
163
|
*/
|
|
128
164
|
country?: string;
|
|
165
|
+
/** Override header order for this request */
|
|
166
|
+
headerOrder?: string[];
|
|
167
|
+
/** Send headers in the order they are provided */
|
|
168
|
+
orderAsProvided?: boolean;
|
|
169
|
+
/** Disable following redirects for this request */
|
|
170
|
+
disableRedirect?: boolean;
|
|
171
|
+
/** Skip TLS certificate verification for this request */
|
|
172
|
+
insecureSkipVerify?: boolean;
|
|
173
|
+
/** Force HTTP/1.1 for this request */
|
|
174
|
+
forceHTTP1?: boolean;
|
|
175
|
+
/** Force HTTP/3 (QUIC) for this request */
|
|
176
|
+
forceHTTP3?: boolean;
|
|
177
|
+
/** Override TLS SNI server name for this request */
|
|
178
|
+
serverName?: string;
|
|
179
|
+
/** Cookies for this request (replaces config-level cookies) */
|
|
180
|
+
cookies?: Cookie[] | Record<string, string>;
|
|
129
181
|
}
|
|
130
182
|
export interface HealthCheckResult {
|
|
131
183
|
/** Total proxies that were tested */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,yEAAyE;IACzE,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;IAEpD,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emircansahin/ghostfetch",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Resilient HTTP client with CycleTLS, proxy rotation, smart error classification, and per-site interceptors",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -16,13 +16,6 @@
|
|
|
16
16
|
"dist",
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "tsc -p tsconfig.esm.json && echo '{\"type\":\"module\"}' > dist/esm/package.json && tsc -p tsconfig.cjs.json",
|
|
21
|
-
"build:esm": "tsc -p tsconfig.esm.json",
|
|
22
|
-
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
23
|
-
"test": "vitest run",
|
|
24
|
-
"test:watch": "vitest"
|
|
25
|
-
},
|
|
26
19
|
"keywords": [
|
|
27
20
|
"fetch",
|
|
28
21
|
"proxy",
|
|
@@ -44,12 +37,19 @@
|
|
|
44
37
|
"author": "Emircan Sahin",
|
|
45
38
|
"license": "MIT",
|
|
46
39
|
"dependencies": {
|
|
47
|
-
"cycletls": "^
|
|
40
|
+
"cycletls": "^2.0.5",
|
|
48
41
|
"form-data": "^4.0.5"
|
|
49
42
|
},
|
|
50
43
|
"devDependencies": {
|
|
51
44
|
"@types/node": "^22.0.0",
|
|
52
45
|
"typescript": "^5.5.0",
|
|
53
46
|
"vitest": "^2.0.0"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc -p tsconfig.esm.json && echo '{\"type\":\"module\"}' > dist/esm/package.json && tsc -p tsconfig.cjs.json",
|
|
50
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
51
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"test:watch": "vitest"
|
|
54
54
|
}
|
|
55
|
-
}
|
|
55
|
+
}
|