@npy/fetch 0.1.3 → 0.1.4

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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/_internal/consts.cjs +4 -0
  3. package/_internal/consts.d.cts +3 -0
  4. package/_internal/consts.d.ts +3 -0
  5. package/_internal/consts.js +4 -0
  6. package/_internal/decode-stream-error.cjs +18 -0
  7. package/{src/_internal/decode-stream-error.ts → _internal/decode-stream-error.d.cts} +2 -7
  8. package/_internal/decode-stream-error.d.ts +11 -0
  9. package/_internal/decode-stream-error.js +18 -0
  10. package/_internal/error-mapping.cjs +44 -0
  11. package/_internal/error-mapping.d.cts +15 -0
  12. package/_internal/error-mapping.d.ts +15 -0
  13. package/_internal/error-mapping.js +41 -0
  14. package/_internal/guards.cjs +23 -0
  15. package/_internal/guards.d.cts +15 -0
  16. package/_internal/guards.d.ts +15 -0
  17. package/_internal/guards.js +15 -0
  18. package/_internal/net.cjs +95 -0
  19. package/_internal/net.d.cts +11 -0
  20. package/_internal/net.d.ts +11 -0
  21. package/_internal/net.js +92 -0
  22. package/_internal/promises.cjs +18 -0
  23. package/_internal/promises.d.cts +1 -0
  24. package/_internal/promises.d.ts +1 -0
  25. package/_internal/promises.js +18 -0
  26. package/_internal/streams.cjs +37 -0
  27. package/_internal/streams.d.cts +21 -0
  28. package/_internal/streams.d.ts +21 -0
  29. package/_internal/streams.js +36 -0
  30. package/_internal/symbols.cjs +4 -0
  31. package/_internal/symbols.d.cts +1 -0
  32. package/_internal/symbols.d.ts +1 -0
  33. package/_internal/symbols.js +4 -0
  34. package/_virtual/_rolldown/runtime.cjs +23 -0
  35. package/agent-pool.cjs +96 -0
  36. package/agent-pool.d.cts +2 -0
  37. package/agent-pool.d.ts +2 -0
  38. package/agent-pool.js +95 -0
  39. package/agent.cjs +260 -0
  40. package/agent.d.cts +3 -0
  41. package/agent.d.ts +3 -0
  42. package/agent.js +259 -0
  43. package/body.cjs +105 -0
  44. package/body.d.cts +12 -0
  45. package/body.d.ts +12 -0
  46. package/body.js +102 -0
  47. package/dialers/index.d.cts +3 -0
  48. package/dialers/index.d.ts +3 -0
  49. package/dialers/proxy.cjs +56 -0
  50. package/dialers/proxy.d.cts +27 -0
  51. package/dialers/proxy.d.ts +27 -0
  52. package/dialers/proxy.js +55 -0
  53. package/dialers/tcp.cjs +92 -0
  54. package/dialers/tcp.d.cts +57 -0
  55. package/dialers/tcp.d.ts +57 -0
  56. package/dialers/tcp.js +89 -0
  57. package/encoding.cjs +114 -0
  58. package/encoding.d.cts +35 -0
  59. package/encoding.d.ts +35 -0
  60. package/encoding.js +110 -0
  61. package/errors.cjs +275 -0
  62. package/errors.d.cts +110 -0
  63. package/errors.d.ts +110 -0
  64. package/errors.js +259 -0
  65. package/fetch.cjs +353 -0
  66. package/fetch.d.cts +58 -0
  67. package/fetch.d.ts +58 -0
  68. package/fetch.js +350 -0
  69. package/http-client.cjs +75 -0
  70. package/http-client.d.cts +39 -0
  71. package/http-client.d.ts +39 -0
  72. package/http-client.js +75 -0
  73. package/index.cjs +49 -0
  74. package/index.d.cts +14 -0
  75. package/index.d.ts +14 -0
  76. package/index.js +11 -0
  77. package/io/_utils.cjs +56 -0
  78. package/io/_utils.d.cts +10 -0
  79. package/io/_utils.d.ts +10 -0
  80. package/io/_utils.js +51 -0
  81. package/io/buf-writer.cjs +149 -0
  82. package/io/buf-writer.d.cts +13 -0
  83. package/io/buf-writer.d.ts +13 -0
  84. package/io/buf-writer.js +148 -0
  85. package/io/io.cjs +199 -0
  86. package/io/io.d.cts +5 -0
  87. package/io/io.d.ts +5 -0
  88. package/io/io.js +198 -0
  89. package/io/readers.cjs +337 -0
  90. package/io/readers.d.cts +69 -0
  91. package/io/readers.d.ts +69 -0
  92. package/io/readers.js +333 -0
  93. package/io/writers.cjs +196 -0
  94. package/io/writers.d.cts +22 -0
  95. package/io/writers.d.ts +22 -0
  96. package/io/writers.js +195 -0
  97. package/package.json +30 -25
  98. package/{src/types/agent.ts → types/agent.d.cts} +21 -47
  99. package/types/agent.d.ts +72 -0
  100. package/{src/types/dialer.ts → types/dialer.d.cts} +9 -19
  101. package/types/dialer.d.ts +30 -0
  102. package/types/index.d.cts +2 -0
  103. package/types/index.d.ts +2 -0
  104. package/bun.lock +0 -68
  105. package/examples/custom-proxy-client.ts +0 -32
  106. package/examples/http-client.ts +0 -47
  107. package/examples/proxy.ts +0 -16
  108. package/examples/simple.ts +0 -15
  109. package/src/_internal/consts.ts +0 -3
  110. package/src/_internal/error-mapping.ts +0 -160
  111. package/src/_internal/guards.ts +0 -78
  112. package/src/_internal/net.ts +0 -173
  113. package/src/_internal/promises.ts +0 -22
  114. package/src/_internal/streams.ts +0 -52
  115. package/src/_internal/symbols.ts +0 -1
  116. package/src/agent-pool.ts +0 -157
  117. package/src/agent.ts +0 -408
  118. package/src/body.ts +0 -179
  119. package/src/dialers/index.ts +0 -3
  120. package/src/dialers/proxy.ts +0 -102
  121. package/src/dialers/tcp.ts +0 -162
  122. package/src/encoding.ts +0 -222
  123. package/src/errors.ts +0 -357
  124. package/src/fetch.ts +0 -626
  125. package/src/http-client.ts +0 -111
  126. package/src/index.ts +0 -14
  127. package/src/io/_utils.ts +0 -82
  128. package/src/io/buf-writer.ts +0 -183
  129. package/src/io/io.ts +0 -322
  130. package/src/io/readers.ts +0 -576
  131. package/src/io/writers.ts +0 -331
  132. package/src/types/index.ts +0 -2
  133. package/tests/agent-pool.test.ts +0 -111
  134. package/tests/agent.test.ts +0 -134
  135. package/tests/body.test.ts +0 -228
  136. package/tests/errors.test.ts +0 -152
  137. package/tests/fetch.test.ts +0 -421
  138. package/tests/io-options.test.ts +0 -127
  139. package/tests/multipart.test.ts +0 -348
  140. package/tests/test-utils.ts +0 -335
  141. package/tsconfig.json +0 -15
package/errors.cjs ADDED
@@ -0,0 +1,275 @@
1
+ //#region src/errors.ts
2
+ var ErrorType = {
3
+ ABORTED: "ABORTED",
4
+ NETWORK: "NETWORK",
5
+ TIMEOUT: "TIMEOUT",
6
+ HTTP_CLIENT_ERROR: "HTTP_CLIENT_ERROR",
7
+ HTTP_SERVER_ERROR: "HTTP_SERVER_ERROR"
8
+ };
9
+ var FetchErrorCode = {
10
+ ABORTED: "ERR_FETCH_ABORTED",
11
+ TIMEOUT: "ERR_FETCH_TIMEOUT",
12
+ CONNECTION: "ERR_FETCH_CONNECTION",
13
+ AGENT_CLOSED: "ERR_FETCH_AGENT_CLOSED",
14
+ AGENT_BUSY: "ERR_FETCH_AGENT_BUSY",
15
+ ORIGIN_MISMATCH: "ERR_FETCH_ORIGIN_MISMATCH",
16
+ UNSUPPORTED_PROTOCOL: "ERR_FETCH_UNSUPPORTED_PROTOCOL",
17
+ UNSUPPORTED_METHOD: "ERR_FETCH_UNSUPPORTED_METHOD",
18
+ TLS_ALPN: "ERR_FETCH_TLS_ALPN",
19
+ REQUEST_WRITE: "ERR_FETCH_REQUEST_WRITE",
20
+ RESPONSE_HEADERS: "ERR_FETCH_RESPONSE_HEADERS",
21
+ RESPONSE_BODY: "ERR_FETCH_RESPONSE_BODY",
22
+ RESPONSE_DECODE: "ERR_FETCH_RESPONSE_DECODE",
23
+ HTTP_STATUS: "ERR_FETCH_HTTP_STATUS"
24
+ };
25
+ var FetchError = class extends Error {
26
+ code;
27
+ phase;
28
+ context;
29
+ retryable;
30
+ type;
31
+ cause;
32
+ constructor(options) {
33
+ super(options.message, { cause: options.cause });
34
+ this.code = options.code;
35
+ this.phase = options.phase;
36
+ this.context = options.context;
37
+ this.retryable = options.retryable ?? false;
38
+ this.type = options.type;
39
+ this.cause = options.cause;
40
+ Object.setPrototypeOf(this, new.target.prototype);
41
+ }
42
+ get name() {
43
+ return this.constructor.name;
44
+ }
45
+ get [Symbol.toStringTag]() {
46
+ return this.name;
47
+ }
48
+ toJSON() {
49
+ return {
50
+ name: this.name,
51
+ message: this.message,
52
+ code: this.code,
53
+ phase: this.phase,
54
+ retryable: this.retryable,
55
+ type: this.type,
56
+ context: this.context,
57
+ cause: this.cause instanceof Error ? {
58
+ name: this.cause.name,
59
+ message: this.cause.message
60
+ } : this.cause
61
+ };
62
+ }
63
+ };
64
+ var RequestAbortedError = class extends FetchError {
65
+ constructor(cause, context, message) {
66
+ super({
67
+ message: message ?? "The request was aborted",
68
+ code: FetchErrorCode.ABORTED,
69
+ phase: "request",
70
+ cause,
71
+ context,
72
+ retryable: false,
73
+ type: ErrorType.ABORTED
74
+ });
75
+ }
76
+ };
77
+ var ConnectTimeoutError = class extends FetchError {
78
+ constructor(cause, context, message) {
79
+ super({
80
+ message: message ?? "Connection timed out",
81
+ code: FetchErrorCode.TIMEOUT,
82
+ phase: "connect",
83
+ cause,
84
+ context,
85
+ retryable: true,
86
+ type: ErrorType.TIMEOUT
87
+ });
88
+ }
89
+ };
90
+ var ConnectionError = class extends FetchError {
91
+ constructor(cause, context, message) {
92
+ super({
93
+ message: message ?? "Network connection failed",
94
+ code: FetchErrorCode.CONNECTION,
95
+ phase: "connect",
96
+ cause,
97
+ context,
98
+ retryable: true,
99
+ type: ErrorType.NETWORK
100
+ });
101
+ }
102
+ };
103
+ var AgentClosedError = class extends FetchError {
104
+ constructor(context, cause) {
105
+ super({
106
+ message: "Agent is closed",
107
+ code: FetchErrorCode.AGENT_CLOSED,
108
+ phase: "agent",
109
+ cause,
110
+ context,
111
+ retryable: false,
112
+ type: ErrorType.NETWORK
113
+ });
114
+ }
115
+ };
116
+ var AgentBusyError = class extends FetchError {
117
+ constructor(context, cause) {
118
+ super({
119
+ message: "Agent is busy",
120
+ code: FetchErrorCode.AGENT_BUSY,
121
+ phase: "agent",
122
+ cause,
123
+ context,
124
+ retryable: true,
125
+ type: ErrorType.NETWORK
126
+ });
127
+ }
128
+ };
129
+ var OriginMismatchError = class extends FetchError {
130
+ constructor(expectedOrigin, actualOrigin, context) {
131
+ super({
132
+ message: `Agent origin mismatch: expected ${expectedOrigin}, got ${actualOrigin}`,
133
+ code: FetchErrorCode.ORIGIN_MISMATCH,
134
+ phase: "policy",
135
+ context: {
136
+ ...context,
137
+ details: {
138
+ ...context?.details ?? {},
139
+ expectedOrigin,
140
+ actualOrigin
141
+ }
142
+ },
143
+ retryable: false,
144
+ type: ErrorType.NETWORK
145
+ });
146
+ }
147
+ };
148
+ var UnsupportedProtocolError = class extends FetchError {
149
+ constructor(protocol, context) {
150
+ super({
151
+ message: `Unsupported protocol: ${protocol}`,
152
+ code: FetchErrorCode.UNSUPPORTED_PROTOCOL,
153
+ phase: "policy",
154
+ context,
155
+ retryable: false,
156
+ type: ErrorType.NETWORK
157
+ });
158
+ }
159
+ };
160
+ var UnsupportedMethodError = class extends FetchError {
161
+ constructor(method, context) {
162
+ super({
163
+ message: `Unsupported method: ${method}`,
164
+ code: FetchErrorCode.UNSUPPORTED_METHOD,
165
+ phase: "policy",
166
+ context,
167
+ retryable: false,
168
+ type: ErrorType.NETWORK
169
+ });
170
+ }
171
+ };
172
+ var UnsupportedAlpnProtocolError = class extends FetchError {
173
+ constructor(alpn, context, cause) {
174
+ super({
175
+ message: `Unsupported ALPN protocol negotiated: ${alpn}`,
176
+ code: FetchErrorCode.TLS_ALPN,
177
+ phase: "connect",
178
+ cause,
179
+ context: {
180
+ ...context,
181
+ alpn
182
+ },
183
+ retryable: false,
184
+ type: ErrorType.NETWORK
185
+ });
186
+ }
187
+ };
188
+ var RequestWriteError = class extends FetchError {
189
+ constructor(cause, context, message) {
190
+ super({
191
+ message: message ?? "Failed to write HTTP request",
192
+ code: FetchErrorCode.REQUEST_WRITE,
193
+ phase: "request",
194
+ cause,
195
+ context,
196
+ retryable: true,
197
+ type: ErrorType.NETWORK
198
+ });
199
+ }
200
+ };
201
+ var ResponseHeaderError = class extends FetchError {
202
+ constructor(cause, context, message) {
203
+ super({
204
+ message: message ?? "Failed while reading response headers",
205
+ code: FetchErrorCode.RESPONSE_HEADERS,
206
+ phase: "response",
207
+ cause,
208
+ context,
209
+ retryable: true,
210
+ type: ErrorType.NETWORK
211
+ });
212
+ }
213
+ };
214
+ var ResponseBodyError = class extends FetchError {
215
+ constructor(cause, context, message) {
216
+ super({
217
+ message: message ?? "Failed while reading response body",
218
+ code: FetchErrorCode.RESPONSE_BODY,
219
+ phase: "body",
220
+ cause,
221
+ context,
222
+ retryable: true,
223
+ type: ErrorType.NETWORK
224
+ });
225
+ }
226
+ };
227
+ var ResponseDecodeError = class extends FetchError {
228
+ constructor(cause, context, message) {
229
+ super({
230
+ message: message ?? "Failed while decoding response body",
231
+ code: FetchErrorCode.RESPONSE_DECODE,
232
+ phase: "decode",
233
+ cause,
234
+ context,
235
+ retryable: false,
236
+ type: ErrorType.NETWORK
237
+ });
238
+ }
239
+ };
240
+ var HttpStatusError = class extends FetchError {
241
+ statusCode;
242
+ constructor(statusCode, context, cause, message) {
243
+ super({
244
+ message: message ?? `HTTP ${statusCode}`,
245
+ code: FetchErrorCode.HTTP_STATUS,
246
+ phase: "response",
247
+ cause,
248
+ context: {
249
+ ...context,
250
+ status: statusCode
251
+ },
252
+ retryable: statusCode >= 500,
253
+ type: statusCode < 500 ? ErrorType.HTTP_CLIENT_ERROR : ErrorType.HTTP_SERVER_ERROR
254
+ });
255
+ this.statusCode = statusCode;
256
+ }
257
+ };
258
+ //#endregion
259
+ exports.AgentBusyError = AgentBusyError;
260
+ exports.AgentClosedError = AgentClosedError;
261
+ exports.ConnectTimeoutError = ConnectTimeoutError;
262
+ exports.ConnectionError = ConnectionError;
263
+ exports.ErrorType = ErrorType;
264
+ exports.FetchError = FetchError;
265
+ exports.FetchErrorCode = FetchErrorCode;
266
+ exports.HttpStatusError = HttpStatusError;
267
+ exports.OriginMismatchError = OriginMismatchError;
268
+ exports.RequestAbortedError = RequestAbortedError;
269
+ exports.RequestWriteError = RequestWriteError;
270
+ exports.ResponseBodyError = ResponseBodyError;
271
+ exports.ResponseDecodeError = ResponseDecodeError;
272
+ exports.ResponseHeaderError = ResponseHeaderError;
273
+ exports.UnsupportedAlpnProtocolError = UnsupportedAlpnProtocolError;
274
+ exports.UnsupportedMethodError = UnsupportedMethodError;
275
+ exports.UnsupportedProtocolError = UnsupportedProtocolError;
package/errors.d.cts ADDED
@@ -0,0 +1,110 @@
1
+ export declare const ErrorType: {
2
+ readonly ABORTED: "ABORTED";
3
+ readonly NETWORK: "NETWORK";
4
+ readonly TIMEOUT: "TIMEOUT";
5
+ readonly HTTP_CLIENT_ERROR: "HTTP_CLIENT_ERROR";
6
+ readonly HTTP_SERVER_ERROR: "HTTP_SERVER_ERROR";
7
+ };
8
+ export type ErrorType = (typeof ErrorType)[keyof typeof ErrorType];
9
+ export declare const FetchErrorCode: {
10
+ readonly ABORTED: "ERR_FETCH_ABORTED";
11
+ readonly TIMEOUT: "ERR_FETCH_TIMEOUT";
12
+ readonly CONNECTION: "ERR_FETCH_CONNECTION";
13
+ readonly AGENT_CLOSED: "ERR_FETCH_AGENT_CLOSED";
14
+ readonly AGENT_BUSY: "ERR_FETCH_AGENT_BUSY";
15
+ readonly ORIGIN_MISMATCH: "ERR_FETCH_ORIGIN_MISMATCH";
16
+ readonly UNSUPPORTED_PROTOCOL: "ERR_FETCH_UNSUPPORTED_PROTOCOL";
17
+ readonly UNSUPPORTED_METHOD: "ERR_FETCH_UNSUPPORTED_METHOD";
18
+ readonly TLS_ALPN: "ERR_FETCH_TLS_ALPN";
19
+ readonly REQUEST_WRITE: "ERR_FETCH_REQUEST_WRITE";
20
+ readonly RESPONSE_HEADERS: "ERR_FETCH_RESPONSE_HEADERS";
21
+ readonly RESPONSE_BODY: "ERR_FETCH_RESPONSE_BODY";
22
+ readonly RESPONSE_DECODE: "ERR_FETCH_RESPONSE_DECODE";
23
+ readonly HTTP_STATUS: "ERR_FETCH_HTTP_STATUS";
24
+ };
25
+ export type FetchErrorCode = (typeof FetchErrorCode)[keyof typeof FetchErrorCode];
26
+ export type FetchErrorPhase = "agent" | "connect" | "request" | "response" | "body" | "decode" | "policy";
27
+ export interface FetchErrorContext {
28
+ url?: string;
29
+ method?: string;
30
+ origin?: string;
31
+ scheme?: string;
32
+ host?: string;
33
+ port?: number;
34
+ status?: number;
35
+ alpn?: string | null;
36
+ details?: Record<string, unknown>;
37
+ }
38
+ export interface FetchErrorOptions {
39
+ message: string;
40
+ code: FetchErrorCode;
41
+ phase: FetchErrorPhase;
42
+ cause?: unknown;
43
+ context?: FetchErrorContext;
44
+ retryable?: boolean;
45
+ type?: ErrorType;
46
+ }
47
+ export declare class FetchError extends Error {
48
+ readonly code: FetchErrorCode;
49
+ readonly phase: FetchErrorPhase;
50
+ readonly context?: FetchErrorContext;
51
+ readonly retryable: boolean;
52
+ readonly type?: ErrorType;
53
+ readonly cause: unknown;
54
+ constructor(options: FetchErrorOptions);
55
+ get name(): string;
56
+ get [Symbol.toStringTag](): string;
57
+ toJSON(): {
58
+ name: string;
59
+ message: string;
60
+ code: FetchErrorCode;
61
+ phase: FetchErrorPhase;
62
+ retryable: boolean;
63
+ type: ErrorType | undefined;
64
+ context: FetchErrorContext | undefined;
65
+ cause: unknown;
66
+ };
67
+ }
68
+ export declare class RequestAbortedError extends FetchError {
69
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
70
+ }
71
+ export declare class ConnectTimeoutError extends FetchError {
72
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
73
+ }
74
+ export declare class ConnectionError extends FetchError {
75
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
76
+ }
77
+ export declare class AgentClosedError extends FetchError {
78
+ constructor(context?: FetchErrorContext, cause?: unknown);
79
+ }
80
+ export declare class AgentBusyError extends FetchError {
81
+ constructor(context?: FetchErrorContext, cause?: unknown);
82
+ }
83
+ export declare class OriginMismatchError extends FetchError {
84
+ constructor(expectedOrigin: string, actualOrigin: string, context?: FetchErrorContext);
85
+ }
86
+ export declare class UnsupportedProtocolError extends FetchError {
87
+ constructor(protocol: string, context?: FetchErrorContext);
88
+ }
89
+ export declare class UnsupportedMethodError extends FetchError {
90
+ constructor(method: string, context?: FetchErrorContext);
91
+ }
92
+ export declare class UnsupportedAlpnProtocolError extends FetchError {
93
+ constructor(alpn: string, context?: FetchErrorContext, cause?: unknown);
94
+ }
95
+ export declare class RequestWriteError extends FetchError {
96
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
97
+ }
98
+ export declare class ResponseHeaderError extends FetchError {
99
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
100
+ }
101
+ export declare class ResponseBodyError extends FetchError {
102
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
103
+ }
104
+ export declare class ResponseDecodeError extends FetchError {
105
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
106
+ }
107
+ export declare class HttpStatusError extends FetchError {
108
+ readonly statusCode: number;
109
+ constructor(statusCode: number, context?: FetchErrorContext, cause?: unknown, message?: string);
110
+ }
package/errors.d.ts ADDED
@@ -0,0 +1,110 @@
1
+ export declare const ErrorType: {
2
+ readonly ABORTED: "ABORTED";
3
+ readonly NETWORK: "NETWORK";
4
+ readonly TIMEOUT: "TIMEOUT";
5
+ readonly HTTP_CLIENT_ERROR: "HTTP_CLIENT_ERROR";
6
+ readonly HTTP_SERVER_ERROR: "HTTP_SERVER_ERROR";
7
+ };
8
+ export type ErrorType = (typeof ErrorType)[keyof typeof ErrorType];
9
+ export declare const FetchErrorCode: {
10
+ readonly ABORTED: "ERR_FETCH_ABORTED";
11
+ readonly TIMEOUT: "ERR_FETCH_TIMEOUT";
12
+ readonly CONNECTION: "ERR_FETCH_CONNECTION";
13
+ readonly AGENT_CLOSED: "ERR_FETCH_AGENT_CLOSED";
14
+ readonly AGENT_BUSY: "ERR_FETCH_AGENT_BUSY";
15
+ readonly ORIGIN_MISMATCH: "ERR_FETCH_ORIGIN_MISMATCH";
16
+ readonly UNSUPPORTED_PROTOCOL: "ERR_FETCH_UNSUPPORTED_PROTOCOL";
17
+ readonly UNSUPPORTED_METHOD: "ERR_FETCH_UNSUPPORTED_METHOD";
18
+ readonly TLS_ALPN: "ERR_FETCH_TLS_ALPN";
19
+ readonly REQUEST_WRITE: "ERR_FETCH_REQUEST_WRITE";
20
+ readonly RESPONSE_HEADERS: "ERR_FETCH_RESPONSE_HEADERS";
21
+ readonly RESPONSE_BODY: "ERR_FETCH_RESPONSE_BODY";
22
+ readonly RESPONSE_DECODE: "ERR_FETCH_RESPONSE_DECODE";
23
+ readonly HTTP_STATUS: "ERR_FETCH_HTTP_STATUS";
24
+ };
25
+ export type FetchErrorCode = (typeof FetchErrorCode)[keyof typeof FetchErrorCode];
26
+ export type FetchErrorPhase = "agent" | "connect" | "request" | "response" | "body" | "decode" | "policy";
27
+ export interface FetchErrorContext {
28
+ url?: string;
29
+ method?: string;
30
+ origin?: string;
31
+ scheme?: string;
32
+ host?: string;
33
+ port?: number;
34
+ status?: number;
35
+ alpn?: string | null;
36
+ details?: Record<string, unknown>;
37
+ }
38
+ export interface FetchErrorOptions {
39
+ message: string;
40
+ code: FetchErrorCode;
41
+ phase: FetchErrorPhase;
42
+ cause?: unknown;
43
+ context?: FetchErrorContext;
44
+ retryable?: boolean;
45
+ type?: ErrorType;
46
+ }
47
+ export declare class FetchError extends Error {
48
+ readonly code: FetchErrorCode;
49
+ readonly phase: FetchErrorPhase;
50
+ readonly context?: FetchErrorContext;
51
+ readonly retryable: boolean;
52
+ readonly type?: ErrorType;
53
+ readonly cause: unknown;
54
+ constructor(options: FetchErrorOptions);
55
+ get name(): string;
56
+ get [Symbol.toStringTag](): string;
57
+ toJSON(): {
58
+ name: string;
59
+ message: string;
60
+ code: FetchErrorCode;
61
+ phase: FetchErrorPhase;
62
+ retryable: boolean;
63
+ type: ErrorType | undefined;
64
+ context: FetchErrorContext | undefined;
65
+ cause: unknown;
66
+ };
67
+ }
68
+ export declare class RequestAbortedError extends FetchError {
69
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
70
+ }
71
+ export declare class ConnectTimeoutError extends FetchError {
72
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
73
+ }
74
+ export declare class ConnectionError extends FetchError {
75
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
76
+ }
77
+ export declare class AgentClosedError extends FetchError {
78
+ constructor(context?: FetchErrorContext, cause?: unknown);
79
+ }
80
+ export declare class AgentBusyError extends FetchError {
81
+ constructor(context?: FetchErrorContext, cause?: unknown);
82
+ }
83
+ export declare class OriginMismatchError extends FetchError {
84
+ constructor(expectedOrigin: string, actualOrigin: string, context?: FetchErrorContext);
85
+ }
86
+ export declare class UnsupportedProtocolError extends FetchError {
87
+ constructor(protocol: string, context?: FetchErrorContext);
88
+ }
89
+ export declare class UnsupportedMethodError extends FetchError {
90
+ constructor(method: string, context?: FetchErrorContext);
91
+ }
92
+ export declare class UnsupportedAlpnProtocolError extends FetchError {
93
+ constructor(alpn: string, context?: FetchErrorContext, cause?: unknown);
94
+ }
95
+ export declare class RequestWriteError extends FetchError {
96
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
97
+ }
98
+ export declare class ResponseHeaderError extends FetchError {
99
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
100
+ }
101
+ export declare class ResponseBodyError extends FetchError {
102
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
103
+ }
104
+ export declare class ResponseDecodeError extends FetchError {
105
+ constructor(cause?: unknown, context?: FetchErrorContext, message?: string);
106
+ }
107
+ export declare class HttpStatusError extends FetchError {
108
+ readonly statusCode: number;
109
+ constructor(statusCode: number, context?: FetchErrorContext, cause?: unknown, message?: string);
110
+ }