bare-http1 4.5.4 → 4.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +44 -50
- package/lib/client-connection.js +2 -1
- package/lib/incoming-message.js +24 -4
- package/lib/outgoing-message.js +10 -6
- package/lib/server-connection.js +3 -6
- package/lib/server-response.js +2 -2
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -28,25 +28,23 @@ export interface HTTPIncomingMessageEvents extends ReadableEvents {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export interface HTTPIncomingMessageOptions {
|
|
31
|
+
headers?: Record<string, string | number>
|
|
31
32
|
method?: HTTPMethod
|
|
32
|
-
url?:
|
|
33
|
+
url?: string
|
|
33
34
|
statusCode?: HTTPStatusCode
|
|
34
35
|
statusMessage?: HTTPStatusMessage
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
interface HTTPIncomingMessage<
|
|
38
39
|
M extends HTTPIncomingMessageEvents = HTTPIncomingMessageEvents
|
|
39
40
|
> extends Readable<M> {
|
|
40
41
|
readonly socket: TCPSocket
|
|
41
|
-
readonly headers: Record<string, string | number>
|
|
42
42
|
readonly upgrade: boolean
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
readonly statusMessage: HTTPStatusMessage
|
|
49
|
-
|
|
43
|
+
headers: Record<string, string | number>
|
|
44
|
+
method: HTTPMethod
|
|
45
|
+
url: string
|
|
46
|
+
statusCode: HTTPStatusCode
|
|
47
|
+
statusMessage: HTTPStatusMessage
|
|
50
48
|
readonly httpVersion: '1.1'
|
|
51
49
|
|
|
52
50
|
getHeader(name: string): string | number | undefined
|
|
@@ -56,27 +54,25 @@ export interface HTTPIncomingMessage<
|
|
|
56
54
|
setTimeout(ms: number, ontimeout?: () => void): this
|
|
57
55
|
}
|
|
58
56
|
|
|
59
|
-
class HTTPIncomingMessage
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
opts?: HTTPIncomingMessageOptions
|
|
64
|
-
)
|
|
57
|
+
declare class HTTPIncomingMessage<
|
|
58
|
+
M extends HTTPIncomingMessageEvents = HTTPIncomingMessageEvents
|
|
59
|
+
> extends Readable<M> {
|
|
60
|
+
constructor(socket?: TCPSocket, opts?: HTTPIncomingMessageOptions)
|
|
65
61
|
}
|
|
66
62
|
|
|
67
|
-
export { HTTPIncomingMessage as IncomingMessage }
|
|
63
|
+
export { type HTTPIncomingMessage, HTTPIncomingMessage as IncomingMessage }
|
|
68
64
|
|
|
69
65
|
export interface HTTPOutgoingMessageEvents extends WritableEvents {
|
|
70
66
|
timeout: []
|
|
71
67
|
}
|
|
72
68
|
|
|
73
|
-
|
|
69
|
+
interface HTTPOutgoingMessage<
|
|
74
70
|
M extends HTTPOutgoingMessageEvents = HTTPOutgoingMessageEvents
|
|
75
71
|
> extends Writable<M> {
|
|
76
72
|
readonly socket: TCPSocket
|
|
77
|
-
readonly headers: Record<string, string | number>
|
|
78
|
-
readonly headersSent: boolean
|
|
79
73
|
readonly upgrade: boolean
|
|
74
|
+
readonly headersSent: boolean
|
|
75
|
+
headers: Record<string, string | number>
|
|
80
76
|
|
|
81
77
|
getHeader(name: string): string | number | undefined
|
|
82
78
|
getHeaders(): Record<string, string | number>
|
|
@@ -87,31 +83,29 @@ export interface HTTPOutgoingMessage<
|
|
|
87
83
|
setTimeout(ms: number, ontimeout?: () => void): this
|
|
88
84
|
}
|
|
89
85
|
|
|
90
|
-
class HTTPOutgoingMessage
|
|
86
|
+
declare class HTTPOutgoingMessage<
|
|
87
|
+
M extends HTTPOutgoingMessageEvents = HTTPOutgoingMessageEvents
|
|
88
|
+
> extends Writable<M> {
|
|
91
89
|
constructor(socket?: TCPSocket)
|
|
92
90
|
}
|
|
93
91
|
|
|
94
|
-
export { HTTPOutgoingMessage as OutgoingMessage }
|
|
92
|
+
export { type HTTPOutgoingMessage, HTTPOutgoingMessage as OutgoingMessage }
|
|
95
93
|
|
|
96
94
|
export interface HTTPAgentOptions {
|
|
97
95
|
keepAlive?: boolean
|
|
98
96
|
keepAliveMsecs?: number
|
|
99
97
|
}
|
|
100
98
|
|
|
101
|
-
|
|
99
|
+
interface HTTPAgent {
|
|
102
100
|
readonly suspended: boolean
|
|
103
101
|
readonly resumed: Promise<void> | null
|
|
104
102
|
readonly sockets: IterableIterator<TCPSocket>
|
|
105
103
|
readonly freeSockets: IterableIterator<TCPSocket>
|
|
106
104
|
|
|
107
105
|
createConnection(opts?: TCPSocketOptions & TCPSocketConnectOptions): TCPSocket
|
|
108
|
-
|
|
109
106
|
reuseSocket(socket: TCPSocket, req?: HTTPClientRequest): void
|
|
110
|
-
|
|
111
107
|
keepSocketAlive(socket: TCPSocket): boolean
|
|
112
|
-
|
|
113
108
|
getName(opts: { host: string; port: number }): string
|
|
114
|
-
|
|
115
109
|
addRequest(req: HTTPClientRequest, opts: TCPSocketOptions & TCPSocketConnectOptions): void
|
|
116
110
|
|
|
117
111
|
suspend(): void
|
|
@@ -119,15 +113,17 @@ export interface HTTPAgent {
|
|
|
119
113
|
destroy(): void
|
|
120
114
|
}
|
|
121
115
|
|
|
122
|
-
class HTTPAgent {
|
|
116
|
+
declare class HTTPAgent {
|
|
123
117
|
constructor(opts?: HTTPAgentOptions & TCPSocketOptions & TCPSocketConnectOptions)
|
|
118
|
+
}
|
|
124
119
|
|
|
125
|
-
|
|
120
|
+
declare namespace HTTPAgent {
|
|
121
|
+
export const global: HTTPAgent
|
|
126
122
|
}
|
|
127
123
|
|
|
128
124
|
export const globalAgent: HTTPAgent
|
|
129
125
|
|
|
130
|
-
export { HTTPAgent as Agent }
|
|
126
|
+
export { type HTTPAgent, HTTPAgent as Agent }
|
|
131
127
|
|
|
132
128
|
export interface HTTPServerEvents extends TCPServerEvents {
|
|
133
129
|
request: [req: HTTPIncomingMessage, res: HTTPServerResponse]
|
|
@@ -135,13 +131,13 @@ export interface HTTPServerEvents extends TCPServerEvents {
|
|
|
135
131
|
timeout: [socket: TCPSocket]
|
|
136
132
|
}
|
|
137
133
|
|
|
138
|
-
|
|
134
|
+
interface HTTPServer<M extends HTTPServerEvents = HTTPServerEvents> extends TCPServer<M> {
|
|
139
135
|
readonly timeout: number | undefined
|
|
140
136
|
|
|
141
137
|
setTimeout(ms: number, ontimeout?: () => void): this
|
|
142
138
|
}
|
|
143
139
|
|
|
144
|
-
class HTTPServer extends TCPServer {
|
|
140
|
+
declare class HTTPServer<M extends HTTPServerEvents = HTTPServerEvents> extends TCPServer<M> {
|
|
145
141
|
constructor(
|
|
146
142
|
opts?: HTTPServerConnectionOptions,
|
|
147
143
|
onrequest?: (req: HTTPIncomingMessage, res: HTTPServerResponse) => void
|
|
@@ -150,9 +146,9 @@ class HTTPServer extends TCPServer {
|
|
|
150
146
|
constructor(onrequest: (req: HTTPIncomingMessage, res: HTTPServerResponse) => void)
|
|
151
147
|
}
|
|
152
148
|
|
|
153
|
-
export { HTTPServer as Server }
|
|
149
|
+
export { type HTTPServer, HTTPServer as Server }
|
|
154
150
|
|
|
155
|
-
|
|
151
|
+
interface HTTPServerResponse extends HTTPOutgoingMessage {
|
|
156
152
|
readonly req: HTTPIncomingMessage
|
|
157
153
|
statusCode: HTTPStatusCode
|
|
158
154
|
statusMessage: HTTPStatusMessage | null
|
|
@@ -166,34 +162,32 @@ export interface HTTPServerResponse extends HTTPOutgoingMessage {
|
|
|
166
162
|
writeHead(statusCode: HTTPStatusCode, headers?: Record<string, string | number>): void
|
|
167
163
|
}
|
|
168
164
|
|
|
169
|
-
class HTTPServerResponse extends HTTPOutgoingMessage {
|
|
170
|
-
constructor(socket: TCPSocket, req: HTTPIncomingMessage
|
|
165
|
+
declare class HTTPServerResponse extends HTTPOutgoingMessage {
|
|
166
|
+
constructor(socket: TCPSocket, req: HTTPIncomingMessage)
|
|
171
167
|
}
|
|
172
168
|
|
|
173
|
-
export { HTTPServerResponse as ServerResponse }
|
|
169
|
+
export { type HTTPServerResponse, HTTPServerResponse as ServerResponse }
|
|
174
170
|
|
|
175
171
|
export interface HTTPServerConnectionOptions {
|
|
176
172
|
IncomingMessage?: typeof HTTPIncomingMessage
|
|
177
173
|
ServerResponse?: typeof HTTPServerResponse
|
|
178
174
|
}
|
|
179
175
|
|
|
180
|
-
|
|
176
|
+
interface HTTPServerConnection {
|
|
181
177
|
readonly server: HTTPServer
|
|
182
178
|
readonly socket: TCPSocket | null
|
|
183
|
-
|
|
184
179
|
readonly req: HTTPIncomingMessage | null
|
|
185
180
|
readonly res: HTTPServerResponse | null
|
|
186
|
-
|
|
187
181
|
readonly idle: boolean
|
|
188
182
|
}
|
|
189
183
|
|
|
190
|
-
class HTTPServerConnection {
|
|
184
|
+
declare class HTTPServerConnection {
|
|
191
185
|
constructor(server: HTTPServer, socket: TCPSocket, opts?: HTTPServerConnectionOptions)
|
|
192
186
|
|
|
193
187
|
static for(socket: TCPSocket): HTTPServerConnection
|
|
194
188
|
}
|
|
195
189
|
|
|
196
|
-
export { HTTPServerConnection as ServerConnection }
|
|
190
|
+
export { type HTTPServerConnection, HTTPServerConnection as ServerConnection }
|
|
197
191
|
|
|
198
192
|
export interface HTTPClientRequestEvents extends HTTPOutgoingMessageEvents {
|
|
199
193
|
response: [res: HTTPIncomingMessage]
|
|
@@ -207,7 +201,7 @@ export interface HTTPClientRequestOptions extends TCPSocketConnectOptions {
|
|
|
207
201
|
path?: string
|
|
208
202
|
}
|
|
209
203
|
|
|
210
|
-
|
|
204
|
+
interface HTTPClientRequest<
|
|
211
205
|
M extends HTTPClientRequestEvents = HTTPClientRequestEvents
|
|
212
206
|
> extends HTTPOutgoingMessage<M> {
|
|
213
207
|
readonly method: HTTPMethod
|
|
@@ -215,28 +209,28 @@ export interface HTTPClientRequest<
|
|
|
215
209
|
readonly headers: Record<string, string | number>
|
|
216
210
|
}
|
|
217
211
|
|
|
218
|
-
class HTTPClientRequest
|
|
212
|
+
declare class HTTPClientRequest<
|
|
213
|
+
M extends HTTPClientRequestEvents = HTTPClientRequestEvents
|
|
214
|
+
> extends HTTPOutgoingMessage<M> {
|
|
219
215
|
constructor(opts?: HTTPClientRequestOptions, onresponse?: () => void)
|
|
220
216
|
|
|
221
217
|
constructor(onresponse: () => void)
|
|
222
218
|
}
|
|
223
219
|
|
|
224
|
-
export { HTTPClientRequest as ClientRequest }
|
|
220
|
+
export { type HTTPClientRequest, HTTPClientRequest as ClientRequest }
|
|
225
221
|
|
|
226
222
|
export interface HTTPClientConnectionOptions {
|
|
227
223
|
IncomingMessage?: typeof HTTPIncomingMessage
|
|
228
224
|
}
|
|
229
225
|
|
|
230
|
-
|
|
226
|
+
interface HTTPClientConnection {
|
|
231
227
|
readonly socket: TCPSocket | null
|
|
232
|
-
|
|
233
228
|
readonly req: HTTPClientRequest | null
|
|
234
229
|
readonly res: HTTPIncomingMessage | null
|
|
235
|
-
|
|
236
230
|
readonly idle: boolean
|
|
237
231
|
}
|
|
238
232
|
|
|
239
|
-
class HTTPClientConnection {
|
|
233
|
+
declare class HTTPClientConnection {
|
|
240
234
|
constructor(socket: TCPSocket, opts?: HTTPClientConnectionOptions)
|
|
241
235
|
|
|
242
236
|
static for(socket: TCPSocket): HTTPClientConnection | null
|
|
@@ -244,7 +238,7 @@ class HTTPClientConnection {
|
|
|
244
238
|
static from(socket: TCPSocket, opts?: HTTPClientConnectionOptions): HTTPClientConnection
|
|
245
239
|
}
|
|
246
240
|
|
|
247
|
-
export { HTTPClientConnection as ClientConnection }
|
|
241
|
+
export { type HTTPClientConnection, HTTPClientConnection as ClientConnection }
|
|
248
242
|
|
|
249
243
|
export function createServer(
|
|
250
244
|
opts?: HTTPServerConnectionOptions,
|
package/lib/client-connection.js
CHANGED
|
@@ -89,7 +89,8 @@ module.exports = class HTTPClientConnection {
|
|
|
89
89
|
this._req = null
|
|
90
90
|
})
|
|
91
91
|
|
|
92
|
-
this._res = new this._IncomingMessage(this._socket,
|
|
92
|
+
this._res = new this._IncomingMessage(this._socket, {
|
|
93
|
+
headers: op.headers,
|
|
93
94
|
statusCode: op.code,
|
|
94
95
|
statusMessage: op.reason
|
|
95
96
|
})
|
package/lib/incoming-message.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
const { Readable } = require('bare-stream')
|
|
2
2
|
|
|
3
3
|
module.exports = class HTTPIncomingMessage extends Readable {
|
|
4
|
-
constructor(socket = null,
|
|
4
|
+
constructor(socket = null, opts = {}) {
|
|
5
5
|
super()
|
|
6
6
|
|
|
7
7
|
this._socket = socket
|
|
8
|
-
this._headers = headers
|
|
9
8
|
this._upgrade = false
|
|
9
|
+
this._headers = opts.headers || {}
|
|
10
10
|
|
|
11
11
|
// Server options
|
|
12
12
|
this._method = opts.method || ''
|
|
@@ -21,30 +21,50 @@ module.exports = class HTTPIncomingMessage extends Readable {
|
|
|
21
21
|
return this._socket
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
get upgrade() {
|
|
25
|
+
return this._upgrade
|
|
26
|
+
}
|
|
27
|
+
|
|
24
28
|
get headers() {
|
|
25
29
|
return this._headers
|
|
26
30
|
}
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
set headers(value) {
|
|
33
|
+
this._headers = value
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
get method() {
|
|
33
37
|
return this._method
|
|
34
38
|
}
|
|
35
39
|
|
|
40
|
+
set method(value) {
|
|
41
|
+
this._method = value
|
|
42
|
+
}
|
|
43
|
+
|
|
36
44
|
get url() {
|
|
37
45
|
return this._url
|
|
38
46
|
}
|
|
39
47
|
|
|
48
|
+
set url(value) {
|
|
49
|
+
this._url = value
|
|
50
|
+
}
|
|
51
|
+
|
|
40
52
|
get statusCode() {
|
|
41
53
|
return this._statusCode
|
|
42
54
|
}
|
|
43
55
|
|
|
56
|
+
set statusCode(value) {
|
|
57
|
+
this._statusCode = value
|
|
58
|
+
}
|
|
59
|
+
|
|
44
60
|
get statusMessage() {
|
|
45
61
|
return this._statusMessage
|
|
46
62
|
}
|
|
47
63
|
|
|
64
|
+
set statusMessage(value) {
|
|
65
|
+
this._statusMessage = value
|
|
66
|
+
}
|
|
67
|
+
|
|
48
68
|
get httpVersion() {
|
|
49
69
|
return '1.1'
|
|
50
70
|
}
|
package/lib/outgoing-message.js
CHANGED
|
@@ -6,25 +6,29 @@ module.exports = class HTTPOutgoingMessage extends Writable {
|
|
|
6
6
|
super()
|
|
7
7
|
|
|
8
8
|
this._socket = socket
|
|
9
|
-
this._headers = {}
|
|
10
|
-
this._headersSent = false
|
|
11
9
|
this._upgrade = false
|
|
10
|
+
this._headersSent = false
|
|
11
|
+
this._headers = {}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
get socket() {
|
|
15
15
|
return this._socket
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
get
|
|
19
|
-
return this.
|
|
18
|
+
get upgrade() {
|
|
19
|
+
return this._upgrade
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
get headersSent() {
|
|
23
23
|
return this._headersSent
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
get
|
|
27
|
-
return this.
|
|
26
|
+
get headers() {
|
|
27
|
+
return this._headers
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
set headers(value) {
|
|
31
|
+
this._headers = value
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
getHeader(name) {
|
package/lib/server-connection.js
CHANGED
|
@@ -83,7 +83,8 @@ module.exports = class HTTPServerConnection {
|
|
|
83
83
|
for (const op of this._parser.push(data)) {
|
|
84
84
|
switch (op.type) {
|
|
85
85
|
case REQUEST:
|
|
86
|
-
this._req = new this._IncomingMessage(this._socket,
|
|
86
|
+
this._req = new this._IncomingMessage(this._socket, {
|
|
87
|
+
headers: op.headers,
|
|
87
88
|
method: op.method,
|
|
88
89
|
url: op.url
|
|
89
90
|
})
|
|
@@ -104,11 +105,7 @@ module.exports = class HTTPServerConnection {
|
|
|
104
105
|
return this._onupgrade(this._parser.end())
|
|
105
106
|
}
|
|
106
107
|
|
|
107
|
-
this._res = new this._ServerResponse(
|
|
108
|
-
this._socket,
|
|
109
|
-
this._req,
|
|
110
|
-
op.headers.connection === 'close'
|
|
111
|
-
)
|
|
108
|
+
this._res = new this._ServerResponse(this._socket, this._req)
|
|
112
109
|
|
|
113
110
|
this._res.on('close', () => {
|
|
114
111
|
this._res = null
|
package/lib/server-response.js
CHANGED
|
@@ -6,7 +6,7 @@ const CHUNK_DELIMITER = Buffer.from('\r\n')
|
|
|
6
6
|
const CHUNK_TERMINATOR = Buffer.from('0\r\n\r\n')
|
|
7
7
|
|
|
8
8
|
module.exports = class HTTPServerResponse extends HTTPOutgoingMessage {
|
|
9
|
-
constructor(socket, req
|
|
9
|
+
constructor(socket, req) {
|
|
10
10
|
super(socket)
|
|
11
11
|
|
|
12
12
|
this._req = req
|
|
@@ -15,7 +15,7 @@ module.exports = class HTTPServerResponse extends HTTPOutgoingMessage {
|
|
|
15
15
|
this._statusMessage = null
|
|
16
16
|
|
|
17
17
|
this._chunked = true
|
|
18
|
-
this._close = close
|
|
18
|
+
this._close = req.headers.connection === 'close'
|
|
19
19
|
this._onlyHeaders = req.method === 'HEAD'
|
|
20
20
|
|
|
21
21
|
this._pendingWrite = null
|