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.
Files changed (263) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +160 -0
  3. package/dist/cjs/adapter/axios.adapter.js +224 -0
  4. package/dist/cjs/adapter/axios.adapter.js.map +1 -0
  5. package/dist/cjs/adapter/base.js +134 -0
  6. package/dist/cjs/adapter/base.js.map +1 -0
  7. package/dist/cjs/adapter/index.js +20 -0
  8. package/dist/cjs/adapter/index.js.map +1 -0
  9. package/dist/cjs/adapter/undici.adapter.js +272 -0
  10. package/dist/cjs/adapter/undici.adapter.js.map +1 -0
  11. package/dist/cjs/client.js +409 -0
  12. package/dist/cjs/client.js.map +1 -0
  13. package/dist/cjs/config.js +69 -0
  14. package/dist/cjs/config.js.map +1 -0
  15. package/dist/cjs/const/config.const.js +53 -0
  16. package/dist/cjs/const/config.const.js.map +1 -0
  17. package/dist/cjs/const/dns.const.js +16 -0
  18. package/dist/cjs/const/dns.const.js.map +1 -0
  19. package/dist/cjs/const/enum.const.js +22 -0
  20. package/dist/cjs/const/enum.const.js.map +1 -0
  21. package/dist/cjs/const/index.js +21 -0
  22. package/dist/cjs/const/index.js.map +1 -0
  23. package/dist/cjs/const/ip.const.js +110 -0
  24. package/dist/cjs/const/ip.const.js.map +1 -0
  25. package/dist/cjs/index.js +25 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/logger/base.js +60 -0
  28. package/dist/cjs/logger/base.js.map +1 -0
  29. package/dist/cjs/logger/http_client.logger.js +209 -0
  30. package/dist/cjs/logger/http_client.logger.js.map +1 -0
  31. package/dist/cjs/logger/index.js +20 -0
  32. package/dist/cjs/logger/index.js.map +1 -0
  33. package/dist/cjs/logger/log.filter.js +126 -0
  34. package/dist/cjs/logger/log.filter.js.map +1 -0
  35. package/dist/cjs/security/dns.validator.js +137 -0
  36. package/dist/cjs/security/dns.validator.js.map +1 -0
  37. package/dist/cjs/security/index.js +21 -0
  38. package/dist/cjs/security/index.js.map +1 -0
  39. package/dist/cjs/security/ip.validator.js +107 -0
  40. package/dist/cjs/security/ip.validator.js.map +1 -0
  41. package/dist/cjs/security/ssrf.guard.js +180 -0
  42. package/dist/cjs/security/ssrf.guard.js.map +1 -0
  43. package/dist/cjs/security/url.validator.js +170 -0
  44. package/dist/cjs/security/url.validator.js.map +1 -0
  45. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  46. package/dist/cjs/types/adapter.js +6 -0
  47. package/dist/cjs/types/adapter.js.map +1 -0
  48. package/dist/cjs/types/client.js +6 -0
  49. package/dist/cjs/types/client.js.map +1 -0
  50. package/dist/cjs/types/config.js +6 -0
  51. package/dist/cjs/types/config.js.map +1 -0
  52. package/dist/cjs/types/errors.js +35 -0
  53. package/dist/cjs/types/errors.js.map +1 -0
  54. package/dist/cjs/types/index.js +35 -0
  55. package/dist/cjs/types/index.js.map +1 -0
  56. package/dist/cjs/types/ip.js +6 -0
  57. package/dist/cjs/types/ip.js.map +1 -0
  58. package/dist/cjs/types/logger.js +6 -0
  59. package/dist/cjs/types/logger.js.map +1 -0
  60. package/dist/cjs/types/request_response.js +6 -0
  61. package/dist/cjs/types/request_response.js.map +1 -0
  62. package/dist/cjs/types/security.js +6 -0
  63. package/dist/cjs/types/security.js.map +1 -0
  64. package/dist/cjs/types/trace.js +14 -0
  65. package/dist/cjs/types/trace.js.map +1 -0
  66. package/dist/cjs/utils/common.js +31 -0
  67. package/dist/cjs/utils/common.js.map +1 -0
  68. package/dist/cjs/utils/domain.js +79 -0
  69. package/dist/cjs/utils/domain.js.map +1 -0
  70. package/dist/cjs/utils/index.js +44 -0
  71. package/dist/cjs/utils/index.js.map +1 -0
  72. package/dist/cjs/utils/ip.range.js +200 -0
  73. package/dist/cjs/utils/ip.range.js.map +1 -0
  74. package/dist/cjs/utils/trace.context.js +213 -0
  75. package/dist/cjs/utils/trace.context.js.map +1 -0
  76. package/dist/esm/adapter/axios.adapter.js +184 -0
  77. package/dist/esm/adapter/axios.adapter.js.map +1 -0
  78. package/dist/esm/adapter/base.js +130 -0
  79. package/dist/esm/adapter/base.js.map +1 -0
  80. package/dist/esm/adapter/index.js +4 -0
  81. package/dist/esm/adapter/index.js.map +1 -0
  82. package/dist/esm/adapter/undici.adapter.js +235 -0
  83. package/dist/esm/adapter/undici.adapter.js.map +1 -0
  84. package/dist/esm/client.js +405 -0
  85. package/dist/esm/client.js.map +1 -0
  86. package/dist/esm/config.js +65 -0
  87. package/dist/esm/config.js.map +1 -0
  88. package/dist/esm/const/config.const.js +50 -0
  89. package/dist/esm/const/config.const.js.map +1 -0
  90. package/dist/esm/const/dns.const.js +13 -0
  91. package/dist/esm/const/dns.const.js.map +1 -0
  92. package/dist/esm/const/enum.const.js +19 -0
  93. package/dist/esm/const/enum.const.js.map +1 -0
  94. package/dist/esm/const/index.js +5 -0
  95. package/dist/esm/const/index.js.map +1 -0
  96. package/dist/esm/const/ip.const.js +107 -0
  97. package/dist/esm/const/ip.const.js.map +1 -0
  98. package/dist/esm/index.js +9 -0
  99. package/dist/esm/index.js.map +1 -0
  100. package/dist/esm/logger/base.js +55 -0
  101. package/dist/esm/logger/base.js.map +1 -0
  102. package/dist/esm/logger/http_client.logger.js +205 -0
  103. package/dist/esm/logger/http_client.logger.js.map +1 -0
  104. package/dist/esm/logger/index.js +4 -0
  105. package/dist/esm/logger/index.js.map +1 -0
  106. package/dist/esm/logger/log.filter.js +122 -0
  107. package/dist/esm/logger/log.filter.js.map +1 -0
  108. package/dist/esm/security/dns.validator.js +133 -0
  109. package/dist/esm/security/dns.validator.js.map +1 -0
  110. package/dist/esm/security/index.js +5 -0
  111. package/dist/esm/security/index.js.map +1 -0
  112. package/dist/esm/security/ip.validator.js +103 -0
  113. package/dist/esm/security/ip.validator.js.map +1 -0
  114. package/dist/esm/security/ssrf.guard.js +176 -0
  115. package/dist/esm/security/ssrf.guard.js.map +1 -0
  116. package/dist/esm/security/url.validator.js +166 -0
  117. package/dist/esm/security/url.validator.js.map +1 -0
  118. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  119. package/dist/esm/types/adapter.js +5 -0
  120. package/dist/esm/types/adapter.js.map +1 -0
  121. package/dist/esm/types/client.js +5 -0
  122. package/dist/esm/types/client.js.map +1 -0
  123. package/dist/esm/types/config.js +5 -0
  124. package/dist/esm/types/config.js.map +1 -0
  125. package/dist/esm/types/errors.js +30 -0
  126. package/dist/esm/types/errors.js.map +1 -0
  127. package/dist/esm/types/index.js +19 -0
  128. package/dist/esm/types/index.js.map +1 -0
  129. package/dist/esm/types/ip.js +5 -0
  130. package/dist/esm/types/ip.js.map +1 -0
  131. package/dist/esm/types/logger.js +5 -0
  132. package/dist/esm/types/logger.js.map +1 -0
  133. package/dist/esm/types/request_response.js +5 -0
  134. package/dist/esm/types/request_response.js.map +1 -0
  135. package/dist/esm/types/security.js +5 -0
  136. package/dist/esm/types/security.js.map +1 -0
  137. package/dist/esm/types/trace.js +11 -0
  138. package/dist/esm/types/trace.js.map +1 -0
  139. package/dist/esm/utils/common.js +27 -0
  140. package/dist/esm/utils/common.js.map +1 -0
  141. package/dist/esm/utils/domain.js +71 -0
  142. package/dist/esm/utils/domain.js.map +1 -0
  143. package/dist/esm/utils/index.js +7 -0
  144. package/dist/esm/utils/index.js.map +1 -0
  145. package/dist/esm/utils/ip.range.js +187 -0
  146. package/dist/esm/utils/ip.range.js.map +1 -0
  147. package/dist/esm/utils/trace.context.js +199 -0
  148. package/dist/esm/utils/trace.context.js.map +1 -0
  149. package/dist/types/adapter/axios.adapter.d.ts +51 -0
  150. package/dist/types/adapter/axios.adapter.d.ts.map +1 -0
  151. package/dist/types/adapter/base.d.ts +56 -0
  152. package/dist/types/adapter/base.d.ts.map +1 -0
  153. package/dist/types/adapter/index.d.ts +4 -0
  154. package/dist/types/adapter/index.d.ts.map +1 -0
  155. package/dist/types/adapter/undici.adapter.d.ts +68 -0
  156. package/dist/types/adapter/undici.adapter.d.ts.map +1 -0
  157. package/dist/types/client.d.ts +105 -0
  158. package/dist/types/client.d.ts.map +1 -0
  159. package/dist/types/config.d.ts +14 -0
  160. package/dist/types/config.d.ts.map +1 -0
  161. package/dist/types/const/config.const.d.ts +23 -0
  162. package/dist/types/const/config.const.d.ts.map +1 -0
  163. package/dist/types/const/dns.const.d.ts +13 -0
  164. package/dist/types/const/dns.const.d.ts.map +1 -0
  165. package/dist/types/const/enum.const.d.ts +17 -0
  166. package/dist/types/const/enum.const.d.ts.map +1 -0
  167. package/dist/types/const/index.d.ts +5 -0
  168. package/dist/types/const/index.d.ts.map +1 -0
  169. package/dist/types/const/ip.const.d.ts +42 -0
  170. package/dist/types/const/ip.const.d.ts.map +1 -0
  171. package/dist/types/index.d.ts +9 -0
  172. package/dist/types/index.d.ts.map +1 -0
  173. package/dist/types/logger/base.d.ts +42 -0
  174. package/dist/types/logger/base.d.ts.map +1 -0
  175. package/dist/types/logger/http_client.logger.d.ts +49 -0
  176. package/dist/types/logger/http_client.logger.d.ts.map +1 -0
  177. package/dist/types/logger/index.d.ts +4 -0
  178. package/dist/types/logger/index.d.ts.map +1 -0
  179. package/dist/types/logger/log.filter.d.ts +56 -0
  180. package/dist/types/logger/log.filter.d.ts.map +1 -0
  181. package/dist/types/security/dns.validator.d.ts +61 -0
  182. package/dist/types/security/dns.validator.d.ts.map +1 -0
  183. package/dist/types/security/index.d.ts +5 -0
  184. package/dist/types/security/index.d.ts.map +1 -0
  185. package/dist/types/security/ip.validator.d.ts +31 -0
  186. package/dist/types/security/ip.validator.d.ts.map +1 -0
  187. package/dist/types/security/ssrf.guard.d.ts +54 -0
  188. package/dist/types/security/ssrf.guard.d.ts.map +1 -0
  189. package/dist/types/security/url.validator.d.ts +76 -0
  190. package/dist/types/security/url.validator.d.ts.map +1 -0
  191. package/dist/types/types/adapter.d.ts +30 -0
  192. package/dist/types/types/adapter.d.ts.map +1 -0
  193. package/dist/types/types/client.d.ts +85 -0
  194. package/dist/types/types/client.d.ts.map +1 -0
  195. package/dist/types/types/config.d.ts +99 -0
  196. package/dist/types/types/config.d.ts.map +1 -0
  197. package/dist/types/types/errors.d.ts +23 -0
  198. package/dist/types/types/errors.d.ts.map +1 -0
  199. package/dist/types/types/index.d.ts +10 -0
  200. package/dist/types/types/index.d.ts.map +1 -0
  201. package/dist/types/types/ip.d.ts +32 -0
  202. package/dist/types/types/ip.d.ts.map +1 -0
  203. package/dist/types/types/logger.d.ts +136 -0
  204. package/dist/types/types/logger.d.ts.map +1 -0
  205. package/dist/types/types/request_response.d.ts +54 -0
  206. package/dist/types/types/request_response.d.ts.map +1 -0
  207. package/dist/types/types/security.d.ts +115 -0
  208. package/dist/types/types/security.d.ts.map +1 -0
  209. package/dist/types/types/trace.d.ts +34 -0
  210. package/dist/types/types/trace.d.ts.map +1 -0
  211. package/dist/types/utils/common.d.ts +14 -0
  212. package/dist/types/utils/common.d.ts.map +1 -0
  213. package/dist/types/utils/domain.d.ts +39 -0
  214. package/dist/types/utils/domain.d.ts.map +1 -0
  215. package/dist/types/utils/index.d.ts +6 -0
  216. package/dist/types/utils/index.d.ts.map +1 -0
  217. package/dist/types/utils/ip.range.d.ts +61 -0
  218. package/dist/types/utils/ip.range.d.ts.map +1 -0
  219. package/dist/types/utils/trace.context.d.ts +106 -0
  220. package/dist/types/utils/trace.context.d.ts.map +1 -0
  221. package/docs/adapters.md +53 -0
  222. package/docs/configuration.md +149 -0
  223. package/docs/logging.md +70 -0
  224. package/docs/proxy.md +44 -0
  225. package/docs/security.md +56 -0
  226. package/docs/trace-context.md +436 -0
  227. package/package.json +50 -0
  228. package/src/adapter/axios.adapter.ts +228 -0
  229. package/src/adapter/base.ts +180 -0
  230. package/src/adapter/index.ts +3 -0
  231. package/src/adapter/undici.adapter.ts +282 -0
  232. package/src/client.ts +552 -0
  233. package/src/config.ts +86 -0
  234. package/src/const/config.const.ts +60 -0
  235. package/src/const/dns.const.ts +15 -0
  236. package/src/const/enum.const.ts +17 -0
  237. package/src/const/index.ts +4 -0
  238. package/src/const/ip.const.ts +139 -0
  239. package/src/index.ts +8 -0
  240. package/src/logger/base.ts +75 -0
  241. package/src/logger/http_client.logger.ts +272 -0
  242. package/src/logger/index.ts +3 -0
  243. package/src/logger/log.filter.ts +149 -0
  244. package/src/security/dns.validator.ts +170 -0
  245. package/src/security/index.ts +4 -0
  246. package/src/security/ip.validator.ts +124 -0
  247. package/src/security/ssrf.guard.ts +224 -0
  248. package/src/security/url.validator.ts +192 -0
  249. package/src/types/adapter.ts +38 -0
  250. package/src/types/client.ts +119 -0
  251. package/src/types/config.ts +110 -0
  252. package/src/types/errors.ts +38 -0
  253. package/src/types/index.ts +27 -0
  254. package/src/types/ip.ts +34 -0
  255. package/src/types/logger.ts +150 -0
  256. package/src/types/request_response.ts +65 -0
  257. package/src/types/security.ts +126 -0
  258. package/src/types/trace.ts +35 -0
  259. package/src/utils/common.ts +28 -0
  260. package/src/utils/domain.ts +78 -0
  261. package/src/utils/index.ts +7 -0
  262. package/src/utils/ip.range.ts +218 -0
  263. package/src/utils/trace.context.ts +240 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ * 0.1.0
4
+ * Initial release.
5
+
package/README.md ADDED
@@ -0,0 +1,160 @@
1
+ # nstarter-http-request
2
+
3
+ HTTP 请求客户端插件,提供 SSRF 防护、日志记录、正向代理等安全特性。
4
+
5
+ ## 核心特性
6
+
7
+ - 🔒 **SSRF 防护**:DNS/IP 验证,阻止访问内网地址
8
+ - 📝 **完善日志**:请求/响应日志记录与过滤
9
+ - 🔄 **多适配器**:支持 Axios 和 Undici
10
+ - 🌐 **代理支持**:HTTP/HTTPS 正向代理
11
+ - ⚡ **重试机制**:可配置的请求重试策略
12
+ - 🎯 **类型安全**:完整 TypeScript 类型支持
13
+
14
+ ## 包结构
15
+
16
+ ```
17
+ plugin-http-request/
18
+ ├── src/ # 源代码目录
19
+ │ ├── adapter/ # HTTP 适配器层
20
+ │ │ ├── base.ts # 适配器基类
21
+ │ │ ├── axios.adapter.ts # Axios 适配器实现
22
+ │ │ └── undici.adapter.ts # Undici 适配器实现
23
+ │ ├── security/ # 安全防护模块
24
+ │ │ ├── ssrf.guard.ts # SSRF 防护核心
25
+ │ │ ├── dns.validator.ts # DNS 验证器(域名解析)
26
+ │ │ ├── ip.validator.ts # IP 地址验证器(私有/保留IP检测)
27
+ │ │ └── url.validator.ts # URL 验证器(黑白名单)
28
+ │ ├── logger/ # 日志记录模块
29
+ │ │ ├── base.ts # 日志记录器基类和接口
30
+ │ │ ├── console.logger.ts # 控制台日志实现
31
+ │ │ ├── http_client.logger.ts # HTTP 客户端专用日志
32
+ │ │ └── log.filter.ts # 日志过滤器(按方法、URL、状态码等)
33
+ │ ├── types/ # TypeScript 类型定义
34
+ │ │ ├── config.ts # 配置相关类型
35
+ │ │ ├── request_response.ts # 请求/响应类型
36
+ │ │ ├── security.ts # 安全相关类型
37
+ │ │ ├── logger.ts # 日志相关类型
38
+ │ │ ├── adapter.ts # 适配器接口类型
39
+ │ │ ├── client.ts # 客户端接口类型
40
+ │ │ ├── errors.ts # 错误类型定义
41
+ │ │ └── index.ts # 类型统一导出
42
+ │ ├── utils/ # 工具函数集
43
+ │ │ ├── domain.matcher.ts # 域名匹配工具(支持完全匹配、后缀匹配)
44
+ │ │ ├── ip.range.ts # IP 范围解析工具(CIDR 支持)
45
+ │ │ └── common.ts # 通用工具函数
46
+ │ ├── const/ # 常量定义
47
+ │ │ ├── config.const.ts # 默认配置常量
48
+ │ │ ├── enum.const.ts # 枚举常量(适配器类型、日志级别)
49
+ │ │ └── ip.const.ts # IP 相关常量(私有IP段、保留IP段)
50
+ │ ├── client.ts # HTTP 客户端核心类(NsHttpClient)
51
+ │ ├── config.ts # 配置合并与验证
52
+ │ └── index.ts # 主入口文件
53
+ ├── test/ # 测试文件目录
54
+ │ ├── adapter/ # 适配器测试
55
+ │ ├── security/ # 安全模块测试
56
+ │ ├── logger/ # 日志模块测试
57
+ │ ├── utils/ # 工具函数测试
58
+ │ ├── integration/ # 集成测试
59
+ │ ├── client.test.ts # 客户端测试
60
+ │ └── config.test.ts # 配置测试
61
+ └── dist/ # 构建输出目录
62
+ ├── cjs/ # CommonJS 格式(Node.js require)
63
+ ├── esm/ # ES Module 格式(import)
64
+ └── types/ # TypeScript 类型声明文件
65
+ ```
66
+
67
+ ### 核心模块说明
68
+
69
+ - **client.ts** - 提供统一的 HTTP 客户端接口,整合适配器、安全防护、日志等功能
70
+ - **adapter/** - 适配器模式实现,支持多种 HTTP 库(Axios、Undici),可扩展
71
+ - **security/** - SSRF 防护核心,包含 DNS 解析、IP 验证、URL 黑白名单等安全检查
72
+ - **logger/** - 可配置的日志系统,支持请求/响应记录、敏感信息过滤、条件日志
73
+ - **utils/** - 工具集,包含域名匹配工具(黑白名单、no_proxy)、IP 段解析(CIDR)等辅助功能
74
+ - **types/** - 完整的 TypeScript 类型定义,确保类型安全
75
+
76
+ ## 本地开发
77
+
78
+ ```bash
79
+ # 在项目根目录安装依赖
80
+ npm install
81
+
82
+ # 构建此包(在根目录执行)
83
+ nx build nstarter-http-request
84
+
85
+ # 运行测试(在根目录执行)
86
+ nx test nstarter-http-request
87
+
88
+ # 代码检查(在根目录执行)
89
+ nx eslint nstarter-http-request
90
+
91
+ # 清理构建产物(在根目录执行)
92
+ nx run nstarter-http-request:clean
93
+
94
+ # 构建所有包
95
+ nx run-many -t build
96
+
97
+ # 测试所有包
98
+ nx run-many -t test
99
+ ```
100
+
101
+ ## 快速开始
102
+
103
+ ### 基础使用
104
+
105
+ ```typescript
106
+ import { NsHttpClient, EClientAdapter } from 'nstarter-http-request';
107
+
108
+ // 创建客户端实例
109
+ const client = new NsHttpClient({
110
+ adapter: EClientAdapter.axios,
111
+ security: {
112
+ enableDnsValidation: true,
113
+ enableIpValidation: true,
114
+ allowPrivateIp: false
115
+ }
116
+ });
117
+
118
+ // GET 请求
119
+ const response = await client.get('https://api.example.com/users');
120
+
121
+ // POST 请求
122
+ const user = await client.post('https://api.example.com/users', {
123
+ name: 'John',
124
+ email: 'john@example.com'
125
+ });
126
+ ```
127
+
128
+ ### 完整配置示例
129
+
130
+ 详细配置说明请参考 [配置文档](./docs/configuration.md)
131
+
132
+ ```typescript
133
+ import { NsHttpClient, EClientAdapter } from 'nstarter-http-request';
134
+
135
+ const client = new NsHttpClient({
136
+ adapter: EClientAdapter.axios,
137
+ security: {
138
+ enableDnsValidation: true,
139
+ enableIpValidation: true,
140
+ allowPrivateIp: false
141
+ },
142
+ logging: {
143
+ enabled: true
144
+ },
145
+ request: {
146
+ timeout: 30000,
147
+ retries: 3
148
+ }
149
+ });
150
+ ```
151
+
152
+ ## 详细文档
153
+
154
+ - [完整配置示例](./docs/configuration.md) - 所有配置选项的详细说明
155
+ - [安全配置](./docs/security.md) - SSRF 防护、SSL 验证、域名黑白名单等安全特性
156
+ - [日志配置](./docs/logging.md) - 日志记录、过滤、自定义日志器等
157
+ - [正向代理配置](./docs/proxy.md) - HTTP/HTTPS 正向代理和 no_proxy 配置
158
+ - [适配器切换](./docs/adapters.md) - Axios 和 Undici 适配器的选择与切换
159
+ - [W3C Trace Context 支持](./docs/trace-context.md) - 分布式链路追踪支持
160
+
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * Axios 适配器实现
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.AxiosAdapter = void 0;
43
+ const types_1 = require("../types");
44
+ const base_1 = require("./base");
45
+ const axios_1 = __importDefault(require("axios"));
46
+ const https_proxy_agent_1 = require("https-proxy-agent");
47
+ const https = __importStar(require("https"));
48
+ const const_1 = require("../const");
49
+ /**
50
+ * Axios 适配器
51
+ */
52
+ class AxiosAdapter extends base_1.BaseHttpAdapter {
53
+ constructor() {
54
+ super(...arguments);
55
+ this.name = const_1.EClientAdapter.axios;
56
+ }
57
+ /**
58
+ * 检查 Axios 是否可用
59
+ */
60
+ isAvailable() {
61
+ return !!axios_1.default;
62
+ }
63
+ /**
64
+ * 发送请求
65
+ * @param options 请求选项
66
+ */
67
+ async sendRequest(options) {
68
+ if (!this.isAvailable()) {
69
+ throw new Error('Axios is not available. Please install it: npm install axios');
70
+ }
71
+ const url = this.buildUrl(options.url, options.params);
72
+ const axiosConfig = this.buildAxiosConfig(options, url);
73
+ try {
74
+ const startTime = Date.now();
75
+ const axiosResponse = await (0, axios_1.default)(axiosConfig);
76
+ const duration = Date.now() - startTime;
77
+ this.logger?.debug('HTTP request completed', {
78
+ method: options.method,
79
+ url,
80
+ status: axiosResponse.status,
81
+ duration
82
+ });
83
+ // 转换为标准响应格式
84
+ const response = {
85
+ status: axiosResponse.status,
86
+ statusText: axiosResponse.statusText,
87
+ headers: this.normalizeHeaders(axiosResponse.headers),
88
+ data: axiosResponse.data,
89
+ config: options
90
+ };
91
+ return response;
92
+ }
93
+ catch (error) {
94
+ throw this.handleAxiosError(error, options);
95
+ }
96
+ }
97
+ /**
98
+ * 构建 Axios 配置
99
+ * @param options 请求选项
100
+ * @param url 完整 URL
101
+ */
102
+ buildAxiosConfig(options, url) {
103
+ const axiosConfig = {
104
+ method: options.method.toLowerCase(),
105
+ url,
106
+ headers: options.headers || {},
107
+ timeout: options.timeout ?? this.requestConfig.timeout,
108
+ maxRedirects: this.requestConfig.maxRedirects,
109
+ maxContentLength: this.requestConfig.maxResponseBodySize,
110
+ maxBodyLength: this.requestConfig.maxRequestBodySize,
111
+ validateStatus: () => true,
112
+ httpsAgent: new https.Agent({
113
+ rejectUnauthorized: this.securityConfig.rejectUnauthorized
114
+ })
115
+ };
116
+ // 设置请求体
117
+ if (options.body !== undefined) {
118
+ axiosConfig.data = options.body;
119
+ }
120
+ // 设置响应类型
121
+ if (options.responseType) {
122
+ axiosConfig.responseType = options.responseType;
123
+ }
124
+ // 配置代理
125
+ this.configureAxiosProxy(axiosConfig, options);
126
+ return axiosConfig;
127
+ }
128
+ /**
129
+ * 配置 Axios 代理
130
+ * @param axiosConfig Axios 配置对象
131
+ * @param options 请求选项
132
+ */
133
+ configureAxiosProxy(axiosConfig, options) {
134
+ // 设置代理(全局配置)
135
+ if (this.requestConfig.proxy) {
136
+ axiosConfig.proxy = this.buildProxyConfig(this.requestConfig.proxy);
137
+ }
138
+ else {
139
+ // 显式的禁用代理, 防止axios默认从环境变量中 HTTP_PROXY、HTTPS_PROXY 读取代理配置.
140
+ axiosConfig.proxy = false;
141
+ }
142
+ // 设置正向代理(如果请求元数据中包含代理信息)
143
+ const forwardProxyMeta = options.meta?.__forwardProxy;
144
+ if (forwardProxyMeta) {
145
+ this.applyForwardProxy(axiosConfig, forwardProxyMeta);
146
+ }
147
+ }
148
+ /**
149
+ * 应用正向代理配置
150
+ * @param axiosConfig Axios 配置对象
151
+ * @param forwardProxyMeta 正向代理元数据
152
+ */
153
+ applyForwardProxy(axiosConfig, forwardProxyMeta) {
154
+ const { proxyUrl, isHttps } = forwardProxyMeta;
155
+ if (isHttps) {
156
+ // HTTPS 请求使用 HttpsProxyAgent,并应用证书校验配置
157
+ axiosConfig.httpsAgent = new https_proxy_agent_1.HttpsProxyAgent(proxyUrl, {
158
+ rejectUnauthorized: this.securityConfig.rejectUnauthorized
159
+ });
160
+ axiosConfig.proxy = false;
161
+ this.logger?.debug('Using HttpsProxyAgent for HTTPS request', {
162
+ proxyUrl,
163
+ rejectUnauthorized: this.securityConfig.rejectUnauthorized
164
+ });
165
+ }
166
+ else {
167
+ // HTTP 请求直接设置 proxy
168
+ const parsedProxyUrl = new URL(proxyUrl);
169
+ axiosConfig.proxy = {
170
+ host: parsedProxyUrl.hostname,
171
+ port: Number(parsedProxyUrl.port),
172
+ protocol: 'http'
173
+ };
174
+ // 处理代理认证
175
+ if (parsedProxyUrl.username && parsedProxyUrl.password) {
176
+ axiosConfig.proxy.auth = {
177
+ username: decodeURIComponent(parsedProxyUrl.username),
178
+ password: decodeURIComponent(parsedProxyUrl.password)
179
+ };
180
+ }
181
+ this.logger?.debug('Using proxy for HTTP request', {
182
+ host: axiosConfig.proxy.host,
183
+ port: axiosConfig.proxy.port
184
+ });
185
+ }
186
+ }
187
+ /**
188
+ * 处理 Axios 错误
189
+ * @param error 错误对象
190
+ * @param options 请求选项
191
+ */
192
+ handleAxiosError(error, options) {
193
+ if (error.isAxiosError) {
194
+ return new types_1.HttpError(error.message, error.code || 'AXIOS_ERROR', error.response?.status, error.response ? {
195
+ status: error.response.status,
196
+ statusText: error.response.statusText,
197
+ headers: this.normalizeHeaders(error.response.headers),
198
+ data: error.response.data,
199
+ config: options
200
+ } : undefined, options);
201
+ }
202
+ return new types_1.HttpError(error.message || 'Unknown error', 'UNKNOWN_ERROR', undefined, undefined, options);
203
+ }
204
+ /**
205
+ * 构建代理配置
206
+ * @param proxy 代理配置
207
+ */
208
+ buildProxyConfig(proxy) {
209
+ const config = {
210
+ host: proxy.host,
211
+ port: proxy.port,
212
+ protocol: proxy.protocol
213
+ };
214
+ if (proxy.auth) {
215
+ config.auth = {
216
+ username: proxy.auth.username,
217
+ password: proxy.auth.password
218
+ };
219
+ }
220
+ return config;
221
+ }
222
+ }
223
+ exports.AxiosAdapter = AxiosAdapter;
224
+ //# sourceMappingURL=axios.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axios.adapter.js","sourceRoot":"","sources":["../../../src/adapter/axios.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP 适配器基础实现
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseHttpAdapter = void 0;
7
+ const utils_1 = require("../utils");
8
+ /**
9
+ * HTTP 适配器抽象基类
10
+ */
11
+ class BaseHttpAdapter {
12
+ constructor(requestConfig, securityConfig, logger) {
13
+ this.requestConfig = requestConfig;
14
+ this.securityConfig = securityConfig;
15
+ this.logger = logger;
16
+ }
17
+ /**
18
+ * 发送请求(带重试机制)
19
+ * @param options 请求选项
20
+ */
21
+ async request(options) {
22
+ const retries = options.retries ?? this.requestConfig.retries;
23
+ const retryDelay = this.requestConfig.retryDelay;
24
+ const timeout = options.timeout ?? this.requestConfig.timeout;
25
+ // 合并选项
26
+ const finalOptions = {
27
+ ...options,
28
+ timeout
29
+ };
30
+ let lastError;
31
+ for (let attempt = 0; attempt <= retries; attempt++) {
32
+ try {
33
+ this.logger?.debug(`HTTP request attempt ${attempt + 1}/${retries + 1}`, {
34
+ method: options.method,
35
+ url: options.url,
36
+ scenario: options.scenario
37
+ });
38
+ const response = await this.sendRequest(finalOptions);
39
+ if (attempt > 0) {
40
+ this.logger?.debug(`HTTP request succeeded after ${attempt} retries`, {
41
+ method: options.method,
42
+ url: options.url,
43
+ status: response.status
44
+ });
45
+ }
46
+ return response;
47
+ }
48
+ catch (error) {
49
+ lastError = error;
50
+ this.logger?.debug(`HTTP request attempt ${attempt + 1} failed`, {
51
+ method: options.method,
52
+ url: options.url,
53
+ error: error instanceof Error ? error.message : String(error)
54
+ });
55
+ // 最后一次尝试,不再重试
56
+ if (attempt === retries) {
57
+ break;
58
+ }
59
+ // 等待后重试
60
+ await utils_1.CommonUtils.delay(retryDelay * (attempt + 1));
61
+ }
62
+ }
63
+ // 所有尝试都失败了
64
+ this.logger?.debug('All HTTP request attempts failed', {
65
+ method: options.method,
66
+ url: options.url,
67
+ attempts: retries + 1,
68
+ error: lastError instanceof Error ? lastError.message : String(lastError)
69
+ });
70
+ throw lastError;
71
+ }
72
+ /**
73
+ * 更新请求配置
74
+ * @param config 新的请求配置
75
+ */
76
+ updateConfig(config) {
77
+ this.requestConfig = { ...this.requestConfig, ...config };
78
+ }
79
+ /**
80
+ * 设置日志记录器
81
+ * @param logger 日志记录器
82
+ */
83
+ setLogger(logger) {
84
+ this.logger = logger;
85
+ }
86
+ /**
87
+ * 构建查询字符串
88
+ * @param params 查询参数
89
+ */
90
+ buildQueryString(params) {
91
+ if (!params || Object.keys(params).length === 0) {
92
+ return '';
93
+ }
94
+ const searchParams = new URLSearchParams();
95
+ for (const [key, value] of Object.entries(params)) {
96
+ searchParams.append(key, String(value));
97
+ }
98
+ return searchParams.toString();
99
+ }
100
+ /**
101
+ * 构建完整 URL
102
+ * @param url 基础 URL
103
+ * @param params 查询参数
104
+ */
105
+ buildUrl(url, params) {
106
+ const queryString = this.buildQueryString(params);
107
+ if (!queryString) {
108
+ return url;
109
+ }
110
+ const separator = url.includes('?') ? '&' : '?';
111
+ return `${url}${separator}${queryString}`;
112
+ }
113
+ /**
114
+ * 标准化响应头
115
+ * @param headers 原始响应头
116
+ */
117
+ normalizeHeaders(headers) {
118
+ const normalized = {};
119
+ if (!headers) {
120
+ return normalized;
121
+ }
122
+ // 处理不同的头格式
123
+ if (typeof headers === 'object') {
124
+ for (const [key, value] of Object.entries(headers)) {
125
+ if (value !== undefined && value !== null) {
126
+ normalized[key.toLowerCase()] = String(value);
127
+ }
128
+ }
129
+ }
130
+ return normalized;
131
+ }
132
+ }
133
+ exports.BaseHttpAdapter = BaseHttpAdapter;
134
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/adapter/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base"), exports);
18
+ __exportStar(require("./axios.adapter"), exports);
19
+ __exportStar(require("./undici.adapter"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,kDAAgC;AAChC,mDAAiC"}