recker 1.0.2-0 → 1.0.3

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 (287) hide show
  1. package/LICENSE +0 -2
  2. package/README.md +121 -72
  3. package/dist/cache/memory-storage.d.ts.map +1 -1
  4. package/dist/cache/memory-storage.js +7 -1
  5. package/dist/constants/http-status.d.ts +74 -0
  6. package/dist/constants/http-status.d.ts.map +1 -0
  7. package/dist/constants/http-status.js +156 -0
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +6 -6
  10. package/dist/cookies/memory-cookie-jar.d.ts +31 -0
  11. package/dist/cookies/memory-cookie-jar.d.ts.map +1 -0
  12. package/dist/cookies/memory-cookie-jar.js +210 -0
  13. package/dist/core/client.d.ts +9 -0
  14. package/dist/core/client.d.ts.map +1 -1
  15. package/dist/core/client.js +252 -53
  16. package/dist/core/errors.d.ts +18 -2
  17. package/dist/core/errors.d.ts.map +1 -1
  18. package/dist/core/errors.js +66 -5
  19. package/dist/core/index.d.ts +6 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +5 -0
  22. package/dist/core/request-promise.d.ts.map +1 -1
  23. package/dist/core/request-promise.js +8 -2
  24. package/dist/core/request.d.ts +7 -1
  25. package/dist/core/request.d.ts.map +1 -1
  26. package/dist/core/request.js +32 -0
  27. package/dist/core/response.d.ts +2 -0
  28. package/dist/core/response.d.ts.map +1 -1
  29. package/dist/core/response.js +44 -19
  30. package/dist/events/request-events.d.ts +48 -0
  31. package/dist/events/request-events.d.ts.map +1 -0
  32. package/dist/events/request-events.js +85 -0
  33. package/dist/index.d.ts +28 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +28 -2
  36. package/dist/mcp/client.d.ts.map +1 -1
  37. package/dist/mcp/client.js +16 -5
  38. package/dist/mcp/contract.d.ts +77 -0
  39. package/dist/mcp/contract.d.ts.map +1 -0
  40. package/dist/mcp/contract.js +278 -0
  41. package/dist/mcp/types.d.ts +1 -0
  42. package/dist/mcp/types.d.ts.map +1 -1
  43. package/dist/plugins/auth.d.ts +45 -0
  44. package/dist/plugins/auth.d.ts.map +1 -0
  45. package/dist/plugins/auth.js +268 -0
  46. package/dist/plugins/cache.d.ts +7 -1
  47. package/dist/plugins/cache.d.ts.map +1 -1
  48. package/dist/plugins/cache.js +470 -49
  49. package/dist/plugins/circuit-breaker.js +1 -1
  50. package/dist/plugins/compression.d.ts.map +1 -1
  51. package/dist/plugins/compression.js +3 -3
  52. package/dist/plugins/dedup.d.ts.map +1 -1
  53. package/dist/plugins/dedup.js +2 -1
  54. package/dist/plugins/graphql.d.ts +4 -3
  55. package/dist/plugins/graphql.d.ts.map +1 -1
  56. package/dist/plugins/graphql.js +24 -5
  57. package/dist/plugins/grpc-web.d.ts +80 -0
  58. package/dist/plugins/grpc-web.d.ts.map +1 -0
  59. package/dist/plugins/grpc-web.js +261 -0
  60. package/dist/plugins/har-player.d.ts.map +1 -1
  61. package/dist/plugins/har-player.js +11 -2
  62. package/dist/plugins/hls.d.ts +33 -0
  63. package/dist/plugins/hls.d.ts.map +1 -0
  64. package/dist/plugins/hls.js +225 -0
  65. package/dist/plugins/http2-push.d.ts +64 -0
  66. package/dist/plugins/http2-push.d.ts.map +1 -0
  67. package/dist/plugins/http2-push.js +274 -0
  68. package/dist/plugins/http3.d.ts +76 -0
  69. package/dist/plugins/http3.d.ts.map +1 -0
  70. package/dist/plugins/http3.js +231 -0
  71. package/dist/plugins/interface-rotator.d.ts +10 -0
  72. package/dist/plugins/interface-rotator.d.ts.map +1 -0
  73. package/dist/plugins/interface-rotator.js +57 -0
  74. package/dist/plugins/jsonrpc.d.ts +76 -0
  75. package/dist/plugins/jsonrpc.d.ts.map +1 -0
  76. package/dist/plugins/jsonrpc.js +143 -0
  77. package/dist/plugins/logger.d.ts +8 -5
  78. package/dist/plugins/logger.d.ts.map +1 -1
  79. package/dist/plugins/logger.js +66 -30
  80. package/dist/plugins/odata.d.ts +182 -0
  81. package/dist/plugins/odata.d.ts.map +1 -0
  82. package/dist/plugins/odata.js +561 -0
  83. package/dist/plugins/retry.d.ts +1 -0
  84. package/dist/plugins/retry.d.ts.map +1 -1
  85. package/dist/plugins/retry.js +26 -2
  86. package/dist/plugins/scrape.d.ts +22 -0
  87. package/dist/plugins/scrape.d.ts.map +1 -0
  88. package/dist/plugins/scrape.js +87 -0
  89. package/dist/plugins/soap.d.ts +73 -0
  90. package/dist/plugins/soap.d.ts.map +1 -0
  91. package/dist/plugins/soap.js +347 -0
  92. package/dist/plugins/user-agent.d.ts +8 -0
  93. package/dist/plugins/user-agent.d.ts.map +1 -0
  94. package/dist/plugins/user-agent.js +46 -0
  95. package/dist/plugins/xml.d.ts +10 -0
  96. package/dist/plugins/xml.d.ts.map +1 -0
  97. package/dist/plugins/xml.js +194 -0
  98. package/dist/presets/anthropic.d.ts +7 -0
  99. package/dist/presets/anthropic.d.ts.map +1 -0
  100. package/dist/presets/anthropic.js +17 -0
  101. package/dist/presets/azure-openai.d.ts +9 -0
  102. package/dist/presets/azure-openai.d.ts.map +1 -0
  103. package/dist/presets/azure-openai.js +25 -0
  104. package/dist/presets/cloudflare.d.ts +13 -0
  105. package/dist/presets/cloudflare.d.ts.map +1 -0
  106. package/dist/presets/cloudflare.js +39 -0
  107. package/dist/presets/cohere.d.ts +6 -0
  108. package/dist/presets/cohere.d.ts.map +1 -0
  109. package/dist/presets/cohere.js +16 -0
  110. package/dist/presets/deepseek.d.ts +6 -0
  111. package/dist/presets/deepseek.d.ts.map +1 -0
  112. package/dist/presets/deepseek.js +16 -0
  113. package/dist/presets/digitalocean.d.ts +6 -0
  114. package/dist/presets/digitalocean.d.ts.map +1 -0
  115. package/dist/presets/digitalocean.js +16 -0
  116. package/dist/presets/discord.d.ts +7 -0
  117. package/dist/presets/discord.d.ts.map +1 -0
  118. package/dist/presets/discord.js +17 -0
  119. package/dist/presets/fireworks.d.ts +6 -0
  120. package/dist/presets/fireworks.d.ts.map +1 -0
  121. package/dist/presets/fireworks.js +16 -0
  122. package/dist/presets/gemini.d.ts +6 -0
  123. package/dist/presets/gemini.d.ts.map +1 -0
  124. package/dist/presets/gemini.js +16 -0
  125. package/dist/presets/github.d.ts +7 -0
  126. package/dist/presets/github.d.ts.map +1 -0
  127. package/dist/presets/github.js +17 -0
  128. package/dist/presets/gitlab.d.ts +7 -0
  129. package/dist/presets/gitlab.d.ts.map +1 -0
  130. package/dist/presets/gitlab.js +16 -0
  131. package/dist/presets/groq.d.ts +6 -0
  132. package/dist/presets/groq.d.ts.map +1 -0
  133. package/dist/presets/groq.js +16 -0
  134. package/dist/presets/huggingface.d.ts +6 -0
  135. package/dist/presets/huggingface.d.ts.map +1 -0
  136. package/dist/presets/huggingface.js +16 -0
  137. package/dist/presets/index.d.ts +28 -0
  138. package/dist/presets/index.d.ts.map +1 -0
  139. package/dist/presets/index.js +27 -0
  140. package/dist/presets/linear.d.ts +6 -0
  141. package/dist/presets/linear.d.ts.map +1 -0
  142. package/dist/presets/linear.js +16 -0
  143. package/dist/presets/mistral.d.ts +6 -0
  144. package/dist/presets/mistral.d.ts.map +1 -0
  145. package/dist/presets/mistral.js +16 -0
  146. package/dist/presets/notion.d.ts +7 -0
  147. package/dist/presets/notion.d.ts.map +1 -0
  148. package/dist/presets/notion.js +17 -0
  149. package/dist/presets/openai.d.ts +8 -0
  150. package/dist/presets/openai.d.ts.map +1 -0
  151. package/dist/presets/openai.js +23 -0
  152. package/dist/presets/perplexity.d.ts +6 -0
  153. package/dist/presets/perplexity.d.ts.map +1 -0
  154. package/dist/presets/perplexity.js +16 -0
  155. package/dist/presets/registry.d.ts +20 -0
  156. package/dist/presets/registry.d.ts.map +1 -0
  157. package/dist/presets/registry.js +311 -0
  158. package/dist/presets/replicate.d.ts +6 -0
  159. package/dist/presets/replicate.d.ts.map +1 -0
  160. package/dist/presets/replicate.js +16 -0
  161. package/dist/presets/slack.d.ts +6 -0
  162. package/dist/presets/slack.d.ts.map +1 -0
  163. package/dist/presets/slack.js +16 -0
  164. package/dist/presets/stripe.d.ts +8 -0
  165. package/dist/presets/stripe.d.ts.map +1 -0
  166. package/dist/presets/stripe.js +23 -0
  167. package/dist/presets/supabase.d.ts +7 -0
  168. package/dist/presets/supabase.d.ts.map +1 -0
  169. package/dist/presets/supabase.js +18 -0
  170. package/dist/presets/together.d.ts +6 -0
  171. package/dist/presets/together.d.ts.map +1 -0
  172. package/dist/presets/together.js +16 -0
  173. package/dist/presets/twilio.d.ts +7 -0
  174. package/dist/presets/twilio.d.ts.map +1 -0
  175. package/dist/presets/twilio.js +17 -0
  176. package/dist/presets/vercel.d.ts +7 -0
  177. package/dist/presets/vercel.d.ts.map +1 -0
  178. package/dist/presets/vercel.js +23 -0
  179. package/dist/presets/xai.d.ts +7 -0
  180. package/dist/presets/xai.d.ts.map +1 -0
  181. package/dist/presets/xai.js +17 -0
  182. package/dist/protocols/ftp.d.ts +63 -0
  183. package/dist/protocols/ftp.d.ts.map +1 -0
  184. package/dist/protocols/ftp.js +388 -0
  185. package/dist/protocols/index.d.ts +4 -0
  186. package/dist/protocols/index.d.ts.map +1 -0
  187. package/dist/protocols/index.js +3 -0
  188. package/dist/protocols/sftp.d.ts +65 -0
  189. package/dist/protocols/sftp.d.ts.map +1 -0
  190. package/dist/protocols/sftp.js +346 -0
  191. package/dist/protocols/telnet.d.ts +50 -0
  192. package/dist/protocols/telnet.d.ts.map +1 -0
  193. package/dist/protocols/telnet.js +139 -0
  194. package/dist/runner/request-runner.d.ts.map +1 -1
  195. package/dist/runner/request-runner.js +1 -0
  196. package/dist/scrape/document.d.ts +44 -0
  197. package/dist/scrape/document.d.ts.map +1 -0
  198. package/dist/scrape/document.js +198 -0
  199. package/dist/scrape/element.d.ts +50 -0
  200. package/dist/scrape/element.d.ts.map +1 -0
  201. package/dist/scrape/element.js +176 -0
  202. package/dist/scrape/extractors.d.ts +17 -0
  203. package/dist/scrape/extractors.d.ts.map +1 -0
  204. package/dist/scrape/extractors.js +356 -0
  205. package/dist/scrape/index.d.ts +5 -0
  206. package/dist/scrape/index.d.ts.map +1 -0
  207. package/dist/scrape/index.js +3 -0
  208. package/dist/scrape/types.d.ts +108 -0
  209. package/dist/scrape/types.d.ts.map +1 -0
  210. package/dist/scrape/types.js +1 -0
  211. package/dist/testing/index.d.ts +3 -0
  212. package/dist/testing/index.d.ts.map +1 -0
  213. package/dist/testing/index.js +1 -0
  214. package/dist/testing/mock.d.ts +58 -0
  215. package/dist/testing/mock.d.ts.map +1 -0
  216. package/dist/testing/mock.js +252 -0
  217. package/dist/transport/fetch.d.ts.map +1 -1
  218. package/dist/transport/fetch.js +12 -4
  219. package/dist/transport/undici.d.ts +17 -1
  220. package/dist/transport/undici.d.ts.map +1 -1
  221. package/dist/transport/undici.js +708 -47
  222. package/dist/types/index.d.ts +111 -10
  223. package/dist/types/index.d.ts.map +1 -1
  224. package/dist/types/index.js +1 -1
  225. package/dist/types/logger.d.ts +17 -0
  226. package/dist/types/logger.d.ts.map +1 -0
  227. package/dist/types/logger.js +66 -0
  228. package/dist/utils/agent-manager.d.ts.map +1 -1
  229. package/dist/utils/agent-manager.js +20 -4
  230. package/dist/utils/body.d.ts.map +1 -1
  231. package/dist/utils/body.js +14 -2
  232. package/dist/utils/charset.d.ts +16 -0
  233. package/dist/utils/charset.d.ts.map +1 -0
  234. package/dist/utils/charset.js +169 -0
  235. package/dist/utils/client-pool.d.ts +21 -0
  236. package/dist/utils/client-pool.d.ts.map +1 -0
  237. package/dist/utils/client-pool.js +49 -0
  238. package/dist/utils/concurrency.d.ts.map +1 -1
  239. package/dist/utils/concurrency.js +8 -4
  240. package/dist/utils/dns-toolkit.d.ts +13 -0
  241. package/dist/utils/dns-toolkit.d.ts.map +1 -0
  242. package/dist/utils/dns-toolkit.js +48 -0
  243. package/dist/utils/doh.d.ts.map +1 -1
  244. package/dist/utils/doh.js +16 -3
  245. package/dist/utils/download.d.ts +15 -0
  246. package/dist/utils/download.d.ts.map +1 -0
  247. package/dist/utils/download.js +44 -0
  248. package/dist/utils/env-proxy.d.ts +13 -0
  249. package/dist/utils/env-proxy.d.ts.map +1 -0
  250. package/dist/utils/env-proxy.js +105 -0
  251. package/dist/utils/header-parser.d.ts +15 -1
  252. package/dist/utils/header-parser.d.ts.map +1 -1
  253. package/dist/utils/header-parser.js +161 -1
  254. package/dist/utils/link-header.d.ts +70 -0
  255. package/dist/utils/link-header.d.ts.map +1 -0
  256. package/dist/utils/link-header.js +190 -0
  257. package/dist/utils/progress.d.ts +7 -2
  258. package/dist/utils/progress.d.ts.map +1 -1
  259. package/dist/utils/progress.js +48 -15
  260. package/dist/utils/rdap.d.ts +17 -0
  261. package/dist/utils/rdap.d.ts.map +1 -0
  262. package/dist/utils/rdap.js +32 -0
  263. package/dist/utils/request-pool.d.ts.map +1 -1
  264. package/dist/utils/request-pool.js +4 -3
  265. package/dist/utils/sse.d.ts.map +1 -1
  266. package/dist/utils/sse.js +8 -2
  267. package/dist/utils/status-codes.d.ts +84 -0
  268. package/dist/utils/status-codes.d.ts.map +1 -0
  269. package/dist/utils/status-codes.js +204 -0
  270. package/dist/utils/streaming.d.ts.map +1 -1
  271. package/dist/utils/streaming.js +1 -0
  272. package/dist/utils/tls-inspector.d.ts +21 -0
  273. package/dist/utils/tls-inspector.d.ts.map +1 -0
  274. package/dist/utils/tls-inspector.js +39 -0
  275. package/dist/utils/try-fn.d.ts.map +1 -1
  276. package/dist/utils/try-fn.js +11 -5
  277. package/dist/utils/upload.d.ts +1 -0
  278. package/dist/utils/upload.d.ts.map +1 -1
  279. package/dist/utils/upload.js +20 -3
  280. package/dist/utils/user-agent.d.ts +9 -9
  281. package/dist/utils/user-agent.js +9 -9
  282. package/dist/utils/whois.d.ts.map +1 -1
  283. package/dist/utils/whois.js +11 -2
  284. package/dist/websocket/client.d.ts +29 -1
  285. package/dist/websocket/client.d.ts.map +1 -1
  286. package/dist/websocket/client.js +145 -13
  287. package/package.json +45 -8
@@ -1,22 +1,47 @@
1
1
  export type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' | 'PURGE' | 'PROPFIND' | 'PROPPATCH' | 'MKCOL' | 'COPY' | 'MOVE' | 'LOCK' | 'UNLOCK' | 'LINK' | 'UNLINK';
2
2
  export interface ProgressEvent {
3
3
  loaded: number;
4
+ transferred: number;
4
5
  total?: number;
5
6
  percent?: number;
6
7
  rate?: number;
7
8
  estimated?: number;
9
+ direction?: 'upload' | 'download';
8
10
  }
9
11
  export type ProgressCallback = (progress: ProgressEvent) => void;
12
+ export interface TimeoutOptions {
13
+ lookup?: number;
14
+ connect?: number;
15
+ secureConnect?: number;
16
+ socket?: number;
17
+ send?: number;
18
+ response?: number;
19
+ request?: number;
20
+ }
21
+ export interface RedirectInfo {
22
+ from: string;
23
+ to: string;
24
+ status: number;
25
+ headers: Headers;
26
+ }
10
27
  export interface RequestOptions {
11
28
  method?: Method;
12
29
  headers?: HeadersInit;
13
30
  body?: BodyInit | null;
31
+ json?: any;
32
+ form?: Record<string, any>;
33
+ xml?: any;
14
34
  params?: Record<string, string | number>;
15
35
  signal?: AbortSignal;
16
36
  throwHttpErrors?: boolean;
17
- timeout?: number;
37
+ timeout?: number | TimeoutOptions;
18
38
  onUploadProgress?: ProgressCallback;
19
39
  onDownloadProgress?: ProgressCallback;
40
+ maxResponseSize?: number;
41
+ beforeRedirect?: (info: RedirectInfo) => void | false | string | Promise<void | false | string>;
42
+ maxRedirects?: number;
43
+ followRedirects?: boolean;
44
+ http2?: boolean;
20
45
  }
21
46
  export interface ReckerRequest {
22
47
  url: string;
@@ -25,14 +50,22 @@ export interface ReckerRequest {
25
50
  body: BodyInit | null;
26
51
  signal?: AbortSignal;
27
52
  throwHttpErrors?: boolean;
53
+ timeout?: TimeoutOptions;
28
54
  onUploadProgress?: ProgressCallback;
29
55
  onDownloadProgress?: ProgressCallback;
56
+ maxResponseSize?: number;
57
+ beforeRedirect?: (info: RedirectInfo) => void | false | string | Promise<void | false | string>;
58
+ maxRedirects?: number;
59
+ followRedirects?: boolean;
60
+ http2?: boolean;
30
61
  withHeader(name: string, value: string): ReckerRequest;
31
62
  withBody(body: BodyInit): ReckerRequest;
32
63
  _hooks?: {
33
64
  onDnsLookup?: (info: any) => void;
34
65
  onTcpConnect?: (info: any) => void;
35
66
  onTlsHandshake?: (info: any) => void;
67
+ onRequestSent?: () => void;
68
+ onResponseStart?: (info: any) => void;
36
69
  };
37
70
  }
38
71
  export interface Timings {
@@ -53,14 +86,8 @@ export interface ConcurrencyConfig {
53
86
  retries?: number;
54
87
  retryDelay?: number;
55
88
  };
56
- agent?: {
89
+ agent?: AgentOptions & {
57
90
  connections?: number | 'auto';
58
- pipelining?: number;
59
- keepAlive?: boolean;
60
- keepAliveTimeout?: number;
61
- keepAliveMaxTimeout?: number;
62
- connectTimeout?: number;
63
- perDomainPooling?: boolean;
64
91
  };
65
92
  http2?: {
66
93
  maxConcurrentStreams?: number | 'auto';
@@ -105,6 +132,8 @@ export interface ConnectionInfo {
105
132
  reused?: boolean;
106
133
  rtt?: number;
107
134
  }
135
+ export type { Logger, MinimalLogger } from './logger.js';
136
+ export { consoleLogger, silentLogger, createLevelLogger } from './logger.js';
108
137
  export interface SSEEvent {
109
138
  id?: string;
110
139
  event?: string;
@@ -134,13 +163,26 @@ export interface CacheEntry {
134
163
  headers: Record<string, string>;
135
164
  body: string;
136
165
  timestamp: number;
166
+ etag?: string;
167
+ lastModified?: string;
168
+ vary?: string;
169
+ expires?: number;
170
+ maxAge?: number;
171
+ sMaxAge?: number;
172
+ mustRevalidate?: boolean;
173
+ noCache?: boolean;
174
+ noStore?: boolean;
175
+ isPrivate?: boolean;
176
+ isPublic?: boolean;
177
+ staleWhileRevalidate?: number;
178
+ staleIfError?: number;
137
179
  }
138
180
  export interface CacheStorage {
139
181
  get(key: string): Promise<CacheEntry | undefined | null>;
140
182
  set(key: string, value: CacheEntry, ttl: number): Promise<void>;
141
183
  delete(key: string): Promise<void>;
142
184
  }
143
- export type CacheStrategy = 'cache-first' | 'network-only' | 'network-first' | 'stale-while-revalidate';
185
+ export type CacheStrategy = 'cache-first' | 'network-only' | 'network-first' | 'stale-while-revalidate' | 'revalidate' | 'rfc-compliant';
144
186
  export type Plugin = (client: any) => void;
145
187
  export type HookFunction<T = void> = (req: ReckerRequest, extra?: any) => T | Promise<T>;
146
188
  export interface Hooks {
@@ -152,11 +194,15 @@ export interface Hooks {
152
194
  onDnsLookup?: Array<(info: {
153
195
  domain: string;
154
196
  duration: number;
155
- ip?: string;
197
+ addresses?: string[];
156
198
  }, req: ReckerRequest) => void>;
157
199
  onTcpConnect?: Array<(info: {
158
200
  remoteAddress: string;
201
+ remotePort?: number;
202
+ localAddress?: string;
203
+ localPort?: number;
159
204
  duration: number;
205
+ reused?: boolean;
160
206
  }, req: ReckerRequest) => void>;
161
207
  onTlsHandshake?: Array<(info: {
162
208
  protocol: string;
@@ -166,6 +212,7 @@ export interface Hooks {
166
212
  onSocketAssigned?: Array<(info: {
167
213
  protocol: string;
168
214
  reused: boolean;
215
+ remoteAddress: string;
169
216
  }, req: ReckerRequest) => void>;
170
217
  onRequestSent?: Array<(req: ReckerRequest) => void>;
171
218
  onResponseStart?: Array<(info: {
@@ -175,10 +222,35 @@ export interface Hooks {
175
222
  }
176
223
  export interface ProxyOptions {
177
224
  url: string;
225
+ type?: 'http' | 'https' | 'socks4' | 'socks4a' | 'socks5';
178
226
  auth?: {
179
227
  username: string;
180
228
  password: string;
181
229
  };
230
+ headers?: Record<string, string>;
231
+ token?: string;
232
+ tunnel?: boolean;
233
+ bypass?: string[];
234
+ requestTls?: TLSOptions;
235
+ proxyTls?: TLSOptions;
236
+ http2?: boolean;
237
+ keepAliveTimeout?: number;
238
+ connectTimeout?: number;
239
+ }
240
+ export interface TLSOptions {
241
+ minVersion?: 'TLSv1' | 'TLSv1.1' | 'TLSv1.2' | 'TLSv1.3';
242
+ maxVersion?: 'TLSv1' | 'TLSv1.1' | 'TLSv1.2' | 'TLSv1.3';
243
+ ciphers?: string;
244
+ honorCipherOrder?: boolean;
245
+ ca?: string | Buffer | Array<string | Buffer>;
246
+ cert?: string | Buffer;
247
+ key?: string | Buffer;
248
+ passphrase?: string;
249
+ rejectUnauthorized?: boolean;
250
+ alpnProtocols?: string[];
251
+ servername?: string | false;
252
+ sessionTimeout?: number;
253
+ sessionIdContext?: string;
182
254
  }
183
255
  export interface DNSOptions {
184
256
  override?: Record<string, string>;
@@ -190,6 +262,14 @@ export interface XSRFOptions {
190
262
  cookieName?: string;
191
263
  headerName?: string;
192
264
  }
265
+ export interface CookieJar {
266
+ getCookieString(url: string): Promise<string> | string;
267
+ setCookie(rawCookie: string, url: string): Promise<unknown> | unknown;
268
+ }
269
+ export interface CookieOptions {
270
+ jar?: CookieJar | boolean;
271
+ ignoreInvalid?: boolean;
272
+ }
193
273
  export interface CompressionOptions {
194
274
  algorithm?: 'gzip' | 'deflate' | 'br';
195
275
  threshold?: number;
@@ -207,8 +287,14 @@ export interface AgentOptions {
207
287
  keepAlive?: boolean;
208
288
  keepAliveTimeout?: number;
209
289
  keepAliveMaxTimeout?: number;
290
+ keepAliveTimeoutThreshold?: number;
210
291
  connectTimeout?: number;
292
+ maxRequestsPerClient?: number;
293
+ maxCachedSessions?: number;
294
+ clientTtl?: number | null;
295
+ maxHeaderSize?: number;
211
296
  perDomainPooling?: boolean;
297
+ localAddress?: string;
212
298
  }
213
299
  export interface ClientOptions {
214
300
  baseUrl?: string;
@@ -222,12 +308,27 @@ export interface ClientOptions {
222
308
  };
223
309
  pagination?: PaginationConfig;
224
310
  debug?: boolean;
311
+ logger?: import('./logger.js').Logger;
225
312
  proxy?: ProxyOptions | string;
313
+ tls?: TLSOptions;
226
314
  dns?: DNSOptions;
227
315
  xsrf?: boolean | XSRFOptions;
228
316
  compression?: boolean | CompressionOptions;
229
317
  http2?: boolean | HTTP2Options;
230
318
  concurrency?: number | ConcurrencyConfig;
319
+ maxResponseSize?: number;
320
+ socketPath?: string;
321
+ cookies?: boolean | CookieOptions;
322
+ timeout?: number | TimeoutOptions;
323
+ observability?: boolean;
324
+ retry?: {
325
+ maxAttempts?: number;
326
+ delay?: number;
327
+ maxDelay?: number;
328
+ backoff?: 'linear' | 'exponential' | 'decorrelated';
329
+ jitter?: boolean;
330
+ statusCodes?: number[];
331
+ };
231
332
  }
232
333
  export interface ReckerResponse<T = unknown> {
233
334
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export {};
1
+ export { consoleLogger, silentLogger, createLevelLogger } from './logger.js';
@@ -0,0 +1,17 @@
1
+ export interface Logger {
2
+ debug(message: string, ...args: unknown[]): void;
3
+ debug(obj: object, message?: string, ...args: unknown[]): void;
4
+ info(message: string, ...args: unknown[]): void;
5
+ info(obj: object, message?: string, ...args: unknown[]): void;
6
+ warn(message: string, ...args: unknown[]): void;
7
+ warn(obj: object, message?: string, ...args: unknown[]): void;
8
+ error(message: string, ...args: unknown[]): void;
9
+ error(obj: object, message?: string, ...args: unknown[]): void;
10
+ }
11
+ export type MinimalLogger = Partial<Logger> & {
12
+ info: Logger['info'];
13
+ };
14
+ export declare const consoleLogger: Logger;
15
+ export declare const silentLogger: Logger;
16
+ export declare function createLevelLogger(baseLogger: Logger, minLevel: 'debug' | 'info' | 'warn' | 'error'): Logger;
17
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,MAAM;IAKrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAM/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAM9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAM9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAChE;AAMD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,MA6B3B,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,MAK1B,CAAC;AAKF,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAC5C,MAAM,CA0BR"}
@@ -0,0 +1,66 @@
1
+ export const consoleLogger = {
2
+ debug: (msgOrObj, ...args) => {
3
+ if (typeof msgOrObj === 'object') {
4
+ console.debug(msgOrObj, ...args);
5
+ }
6
+ else {
7
+ console.debug(msgOrObj, ...args);
8
+ }
9
+ },
10
+ info: (msgOrObj, ...args) => {
11
+ if (typeof msgOrObj === 'object') {
12
+ console.info(msgOrObj, ...args);
13
+ }
14
+ else {
15
+ console.info(msgOrObj, ...args);
16
+ }
17
+ },
18
+ warn: (msgOrObj, ...args) => {
19
+ if (typeof msgOrObj === 'object') {
20
+ console.warn(msgOrObj, ...args);
21
+ }
22
+ else {
23
+ console.warn(msgOrObj, ...args);
24
+ }
25
+ },
26
+ error: (msgOrObj, ...args) => {
27
+ if (typeof msgOrObj === 'object') {
28
+ console.error(msgOrObj, ...args);
29
+ }
30
+ else {
31
+ console.error(msgOrObj, ...args);
32
+ }
33
+ },
34
+ };
35
+ export const silentLogger = {
36
+ debug: () => { },
37
+ info: () => { },
38
+ warn: () => { },
39
+ error: () => { },
40
+ };
41
+ export function createLevelLogger(baseLogger, minLevel) {
42
+ const levels = { debug: 0, info: 1, warn: 2, error: 3 };
43
+ const minLevelNum = levels[minLevel];
44
+ return {
45
+ debug: (...args) => {
46
+ if (levels.debug >= minLevelNum) {
47
+ baseLogger.debug(...args);
48
+ }
49
+ },
50
+ info: (...args) => {
51
+ if (levels.info >= minLevelNum) {
52
+ baseLogger.info(...args);
53
+ }
54
+ },
55
+ warn: (...args) => {
56
+ if (levels.warn >= minLevelNum) {
57
+ baseLogger.warn(...args);
58
+ }
59
+ },
60
+ error: (...args) => {
61
+ if (levels.error >= minLevelNum) {
62
+ baseLogger.error(...args);
63
+ }
64
+ },
65
+ };
66
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/utils/agent-manager.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,UAAU;IAEzB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAyB;gBAE5B,OAAO,GAAE,YAAiB;IAgBtC,cAAc,IAAI,KAAK;IAavB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK;IAkBzE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAmBlC,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,KAAK;IAmCR,OAAO,CAAC,WAAW;IAgBnB,QAAQ,IAAI,UAAU;IAWhB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB/B;AAOD,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAG7D;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxD;AASD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAcxD"}
1
+ {"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../../src/utils/agent-manager.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,UAAU;IAEzB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,OAAO,CAAoJ;gBAEvJ,OAAO,GAAE,YAAiB;IAsBtC,cAAc,IAAI,KAAK;IAavB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK;IAkBzE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK;IAmBlC,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,KAAK;IAmCR,OAAO,CAAC,WAAW;IAyBnB,QAAQ,IAAI,UAAU;IAWhB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB/B;AAOD,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,KAAK,CAG7D;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxD;AASD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAcxD"}
@@ -9,10 +9,16 @@ export class AgentManager {
9
9
  connections: options.connections ?? 10,
10
10
  pipelining: options.pipelining ?? 1,
11
11
  keepAlive: options.keepAlive ?? true,
12
- keepAliveTimeout: options.keepAliveTimeout ?? 4000,
13
- keepAliveMaxTimeout: options.keepAliveMaxTimeout ?? 600000,
14
- connectTimeout: options.connectTimeout ?? 10000,
12
+ keepAliveTimeout: options.keepAliveTimeout ?? 4 * 1000,
13
+ keepAliveMaxTimeout: options.keepAliveMaxTimeout ?? 10 * 60 * 1000,
14
+ keepAliveTimeoutThreshold: options.keepAliveTimeoutThreshold ?? 1 * 1000,
15
+ connectTimeout: options.connectTimeout ?? 10 * 1000,
15
16
  perDomainPooling: options.perDomainPooling ?? true,
17
+ localAddress: options.localAddress,
18
+ maxRequestsPerClient: options.maxRequestsPerClient ?? 0,
19
+ maxCachedSessions: options.maxCachedSessions ?? 100,
20
+ maxHeaderSize: options.maxHeaderSize,
21
+ clientTtl: options.clientTtl ?? null,
16
22
  };
17
23
  }
18
24
  getGlobalAgent() {
@@ -59,10 +65,20 @@ export class AgentManager {
59
65
  return new Agent({
60
66
  connections: options.connections,
61
67
  pipelining: options.pipelining,
68
+ maxHeaderSize: options.maxHeaderSize,
69
+ maxRequestsPerClient: options.maxRequestsPerClient,
70
+ maxCachedSessions: options.maxCachedSessions,
71
+ clientTtl: options.clientTtl ?? null,
72
+ keepAliveTimeout: options.keepAliveTimeout,
73
+ keepAliveMaxTimeout: options.keepAliveMaxTimeout,
74
+ keepAliveTimeoutThreshold: options.keepAliveTimeoutThreshold,
75
+ connectTimeout: options.connectTimeout,
76
+ socketPath: undefined,
62
77
  connect: {
63
78
  timeout: options.connectTimeout,
64
79
  keepAlive: options.keepAlive,
65
- keepAliveInitialDelay: options.keepAliveTimeout ?? 1000,
80
+ keepAliveInitialDelay: options.keepAliveTimeout,
81
+ localAddress: options.localAddress,
66
82
  },
67
83
  });
68
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/utils/body.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,eAAe,GACf,cAAc,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CA4BjD;AAKD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAoE1D;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ,CAqClE;AAYD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ,CAEnE;AAeD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CA8B/C"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/utils/body.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,eAAe,GACf,cAAc,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CA4BjD;AAKD,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAsF1D;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ,CAqClE;AAYD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,QAAQ,CAEnE;AAeD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CA8B/C"}
@@ -38,7 +38,7 @@ export function processBody(body) {
38
38
  }
39
39
  if (body instanceof URLSearchParams) {
40
40
  return {
41
- body,
41
+ body: body.toString(),
42
42
  contentType: 'application/x-www-form-urlencoded'
43
43
  };
44
44
  }
@@ -60,7 +60,19 @@ export function processBody(body) {
60
60
  contentType: 'application/octet-stream'
61
61
  };
62
62
  }
63
- if (isPlainObject(body) || Array.isArray(body)) {
63
+ if (isPlainObject(body)) {
64
+ if (isFileUpload(body)) {
65
+ return {
66
+ body: createFormData(body),
67
+ contentType: undefined
68
+ };
69
+ }
70
+ return {
71
+ body: JSON.stringify(body),
72
+ contentType: 'application/json'
73
+ };
74
+ }
75
+ if (Array.isArray(body)) {
64
76
  return {
65
77
  body: JSON.stringify(body),
66
78
  contentType: 'application/json'
@@ -0,0 +1,16 @@
1
+ export interface CharsetInfo {
2
+ charset: string;
3
+ source: 'header' | 'bom' | 'xml' | 'html-meta' | 'default';
4
+ confidence: 'high' | 'medium' | 'low';
5
+ }
6
+ export declare function normalizeCharset(charset: string): string;
7
+ export declare function detectFromContentType(contentType: string | null): string | null;
8
+ export declare function detectFromBOM(buffer: Uint8Array): CharsetInfo | null;
9
+ export declare function stripBOM(buffer: Uint8Array): Uint8Array;
10
+ export declare function detectFromXMLDeclaration(content: string): string | null;
11
+ export declare function detectFromHTMLMeta(html: string): string | null;
12
+ export declare function detectCharset(buffer: Uint8Array, contentType?: string | null): CharsetInfo;
13
+ export declare function decodeText(buffer: Uint8Array, charsetOrInfo?: string | CharsetInfo): string;
14
+ export declare function getSupportedEncodings(): string[];
15
+ export declare function isCharsetSupported(charset: string): boolean;
16
+ //# sourceMappingURL=charset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charset.d.ts","sourceRoot":"","sources":["../../src/utils/charset.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IAE3D,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAmDD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AASD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAU/E;AAYD,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CA+BpE;AAKD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAgBvD;AAQD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvE;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB9D;AAYD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,WAAW,CAmCb;AAKD,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,GACnC,MAAM,CAoBR;AAKD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAehD;AAKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO3D"}
@@ -0,0 +1,169 @@
1
+ const charsetAliases = {
2
+ 'utf8': 'utf-8',
3
+ 'utf_8': 'utf-8',
4
+ 'utf16': 'utf-16',
5
+ 'utf_16': 'utf-16',
6
+ 'utf16le': 'utf-16le',
7
+ 'utf16be': 'utf-16be',
8
+ 'latin1': 'iso-8859-1',
9
+ 'latin-1': 'iso-8859-1',
10
+ 'iso8859-1': 'iso-8859-1',
11
+ 'iso_8859-1': 'iso-8859-1',
12
+ 'cp1252': 'windows-1252',
13
+ 'win1252': 'windows-1252',
14
+ 'us-ascii': 'ascii',
15
+ 'usascii': 'ascii',
16
+ 'gbk': 'gbk',
17
+ 'gb2312': 'gb2312',
18
+ 'gb18030': 'gb18030',
19
+ 'shift-jis': 'shift_jis',
20
+ 'shiftjis': 'shift_jis',
21
+ 'sjis': 'shift_jis',
22
+ 'euc-jp': 'euc-jp',
23
+ 'eucjp': 'euc-jp',
24
+ 'iso-2022-jp': 'iso-2022-jp',
25
+ 'euc-kr': 'euc-kr',
26
+ 'euckr': 'euc-kr',
27
+ };
28
+ export function normalizeCharset(charset) {
29
+ const lower = charset.toLowerCase().trim();
30
+ return charsetAliases[lower] || lower;
31
+ }
32
+ export function detectFromContentType(contentType) {
33
+ if (!contentType)
34
+ return null;
35
+ const charsetMatch = contentType.match(/charset=["']?([^"';\s]+)["']?/i);
36
+ if (charsetMatch) {
37
+ return normalizeCharset(charsetMatch[1]);
38
+ }
39
+ return null;
40
+ }
41
+ export function detectFromBOM(buffer) {
42
+ if (buffer.length < 2)
43
+ return null;
44
+ if (buffer.length >= 4 && buffer[0] === 0x00 && buffer[1] === 0x00 &&
45
+ buffer[2] === 0xFE && buffer[3] === 0xFF) {
46
+ return { charset: 'utf-32be', source: 'bom', confidence: 'high' };
47
+ }
48
+ if (buffer.length >= 4 && buffer[0] === 0xFF && buffer[1] === 0xFE &&
49
+ buffer[2] === 0x00 && buffer[3] === 0x00) {
50
+ return { charset: 'utf-32le', source: 'bom', confidence: 'high' };
51
+ }
52
+ if (buffer.length >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
53
+ return { charset: 'utf-8', source: 'bom', confidence: 'high' };
54
+ }
55
+ if (buffer[0] === 0xFE && buffer[1] === 0xFF) {
56
+ return { charset: 'utf-16be', source: 'bom', confidence: 'high' };
57
+ }
58
+ if (buffer[0] === 0xFF && buffer[1] === 0xFE) {
59
+ return { charset: 'utf-16le', source: 'bom', confidence: 'high' };
60
+ }
61
+ return null;
62
+ }
63
+ export function stripBOM(buffer) {
64
+ const bomInfo = detectFromBOM(buffer);
65
+ if (!bomInfo)
66
+ return buffer;
67
+ switch (bomInfo.charset) {
68
+ case 'utf-8':
69
+ return buffer.slice(3);
70
+ case 'utf-16le':
71
+ case 'utf-16be':
72
+ return buffer.slice(2);
73
+ case 'utf-32le':
74
+ case 'utf-32be':
75
+ return buffer.slice(4);
76
+ default:
77
+ return buffer;
78
+ }
79
+ }
80
+ export function detectFromXMLDeclaration(content) {
81
+ const xmlMatch = content.match(/<\?xml[^?]*encoding=["']([^"']+)["'][^?]*\?>/i);
82
+ if (xmlMatch) {
83
+ return normalizeCharset(xmlMatch[1]);
84
+ }
85
+ return null;
86
+ }
87
+ export function detectFromHTMLMeta(html) {
88
+ const head = html.slice(0, 1024);
89
+ const charsetMeta = head.match(/<meta[^>]+charset=["']?([^"'>\s]+)["']?/i);
90
+ if (charsetMeta) {
91
+ return normalizeCharset(charsetMeta[1]);
92
+ }
93
+ const httpEquiv = head.match(/<meta[^>]+http-equiv=["']?Content-Type["']?[^>]+content=["']?[^"'>]*charset=([^"'>\s;]+)/i);
94
+ if (httpEquiv) {
95
+ return normalizeCharset(httpEquiv[1]);
96
+ }
97
+ const httpEquivReverse = head.match(/<meta[^>]+content=["']?[^"'>]*charset=([^"'>\s;]+)[^>]+http-equiv=["']?Content-Type["']?/i);
98
+ if (httpEquivReverse) {
99
+ return normalizeCharset(httpEquivReverse[1]);
100
+ }
101
+ return null;
102
+ }
103
+ export function detectCharset(buffer, contentType) {
104
+ const headerCharset = detectFromContentType(contentType || null);
105
+ if (headerCharset) {
106
+ return { charset: headerCharset, source: 'header', confidence: 'high' };
107
+ }
108
+ const bomResult = detectFromBOM(buffer);
109
+ if (bomResult) {
110
+ return bomResult;
111
+ }
112
+ const textDecoder = new TextDecoder('utf-8', { fatal: false });
113
+ const text = textDecoder.decode(buffer.slice(0, 1024));
114
+ if (text.trimStart().startsWith('<?xml')) {
115
+ const xmlCharset = detectFromXMLDeclaration(text);
116
+ if (xmlCharset) {
117
+ return { charset: xmlCharset, source: 'xml', confidence: 'medium' };
118
+ }
119
+ }
120
+ if (text.toLowerCase().includes('<html') || text.toLowerCase().includes('<!doctype html')) {
121
+ const htmlCharset = detectFromHTMLMeta(text);
122
+ if (htmlCharset) {
123
+ return { charset: htmlCharset, source: 'html-meta', confidence: 'medium' };
124
+ }
125
+ }
126
+ return { charset: 'utf-8', source: 'default', confidence: 'low' };
127
+ }
128
+ export function decodeText(buffer, charsetOrInfo) {
129
+ let charset = 'utf-8';
130
+ if (typeof charsetOrInfo === 'string') {
131
+ charset = normalizeCharset(charsetOrInfo);
132
+ }
133
+ else if (charsetOrInfo) {
134
+ charset = charsetOrInfo.charset;
135
+ }
136
+ const cleanBuffer = stripBOM(buffer);
137
+ try {
138
+ const decoder = new TextDecoder(charset);
139
+ return decoder.decode(cleanBuffer);
140
+ }
141
+ catch {
142
+ const decoder = new TextDecoder('utf-8', { fatal: false });
143
+ return decoder.decode(cleanBuffer);
144
+ }
145
+ }
146
+ export function getSupportedEncodings() {
147
+ return [
148
+ 'utf-8', 'utf-16le', 'utf-16be',
149
+ 'iso-8859-1', 'iso-8859-2', 'iso-8859-3', 'iso-8859-4', 'iso-8859-5',
150
+ 'iso-8859-6', 'iso-8859-7', 'iso-8859-8', 'iso-8859-9', 'iso-8859-10',
151
+ 'iso-8859-11', 'iso-8859-13', 'iso-8859-14', 'iso-8859-15', 'iso-8859-16',
152
+ 'windows-1250', 'windows-1251', 'windows-1252', 'windows-1253',
153
+ 'windows-1254', 'windows-1255', 'windows-1256', 'windows-1257', 'windows-1258',
154
+ 'koi8-r', 'koi8-u',
155
+ 'gbk', 'gb2312', 'gb18030',
156
+ 'big5', 'big5-hkscs',
157
+ 'shift_jis', 'euc-jp', 'iso-2022-jp',
158
+ 'euc-kr',
159
+ ];
160
+ }
161
+ export function isCharsetSupported(charset) {
162
+ try {
163
+ new TextDecoder(normalizeCharset(charset));
164
+ return true;
165
+ }
166
+ catch {
167
+ return false;
168
+ }
169
+ }