nstarter-http-request 0.1.0
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/CHANGELOG.md +5 -0
- package/README.md +160 -0
- package/dist/cjs/adapter/axios.adapter.js +224 -0
- package/dist/cjs/adapter/axios.adapter.js.map +1 -0
- package/dist/cjs/adapter/base.js +134 -0
- package/dist/cjs/adapter/base.js.map +1 -0
- package/dist/cjs/adapter/index.js +20 -0
- package/dist/cjs/adapter/index.js.map +1 -0
- package/dist/cjs/adapter/undici.adapter.js +272 -0
- package/dist/cjs/adapter/undici.adapter.js.map +1 -0
- package/dist/cjs/client.js +409 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/config.js +69 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/const/config.const.js +53 -0
- package/dist/cjs/const/config.const.js.map +1 -0
- package/dist/cjs/const/dns.const.js +16 -0
- package/dist/cjs/const/dns.const.js.map +1 -0
- package/dist/cjs/const/enum.const.js +22 -0
- package/dist/cjs/const/enum.const.js.map +1 -0
- package/dist/cjs/const/index.js +21 -0
- package/dist/cjs/const/index.js.map +1 -0
- package/dist/cjs/const/ip.const.js +110 -0
- package/dist/cjs/const/ip.const.js.map +1 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger/base.js +60 -0
- package/dist/cjs/logger/base.js.map +1 -0
- package/dist/cjs/logger/http_client.logger.js +209 -0
- package/dist/cjs/logger/http_client.logger.js.map +1 -0
- package/dist/cjs/logger/index.js +20 -0
- package/dist/cjs/logger/index.js.map +1 -0
- package/dist/cjs/logger/log.filter.js +126 -0
- package/dist/cjs/logger/log.filter.js.map +1 -0
- package/dist/cjs/security/dns.validator.js +137 -0
- package/dist/cjs/security/dns.validator.js.map +1 -0
- package/dist/cjs/security/index.js +21 -0
- package/dist/cjs/security/index.js.map +1 -0
- package/dist/cjs/security/ip.validator.js +107 -0
- package/dist/cjs/security/ip.validator.js.map +1 -0
- package/dist/cjs/security/ssrf.guard.js +180 -0
- package/dist/cjs/security/ssrf.guard.js.map +1 -0
- package/dist/cjs/security/url.validator.js +170 -0
- package/dist/cjs/security/url.validator.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/cjs/types/adapter.js +6 -0
- package/dist/cjs/types/adapter.js.map +1 -0
- package/dist/cjs/types/client.js +6 -0
- package/dist/cjs/types/client.js.map +1 -0
- package/dist/cjs/types/config.js +6 -0
- package/dist/cjs/types/config.js.map +1 -0
- package/dist/cjs/types/errors.js +35 -0
- package/dist/cjs/types/errors.js.map +1 -0
- package/dist/cjs/types/index.js +35 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/ip.js +6 -0
- package/dist/cjs/types/ip.js.map +1 -0
- package/dist/cjs/types/logger.js +6 -0
- package/dist/cjs/types/logger.js.map +1 -0
- package/dist/cjs/types/request_response.js +6 -0
- package/dist/cjs/types/request_response.js.map +1 -0
- package/dist/cjs/types/security.js +6 -0
- package/dist/cjs/types/security.js.map +1 -0
- package/dist/cjs/types/trace.js +14 -0
- package/dist/cjs/types/trace.js.map +1 -0
- package/dist/cjs/utils/common.js +31 -0
- package/dist/cjs/utils/common.js.map +1 -0
- package/dist/cjs/utils/domain.js +79 -0
- package/dist/cjs/utils/domain.js.map +1 -0
- package/dist/cjs/utils/index.js +44 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/ip.range.js +200 -0
- package/dist/cjs/utils/ip.range.js.map +1 -0
- package/dist/cjs/utils/trace.context.js +213 -0
- package/dist/cjs/utils/trace.context.js.map +1 -0
- package/dist/esm/adapter/axios.adapter.js +184 -0
- package/dist/esm/adapter/axios.adapter.js.map +1 -0
- package/dist/esm/adapter/base.js +130 -0
- package/dist/esm/adapter/base.js.map +1 -0
- package/dist/esm/adapter/index.js +4 -0
- package/dist/esm/adapter/index.js.map +1 -0
- package/dist/esm/adapter/undici.adapter.js +235 -0
- package/dist/esm/adapter/undici.adapter.js.map +1 -0
- package/dist/esm/client.js +405 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/config.js +65 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/const/config.const.js +50 -0
- package/dist/esm/const/config.const.js.map +1 -0
- package/dist/esm/const/dns.const.js +13 -0
- package/dist/esm/const/dns.const.js.map +1 -0
- package/dist/esm/const/enum.const.js +19 -0
- package/dist/esm/const/enum.const.js.map +1 -0
- package/dist/esm/const/index.js +5 -0
- package/dist/esm/const/index.js.map +1 -0
- package/dist/esm/const/ip.const.js +107 -0
- package/dist/esm/const/ip.const.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger/base.js +55 -0
- package/dist/esm/logger/base.js.map +1 -0
- package/dist/esm/logger/http_client.logger.js +205 -0
- package/dist/esm/logger/http_client.logger.js.map +1 -0
- package/dist/esm/logger/index.js +4 -0
- package/dist/esm/logger/index.js.map +1 -0
- package/dist/esm/logger/log.filter.js +122 -0
- package/dist/esm/logger/log.filter.js.map +1 -0
- package/dist/esm/security/dns.validator.js +133 -0
- package/dist/esm/security/dns.validator.js.map +1 -0
- package/dist/esm/security/index.js +5 -0
- package/dist/esm/security/index.js.map +1 -0
- package/dist/esm/security/ip.validator.js +103 -0
- package/dist/esm/security/ip.validator.js.map +1 -0
- package/dist/esm/security/ssrf.guard.js +176 -0
- package/dist/esm/security/ssrf.guard.js.map +1 -0
- package/dist/esm/security/url.validator.js +166 -0
- package/dist/esm/security/url.validator.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/esm/types/adapter.js +5 -0
- package/dist/esm/types/adapter.js.map +1 -0
- package/dist/esm/types/client.js +5 -0
- package/dist/esm/types/client.js.map +1 -0
- package/dist/esm/types/config.js +5 -0
- package/dist/esm/types/config.js.map +1 -0
- package/dist/esm/types/errors.js +30 -0
- package/dist/esm/types/errors.js.map +1 -0
- package/dist/esm/types/index.js +19 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/ip.js +5 -0
- package/dist/esm/types/ip.js.map +1 -0
- package/dist/esm/types/logger.js +5 -0
- package/dist/esm/types/logger.js.map +1 -0
- package/dist/esm/types/request_response.js +5 -0
- package/dist/esm/types/request_response.js.map +1 -0
- package/dist/esm/types/security.js +5 -0
- package/dist/esm/types/security.js.map +1 -0
- package/dist/esm/types/trace.js +11 -0
- package/dist/esm/types/trace.js.map +1 -0
- package/dist/esm/utils/common.js +27 -0
- package/dist/esm/utils/common.js.map +1 -0
- package/dist/esm/utils/domain.js +71 -0
- package/dist/esm/utils/domain.js.map +1 -0
- package/dist/esm/utils/index.js +7 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/ip.range.js +187 -0
- package/dist/esm/utils/ip.range.js.map +1 -0
- package/dist/esm/utils/trace.context.js +199 -0
- package/dist/esm/utils/trace.context.js.map +1 -0
- package/dist/types/adapter/axios.adapter.d.ts +51 -0
- package/dist/types/adapter/axios.adapter.d.ts.map +1 -0
- package/dist/types/adapter/base.d.ts +56 -0
- package/dist/types/adapter/base.d.ts.map +1 -0
- package/dist/types/adapter/index.d.ts +4 -0
- package/dist/types/adapter/index.d.ts.map +1 -0
- package/dist/types/adapter/undici.adapter.d.ts +68 -0
- package/dist/types/adapter/undici.adapter.d.ts.map +1 -0
- package/dist/types/client.d.ts +105 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/config.d.ts +14 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/const/config.const.d.ts +23 -0
- package/dist/types/const/config.const.d.ts.map +1 -0
- package/dist/types/const/dns.const.d.ts +13 -0
- package/dist/types/const/dns.const.d.ts.map +1 -0
- package/dist/types/const/enum.const.d.ts +17 -0
- package/dist/types/const/enum.const.d.ts.map +1 -0
- package/dist/types/const/index.d.ts +5 -0
- package/dist/types/const/index.d.ts.map +1 -0
- package/dist/types/const/ip.const.d.ts +42 -0
- package/dist/types/const/ip.const.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger/base.d.ts +42 -0
- package/dist/types/logger/base.d.ts.map +1 -0
- package/dist/types/logger/http_client.logger.d.ts +49 -0
- package/dist/types/logger/http_client.logger.d.ts.map +1 -0
- package/dist/types/logger/index.d.ts +4 -0
- package/dist/types/logger/index.d.ts.map +1 -0
- package/dist/types/logger/log.filter.d.ts +56 -0
- package/dist/types/logger/log.filter.d.ts.map +1 -0
- package/dist/types/security/dns.validator.d.ts +61 -0
- package/dist/types/security/dns.validator.d.ts.map +1 -0
- package/dist/types/security/index.d.ts +5 -0
- package/dist/types/security/index.d.ts.map +1 -0
- package/dist/types/security/ip.validator.d.ts +31 -0
- package/dist/types/security/ip.validator.d.ts.map +1 -0
- package/dist/types/security/ssrf.guard.d.ts +54 -0
- package/dist/types/security/ssrf.guard.d.ts.map +1 -0
- package/dist/types/security/url.validator.d.ts +76 -0
- package/dist/types/security/url.validator.d.ts.map +1 -0
- package/dist/types/types/adapter.d.ts +30 -0
- package/dist/types/types/adapter.d.ts.map +1 -0
- package/dist/types/types/client.d.ts +85 -0
- package/dist/types/types/client.d.ts.map +1 -0
- package/dist/types/types/config.d.ts +99 -0
- package/dist/types/types/config.d.ts.map +1 -0
- package/dist/types/types/errors.d.ts +23 -0
- package/dist/types/types/errors.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +10 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/ip.d.ts +32 -0
- package/dist/types/types/ip.d.ts.map +1 -0
- package/dist/types/types/logger.d.ts +136 -0
- package/dist/types/types/logger.d.ts.map +1 -0
- package/dist/types/types/request_response.d.ts +54 -0
- package/dist/types/types/request_response.d.ts.map +1 -0
- package/dist/types/types/security.d.ts +115 -0
- package/dist/types/types/security.d.ts.map +1 -0
- package/dist/types/types/trace.d.ts +34 -0
- package/dist/types/types/trace.d.ts.map +1 -0
- package/dist/types/utils/common.d.ts +14 -0
- package/dist/types/utils/common.d.ts.map +1 -0
- package/dist/types/utils/domain.d.ts +39 -0
- package/dist/types/utils/domain.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/ip.range.d.ts +61 -0
- package/dist/types/utils/ip.range.d.ts.map +1 -0
- package/dist/types/utils/trace.context.d.ts +106 -0
- package/dist/types/utils/trace.context.d.ts.map +1 -0
- package/docs/adapters.md +53 -0
- package/docs/configuration.md +149 -0
- package/docs/logging.md +70 -0
- package/docs/proxy.md +44 -0
- package/docs/security.md +56 -0
- package/docs/trace-context.md +436 -0
- package/package.json +50 -0
- package/src/adapter/axios.adapter.ts +228 -0
- package/src/adapter/base.ts +180 -0
- package/src/adapter/index.ts +3 -0
- package/src/adapter/undici.adapter.ts +282 -0
- package/src/client.ts +552 -0
- package/src/config.ts +86 -0
- package/src/const/config.const.ts +60 -0
- package/src/const/dns.const.ts +15 -0
- package/src/const/enum.const.ts +17 -0
- package/src/const/index.ts +4 -0
- package/src/const/ip.const.ts +139 -0
- package/src/index.ts +8 -0
- package/src/logger/base.ts +75 -0
- package/src/logger/http_client.logger.ts +272 -0
- package/src/logger/index.ts +3 -0
- package/src/logger/log.filter.ts +149 -0
- package/src/security/dns.validator.ts +170 -0
- package/src/security/index.ts +4 -0
- package/src/security/ip.validator.ts +124 -0
- package/src/security/ssrf.guard.ts +224 -0
- package/src/security/url.validator.ts +192 -0
- package/src/types/adapter.ts +38 -0
- package/src/types/client.ts +119 -0
- package/src/types/config.ts +110 -0
- package/src/types/errors.ts +38 -0
- package/src/types/index.ts +27 -0
- package/src/types/ip.ts +34 -0
- package/src/types/logger.ts +150 -0
- package/src/types/request_response.ts +65 -0
- package/src/types/security.ts +126 -0
- package/src/types/trace.ts +35 -0
- package/src/utils/common.ts +28 -0
- package/src/utils/domain.ts +78 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/ip.range.ts +218 -0
- package/src/utils/trace.context.ts +240 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Undici 适配器实现
|
|
3
|
+
*/
|
|
4
|
+
import type { HttpRequestOptions, HttpResponse } from '../types';
|
|
5
|
+
import { BaseHttpAdapter } from './base';
|
|
6
|
+
import { EClientAdapter } from '../const';
|
|
7
|
+
/**
|
|
8
|
+
* Undici 适配器
|
|
9
|
+
*/
|
|
10
|
+
export declare class UndiciAdapter extends BaseHttpAdapter {
|
|
11
|
+
readonly name: EClientAdapter.undici;
|
|
12
|
+
/**
|
|
13
|
+
* 检查 Undici 是否可用
|
|
14
|
+
*/
|
|
15
|
+
isAvailable(): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* 发送请求
|
|
18
|
+
* @param options 请求选项
|
|
19
|
+
*/
|
|
20
|
+
protected sendRequest<T>(options: HttpRequestOptions): Promise<HttpResponse<T>>;
|
|
21
|
+
/**
|
|
22
|
+
* 准备请求头
|
|
23
|
+
* @param headers 原始请求头
|
|
24
|
+
*/
|
|
25
|
+
private prepareHeaders;
|
|
26
|
+
/**
|
|
27
|
+
* 准备请求体
|
|
28
|
+
* @param body 原始请求体
|
|
29
|
+
* @param headers 请求头
|
|
30
|
+
*/
|
|
31
|
+
private prepareBody;
|
|
32
|
+
/**
|
|
33
|
+
* 构建 Dispatcher(代理或 TLS 配置)
|
|
34
|
+
* @param options 请求选项
|
|
35
|
+
*/
|
|
36
|
+
private buildDispatcher;
|
|
37
|
+
/**
|
|
38
|
+
* 创建全局代理 Agent
|
|
39
|
+
*/
|
|
40
|
+
private createGlobalProxyAgent;
|
|
41
|
+
/**
|
|
42
|
+
* 创建正向代理 Agent
|
|
43
|
+
* @param proxyUrl 代理 URL
|
|
44
|
+
*/
|
|
45
|
+
private createForwardProxyAgent;
|
|
46
|
+
/**
|
|
47
|
+
* 构建 Undici 请求选项
|
|
48
|
+
*/
|
|
49
|
+
private buildUndiciOptions;
|
|
50
|
+
/**
|
|
51
|
+
* 处理 Undici 错误
|
|
52
|
+
* @param error 错误对象
|
|
53
|
+
* @param options 请求选项
|
|
54
|
+
*/
|
|
55
|
+
private handleUndiciError;
|
|
56
|
+
/**
|
|
57
|
+
* 读取响应体
|
|
58
|
+
* @param response Undici 响应对象
|
|
59
|
+
* @param responseType 响应类型
|
|
60
|
+
*/
|
|
61
|
+
private readResponseBody;
|
|
62
|
+
/**
|
|
63
|
+
* 获取状态文本
|
|
64
|
+
* @param statusCode 状态码
|
|
65
|
+
*/
|
|
66
|
+
private getStatusText;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=undici.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"undici.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapter/undici.adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,kBAAkB,EAClB,YAAY,EAEf,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAOzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAC9C,SAAgB,IAAI,wBAAkC;IAEtD;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;;OAGG;cACa,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAuCrF;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;YACW,gBAAgB;IAsC9B;;;OAGG;IACH,OAAO,CAAC,aAAa;CAGxB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 客户端核心类
|
|
3
|
+
*/
|
|
4
|
+
import type { PartialHttpClientConfig, HttpRequestOptions, HttpResponse, IHttpClient, IForwardProxy } from './types';
|
|
5
|
+
import { EClientAdapter } from './const';
|
|
6
|
+
/**
|
|
7
|
+
* HTTP 客户端
|
|
8
|
+
*/
|
|
9
|
+
export declare class NsHttpClient implements IHttpClient {
|
|
10
|
+
private config;
|
|
11
|
+
private adapter;
|
|
12
|
+
private ssrfGuard;
|
|
13
|
+
private logger;
|
|
14
|
+
private httpLogger?;
|
|
15
|
+
private forwardProxy?;
|
|
16
|
+
constructor(userConfig?: PartialHttpClientConfig);
|
|
17
|
+
/**
|
|
18
|
+
* 从配置创建 HTTP 客户端
|
|
19
|
+
* @param config
|
|
20
|
+
*/
|
|
21
|
+
static fromHttpClientConfig(config?: PartialHttpClientConfig): NsHttpClient;
|
|
22
|
+
/**
|
|
23
|
+
* 挂载适配器.
|
|
24
|
+
* @param adapter
|
|
25
|
+
*/
|
|
26
|
+
withAdapter(adapter: EClientAdapter): this;
|
|
27
|
+
/**
|
|
28
|
+
* 挂载正向代理.
|
|
29
|
+
* @param proxy
|
|
30
|
+
*/
|
|
31
|
+
withForwardProxy(proxy: IForwardProxy): this;
|
|
32
|
+
/**
|
|
33
|
+
* 初始化日志记录器
|
|
34
|
+
*/
|
|
35
|
+
private initLogger;
|
|
36
|
+
/**
|
|
37
|
+
* 初始化 HTTP 客户端日志记录器
|
|
38
|
+
*/
|
|
39
|
+
private initHttpLogger;
|
|
40
|
+
/**
|
|
41
|
+
* 初始化适配器
|
|
42
|
+
*/
|
|
43
|
+
private initAdapter;
|
|
44
|
+
/**
|
|
45
|
+
* 发送 HTTP 请求
|
|
46
|
+
* @param options 请求选项
|
|
47
|
+
* @returns 响应结果
|
|
48
|
+
*/
|
|
49
|
+
request<T = any>(options: HttpRequestOptions): Promise<HttpResponse<T>>;
|
|
50
|
+
/**
|
|
51
|
+
* 便捷方法:GET 请求
|
|
52
|
+
*/
|
|
53
|
+
get<T = any>(url: string, options?: Partial<Omit<HttpRequestOptions, 'method' | 'url'>>): Promise<HttpResponse<T>>;
|
|
54
|
+
/**
|
|
55
|
+
* 便捷方法:POST 请求
|
|
56
|
+
*/
|
|
57
|
+
post<T = any>(url: string, body?: any, options?: Partial<Omit<HttpRequestOptions, 'method' | 'url' | 'body'>>): Promise<HttpResponse<T>>;
|
|
58
|
+
/**
|
|
59
|
+
* 便捷方法:PUT 请求
|
|
60
|
+
*/
|
|
61
|
+
put<T = any>(url: string, body?: any, options?: Partial<Omit<HttpRequestOptions, 'method' | 'url' | 'body'>>): Promise<HttpResponse<T>>;
|
|
62
|
+
/**
|
|
63
|
+
* 便捷方法:DELETE 请求
|
|
64
|
+
*/
|
|
65
|
+
delete<T = any>(url: string, options?: Partial<Omit<HttpRequestOptions, 'method' | 'url'>>): Promise<HttpResponse<T>>;
|
|
66
|
+
/**
|
|
67
|
+
* 便捷方法:PATCH 请求
|
|
68
|
+
*/
|
|
69
|
+
patch<T = any>(url: string, body?: any, options?: Partial<Omit<HttpRequestOptions, 'method' | 'url' | 'body'>>): Promise<HttpResponse<T>>;
|
|
70
|
+
/**
|
|
71
|
+
* 记录响应日志
|
|
72
|
+
*/
|
|
73
|
+
private logResponse;
|
|
74
|
+
/**
|
|
75
|
+
* 判断响应数据是否为流对象(Node.js Readable)
|
|
76
|
+
*/
|
|
77
|
+
private isStreamResponse;
|
|
78
|
+
/**
|
|
79
|
+
* 包装流式响应,追踪流的完整生命周期
|
|
80
|
+
*/
|
|
81
|
+
private wrapStreamResponse;
|
|
82
|
+
/**
|
|
83
|
+
* 记录流完成日志
|
|
84
|
+
*/
|
|
85
|
+
private logStreamCompleted;
|
|
86
|
+
/**
|
|
87
|
+
* 记录错误日志
|
|
88
|
+
*/
|
|
89
|
+
private logError;
|
|
90
|
+
/**
|
|
91
|
+
* 应用正向代理配置
|
|
92
|
+
* @param options 请求选项
|
|
93
|
+
*/
|
|
94
|
+
private applyForwardProxy;
|
|
95
|
+
/**
|
|
96
|
+
* 清空 DNS 缓存
|
|
97
|
+
*/
|
|
98
|
+
clearDnsCache(): void;
|
|
99
|
+
/**
|
|
100
|
+
* 获取 DNS 缓存大小
|
|
101
|
+
* @returns 缓存条目数量
|
|
102
|
+
*/
|
|
103
|
+
getDnsCacheSize(): number;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HttpClientConfig, PartialHttpClientConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 合并配置
|
|
4
|
+
* @param userConfig 用户配置
|
|
5
|
+
* @returns 完整配置
|
|
6
|
+
*/
|
|
7
|
+
export declare function mergeConfig(userConfig?: PartialHttpClientConfig): HttpClientConfig;
|
|
8
|
+
/**
|
|
9
|
+
* 验证配置
|
|
10
|
+
* @param config 配置
|
|
11
|
+
* @throws {Error} 配置无效时抛出错误
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateConfig(config: HttpClientConfig): void;
|
|
14
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,SAAS,CAAC;AASjB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,GAAE,uBAA4B,GAAG,gBAAgB,CAgBtF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA4C7D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HttpClientConfig, LoggingConfig, RequestConfig, SecurityConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* DNS 缓存最大 TTL(毫秒)- 5 分钟
|
|
4
|
+
* 避免过长的缓存时间导致内存积压
|
|
5
|
+
*/
|
|
6
|
+
export declare const MAX_DNS_CACHE_TTL: number;
|
|
7
|
+
/**
|
|
8
|
+
* 默认安全配置
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_SECURITY_CONFIG: SecurityConfig;
|
|
11
|
+
/**
|
|
12
|
+
* 默认日志配置
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_LOGGING_CONFIG: LoggingConfig;
|
|
15
|
+
/**
|
|
16
|
+
* 默认请求配置
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_REQUEST_CONFIG: RequestConfig;
|
|
19
|
+
/**
|
|
20
|
+
* 默认 HTTP 客户端配置
|
|
21
|
+
*/
|
|
22
|
+
export declare const DEFAULT_HTTP_CLIENT_CONFIG: HttpClientConfig;
|
|
23
|
+
//# sourceMappingURL=config.const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.const.d.ts","sourceRoot":"","sources":["../../../src/const/config.const.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACjB,MAAM,UAAU,CAAC;AAIlB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cASrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAKpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 默认 DNS 缓存 TTL(毫秒)- 60 秒
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_DNS_CACHE_TTL = 60000;
|
|
5
|
+
/**
|
|
6
|
+
* 默认 DNS 解析超时时间(毫秒)- 3 秒
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_DNS_RESOLVE_TIMEOUT = 3000;
|
|
9
|
+
/**
|
|
10
|
+
* 默认 DNS 缓存最大条目数
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_DNS_CACHE_MAX_SIZE = 500;
|
|
13
|
+
//# sourceMappingURL=dns.const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.const.d.ts","sourceRoot":"","sources":["../../../src/const/dns.const.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP请求客户端适配器枚举.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum EClientAdapter {
|
|
5
|
+
'axios' = "axios",
|
|
6
|
+
'undici' = "undici"
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 日志级别
|
|
10
|
+
*/
|
|
11
|
+
export declare enum ELogLevel {
|
|
12
|
+
DEBUG = "debug",
|
|
13
|
+
INFO = "info",
|
|
14
|
+
WARN = "warn",
|
|
15
|
+
ERROR = "error"
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=enum.const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.const.d.ts","sourceRoot":"","sources":["../../../src/const/enum.const.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,cAAc;IACtB,OAAO,UAAU;IACjB,QAAQ,WAAW;CACtB;AAED;;GAEG;AACH,oBAAY,SAAS;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/const/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CompiledIpv4Range, CompiledIpv6Range } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* IPV4 校验地址范围(原始 CIDR 字符串)
|
|
4
|
+
*/
|
|
5
|
+
export declare const IPV4_RANGES: {
|
|
6
|
+
private: string[];
|
|
7
|
+
loopback: string[];
|
|
8
|
+
linkLocal: string[];
|
|
9
|
+
multicast: string[];
|
|
10
|
+
reserved: string[];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* IPV6 校验地址范围(原始 CIDR 字符串)
|
|
14
|
+
*/
|
|
15
|
+
export declare const IPV6_RANGES: {
|
|
16
|
+
private: string[];
|
|
17
|
+
loopback: string[];
|
|
18
|
+
linkLocal: string[];
|
|
19
|
+
multicast: string[];
|
|
20
|
+
reserved: string[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 预编译的 IPV4 校验地址范围(高性能版本)
|
|
24
|
+
*/
|
|
25
|
+
export declare const COMPILED_IPV4_RANGES: {
|
|
26
|
+
private: CompiledIpv4Range[];
|
|
27
|
+
loopback: CompiledIpv4Range[];
|
|
28
|
+
linkLocal: CompiledIpv4Range[];
|
|
29
|
+
multicast: CompiledIpv4Range[];
|
|
30
|
+
reserved: CompiledIpv4Range[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* 预编译的 IPV6 校验地址范围(高性能版本)
|
|
34
|
+
*/
|
|
35
|
+
export declare const COMPILED_IPV6_RANGES: {
|
|
36
|
+
private: CompiledIpv6Range[];
|
|
37
|
+
loopback: CompiledIpv6Range[];
|
|
38
|
+
linkLocal: CompiledIpv6Range[];
|
|
39
|
+
multicast: CompiledIpv6Range[];
|
|
40
|
+
reserved: CompiledIpv6Range[];
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=ip.const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip.const.d.ts","sourceRoot":"","sources":["../../../src/const/ip.const.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,iBAAiB,EACjB,iBAAiB,EACpB,MAAM,UAAU,CAAC;AA6ElB;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAOhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAOhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 日志记录器基础接口和实现
|
|
3
|
+
*/
|
|
4
|
+
import type { ILogger } from '../types';
|
|
5
|
+
import { ELogLevel } from '../const';
|
|
6
|
+
/**
|
|
7
|
+
* 抽象日志记录器基类
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class BaseLogger implements ILogger {
|
|
10
|
+
protected minLevel: ELogLevel;
|
|
11
|
+
constructor(minLevel?: ELogLevel);
|
|
12
|
+
/**
|
|
13
|
+
* 检查日志级别是否应该记录
|
|
14
|
+
* @param level 日志级别
|
|
15
|
+
* @returns 是否应该记录
|
|
16
|
+
*/
|
|
17
|
+
protected shouldLog(level: ELogLevel): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 设置最小日志级别
|
|
20
|
+
* @param level 最小日志级别
|
|
21
|
+
*/
|
|
22
|
+
setMinLevel(level: ELogLevel): void;
|
|
23
|
+
/**
|
|
24
|
+
* 获取当前最小日志级别
|
|
25
|
+
* @returns 最小日志级别
|
|
26
|
+
*/
|
|
27
|
+
getMinLevel(): ELogLevel;
|
|
28
|
+
abstract debug(message: string, meta?: Record<string, any>): void;
|
|
29
|
+
abstract info(message: string, meta?: Record<string, any>): void;
|
|
30
|
+
abstract warn(message: string, meta?: Record<string, any>): void;
|
|
31
|
+
abstract error(message: string, meta?: Record<string, any>): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 空日志记录器(不记录任何日志)
|
|
35
|
+
*/
|
|
36
|
+
export declare class NullLogger implements ILogger {
|
|
37
|
+
debug(): void;
|
|
38
|
+
info(): void;
|
|
39
|
+
warn(): void;
|
|
40
|
+
error(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/logger/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,8BAAsB,UAAW,YAAW,OAAO;IAC/C,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,QAAQ,GAAE,SAA0B;IAIhD;;;;OAIG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAO9C;;;OAGG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI1C;;;OAGG;IACI,WAAW,IAAI,SAAS;aAIf,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;aAExD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;aAEvD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;aAEvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAC3E;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,OAAO;IAC/B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;CAGvB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 客户端日志记录器实现
|
|
3
|
+
*/
|
|
4
|
+
import type { IHttpClientLogger, ILogger, IResFailedOptions, IResSuccessOptions, LogFilterConfig, HttpClientLoggerConfig } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* HTTP 客户端日志记录器
|
|
7
|
+
* 将通用 ILogger 包装成专门的 IHttpClientLogger
|
|
8
|
+
*/
|
|
9
|
+
export declare class NsHttpClientLogger implements IHttpClientLogger {
|
|
10
|
+
private logger;
|
|
11
|
+
private filter?;
|
|
12
|
+
private logRequestBody;
|
|
13
|
+
private logResponseBody;
|
|
14
|
+
private bodyMaxLength;
|
|
15
|
+
constructor(config: HttpClientLoggerConfig);
|
|
16
|
+
/**
|
|
17
|
+
* 记录失败的请求
|
|
18
|
+
*/
|
|
19
|
+
logFailed(resOptions: Omit<IResFailedOptions, 'isSuccess' | 'timestamp'>): void;
|
|
20
|
+
/**
|
|
21
|
+
* 记录成功的请求
|
|
22
|
+
*/
|
|
23
|
+
logSuccess(resOptions: Omit<IResSuccessOptions, 'isSuccess' | 'timestamp'>): void;
|
|
24
|
+
/**
|
|
25
|
+
* 构建日志元数据
|
|
26
|
+
*/
|
|
27
|
+
private buildLogMeta;
|
|
28
|
+
/**
|
|
29
|
+
* 格式化字节数为人类可读格式
|
|
30
|
+
*/
|
|
31
|
+
private formatBytes;
|
|
32
|
+
/**
|
|
33
|
+
* 截断请求/响应体到指定长度
|
|
34
|
+
* 对于特殊类型(Stream、Buffer等)返回标记文本
|
|
35
|
+
*/
|
|
36
|
+
private truncateBody;
|
|
37
|
+
/**
|
|
38
|
+
* 创建 HTTP 客户端日志记录器
|
|
39
|
+
* @param logger 底层日志记录器
|
|
40
|
+
* @param filterConfig 过滤器配置
|
|
41
|
+
* @param options 其他选项
|
|
42
|
+
*/
|
|
43
|
+
static create(logger: ILogger, filterConfig?: LogFilterConfig, options?: {
|
|
44
|
+
logRequestBody?: boolean;
|
|
45
|
+
logResponseBody?: boolean;
|
|
46
|
+
bodyMaxLength?: number;
|
|
47
|
+
}): NsHttpClientLogger;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=http_client.logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http_client.logger.d.ts","sourceRoot":"","sources":["../../../src/logger/http_client.logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,iBAAiB,EACjB,OAAO,EAEP,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACzB,MAAM,UAAU,CAAC;AAGlB;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IACxD,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,sBAAsB;IAQ1C;;OAEG;IACI,SAAS,CACZ,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,WAAW,CAAC,GAC/D,IAAI;IAoBP;;OAEG;IACI,UAAU,CACb,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,WAAW,CAAC,GAChE,IAAI;IAoBP;;OAEG;IACH,OAAO,CAAC,YAAY;IAsFpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuDpB;;;;;OAKG;WACW,MAAM,CAChB,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,eAAe,EAC9B,OAAO,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;KACzB,GACF,kBAAkB;CASxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 日志过滤器实现
|
|
3
|
+
*/
|
|
4
|
+
import type { ILogFilter, LogFilterConfig, IResSuccessOptions, IResFailedOptions } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* 默认日志过滤器
|
|
7
|
+
*/
|
|
8
|
+
export declare class LogFilter implements ILogFilter {
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config?: LogFilterConfig);
|
|
11
|
+
/**
|
|
12
|
+
* 判断是否应该记录此日志
|
|
13
|
+
* @param options 日志选项(成功或失败)
|
|
14
|
+
* @returns 是否应该记录
|
|
15
|
+
*/
|
|
16
|
+
shouldLog(options: IResSuccessOptions | IResFailedOptions): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 检查成功/失败过滤
|
|
19
|
+
*/
|
|
20
|
+
private checkSuccessOrFailedFilter;
|
|
21
|
+
/**
|
|
22
|
+
* 检查 HTTP 方法过滤
|
|
23
|
+
*/
|
|
24
|
+
private checkMethodFilter;
|
|
25
|
+
/**
|
|
26
|
+
* 检查 URL 模式过滤
|
|
27
|
+
*/
|
|
28
|
+
private checkUrlPatternFilter;
|
|
29
|
+
/**
|
|
30
|
+
* 检查场景过滤
|
|
31
|
+
*/
|
|
32
|
+
private checkScenarioFilter;
|
|
33
|
+
/**
|
|
34
|
+
* 检查状态码过滤
|
|
35
|
+
*/
|
|
36
|
+
private checkStatusCodeFilter;
|
|
37
|
+
/**
|
|
38
|
+
* 检查请求耗时过滤
|
|
39
|
+
*/
|
|
40
|
+
private checkDurationFilter;
|
|
41
|
+
/**
|
|
42
|
+
* 检查自定义过滤函数
|
|
43
|
+
*/
|
|
44
|
+
private checkCustomFilter;
|
|
45
|
+
/**
|
|
46
|
+
* 更新过滤器配置
|
|
47
|
+
* @param config 新的配置
|
|
48
|
+
*/
|
|
49
|
+
updateConfig(config: LogFilterConfig): void;
|
|
50
|
+
/**
|
|
51
|
+
* 获取当前配置
|
|
52
|
+
* @returns 当前配置
|
|
53
|
+
*/
|
|
54
|
+
getConfig(): LogFilterConfig;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=log.filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.filter.d.ts","sourceRoot":"","sources":["../../../src/logger/log.filter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACR,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,SAAU,YAAW,UAAU;IACxC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,GAAE,eAAoB;IAIxC;;;;OAIG;IACI,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,OAAO;IAY1E;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIlD;;;OAGG;IACI,SAAS,IAAI,eAAe;CAGtC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DNS 验证器
|
|
3
|
+
*/
|
|
4
|
+
import type { DnsResult } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* DNS 验证器类
|
|
7
|
+
*/
|
|
8
|
+
export declare class DnsValidator {
|
|
9
|
+
private cache;
|
|
10
|
+
private cacheTtl;
|
|
11
|
+
private resolveTimeout;
|
|
12
|
+
constructor(cacheTtl?: number, resolveTimeout?: number, maxCacheSize?: number);
|
|
13
|
+
/**
|
|
14
|
+
* 解析域名
|
|
15
|
+
* @param hostname 域名
|
|
16
|
+
* @returns DNS 解析结果
|
|
17
|
+
*/
|
|
18
|
+
resolve(hostname: string): Promise<DnsResult>;
|
|
19
|
+
/**
|
|
20
|
+
* 解析并验证域名(包括 IP 安全检查)
|
|
21
|
+
* @param hostname 域名
|
|
22
|
+
* @param allowPrivateIp 是否允许私有 IP
|
|
23
|
+
* @returns DNS 解析结果和验证结果
|
|
24
|
+
*/
|
|
25
|
+
resolveAndValidate(hostname: string, allowPrivateIp?: boolean): Promise<{
|
|
26
|
+
dnsResult: DnsResult;
|
|
27
|
+
allValid: boolean;
|
|
28
|
+
invalidIps: string[];
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* 清空缓存
|
|
32
|
+
*/
|
|
33
|
+
clearCache(): void;
|
|
34
|
+
/**
|
|
35
|
+
* 清除指定域名的缓存
|
|
36
|
+
* @param hostname 域名
|
|
37
|
+
*/
|
|
38
|
+
clearCacheFor(hostname: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* 获取缓存大小
|
|
41
|
+
* @returns 缓存条目数量
|
|
42
|
+
*/
|
|
43
|
+
getCacheSize(): number;
|
|
44
|
+
/**
|
|
45
|
+
* 清理过期的缓存条目
|
|
46
|
+
* LRUCache 会自动清理过期条目(ttlAutopurge: true),此方法主动触发清理
|
|
47
|
+
*/
|
|
48
|
+
cleanExpiredCache(): void;
|
|
49
|
+
/**
|
|
50
|
+
* 获取缓存的最大容量
|
|
51
|
+
* @returns 最大缓存条目数量
|
|
52
|
+
*/
|
|
53
|
+
getMaxCacheSize(): number;
|
|
54
|
+
/**
|
|
55
|
+
* 检查缓存中是否存在指定域名
|
|
56
|
+
* @param hostname 域名
|
|
57
|
+
* @returns 是否存在
|
|
58
|
+
*/
|
|
59
|
+
hasCache(hostname: string): boolean;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=dns.validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.validator.d.ts","sourceRoot":"","sources":["../../../src/security/dns.validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EACR,SAAS,EACZ,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAS;gBAG3B,QAAQ,SAAwB,EAChC,cAAc,SAA8B,EAC5C,YAAY,SAA6B;IAgB7C;;;;OAIG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAgD1D;;;;;OAKG;IACU,kBAAkB,CAC3B,QAAQ,EAAE,MAAM,EAChB,cAAc,UAAQ,GACvB,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAe7E;;OAEG;IACI,UAAU,IAAI,IAAI;IAIzB;;;OAGG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI5C;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;;OAGG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAG7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IP 地址验证器
|
|
3
|
+
*/
|
|
4
|
+
import type { IpValidationResult } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* IP 地址验证器类
|
|
7
|
+
*/
|
|
8
|
+
export declare class IpValidator {
|
|
9
|
+
/**
|
|
10
|
+
* 验证 IP 地址是否安全
|
|
11
|
+
* @param ip IP 地址
|
|
12
|
+
* @param allowPrivateIp 是否允许私有 IP
|
|
13
|
+
* @returns 验证结果
|
|
14
|
+
*/
|
|
15
|
+
static validate(ip: string, allowPrivateIp?: boolean): IpValidationResult;
|
|
16
|
+
/**
|
|
17
|
+
* 批量验证 IP 地址
|
|
18
|
+
* @param ips IP 地址列表
|
|
19
|
+
* @param allowPrivateIp 是否允许私有 IP
|
|
20
|
+
* @returns 验证结果列表
|
|
21
|
+
*/
|
|
22
|
+
static validateMany(ips: string[], allowPrivateIp?: boolean): IpValidationResult[];
|
|
23
|
+
/**
|
|
24
|
+
* 检查是否所有 IP 地址都有效
|
|
25
|
+
* @param ips IP 地址列表
|
|
26
|
+
* @param allowPrivateIp 是否允许私有 IP
|
|
27
|
+
* @returns 是否所有 IP 都有效
|
|
28
|
+
*/
|
|
29
|
+
static validateAll(ips: string[], allowPrivateIp?: boolean): boolean;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ip.validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip.validator.d.ts","sourceRoot":"","sources":["../../../src/security/ip.validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQnD;;GAEG;AACH,qBAAa,WAAW;IACpB;;;;;OAKG;WACW,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,kBAAkB;IA0E9E;;;;;OAKG;WACW,YAAY,CACtB,GAAG,EAAE,MAAM,EAAE,EACb,cAAc,UAAQ,GACvB,kBAAkB,EAAE;IAIvB;;;;;OAKG;WACW,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,cAAc,UAAQ,GAAG,OAAO;CAG5E"}
|