proxy-pool-manager 1.0.0 → 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 CHANGED
@@ -4,9 +4,10 @@
4
4
 
5
5
  ## ✨ 特性
6
6
 
7
- - 🔄 **智能代理管理**:支持从 MongoDB 加载代理,自动验证和轮换
8
- - 🌐 **HTTP 请求封装**:内置 HTTP 客户端,支持自动代理切换
9
- - 📊 **代理健康检查**:自动检测代理可用性,支持自定义检测规则
7
+ - 🪶 **轻量级模式**:无需 MongoDB,仅使用请求和队列功能
8
+ - 🔄 **智能代理管理**:支持从 MongoDB 加载代理,自动验证和轮换(可选)
9
+ - 🌐 **HTTP 请求封装**:内置 HTTP 客户端,支持自动代理切换或直接指定代理
10
+ - 📊 **代理健康检查**:自动检测代理可用性,支持自定义检测规则(可选)
10
11
  - 🎯 **多种代理策略**:支持顺序、随机、故障转移三种策略
11
12
  - 📦 **批量操作**:支持批量插入和管理代理
12
13
  - 🔍 **日志系统**:基于 Winston 的完整日志记录
@@ -16,17 +17,49 @@
16
17
  ## 📦 安装
17
18
 
18
19
  ```bash
19
- npm install proxy_manager
20
+ npm install proxy-pool-manager
20
21
  ```
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
- import { createProxyRequest } from 'proxy_manager';
60
+ import { createProxyRequest } from 'proxy-pool-manager';
28
61
 
29
- // 创建 SDK 实例
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: string; // MongoDB 连接 URI(必需)
115
- maxRetries?: number; // 最大重试次数,默认 3
116
- timeout?: number; // 请求超时时间(秒),默认 30
117
- proxyStrategy?: ProxyStrategy; // 代理策略,默认 'sequential'
118
- logLevel?: LogLevel; // 日志级别,默认 'info'
119
- instanceId?: string; // 实例 ID,用于多实例场景
120
- proxyCheckOptions: { // 代理检查配置(必需)
121
- mainUrl: string; // 代理检查主 URL(必需)
122
- testUrls?: string[]; // 额外的测试 URL
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,10 +239,79 @@ 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
194
- import { initializeServices } from 'proxy_manager';
314
+ import { initializeServices } from 'proxy-pool-manager';
195
315
 
196
316
  // 创建多个独立的 SDK 实例
197
317
  const sdk1 = await initializeServices({
@@ -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.get('https://api.example.com/data', {
239
- proxy: 'specific-proxy.com:8080:user:pass'
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
@@ -264,7 +427,7 @@ console.log({
264
427
  ### 批量插入代理
265
428
 
266
429
  ```typescript
267
- import { bulkInsertProxyUrls } from 'proxy_manager';
430
+ import { bulkInsertProxyUrls } from 'proxy-pool-manager';
268
431
 
269
432
  const count = await bulkInsertProxyUrls({
270
433
  mongoUri: 'mongodb://localhost:27017/proxy_db',
@@ -288,7 +451,7 @@ console.log(`成功插入 ${count} 个代理`);
288
451
  ### 队列快速开始
289
452
 
290
453
  ```typescript
291
- import { AsyncQueueSingleton } from 'proxy_manager';
454
+ import { AsyncQueueSingleton } from 'proxy-pool-manager';
292
455
 
293
456
  // 创建队列实例
294
457
  const queue = AsyncQueueSingleton.getInstance('my-queue', {
@@ -640,14 +803,29 @@ import type {
640
803
  ProxyItem,
641
804
  ProxyCheckOptions,
642
805
  LogLevel
643
- } from 'proxy_manager';
806
+ } from 'proxy-pool-manager';
644
807
  ```
645
808
 
646
809
  ## ⚠️ 注意事项
647
810
 
648
- 1. **MongoDB 连接**:确保 MongoDB 服务正在运行且连接 URI 正确
649
- 2. **代理格式**:代理 URL 格式为 `host:port:username:password`
650
- 3. **初始化等待**:SDK 初始化是异步的,使用 `waitForReady()` 确保初始化完成
651
- 4. **资源清理**:使用完毕后调用 `destroy()` 方法清理资源
652
- 5. **并发限制**:代理检查的并发数可通过 `maxConcurrentChecks` 配置
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
@@ -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,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAW;gBAGf,OAAO,GAAE,kBAAuB;IA4B5C;;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;IA0BzB;;OAEG;YACW,oBAAoB;IA2FlC,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;IAoE5B,mBAAmB;IACnB,OAAO,CAAC,aAAa;IAkBd,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1B,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI3C,eAAe,IAAI,IAAI;IAIvB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIzC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,uBAAuB,IAAI,MAAM,EAAE;CAG3C;AAED,eAAe,OAAO,CAAC"}
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: string;
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: string;
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: string;
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: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}