proxy-pool-manager 1.0.1 → 1.0.2
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 +203 -25
- package/dist/Request.d.ts +5 -0
- package/dist/Request.d.ts.map +1 -1
- package/dist/index.d.ts +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/proxyManager.d.ts +1 -0
- package/dist/proxyManager.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
## ✨ 特性
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
7
|
+
- 🪶 **轻量级模式**:无需 MongoDB,仅使用请求和队列功能
|
|
8
|
+
- 🔄 **智能代理管理**:支持从 MongoDB 加载代理,自动验证和轮换(可选)
|
|
9
|
+
- 🌐 **HTTP 请求封装**:内置 HTTP 客户端,支持自动代理切换或直接指定代理
|
|
10
|
+
- 📊 **代理健康检查**:自动检测代理可用性,支持自定义检测规则(可选)
|
|
10
11
|
- 🎯 **多种代理策略**:支持顺序、随机、故障转移三种策略
|
|
11
12
|
- 📦 **批量操作**:支持批量插入和管理代理
|
|
12
13
|
- 🔍 **日志系统**:基于 Winston 的完整日志记录
|
|
@@ -21,12 +22,44 @@ npm install proxy-pool-manager
|
|
|
21
22
|
|
|
22
23
|
## 🚀 快速开始
|
|
23
24
|
|
|
24
|
-
###
|
|
25
|
+
### 轻量级模式(推荐,无需 MongoDB)
|
|
26
|
+
|
|
27
|
+
如果你只需要使用 HTTP 请求和队列功能,不需要代理管理,可以使用轻量级模式:
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { createProxyRequest } from 'proxy-pool-manager';
|
|
31
|
+
|
|
32
|
+
// 创建轻量级 SDK 实例(不连接 MongoDB)
|
|
33
|
+
const sdk = await createProxyRequest({
|
|
34
|
+
maxRetries: 3,
|
|
35
|
+
timeout: 30,
|
|
36
|
+
logLevel: 'info'
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// 发送 GET 请求
|
|
40
|
+
const response = await sdk.get('https://api.example.com/data', {
|
|
41
|
+
params: { page: 1 }
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// 在请求中直接指定代理(可选)
|
|
45
|
+
const responseWithProxy = await sdk.post('http://your-api.com/request', {
|
|
46
|
+
url: 'https://api.example.com/data',
|
|
47
|
+
method: 'GET',
|
|
48
|
+
proxy: 'http://proxy.example.com:8080', // 直接指定代理
|
|
49
|
+
timeout: 10
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
console.log(response.data);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 完整模式(包含代理管理功能)
|
|
56
|
+
|
|
57
|
+
如果需要代理管理功能(自动轮换、健康检查等),需要提供 MongoDB 连接:
|
|
25
58
|
|
|
26
59
|
```typescript
|
|
27
60
|
import { createProxyRequest } from 'proxy-pool-manager';
|
|
28
61
|
|
|
29
|
-
//
|
|
62
|
+
// 创建完整 SDK 实例(包含代理管理)
|
|
30
63
|
const sdk = await createProxyRequest({
|
|
31
64
|
mongoUri: 'mongodb://localhost:27017/proxy_db',
|
|
32
65
|
proxyStrategy: 'sequential',
|
|
@@ -38,11 +71,19 @@ const sdk = await createProxyRequest({
|
|
|
38
71
|
}
|
|
39
72
|
});
|
|
40
73
|
|
|
41
|
-
// 发送 GET
|
|
74
|
+
// 发送 GET 请求(自动使用代理管理器选择的代理)
|
|
42
75
|
const response = await sdk.get('https://api.example.com/data', {
|
|
43
76
|
params: { page: 1 }
|
|
44
77
|
});
|
|
45
78
|
|
|
79
|
+
// 或者为特定请求指定代理(优先级高于自动选择)
|
|
80
|
+
const responseWithSpecificProxy = await sdk.post('http://your-api.com/request', {
|
|
81
|
+
url: 'https://api.example.com/data',
|
|
82
|
+
method: 'GET',
|
|
83
|
+
proxy: 'http://specific-proxy.com:8080', // 请求级代理优先
|
|
84
|
+
timeout: 10
|
|
85
|
+
});
|
|
86
|
+
|
|
46
87
|
console.log(response.data);
|
|
47
88
|
```
|
|
48
89
|
|
|
@@ -111,15 +152,17 @@ const customResponse = await sdk.request({
|
|
|
111
152
|
|
|
112
153
|
```typescript
|
|
113
154
|
interface SDKOptions {
|
|
114
|
-
mongoUri
|
|
115
|
-
maxRetries?: number;
|
|
116
|
-
timeout?: number;
|
|
117
|
-
proxyStrategy?: ProxyStrategy;
|
|
118
|
-
logLevel?: LogLevel;
|
|
119
|
-
instanceId?: string;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
155
|
+
mongoUri?: string; // MongoDB 连接 URI(可选,启用代理管理时需要)
|
|
156
|
+
maxRetries?: number; // 最大重试次数,默认 3
|
|
157
|
+
timeout?: number; // 请求超时时间(秒),默认 30
|
|
158
|
+
proxyStrategy?: ProxyStrategy; // 代理策略,默认 'sequential'
|
|
159
|
+
logLevel?: LogLevel; // 日志级别,默认 'info'
|
|
160
|
+
instanceId?: string; // 实例 ID,用于多实例场景
|
|
161
|
+
proxyCheckEnabled?: boolean; // 是否启用代理检查,默认 true
|
|
162
|
+
proxyLimit?: number; // 代理加载限制,0 表示不加载,默认 0
|
|
163
|
+
proxyCheckOptions?: { // 代理检查配置(启用代理管理时需要)
|
|
164
|
+
mainUrl: string; // 代理检查主 URL(启用代理管理时必需)
|
|
165
|
+
testUrls?: string[]; // 额外的测试 URL
|
|
123
166
|
timeout?: number; // 检查超时时间(秒)
|
|
124
167
|
successStatusCodes?: number[]; // 成功状态码列表
|
|
125
168
|
checkInterval?: number; // 检查间隔(毫秒)
|
|
@@ -129,6 +172,13 @@ interface SDKOptions {
|
|
|
129
172
|
}
|
|
130
173
|
```
|
|
131
174
|
|
|
175
|
+
**配置说明:**
|
|
176
|
+
|
|
177
|
+
- **轻量级模式**:不提供 `mongoUri` 和 `proxyCheckOptions`,SDK 将以轻量级模式运行,不连接 MongoDB,不初始化代理管理功能
|
|
178
|
+
- **完整模式**:提供 `mongoUri` 或 `proxyCheckOptions`,SDK 将启用代理管理功能
|
|
179
|
+
- **禁用代理检查**:设置 `proxyCheckEnabled: false` 可禁用代理检查
|
|
180
|
+
- **不加载代理**:设置 `proxyLimit: 0` 可不从数据库加载代理
|
|
181
|
+
|
|
132
182
|
#### 方法
|
|
133
183
|
|
|
134
184
|
##### 请求方法
|
|
@@ -140,7 +190,7 @@ interface SDKOptions {
|
|
|
140
190
|
- `patch<T>(url: string, options?: RequestOptions): Promise<HttpResponse<T>>`
|
|
141
191
|
- `request<T>(config: RequestConfig): Promise<HttpResponse<T>>`
|
|
142
192
|
|
|
143
|
-
#####
|
|
193
|
+
##### 代理管理方法(仅在启用代理管理功能时可用)
|
|
144
194
|
|
|
145
195
|
- `addProxy(proxyUrl: string): Promise<ProxyItem | null>` - 添加代理
|
|
146
196
|
- `deleteProxy(proxyUrl: string): Promise<boolean>` - 删除代理
|
|
@@ -151,6 +201,7 @@ interface SDKOptions {
|
|
|
151
201
|
- `checkProxy(proxy?: string): Promise<boolean>` - 检查代理可用性
|
|
152
202
|
- `triggerProxyCheck(): Promise<void>` - 触发代理检查
|
|
153
203
|
- `getProxyDetails(proxyUrl: string): ProxyItem | undefined` - 获取代理详情
|
|
204
|
+
- `hasProxyManagement(): boolean` - 检查是否启用了代理管理功能
|
|
154
205
|
|
|
155
206
|
##### 批量操作
|
|
156
207
|
|
|
@@ -188,6 +239,75 @@ interface SDKOptions {
|
|
|
188
239
|
|
|
189
240
|
## 🔧 高级用法
|
|
190
241
|
|
|
242
|
+
### 使用场景选择
|
|
243
|
+
|
|
244
|
+
#### 场景 1:仅需要 HTTP 请求功能(推荐轻量级模式)
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
// 不需要代理管理,只需要发送 HTTP 请求
|
|
248
|
+
const sdk = await createProxyRequest({
|
|
249
|
+
maxRetries: 3,
|
|
250
|
+
timeout: 30,
|
|
251
|
+
logLevel: 'info'
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// 直接使用,无需 MongoDB
|
|
255
|
+
const response = await sdk.get('https://api.example.com/data');
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### 场景 2:需要临时使用代理
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
// 轻量级模式 + 直接指定代理
|
|
262
|
+
const sdk = await createProxyRequest({
|
|
263
|
+
maxRetries: 3,
|
|
264
|
+
timeout: 30
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
// 在请求中直接指定代理
|
|
268
|
+
const response = await sdk.post('http://your-api.com/request', {
|
|
269
|
+
url: 'https://api.example.com/data',
|
|
270
|
+
method: 'GET',
|
|
271
|
+
proxy: 'http://proxy.example.com:8080:user:pass' // 直接指定代理
|
|
272
|
+
});
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
#### 场景 3:需要代理管理功能
|
|
276
|
+
|
|
277
|
+
```typescript
|
|
278
|
+
// 完整模式,启用代理管理
|
|
279
|
+
const sdk = await createProxyRequest({
|
|
280
|
+
mongoUri: 'mongodb://localhost:27017/proxy_db',
|
|
281
|
+
proxyCheckOptions: {
|
|
282
|
+
mainUrl: 'http://example.com/check',
|
|
283
|
+
timeout: 10,
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
// 添加代理到管理器
|
|
288
|
+
await sdk.addProxy('proxy1.example.com:8080:user1:pass1');
|
|
289
|
+
|
|
290
|
+
// 自动使用代理管理器选择的代理
|
|
291
|
+
const response = await sdk.get('https://api.example.com/data');
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
#### 场景 4:禁用代理检查,但仍使用代理管理
|
|
295
|
+
|
|
296
|
+
```typescript
|
|
297
|
+
// 使用代理管理,但禁用代理检查
|
|
298
|
+
const sdk = await createProxyRequest({
|
|
299
|
+
mongoUri: 'mongodb://localhost:27017/proxy_db',
|
|
300
|
+
proxyCheckEnabled: false, // 禁用代理检查
|
|
301
|
+
proxyLimit: 0, // 不加载代理
|
|
302
|
+
proxyCheckOptions: {
|
|
303
|
+
mainUrl: 'http://example.com/check', // 仍然需要提供(用于后续启用)
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
// 手动添加代理,不进行自动检查
|
|
308
|
+
await sdk.addProxy('proxy.example.com:8080:user:pass');
|
|
309
|
+
```
|
|
310
|
+
|
|
191
311
|
### 多实例场景
|
|
192
312
|
|
|
193
313
|
```typescript
|
|
@@ -231,15 +351,58 @@ const sdk = await createProxyRequest({
|
|
|
231
351
|
});
|
|
232
352
|
```
|
|
233
353
|
|
|
234
|
-
###
|
|
354
|
+
### 代理使用方式
|
|
355
|
+
|
|
356
|
+
#### 1. 直接指定代理(轻量级模式和完整模式都支持)
|
|
235
357
|
|
|
236
358
|
```typescript
|
|
237
|
-
//
|
|
238
|
-
const response = await sdk.
|
|
239
|
-
|
|
359
|
+
// 为特定请求指定代理(优先级最高)
|
|
360
|
+
const response = await sdk.post('http://your-api.com/request', {
|
|
361
|
+
url: 'https://api.example.com/data',
|
|
362
|
+
method: 'GET',
|
|
363
|
+
proxy: 'http://proxy.example.com:8080:user:pass', // 直接指定代理
|
|
364
|
+
timeout: 10
|
|
240
365
|
});
|
|
241
366
|
```
|
|
242
367
|
|
|
368
|
+
#### 2. 自动使用代理管理器选择的代理(仅完整模式)
|
|
369
|
+
|
|
370
|
+
```typescript
|
|
371
|
+
// 先添加代理到管理器
|
|
372
|
+
await sdk.addProxy('proxy1.example.com:8080:user1:pass1');
|
|
373
|
+
await sdk.addProxy('proxy2.example.com:8080:user2:pass2');
|
|
374
|
+
|
|
375
|
+
// 不指定代理,自动使用代理管理器选择的代理
|
|
376
|
+
const response = await sdk.post('http://your-api.com/request', {
|
|
377
|
+
url: 'https://api.example.com/data',
|
|
378
|
+
method: 'GET',
|
|
379
|
+
// 不指定 proxy,会自动使用 ProxyManager 选择的代理
|
|
380
|
+
timeout: 10
|
|
381
|
+
});
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
#### 3. 代理优先级
|
|
385
|
+
|
|
386
|
+
代理使用遵循以下优先级:
|
|
387
|
+
|
|
388
|
+
1. **请求级代理**(`options.proxy`)- 最高优先级,总是优先使用
|
|
389
|
+
2. **代理管理器自动选择** - 如果启用了代理管理且没有指定请求级代理
|
|
390
|
+
3. **无代理** - 如果都没有,则直接请求(不使用代理)
|
|
391
|
+
|
|
392
|
+
#### 4. 检查代理管理功能状态
|
|
393
|
+
|
|
394
|
+
```typescript
|
|
395
|
+
// 检查是否启用了代理管理功能
|
|
396
|
+
if (sdk.hasProxyManagement()) {
|
|
397
|
+
console.log('代理管理功能已启用');
|
|
398
|
+
// 可以使用代理管理相关方法
|
|
399
|
+
await sdk.addProxy('proxy.example.com:8080');
|
|
400
|
+
} else {
|
|
401
|
+
console.log('轻量级模式,仅支持直接指定代理');
|
|
402
|
+
// 只能通过 options.proxy 指定代理
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
|
|
243
406
|
### 代理统计信息
|
|
244
407
|
|
|
245
408
|
```typescript
|
|
@@ -645,9 +808,24 @@ import type {
|
|
|
645
808
|
|
|
646
809
|
## ⚠️ 注意事项
|
|
647
810
|
|
|
648
|
-
1.
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
811
|
+
1. **轻量级模式 vs 完整模式**:
|
|
812
|
+
- **轻量级模式**:不提供 `mongoUri` 和 `proxyCheckOptions`,不连接 MongoDB,仅使用请求和队列功能
|
|
813
|
+
- **完整模式**:提供 `mongoUri` 或 `proxyCheckOptions`,启用代理管理功能,需要 MongoDB 连接
|
|
814
|
+
|
|
815
|
+
2. **MongoDB 连接**:仅在启用代理管理功能时需要,确保 MongoDB 服务正在运行且连接 URI 正确
|
|
816
|
+
|
|
817
|
+
3. **代理格式**:代理 URL 格式为 `host:port:username:password` 或 `http://host:port:username:password`
|
|
818
|
+
|
|
819
|
+
4. **代理使用**:
|
|
820
|
+
- 轻量级模式下,只能通过 `options.proxy` 直接指定代理
|
|
821
|
+
- 完整模式下,可以自动使用代理管理器选择的代理,也可以直接指定代理(优先级更高)
|
|
822
|
+
|
|
823
|
+
5. **初始化等待**:SDK 初始化是异步的,使用 `waitForReady()` 确保初始化完成
|
|
824
|
+
|
|
825
|
+
6. **资源清理**:使用完毕后调用 `destroy()` 方法清理资源
|
|
826
|
+
|
|
827
|
+
7. **并发限制**:代理检查的并发数可通过 `maxConcurrentChecks` 配置
|
|
653
828
|
|
|
829
|
+
8. **禁用功能**:
|
|
830
|
+
- 设置 `proxyCheckEnabled: false` 可禁用代理检查
|
|
831
|
+
- 设置 `proxyLimit: 0` 可不从数据库加载代理
|
package/dist/Request.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class Request {
|
|
|
5
5
|
private readonly timeout;
|
|
6
6
|
private proxyManager;
|
|
7
7
|
private logLevel;
|
|
8
|
+
private hasProxyManager;
|
|
8
9
|
constructor(options?: RequestInitOptions);
|
|
9
10
|
/**
|
|
10
11
|
* 设置日志等级
|
|
@@ -45,6 +46,10 @@ export declare class Request {
|
|
|
45
46
|
setProxyStrategy(strategy: ProxyStrategy): void;
|
|
46
47
|
checkProxy(proxy?: string): Promise<boolean>;
|
|
47
48
|
getAvailableProxiesList(): string[];
|
|
49
|
+
/**
|
|
50
|
+
* 检查是否启用了代理管理功能
|
|
51
|
+
*/
|
|
52
|
+
hasProxyManagement(): boolean;
|
|
48
53
|
}
|
|
49
54
|
export default Request;
|
|
50
55
|
//# sourceMappingURL=Request.d.ts.map
|
package/dist/Request.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EAEZ,UAAU,EACV,QAAQ,EACT,MAAM,SAAS,CAAC;AAIjB,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../src/Request.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EAEZ,UAAU,EACV,QAAQ,EACT,MAAM,SAAS,CAAC;AAIjB,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,eAAe,CAAkB;gBAG7B,OAAO,GAAE,kBAAuB;IA6B5C;;KAEC;IACM,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAUzC;;OAEG;IACI,WAAW,IAAI,QAAQ;IAS9B;;MAEE;IACF,OAAO,CAAC,GAAG;IAiBX,eAAe;YACD,WAAW;IAkCzB;;OAEG;YACW,oBAAoB;IAuGlC,sBAAsB;IACtB,OAAO,CAAC,iBAAiB;IAMZ,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAed,IAAI,CAAC,CAAC,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQd,GAAG,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQd,MAAM,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQd,KAAK,CAAC,CAAC,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQ3B,aAAa;IACA,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE;QAC9B,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,UAAU,CAAC;QACnB,OAAO,EAAE,cAAc,CAAA;KACxB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAuE5B,mBAAmB;IACnB,OAAO,CAAC,aAAa;IAkBd,eAAe,IAAI,MAAM,GAAG,IAAI;IAO1B,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAO3C,eAAe,IAAI,IAAI;IAOvB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOzC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOlD,uBAAuB,IAAI,MAAM,EAAE;IAO1C;;OAEG;IACI,kBAAkB,IAAI,OAAO;CAGrC;AAED,eAAe,OAAO,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,12 +15,12 @@ export declare class ProxyRequestSDK {
|
|
|
15
15
|
private isInitialized;
|
|
16
16
|
private instanceId;
|
|
17
17
|
constructor(options: {
|
|
18
|
-
mongoUri
|
|
18
|
+
mongoUri?: string;
|
|
19
19
|
maxRetries?: number;
|
|
20
20
|
timeout?: number;
|
|
21
21
|
proxyStrategy?: ProxyStrategy;
|
|
22
22
|
logLevel?: LogLevel;
|
|
23
|
-
proxyCheckOptions
|
|
23
|
+
proxyCheckOptions?: {
|
|
24
24
|
mainUrl: string;
|
|
25
25
|
testUrls?: string[];
|
|
26
26
|
timeout?: number;
|
|
@@ -29,6 +29,7 @@ export declare class ProxyRequestSDK {
|
|
|
29
29
|
maxConsecutiveFails?: number;
|
|
30
30
|
maxResponseTime?: number;
|
|
31
31
|
};
|
|
32
|
+
proxyCheckEnabled?: boolean;
|
|
32
33
|
instanceId?: string;
|
|
33
34
|
});
|
|
34
35
|
/**
|
|
@@ -74,6 +75,10 @@ export declare class ProxyRequestSDK {
|
|
|
74
75
|
setProxyStrategy(strategy: ProxyStrategy): void;
|
|
75
76
|
checkProxy(proxy?: string): Promise<boolean>;
|
|
76
77
|
triggerProxyCheck(): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* 检查是否启用了代理管理功能
|
|
80
|
+
*/
|
|
81
|
+
hasProxyManagement(): boolean;
|
|
77
82
|
bulkInsertProxies(proxyUrls: string[]): Promise<number>;
|
|
78
83
|
getProxyStats(): Promise<{
|
|
79
84
|
total: number;
|
|
@@ -91,14 +96,14 @@ export default ProxyRequestSDK;
|
|
|
91
96
|
* 安全的服务初始化函数,确保正确的初始化顺序
|
|
92
97
|
*/
|
|
93
98
|
export declare function initializeServices(options: {
|
|
94
|
-
mongoUri
|
|
99
|
+
mongoUri?: string;
|
|
95
100
|
proxyLimit?: number;
|
|
96
101
|
maxRetries?: number;
|
|
97
102
|
maxConcurrentChecks?: number;
|
|
98
103
|
timeout?: number;
|
|
99
104
|
proxyStrategy?: ProxyStrategy;
|
|
100
105
|
logLevel?: LogLevel;
|
|
101
|
-
proxyCheckOptions
|
|
106
|
+
proxyCheckOptions?: {
|
|
102
107
|
mainUrl: string;
|
|
103
108
|
testUrls?: string[];
|
|
104
109
|
timeout?: number;
|
|
@@ -107,16 +112,17 @@ export declare function initializeServices(options: {
|
|
|
107
112
|
maxConsecutiveFails?: number;
|
|
108
113
|
maxResponseTime?: number;
|
|
109
114
|
};
|
|
115
|
+
proxyCheckEnabled?: boolean;
|
|
110
116
|
instanceId?: string;
|
|
111
117
|
}): Promise<ProxyRequestSDK>;
|
|
112
118
|
export declare function createProxyRequest(options: {
|
|
113
|
-
mongoUri
|
|
119
|
+
mongoUri?: string;
|
|
114
120
|
maxRetries?: number;
|
|
115
121
|
timeout?: number;
|
|
116
122
|
maxConcurrentChecks?: number;
|
|
117
123
|
proxyStrategy?: ProxyStrategy;
|
|
118
124
|
logLevel?: LogLevel;
|
|
119
|
-
proxyCheckOptions
|
|
125
|
+
proxyCheckOptions?: {
|
|
120
126
|
mainUrl: string;
|
|
121
127
|
testUrls?: string[];
|
|
122
128
|
timeout?: number;
|
|
@@ -125,6 +131,7 @@ export declare function createProxyRequest(options: {
|
|
|
125
131
|
maxConsecutiveFails?: number;
|
|
126
132
|
maxResponseTime?: number;
|
|
127
133
|
};
|
|
134
|
+
proxyCheckEnabled?: boolean;
|
|
128
135
|
instanceId?: string;
|
|
129
136
|
}): Promise<ProxyRequestSDK>;
|
|
130
137
|
export declare function registerCoreServices(options: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,yBAAyB,EACzB,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,CAAC;AAGF,YAAY,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACZ,CAAC;AAGF,qBAAa,eAAe;IAC1B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|