@npy/fetch 0.1.1 → 0.1.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 (140) hide show
  1. package/README.md +143 -50
  2. package/bun.lock +68 -0
  3. package/examples/custom-proxy-client.ts +32 -0
  4. package/examples/http-client.ts +47 -0
  5. package/examples/proxy.ts +16 -0
  6. package/examples/simple.ts +15 -0
  7. package/package.json +36 -25
  8. package/src/_internal/consts.ts +3 -0
  9. package/src/_internal/decode-stream-error.ts +16 -0
  10. package/src/_internal/error-mapping.ts +160 -0
  11. package/src/_internal/guards.ts +78 -0
  12. package/src/_internal/net.ts +173 -0
  13. package/src/_internal/promises.ts +22 -0
  14. package/src/_internal/streams.ts +52 -0
  15. package/src/_internal/symbols.ts +1 -0
  16. package/src/agent-pool.ts +157 -0
  17. package/src/agent.ts +408 -0
  18. package/src/body.ts +179 -0
  19. package/src/dialers/index.ts +3 -0
  20. package/src/dialers/proxy.ts +102 -0
  21. package/src/dialers/tcp.ts +162 -0
  22. package/src/encoding.ts +222 -0
  23. package/src/errors.ts +357 -0
  24. package/src/fetch.ts +626 -0
  25. package/src/http-client.ts +111 -0
  26. package/src/index.ts +14 -0
  27. package/src/io/_utils.ts +82 -0
  28. package/src/io/buf-writer.ts +183 -0
  29. package/src/io/io.ts +322 -0
  30. package/src/io/readers.ts +576 -0
  31. package/src/io/writers.ts +331 -0
  32. package/src/types/agent.ts +98 -0
  33. package/src/types/{dialer.d.cts → dialer.ts} +22 -9
  34. package/src/types/index.ts +2 -0
  35. package/tests/agent-pool.test.ts +111 -0
  36. package/tests/agent.test.ts +134 -0
  37. package/tests/body.test.ts +228 -0
  38. package/tests/errors.test.ts +152 -0
  39. package/tests/fetch.test.ts +421 -0
  40. package/tests/io-options.test.ts +127 -0
  41. package/tests/multipart.test.ts +348 -0
  42. package/tests/test-utils.ts +335 -0
  43. package/tsconfig.json +15 -0
  44. package/LICENSE +0 -21
  45. package/_internal/consts.cjs +0 -4
  46. package/_internal/consts.js +0 -4
  47. package/_internal/error-adapters.cjs +0 -146
  48. package/_internal/error-adapters.js +0 -142
  49. package/_internal/guards.cjs +0 -24
  50. package/_internal/guards.js +0 -17
  51. package/_internal/net.cjs +0 -95
  52. package/_internal/net.js +0 -92
  53. package/_internal/promises.cjs +0 -18
  54. package/_internal/promises.js +0 -18
  55. package/_internal/streams.cjs +0 -37
  56. package/_internal/streams.js +0 -36
  57. package/_virtual/_rolldown/runtime.cjs +0 -23
  58. package/agent-pool.cjs +0 -78
  59. package/agent-pool.js +0 -77
  60. package/agent.cjs +0 -257
  61. package/agent.js +0 -256
  62. package/body.cjs +0 -154
  63. package/body.js +0 -151
  64. package/dialers/proxy.cjs +0 -49
  65. package/dialers/proxy.js +0 -48
  66. package/dialers/tcp.cjs +0 -70
  67. package/dialers/tcp.js +0 -67
  68. package/encoding.cjs +0 -95
  69. package/encoding.js +0 -91
  70. package/errors.cjs +0 -275
  71. package/errors.js +0 -259
  72. package/fetch.cjs +0 -117
  73. package/fetch.js +0 -115
  74. package/http-client.cjs +0 -33
  75. package/http-client.js +0 -33
  76. package/index.cjs +0 -45
  77. package/index.d.cts +0 -1
  78. package/index.d.ts +0 -1
  79. package/index.js +0 -9
  80. package/io/_utils.cjs +0 -56
  81. package/io/_utils.js +0 -51
  82. package/io/buf-writer.cjs +0 -149
  83. package/io/buf-writer.js +0 -148
  84. package/io/io.cjs +0 -135
  85. package/io/io.js +0 -134
  86. package/io/readers.cjs +0 -377
  87. package/io/readers.js +0 -373
  88. package/io/writers.cjs +0 -191
  89. package/io/writers.js +0 -190
  90. package/src/_internal/consts.d.cts +0 -3
  91. package/src/_internal/consts.d.ts +0 -3
  92. package/src/_internal/error-adapters.d.cts +0 -22
  93. package/src/_internal/error-adapters.d.ts +0 -22
  94. package/src/_internal/guards.d.cts +0 -13
  95. package/src/_internal/guards.d.ts +0 -13
  96. package/src/_internal/net.d.cts +0 -12
  97. package/src/_internal/net.d.ts +0 -12
  98. package/src/_internal/promises.d.cts +0 -1
  99. package/src/_internal/promises.d.ts +0 -1
  100. package/src/_internal/streams.d.cts +0 -21
  101. package/src/_internal/streams.d.ts +0 -21
  102. package/src/agent-pool.d.cts +0 -2
  103. package/src/agent-pool.d.ts +0 -2
  104. package/src/agent.d.cts +0 -3
  105. package/src/agent.d.ts +0 -3
  106. package/src/body.d.cts +0 -23
  107. package/src/body.d.ts +0 -23
  108. package/src/dialers/index.d.cts +0 -3
  109. package/src/dialers/index.d.ts +0 -3
  110. package/src/dialers/proxy.d.cts +0 -19
  111. package/src/dialers/proxy.d.ts +0 -19
  112. package/src/dialers/tcp.d.cts +0 -36
  113. package/src/dialers/tcp.d.ts +0 -36
  114. package/src/encoding.d.cts +0 -24
  115. package/src/encoding.d.ts +0 -24
  116. package/src/errors.d.cts +0 -110
  117. package/src/errors.d.ts +0 -110
  118. package/src/fetch.d.cts +0 -36
  119. package/src/fetch.d.ts +0 -36
  120. package/src/http-client.d.cts +0 -23
  121. package/src/http-client.d.ts +0 -23
  122. package/src/index.d.cts +0 -7
  123. package/src/index.d.ts +0 -7
  124. package/src/io/_utils.d.cts +0 -10
  125. package/src/io/_utils.d.ts +0 -10
  126. package/src/io/buf-writer.d.cts +0 -13
  127. package/src/io/buf-writer.d.ts +0 -13
  128. package/src/io/io.d.cts +0 -5
  129. package/src/io/io.d.ts +0 -5
  130. package/src/io/readers.d.cts +0 -199
  131. package/src/io/readers.d.ts +0 -199
  132. package/src/io/writers.d.cts +0 -22
  133. package/src/io/writers.d.ts +0 -22
  134. package/src/types/agent.d.cts +0 -128
  135. package/src/types/agent.d.ts +0 -128
  136. package/src/types/dialer.d.ts +0 -27
  137. package/src/types/index.d.cts +0 -2
  138. package/src/types/index.d.ts +0 -2
  139. package/tests/test-utils.d.cts +0 -8
  140. package/tests/test-utils.d.ts +0 -8
@@ -1,199 +0,0 @@
1
- import { IClosable, IReadable } from '@fuman/io';
2
- type Source = IReadable & IClosable;
3
- export declare function sanitizeHeaderValue(v: string): string;
4
- /**
5
- * Reader options shared across the HTTP/1 response pipeline.
6
- *
7
- * @namespace Readers
8
- */
9
- export declare namespace Readers {
10
- /**
11
- * Buffering configuration.
12
- *
13
- * @property {number} [bufferSize] - Initial size (in bytes) for the internal buffer.
14
- *
15
- * @property {number} [highWaterMark] - Target read size (in bytes) for each pull from the underlying source.
16
- * Defaults to 16 KiB.
17
- */
18
- interface BufferingOptions {
19
- bufferSize?: number;
20
- highWaterMark?: number;
21
- }
22
- /**
23
- * Response size limits.
24
- *
25
- * @property {number|string} [maxBodySize] - Maximum allowed entity-body size (raw, before content decoding).
26
- * Can be a number of bytes or a human-readable string like "10mb".
27
- *
28
- * @property {number|string} [maxDecodedBodySize] - Maximum allowed decoded body size (after content decoding).
29
- * Can be a number of bytes or a human-readable string like "10mb".
30
- */
31
- interface SizeLimitOptions {
32
- maxBodySize?: number | string;
33
- maxDecodedBodySize?: number | string;
34
- }
35
- /**
36
- * Decompression behavior.
37
- *
38
- * @property {boolean} [decompress] - If true, the response body may be transparently decompressed based on
39
- * Content-Encoding. Defaults to true.
40
- */
41
- interface DecompressionOptions {
42
- decompress?: boolean;
43
- }
44
- /**
45
- * Delimiter scanning limits.
46
- *
47
- * @property {number} [maxLineSize] - Maximum allowed bytes for a single CRLF-delimited line (excluding CRLF).
48
- * Defaults to 64 KiB.
49
- *
50
- * @property {number} [maxBufferedBytes] - Maximum allowed buffered bytes while searching for CRLF.
51
- * Defaults to 256 KiB.
52
- */
53
- interface DelimiterLimitsOptions {
54
- maxLineSize?: number;
55
- maxBufferedBytes?: number;
56
- }
57
- /**
58
- * Unified options shape suitable for fetch-like response parsing.
59
- */
60
- type Options = LineReader.Options & BodyReader.Options & ChunkedBodyReader.Options;
61
- }
62
- /**
63
- * CRLF-delimited reader that preserves over-reads in an internal buffer.
64
- *
65
- * Key property: once you finish reading headers, any bytes already read beyond
66
- * the header terminator stay buffered and will be returned by read().
67
- */
68
- export declare class LineReader implements IReadable, IClosable {
69
- #private;
70
- close: () => Promise<void> | void;
71
- /**
72
- * LineReader configuration.
73
- *
74
- * @namespace LineReader
75
- */
76
- static Options: never;
77
- constructor(src: Source, opts?: LineReader.Options);
78
- read(into: Uint8Array): Promise<number>;
79
- readLine(): Promise<string | null>;
80
- readHeaders(opts?: LineReader.ReadHeadersOptions): Promise<Headers>;
81
- }
82
- /**
83
- * LineReader configuration.
84
- *
85
- * @namespace LineReader
86
- */
87
- export declare namespace LineReader {
88
- /**
89
- * LineReader instance options.
90
- *
91
- * @property {number} [bufferSize] - Initial size (in bytes) for the internal buffer.
92
- *
93
- * @property {number} [highWaterMark] - Target read size (in bytes) for each pull from the underlying source.
94
- * Defaults to 16 KiB.
95
- *
96
- * @property {number} [maxLineSize] - Maximum allowed bytes for a single CRLF-delimited line (excluding CRLF).
97
- * Defaults to 64 KiB.
98
- *
99
- * @property {number} [maxBufferedBytes] - Maximum allowed buffered bytes while searching for CRLF.
100
- * Defaults to 256 KiB.
101
- */
102
- interface Options extends Readers.BufferingOptions, Readers.DelimiterLimitsOptions {
103
- }
104
- /**
105
- * Header parsing limits.
106
- *
107
- * @property {number} [maxHeaderSize] - Maximum allowed bytes for all header fields (including CRLFs).
108
- * Defaults to 64 KiB.
109
- */
110
- interface ReadHeadersOptions {
111
- maxHeaderSize?: number;
112
- }
113
- }
114
- /**
115
- * Body reader that streams bytes with either a fixed Content-Length or until EOF.
116
- */
117
- export declare class BodyReader implements IReadable, IClosable {
118
- #private;
119
- close: () => Promise<void> | void;
120
- /**
121
- * BodyReader configuration.
122
- *
123
- * @namespace BodyReader
124
- */
125
- static Options: never;
126
- constructor(src: Source, contentLength: number, opts?: BodyReader.Options);
127
- read(into: Uint8Array): Promise<number>;
128
- }
129
- /**
130
- * BodyReader configuration.
131
- *
132
- * @namespace BodyReader
133
- */
134
- export declare namespace BodyReader {
135
- /**
136
- * BodyReader instance options.
137
- *
138
- * @property {number|string} [maxBodySize] - Maximum allowed entity-body size (raw, before content decoding).
139
- * Can be a number of bytes or a human-readable string like "10mb".
140
- *
141
- * @property {number|string} [maxDecodedBodySize] - Maximum allowed decoded body size (after content decoding).
142
- * Can be a number of bytes or a human-readable string like "10mb".
143
- *
144
- * @property {boolean} [decompress] - If true, the response body may be transparently decompressed based on
145
- * Content-Encoding. Defaults to true.
146
- */
147
- interface Options extends Readers.SizeLimitOptions, Readers.DecompressionOptions {
148
- }
149
- }
150
- /**
151
- * RFC 7230 chunked transfer-coding decoder.
152
- */
153
- export declare class ChunkedBodyReader implements IReadable, IClosable {
154
- #private;
155
- close: () => Promise<void> | void;
156
- /**
157
- * ChunkedBodyReader configuration.
158
- *
159
- * @namespace ChunkedBodyReader
160
- */
161
- static Options: never;
162
- constructor(src: Source, opts?: ChunkedBodyReader.Options);
163
- read(into: Uint8Array): Promise<number>;
164
- }
165
- /**
166
- * ChunkedBodyReader configuration.
167
- *
168
- * @namespace ChunkedBodyReader
169
- */
170
- export declare namespace ChunkedBodyReader {
171
- /**
172
- * ChunkedBodyReader instance options.
173
- *
174
- * @property {number|string} [maxBodySize] - Maximum allowed entity-body size (raw, before content decoding).
175
- * Can be a number of bytes or a human-readable string like "10mb".
176
- *
177
- * @property {number|string} [maxDecodedBodySize] - Maximum allowed decoded body size (after content decoding).
178
- * Can be a number of bytes or a human-readable string like "10mb".
179
- *
180
- * @property {boolean} [decompress] - If true, the response body may be transparently decompressed based on
181
- * Content-Encoding. Defaults to true.
182
- *
183
- * @property {number} [bufferSize] - Initial size (in bytes) for the internal buffer.
184
- *
185
- * @property {number} [highWaterMark] - Target read size (in bytes) for each pull from the underlying source.
186
- * Defaults to 16 KiB.
187
- *
188
- * @property {number} [maxLineSize] - Maximum allowed bytes for CRLF-delimited chunk control lines.
189
- * Defaults to 64 KiB.
190
- *
191
- * @property {number} [maxChunkSize] - Maximum allowed bytes for any single chunk.
192
- * Defaults to 16 MiB.
193
- */
194
- interface Options extends BodyReader.Options, Readers.BufferingOptions {
195
- maxLineSize?: number;
196
- maxChunkSize?: number;
197
- }
198
- }
199
- export {};
@@ -1,22 +0,0 @@
1
- import { IWritable } from '@fuman/io';
2
- import { BodyInit } from '../body';
3
- type Destination = IWritable;
4
- export declare namespace Writers {
5
- interface Options {
6
- highWaterMark?: number;
7
- directWriteThreshold?: number;
8
- coalesceBodyMaxBytes?: number;
9
- }
10
- interface Request {
11
- url: URL;
12
- method: string;
13
- headers?: Headers;
14
- body?: BodyInit | null;
15
- signal?: AbortSignal;
16
- }
17
- interface Writer {
18
- write(req: Request): Promise<void>;
19
- }
20
- }
21
- export declare function createRequestWriter(dst: Destination, opts?: Writers.Options): Writers.Writer;
22
- export {};
@@ -1,22 +0,0 @@
1
- import { IWritable } from '@fuman/io';
2
- import { BodyInit } from '../body';
3
- type Destination = IWritable;
4
- export declare namespace Writers {
5
- interface Options {
6
- highWaterMark?: number;
7
- directWriteThreshold?: number;
8
- coalesceBodyMaxBytes?: number;
9
- }
10
- interface Request {
11
- url: URL;
12
- method: string;
13
- headers?: Headers;
14
- body?: BodyInit | null;
15
- signal?: AbortSignal;
16
- }
17
- interface Writer {
18
- write(req: Request): Promise<void>;
19
- }
20
- }
21
- export declare function createRequestWriter(dst: Destination, opts?: Writers.Options): Writers.Writer;
22
- export {};
@@ -1,128 +0,0 @@
1
- import { BodyInit } from '../body';
2
- import { LineReader, Readers } from '../io/readers';
3
- import { Writers } from '../io/writers';
4
- import { Dialer } from './dialer';
5
- export interface Agent {
6
- [Symbol.dispose](): void;
7
- close(): void;
8
- readonly hostname: string;
9
- readonly port: number;
10
- send(options: Agent.SendOptions): Promise<Response>;
11
- whenIdle(): Promise<void>;
12
- readonly isIdle: boolean;
13
- readonly lastUsed: number;
14
- }
15
- export declare namespace Agent {
16
- interface ConnectOptions {
17
- /** Connection timeout (ms) used only while establishing the socket. */
18
- timeout?: number;
19
- /**
20
- * Configure SO_KEEPALIVE on the underlying connection.
21
- *
22
- * - `true` / `false`: explicitly set the flag
23
- * - `null`: do not touch the runtime default
24
- */
25
- keepAlive?: boolean | null;
26
- /**
27
- * Configure TCP_NODELAY on the underlying connection.
28
- *
29
- * This is a connection-level option only; it is not related to HTTP body
30
- * buffering or writer coalescing.
31
- */
32
- noDelay?: boolean;
33
- }
34
- /**
35
- * Reader options currently supported by the low-level HTTP response parser.
36
- *
37
- * These options are applied per-agent / per-pool, not per-request.
38
- */
39
- type ReaderOptions = Readers.Options & LineReader.ReadHeadersOptions;
40
- /**
41
- * Writer options currently supported by the low-level HTTP request writer.
42
- *
43
- * These options are applied per-agent / per-pool, not per-request.
44
- */
45
- type WriterOptions = Writers.Options;
46
- /**
47
- * High-level HTTP I/O configuration forwarded to the low-level Readers/Writers.
48
- */
49
- interface IOOptions {
50
- reader?: ReaderOptions;
51
- writer?: WriterOptions;
52
- }
53
- /**
54
- * Complete agent-level configuration.
55
- *
56
- * `connect` controls socket establishment behavior.
57
- * `io` controls HTTP reader/writer behavior.
58
- */
59
- interface Options {
60
- connect?: ConnectOptions;
61
- io?: IOOptions;
62
- }
63
- interface SendOptions {
64
- /**
65
- * Absolute request URL.
66
- *
67
- * Relative URLs are not supported at this layer.
68
- */
69
- url: string | URL;
70
- /**
71
- * HTTP method.
72
- *
73
- * The implementation may normalize casing before serialization.
74
- */
75
- method: string;
76
- /**
77
- * Pre-normalized headers for the low-level send path.
78
- *
79
- * Use `normalizeHeaders(...)` from the fetch layer when starting from a
80
- * generic `HeadersInit`.
81
- */
82
- headers?: Headers;
83
- body?: BodyInit | null;
84
- signal?: AbortSignal;
85
- }
86
- }
87
- export interface AgentPool {
88
- [Symbol.asyncDispose](): Promise<void>;
89
- close(): Promise<void>;
90
- readonly hostname: string;
91
- readonly port: number;
92
- send(options: Agent.SendOptions): Promise<Response>;
93
- }
94
- export declare namespace AgentPool {
95
- interface Options {
96
- dialer?: Dialer;
97
- poolMaxIdlePerHost?: number;
98
- poolMaxPerHost?: number;
99
- /** `false` disables idle eviction. Defaults are handled by the implementation. */
100
- poolIdleTimeout?: number | false;
101
- /**
102
- * Publicly exposed socket/connection options.
103
- */
104
- connect?: Agent.ConnectOptions;
105
- /**
106
- * Publicly exposed HTTP I/O options forwarded to Readers/Writers.
107
- *
108
- * These are client/pool/agent-level settings, not per-request options.
109
- */
110
- io?: Agent.IOOptions;
111
- }
112
- }
113
- /** Back-compat */
114
- export interface AgentConnectOptions extends Agent.ConnectOptions {
115
- }
116
- /** Back-compat */
117
- export interface AgentPoolOptions extends AgentPool.Options {
118
- }
119
- /** Back-compat */
120
- export interface SendOptions extends Agent.SendOptions {
121
- }
122
- /** Back-compat */
123
- export interface AgentIOOptions extends Agent.IOOptions {
124
- }
125
- /** Back-compat */
126
- export type AgentReaderOptions = Agent.ReaderOptions;
127
- /** Back-compat */
128
- export type AgentWriterOptions = Agent.WriterOptions;
@@ -1,128 +0,0 @@
1
- import { BodyInit } from '../body';
2
- import { LineReader, Readers } from '../io/readers';
3
- import { Writers } from '../io/writers';
4
- import { Dialer } from './dialer';
5
- export interface Agent {
6
- [Symbol.dispose](): void;
7
- close(): void;
8
- readonly hostname: string;
9
- readonly port: number;
10
- send(options: Agent.SendOptions): Promise<Response>;
11
- whenIdle(): Promise<void>;
12
- readonly isIdle: boolean;
13
- readonly lastUsed: number;
14
- }
15
- export declare namespace Agent {
16
- interface ConnectOptions {
17
- /** Connection timeout (ms) used only while establishing the socket. */
18
- timeout?: number;
19
- /**
20
- * Configure SO_KEEPALIVE on the underlying connection.
21
- *
22
- * - `true` / `false`: explicitly set the flag
23
- * - `null`: do not touch the runtime default
24
- */
25
- keepAlive?: boolean | null;
26
- /**
27
- * Configure TCP_NODELAY on the underlying connection.
28
- *
29
- * This is a connection-level option only; it is not related to HTTP body
30
- * buffering or writer coalescing.
31
- */
32
- noDelay?: boolean;
33
- }
34
- /**
35
- * Reader options currently supported by the low-level HTTP response parser.
36
- *
37
- * These options are applied per-agent / per-pool, not per-request.
38
- */
39
- type ReaderOptions = Readers.Options & LineReader.ReadHeadersOptions;
40
- /**
41
- * Writer options currently supported by the low-level HTTP request writer.
42
- *
43
- * These options are applied per-agent / per-pool, not per-request.
44
- */
45
- type WriterOptions = Writers.Options;
46
- /**
47
- * High-level HTTP I/O configuration forwarded to the low-level Readers/Writers.
48
- */
49
- interface IOOptions {
50
- reader?: ReaderOptions;
51
- writer?: WriterOptions;
52
- }
53
- /**
54
- * Complete agent-level configuration.
55
- *
56
- * `connect` controls socket establishment behavior.
57
- * `io` controls HTTP reader/writer behavior.
58
- */
59
- interface Options {
60
- connect?: ConnectOptions;
61
- io?: IOOptions;
62
- }
63
- interface SendOptions {
64
- /**
65
- * Absolute request URL.
66
- *
67
- * Relative URLs are not supported at this layer.
68
- */
69
- url: string | URL;
70
- /**
71
- * HTTP method.
72
- *
73
- * The implementation may normalize casing before serialization.
74
- */
75
- method: string;
76
- /**
77
- * Pre-normalized headers for the low-level send path.
78
- *
79
- * Use `normalizeHeaders(...)` from the fetch layer when starting from a
80
- * generic `HeadersInit`.
81
- */
82
- headers?: Headers;
83
- body?: BodyInit | null;
84
- signal?: AbortSignal;
85
- }
86
- }
87
- export interface AgentPool {
88
- [Symbol.asyncDispose](): Promise<void>;
89
- close(): Promise<void>;
90
- readonly hostname: string;
91
- readonly port: number;
92
- send(options: Agent.SendOptions): Promise<Response>;
93
- }
94
- export declare namespace AgentPool {
95
- interface Options {
96
- dialer?: Dialer;
97
- poolMaxIdlePerHost?: number;
98
- poolMaxPerHost?: number;
99
- /** `false` disables idle eviction. Defaults are handled by the implementation. */
100
- poolIdleTimeout?: number | false;
101
- /**
102
- * Publicly exposed socket/connection options.
103
- */
104
- connect?: Agent.ConnectOptions;
105
- /**
106
- * Publicly exposed HTTP I/O options forwarded to Readers/Writers.
107
- *
108
- * These are client/pool/agent-level settings, not per-request options.
109
- */
110
- io?: Agent.IOOptions;
111
- }
112
- }
113
- /** Back-compat */
114
- export interface AgentConnectOptions extends Agent.ConnectOptions {
115
- }
116
- /** Back-compat */
117
- export interface AgentPoolOptions extends AgentPool.Options {
118
- }
119
- /** Back-compat */
120
- export interface SendOptions extends Agent.SendOptions {
121
- }
122
- /** Back-compat */
123
- export interface AgentIOOptions extends Agent.IOOptions {
124
- }
125
- /** Back-compat */
126
- export type AgentReaderOptions = Agent.ReaderOptions;
127
- /** Back-compat */
128
- export type AgentWriterOptions = Agent.WriterOptions;
@@ -1,27 +0,0 @@
1
- import { ITcpConnection, ITlsConnection } from '@fuman/net';
2
- import { NodeTlsConnectOptions } from '@fuman/node';
3
- export interface Dialer {
4
- dial(target: Dialer.Target, options?: Dialer.Options): Promise<Dialer.ConnectionLike>;
5
- }
6
- export declare namespace Dialer {
7
- type ConnectionLike = ITcpConnection | ITlsConnection;
8
- interface Target {
9
- address: string;
10
- port: number;
11
- secure: boolean;
12
- /** Server Name Indication (TLS). Defaults to the host when applicable. */
13
- sni?: string;
14
- /** Defaults to ["http/1.1"] when omitted by the dialer implementation. */
15
- alpnProtocols?: string[];
16
- /** Extra Node.js TLS options (minVersion, servername, etc.). */
17
- extraOptions?: NodeTlsConnectOptions["extraOptions"];
18
- }
19
- interface Options {
20
- signal?: AbortSignal;
21
- }
22
- }
23
- /** Back-compat */
24
- export type ConnectionLike = Dialer.ConnectionLike;
25
- /** Back-compat */
26
- export interface DialTarget extends Dialer.Target {
27
- }
@@ -1,2 +0,0 @@
1
- export * from './agent';
2
- export * from './dialer';
@@ -1,2 +0,0 @@
1
- export * from './agent';
2
- export * from './dialer';
@@ -1,8 +0,0 @@
1
- export interface TestServer {
2
- server: ReturnType<typeof Bun.serve>;
3
- baseUrl: string;
4
- stop(): Promise<void>;
5
- }
6
- export declare function sleep(ms: number): Promise<void>;
7
- export declare function headersToObject(headers: Headers): Record<string, string>;
8
- export declare function createTestServer(): TestServer;
@@ -1,8 +0,0 @@
1
- export interface TestServer {
2
- server: ReturnType<typeof Bun.serve>;
3
- baseUrl: string;
4
- stop(): Promise<void>;
5
- }
6
- export declare function sleep(ms: number): Promise<void>;
7
- export declare function headersToObject(headers: Headers): Record<string, string>;
8
- export declare function createTestServer(): TestServer;