nlcurl 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -13
- package/dist/cli/args.d.ts +37 -5
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +6 -17
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +25 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +24 -7
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +24 -12
- package/dist/cli/output.js.map +1 -1
- package/dist/cookies/jar.d.ts +45 -13
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +88 -29
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +25 -3
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +12 -7
- package/dist/cookies/parser.js.map +1 -1
- package/dist/core/client.d.ts +49 -33
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +64 -38
- package/dist/core/client.js.map +1 -1
- package/dist/core/errors.d.ts +94 -6
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +95 -6
- package/dist/core/errors.js.map +1 -1
- package/dist/core/request.d.ts +96 -30
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/request.js +0 -3
- package/dist/core/request.js.map +1 -1
- package/dist/core/response.d.ts +92 -8
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +92 -7
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +109 -14
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +124 -46
- package/dist/core/session.js.map +1 -1
- package/dist/fingerprints/akamai.d.ts +11 -11
- package/dist/fingerprints/akamai.d.ts.map +1 -1
- package/dist/fingerprints/akamai.js +10 -14
- package/dist/fingerprints/akamai.js.map +1 -1
- package/dist/fingerprints/database.d.ts +14 -15
- package/dist/fingerprints/database.d.ts.map +1 -1
- package/dist/fingerprints/database.js +14 -19
- package/dist/fingerprints/database.js.map +1 -1
- package/dist/fingerprints/extensions.d.ts +121 -27
- package/dist/fingerprints/extensions.d.ts.map +1 -1
- package/dist/fingerprints/extensions.js +132 -49
- package/dist/fingerprints/extensions.js.map +1 -1
- package/dist/fingerprints/ja3.d.ts +34 -18
- package/dist/fingerprints/ja3.d.ts.map +1 -1
- package/dist/fingerprints/ja3.js +34 -18
- package/dist/fingerprints/ja3.js.map +1 -1
- package/dist/fingerprints/profiles/chrome.d.ts +21 -10
- package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
- package/dist/fingerprints/profiles/chrome.js +25 -22
- package/dist/fingerprints/profiles/chrome.js.map +1 -1
- package/dist/fingerprints/profiles/edge.d.ts +10 -7
- package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
- package/dist/fingerprints/profiles/edge.js +10 -10
- package/dist/fingerprints/profiles/edge.js.map +1 -1
- package/dist/fingerprints/profiles/firefox.d.ts +11 -3
- package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
- package/dist/fingerprints/profiles/firefox.js +15 -14
- package/dist/fingerprints/profiles/firefox.js.map +1 -1
- package/dist/fingerprints/profiles/safari.d.ts +14 -3
- package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
- package/dist/fingerprints/profiles/safari.js +16 -13
- package/dist/fingerprints/profiles/safari.js.map +1 -1
- package/dist/fingerprints/profiles/tor.d.ts +8 -7
- package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
- package/dist/fingerprints/profiles/tor.js +8 -14
- package/dist/fingerprints/profiles/tor.js.map +1 -1
- package/dist/fingerprints/types.d.ts +70 -47
- package/dist/fingerprints/types.d.ts.map +1 -1
- package/dist/fingerprints/types.js +0 -7
- package/dist/fingerprints/types.js.map +1 -1
- package/dist/http/h1/client.d.ts +30 -9
- package/dist/http/h1/client.d.ts.map +1 -1
- package/dist/http/h1/client.js +152 -15
- package/dist/http/h1/client.js.map +1 -1
- package/dist/http/h1/encoder.d.ts +9 -6
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +8 -12
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h1/parser.d.ts +68 -14
- package/dist/http/h1/parser.d.ts.map +1 -1
- package/dist/http/h1/parser.js +92 -37
- package/dist/http/h1/parser.js.map +1 -1
- package/dist/http/h2/client.d.ts +81 -14
- package/dist/http/h2/client.d.ts.map +1 -1
- package/dist/http/h2/client.js +465 -63
- package/dist/http/h2/client.js.map +1 -1
- package/dist/http/h2/frames.d.ts +103 -6
- package/dist/http/h2/frames.d.ts.map +1 -1
- package/dist/http/h2/frames.js +96 -17
- package/dist/http/h2/frames.js.map +1 -1
- package/dist/http/h2/hpack.d.ts +30 -5
- package/dist/http/h2/hpack.d.ts.map +1 -1
- package/dist/http/h2/hpack.js +39 -35
- package/dist/http/h2/hpack.js.map +1 -1
- package/dist/http/negotiator.d.ts +35 -12
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +89 -24
- package/dist/http/negotiator.js.map +1 -1
- package/dist/http/pool.d.ts +66 -17
- package/dist/http/pool.d.ts.map +1 -1
- package/dist/http/pool.js +47 -20
- package/dist/http/pool.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +1 -1
- package/dist/middleware/interceptor.d.ts +40 -8
- package/dist/middleware/interceptor.d.ts.map +1 -1
- package/dist/middleware/interceptor.js +28 -6
- package/dist/middleware/interceptor.js.map +1 -1
- package/dist/middleware/rate-limiter.d.ts +18 -5
- package/dist/middleware/rate-limiter.d.ts.map +1 -1
- package/dist/middleware/rate-limiter.js +12 -7
- package/dist/middleware/rate-limiter.js.map +1 -1
- package/dist/middleware/retry.d.ts +17 -5
- package/dist/middleware/retry.d.ts.map +1 -1
- package/dist/middleware/retry.js +13 -11
- package/dist/middleware/retry.js.map +1 -1
- package/dist/proxy/http-proxy.d.ts +17 -9
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +9 -13
- package/dist/proxy/http-proxy.js.map +1 -1
- package/dist/proxy/socks.d.ts +20 -9
- package/dist/proxy/socks.d.ts.map +1 -1
- package/dist/proxy/socks.js +20 -31
- package/dist/proxy/socks.js.map +1 -1
- package/dist/tls/constants.d.ts +74 -4
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +75 -21
- package/dist/tls/constants.js.map +1 -1
- package/dist/tls/node-engine.d.ts +17 -16
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +20 -27
- package/dist/tls/node-engine.js.map +1 -1
- package/dist/tls/stealth/client-hello.d.ts +32 -16
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +13 -37
- package/dist/tls/stealth/client-hello.js.map +1 -1
- package/dist/tls/stealth/engine.d.ts +18 -10
- package/dist/tls/stealth/engine.d.ts.map +1 -1
- package/dist/tls/stealth/engine.js +18 -24
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +31 -17
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +173 -74
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/dist/tls/stealth/key-schedule.d.ts +89 -32
- package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
- package/dist/tls/stealth/key-schedule.js +62 -42
- package/dist/tls/stealth/key-schedule.js.map +1 -1
- package/dist/tls/stealth/record-layer.d.ts +76 -25
- package/dist/tls/stealth/record-layer.d.ts.map +1 -1
- package/dist/tls/stealth/record-layer.js +66 -36
- package/dist/tls/stealth/record-layer.js.map +1 -1
- package/dist/tls/types.d.ts +33 -25
- package/dist/tls/types.d.ts.map +1 -1
- package/dist/tls/types.js +0 -4
- package/dist/tls/types.js.map +1 -1
- package/dist/utils/buffer-reader.d.ts +99 -7
- package/dist/utils/buffer-reader.d.ts.map +1 -1
- package/dist/utils/buffer-reader.js +99 -7
- package/dist/utils/buffer-reader.js.map +1 -1
- package/dist/utils/buffer-writer.d.ts +99 -10
- package/dist/utils/buffer-writer.d.ts.map +1 -1
- package/dist/utils/buffer-writer.js +101 -12
- package/dist/utils/buffer-writer.js.map +1 -1
- package/dist/utils/encoding.d.ts +33 -8
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +58 -13
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/logger.d.ts +61 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +52 -4
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/url.d.ts +47 -7
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +47 -7
- package/dist/utils/url.js.map +1 -1
- package/dist/ws/client.d.ts +59 -15
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +34 -27
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +43 -9
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +35 -19
- package/dist/ws/frame.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/h2/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/h2/client.ts"],"names":[],"mappings":"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"}
|
package/dist/http/h2/frames.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HTTP/2 frame
|
|
2
|
+
* HTTP/2 frame type identifiers as defined in RFC 7540 §11.2.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-11.2}
|
|
5
5
|
*/
|
|
6
6
|
export declare const FrameType: {
|
|
7
7
|
readonly DATA: 0;
|
|
@@ -15,6 +15,11 @@ export declare const FrameType: {
|
|
|
15
15
|
readonly WINDOW_UPDATE: 8;
|
|
16
16
|
readonly CONTINUATION: 9;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* HTTP/2 frame flag bit masks as defined in RFC 7540. Flags are frame-type
|
|
20
|
+
* specific; e.g. `END_STREAM` is valid on DATA and HEADERS frames while `ACK`
|
|
21
|
+
* shares the same value `0x1` but applies to SETTINGS and PING frames.
|
|
22
|
+
*/
|
|
18
23
|
export declare const Flags: {
|
|
19
24
|
readonly END_STREAM: 1;
|
|
20
25
|
readonly ACK: 1;
|
|
@@ -22,6 +27,11 @@ export declare const Flags: {
|
|
|
22
27
|
readonly PADDED: 8;
|
|
23
28
|
readonly PRIORITY: 32;
|
|
24
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* HTTP/2 SETTINGS parameter identifiers as defined in RFC 7540 §6.5.2.
|
|
32
|
+
*
|
|
33
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2}
|
|
34
|
+
*/
|
|
25
35
|
export declare const SettingsParam: {
|
|
26
36
|
readonly HEADER_TABLE_SIZE: 1;
|
|
27
37
|
readonly ENABLE_PUSH: 2;
|
|
@@ -30,6 +40,15 @@ export declare const SettingsParam: {
|
|
|
30
40
|
readonly MAX_FRAME_SIZE: 5;
|
|
31
41
|
readonly MAX_HEADER_LIST_SIZE: 6;
|
|
32
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Represents a decoded HTTP/2 frame.
|
|
45
|
+
*
|
|
46
|
+
* @typedef {Object} H2Frame
|
|
47
|
+
* @property {number} type - Frame type identifier (see `FrameType`).
|
|
48
|
+
* @property {number} flags - Frame flags bitmask (see `Flags`).
|
|
49
|
+
* @property {number} streamId - Associated stream identifier (0 for connection-level frames).
|
|
50
|
+
* @property {Buffer} payload - Raw frame payload (excludes the 9-byte header).
|
|
51
|
+
*/
|
|
33
52
|
export interface H2Frame {
|
|
34
53
|
type: number;
|
|
35
54
|
flags: number;
|
|
@@ -37,29 +56,107 @@ export interface H2Frame {
|
|
|
37
56
|
payload: Buffer;
|
|
38
57
|
}
|
|
39
58
|
/**
|
|
40
|
-
*
|
|
59
|
+
* Attempts to parse one HTTP/2 frame starting at `offset` in `data`.
|
|
60
|
+
* Returns `null` if insufficient bytes are available for a complete frame.
|
|
41
61
|
*
|
|
42
|
-
*
|
|
62
|
+
* @param {Buffer} data - Input buffer potentially containing one or more frames.
|
|
63
|
+
* @param {number} offset - Byte offset within `data` at which to start parsing.
|
|
64
|
+
* @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and total bytes consumed,
|
|
65
|
+
* or `null` if more data is required.
|
|
43
66
|
*/
|
|
44
67
|
export declare function readFrame(data: Buffer, offset: number): {
|
|
45
68
|
frame: H2Frame;
|
|
46
69
|
bytesRead: number;
|
|
47
70
|
} | null;
|
|
48
71
|
/**
|
|
49
|
-
*
|
|
72
|
+
* Serializes an HTTP/2 frame into a `Buffer` including the 9-byte frame header.
|
|
73
|
+
*
|
|
74
|
+
* @param {H2Frame} frame - Frame to serialize.
|
|
75
|
+
* @returns {Buffer} Complete frame bytes ready to be written to a transport stream.
|
|
50
76
|
*/
|
|
51
77
|
export declare function writeFrame(frame: H2Frame): Buffer;
|
|
78
|
+
/**
|
|
79
|
+
* Builds a SETTINGS frame optionally containing one or more settings parameters.
|
|
80
|
+
* When `ack` is `true` the frame acknowledges a peer SETTINGS frame and the
|
|
81
|
+
* `settings` array is ignored.
|
|
82
|
+
*
|
|
83
|
+
* @param {Array<{id: number; value: number}>} settings - Settings parameters to send.
|
|
84
|
+
* @param {boolean} [ack=false] - Whether to create a SETTINGS acknowledgement (empty payload + ACK flag).
|
|
85
|
+
* @returns {Buffer} Encoded SETTINGS frame.
|
|
86
|
+
*/
|
|
52
87
|
export declare function buildSettingsFrame(settings: Array<{
|
|
53
88
|
id: number;
|
|
54
89
|
value: number;
|
|
55
90
|
}>, ack?: boolean): Buffer;
|
|
91
|
+
/**
|
|
92
|
+
* Builds a WINDOW_UPDATE frame that enlarges a flow-control window.
|
|
93
|
+
*
|
|
94
|
+
* @param {number} streamId - Stream to update (`0` for the connection-level window).
|
|
95
|
+
* @param {number} increment - Number of octets to add to the flow-control window (1–2^31-1).
|
|
96
|
+
* @returns {Buffer} Encoded WINDOW_UPDATE frame.
|
|
97
|
+
*/
|
|
56
98
|
export declare function buildWindowUpdateFrame(streamId: number, increment: number): Buffer;
|
|
99
|
+
/**
|
|
100
|
+
* Builds a HEADERS frame carrying an HPACK-encoded header block fragment.
|
|
101
|
+
*
|
|
102
|
+
* @param {number} streamId - Stream identifier.
|
|
103
|
+
* @param {Buffer} headerBlock - HPACK-encoded header block.
|
|
104
|
+
* @param {boolean} endStream - Whether to set the END_STREAM flag (no DATA frames follow).
|
|
105
|
+
* @param {boolean} endHeaders - Whether to set the END_HEADERS flag (no CONTINUATION frames follow).
|
|
106
|
+
* @returns {Buffer} Encoded HEADERS frame.
|
|
107
|
+
*/
|
|
57
108
|
export declare function buildHeadersFrame(streamId: number, headerBlock: Buffer, endStream: boolean, endHeaders: boolean): Buffer;
|
|
109
|
+
/**
|
|
110
|
+
* Builds a DATA frame carrying application payload bytes for a stream.
|
|
111
|
+
*
|
|
112
|
+
* @param {number} streamId - Stream identifier.
|
|
113
|
+
* @param {Buffer} data - Payload to send.
|
|
114
|
+
* @param {boolean} endStream - Whether to set the END_STREAM flag (last DATA frame for this stream).
|
|
115
|
+
* @returns {Buffer} Encoded DATA frame.
|
|
116
|
+
*/
|
|
58
117
|
export declare function buildDataFrame(streamId: number, data: Buffer, endStream: boolean): Buffer;
|
|
118
|
+
/**
|
|
119
|
+
* Builds a PRIORITY frame that advises the peer about the relative priority
|
|
120
|
+
* and dependency tree position of a stream.
|
|
121
|
+
*
|
|
122
|
+
* @param {number} streamId - Stream to set priority for.
|
|
123
|
+
* @param {boolean} exclusive - Whether this stream is exclusive in the dependency tree.
|
|
124
|
+
* @param {number} dependsOn - Parent stream identifier.
|
|
125
|
+
* @param {number} weight - Stream weight (1–256 per RFC 7540; value stored as `weight - 1`).
|
|
126
|
+
* @returns {Buffer} Encoded PRIORITY frame.
|
|
127
|
+
*/
|
|
59
128
|
export declare function buildPriorityFrame(streamId: number, exclusive: boolean, dependsOn: number, weight: number): Buffer;
|
|
129
|
+
/**
|
|
130
|
+
* Builds a GOAWAY frame notifying the peer that the connection is being
|
|
131
|
+
* gracefully shut down.
|
|
132
|
+
*
|
|
133
|
+
* @param {number} lastStreamId - Highest-numbered stream ID that was processed.
|
|
134
|
+
* @param {number} errorCode - HTTP/2 error code (0 = NO_ERROR for graceful shutdown).
|
|
135
|
+
* @returns {Buffer} Encoded GOAWAY frame.
|
|
136
|
+
*/
|
|
60
137
|
export declare function buildGoawayFrame(lastStreamId: number, errorCode: number): Buffer;
|
|
138
|
+
/**
|
|
139
|
+
* Builds a PING frame used for measuring round-trip time or testing connectivity.
|
|
140
|
+
*
|
|
141
|
+
* @param {Buffer} data - 8-byte opaque payload to echo back.
|
|
142
|
+
* @param {boolean} [ack=false] - When `true`, sets the ACK flag (reply to a received PING).
|
|
143
|
+
* @returns {Buffer} Encoded PING frame.
|
|
144
|
+
*/
|
|
61
145
|
export declare function buildPingFrame(data: Buffer, ack?: boolean): Buffer;
|
|
146
|
+
/**
|
|
147
|
+
* Builds a RST_STREAM frame that immediately terminates a stream.
|
|
148
|
+
*
|
|
149
|
+
* @param {number} streamId - Stream to reset.
|
|
150
|
+
* @param {number} errorCode - HTTP/2 error code describing the reason for the reset.
|
|
151
|
+
* @returns {Buffer} Encoded RST_STREAM frame.
|
|
152
|
+
*/
|
|
62
153
|
export declare function buildRstStreamFrame(streamId: number, errorCode: number): Buffer;
|
|
63
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* The HTTP/2 client connection preface as defined in RFC 7540 §3.5.
|
|
156
|
+
* Must be the first bytes sent by a client after the transport connection is
|
|
157
|
+
* established and before any SETTINGS frame.
|
|
158
|
+
*
|
|
159
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-3.5}
|
|
160
|
+
*/
|
|
64
161
|
export declare const H2_PREFACE: Buffer<ArrayBuffer>;
|
|
65
162
|
//# sourceMappingURL=frames.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuBpG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,GAAG,UAAQ,GACV,MAAM,CAoBR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CASR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,OAAO,GAClB,MAAM,CAUR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,GACjB,MAAM,CASR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CASR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,qBAA2D,CAAC"}
|
package/dist/http/h2/frames.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { BufferWriter } from '../../utils/buffer-writer.js';
|
|
1
2
|
/**
|
|
2
|
-
* HTTP/2 frame
|
|
3
|
+
* HTTP/2 frame type identifiers as defined in RFC 7540 §11.2.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-11.2}
|
|
5
6
|
*/
|
|
6
|
-
import { BufferWriter } from '../../utils/buffer-writer.js';
|
|
7
|
-
// ---- Frame types ----
|
|
8
7
|
export const FrameType = {
|
|
9
8
|
DATA: 0x0,
|
|
10
9
|
HEADERS: 0x1,
|
|
@@ -17,7 +16,11 @@ export const FrameType = {
|
|
|
17
16
|
WINDOW_UPDATE: 0x8,
|
|
18
17
|
CONTINUATION: 0x9,
|
|
19
18
|
};
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* HTTP/2 frame flag bit masks as defined in RFC 7540. Flags are frame-type
|
|
21
|
+
* specific; e.g. `END_STREAM` is valid on DATA and HEADERS frames while `ACK`
|
|
22
|
+
* shares the same value `0x1` but applies to SETTINGS and PING frames.
|
|
23
|
+
*/
|
|
21
24
|
export const Flags = {
|
|
22
25
|
END_STREAM: 0x1,
|
|
23
26
|
ACK: 0x1,
|
|
@@ -25,7 +28,11 @@ export const Flags = {
|
|
|
25
28
|
PADDED: 0x8,
|
|
26
29
|
PRIORITY: 0x20,
|
|
27
30
|
};
|
|
28
|
-
|
|
31
|
+
/**
|
|
32
|
+
* HTTP/2 SETTINGS parameter identifiers as defined in RFC 7540 §6.5.2.
|
|
33
|
+
*
|
|
34
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2}
|
|
35
|
+
*/
|
|
29
36
|
export const SettingsParam = {
|
|
30
37
|
HEADER_TABLE_SIZE: 0x1,
|
|
31
38
|
ENABLE_PUSH: 0x2,
|
|
@@ -35,9 +42,13 @@ export const SettingsParam = {
|
|
|
35
42
|
MAX_HEADER_LIST_SIZE: 0x6,
|
|
36
43
|
};
|
|
37
44
|
/**
|
|
38
|
-
*
|
|
45
|
+
* Attempts to parse one HTTP/2 frame starting at `offset` in `data`.
|
|
46
|
+
* Returns `null` if insufficient bytes are available for a complete frame.
|
|
39
47
|
*
|
|
40
|
-
*
|
|
48
|
+
* @param {Buffer} data - Input buffer potentially containing one or more frames.
|
|
49
|
+
* @param {number} offset - Byte offset within `data` at which to start parsing.
|
|
50
|
+
* @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and total bytes consumed,
|
|
51
|
+
* or `null` if more data is required.
|
|
41
52
|
*/
|
|
42
53
|
export function readFrame(data, offset) {
|
|
43
54
|
if (data.length - offset < 9)
|
|
@@ -60,25 +71,31 @@ export function readFrame(data, offset) {
|
|
|
60
71
|
};
|
|
61
72
|
}
|
|
62
73
|
/**
|
|
63
|
-
*
|
|
74
|
+
* Serializes an HTTP/2 frame into a `Buffer` including the 9-byte frame header.
|
|
75
|
+
*
|
|
76
|
+
* @param {H2Frame} frame - Frame to serialize.
|
|
77
|
+
* @returns {Buffer} Complete frame bytes ready to be written to a transport stream.
|
|
64
78
|
*/
|
|
65
79
|
export function writeFrame(frame) {
|
|
66
80
|
const w = new BufferWriter(9 + frame.payload.length);
|
|
67
|
-
// Length (24-bit)
|
|
68
81
|
w.writeUInt8((frame.payload.length >> 16) & 0xff);
|
|
69
82
|
w.writeUInt8((frame.payload.length >> 8) & 0xff);
|
|
70
83
|
w.writeUInt8(frame.payload.length & 0xff);
|
|
71
|
-
// Type
|
|
72
84
|
w.writeUInt8(frame.type);
|
|
73
|
-
// Flags
|
|
74
85
|
w.writeUInt8(frame.flags);
|
|
75
|
-
// Stream ID (31-bit, MSB reserved)
|
|
76
86
|
w.writeUInt32(frame.streamId & 0x7fffffff);
|
|
77
|
-
// Payload
|
|
78
87
|
w.writeBytes(frame.payload);
|
|
79
88
|
return w.toBuffer();
|
|
80
89
|
}
|
|
81
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Builds a SETTINGS frame optionally containing one or more settings parameters.
|
|
92
|
+
* When `ack` is `true` the frame acknowledges a peer SETTINGS frame and the
|
|
93
|
+
* `settings` array is ignored.
|
|
94
|
+
*
|
|
95
|
+
* @param {Array<{id: number; value: number}>} settings - Settings parameters to send.
|
|
96
|
+
* @param {boolean} [ack=false] - Whether to create a SETTINGS acknowledgement (empty payload + ACK flag).
|
|
97
|
+
* @returns {Buffer} Encoded SETTINGS frame.
|
|
98
|
+
*/
|
|
82
99
|
export function buildSettingsFrame(settings, ack = false) {
|
|
83
100
|
if (ack) {
|
|
84
101
|
return writeFrame({
|
|
@@ -100,6 +117,13 @@ export function buildSettingsFrame(settings, ack = false) {
|
|
|
100
117
|
payload: w.toBuffer(),
|
|
101
118
|
});
|
|
102
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Builds a WINDOW_UPDATE frame that enlarges a flow-control window.
|
|
122
|
+
*
|
|
123
|
+
* @param {number} streamId - Stream to update (`0` for the connection-level window).
|
|
124
|
+
* @param {number} increment - Number of octets to add to the flow-control window (1–2^31-1).
|
|
125
|
+
* @returns {Buffer} Encoded WINDOW_UPDATE frame.
|
|
126
|
+
*/
|
|
103
127
|
export function buildWindowUpdateFrame(streamId, increment) {
|
|
104
128
|
const w = new BufferWriter(4);
|
|
105
129
|
w.writeUInt32(increment & 0x7fffffff);
|
|
@@ -110,6 +134,15 @@ export function buildWindowUpdateFrame(streamId, increment) {
|
|
|
110
134
|
payload: w.toBuffer(),
|
|
111
135
|
});
|
|
112
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Builds a HEADERS frame carrying an HPACK-encoded header block fragment.
|
|
139
|
+
*
|
|
140
|
+
* @param {number} streamId - Stream identifier.
|
|
141
|
+
* @param {Buffer} headerBlock - HPACK-encoded header block.
|
|
142
|
+
* @param {boolean} endStream - Whether to set the END_STREAM flag (no DATA frames follow).
|
|
143
|
+
* @param {boolean} endHeaders - Whether to set the END_HEADERS flag (no CONTINUATION frames follow).
|
|
144
|
+
* @returns {Buffer} Encoded HEADERS frame.
|
|
145
|
+
*/
|
|
113
146
|
export function buildHeadersFrame(streamId, headerBlock, endStream, endHeaders) {
|
|
114
147
|
let flags = 0;
|
|
115
148
|
if (endStream)
|
|
@@ -123,6 +156,14 @@ export function buildHeadersFrame(streamId, headerBlock, endStream, endHeaders)
|
|
|
123
156
|
payload: headerBlock,
|
|
124
157
|
});
|
|
125
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Builds a DATA frame carrying application payload bytes for a stream.
|
|
161
|
+
*
|
|
162
|
+
* @param {number} streamId - Stream identifier.
|
|
163
|
+
* @param {Buffer} data - Payload to send.
|
|
164
|
+
* @param {boolean} endStream - Whether to set the END_STREAM flag (last DATA frame for this stream).
|
|
165
|
+
* @returns {Buffer} Encoded DATA frame.
|
|
166
|
+
*/
|
|
126
167
|
export function buildDataFrame(streamId, data, endStream) {
|
|
127
168
|
let flags = 0;
|
|
128
169
|
if (endStream)
|
|
@@ -134,13 +175,23 @@ export function buildDataFrame(streamId, data, endStream) {
|
|
|
134
175
|
payload: data,
|
|
135
176
|
});
|
|
136
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Builds a PRIORITY frame that advises the peer about the relative priority
|
|
180
|
+
* and dependency tree position of a stream.
|
|
181
|
+
*
|
|
182
|
+
* @param {number} streamId - Stream to set priority for.
|
|
183
|
+
* @param {boolean} exclusive - Whether this stream is exclusive in the dependency tree.
|
|
184
|
+
* @param {number} dependsOn - Parent stream identifier.
|
|
185
|
+
* @param {number} weight - Stream weight (1–256 per RFC 7540; value stored as `weight - 1`).
|
|
186
|
+
* @returns {Buffer} Encoded PRIORITY frame.
|
|
187
|
+
*/
|
|
137
188
|
export function buildPriorityFrame(streamId, exclusive, dependsOn, weight) {
|
|
138
189
|
const w = new BufferWriter(5);
|
|
139
190
|
let dep = dependsOn & 0x7fffffff;
|
|
140
191
|
if (exclusive)
|
|
141
192
|
dep |= 0x80000000;
|
|
142
193
|
w.writeUInt32(dep);
|
|
143
|
-
w.writeUInt8(weight - 1);
|
|
194
|
+
w.writeUInt8(weight - 1);
|
|
144
195
|
return writeFrame({
|
|
145
196
|
type: FrameType.PRIORITY,
|
|
146
197
|
flags: 0,
|
|
@@ -148,6 +199,14 @@ export function buildPriorityFrame(streamId, exclusive, dependsOn, weight) {
|
|
|
148
199
|
payload: w.toBuffer(),
|
|
149
200
|
});
|
|
150
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Builds a GOAWAY frame notifying the peer that the connection is being
|
|
204
|
+
* gracefully shut down.
|
|
205
|
+
*
|
|
206
|
+
* @param {number} lastStreamId - Highest-numbered stream ID that was processed.
|
|
207
|
+
* @param {number} errorCode - HTTP/2 error code (0 = NO_ERROR for graceful shutdown).
|
|
208
|
+
* @returns {Buffer} Encoded GOAWAY frame.
|
|
209
|
+
*/
|
|
151
210
|
export function buildGoawayFrame(lastStreamId, errorCode) {
|
|
152
211
|
const w = new BufferWriter(8);
|
|
153
212
|
w.writeUInt32(lastStreamId & 0x7fffffff);
|
|
@@ -159,6 +218,13 @@ export function buildGoawayFrame(lastStreamId, errorCode) {
|
|
|
159
218
|
payload: w.toBuffer(),
|
|
160
219
|
});
|
|
161
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Builds a PING frame used for measuring round-trip time or testing connectivity.
|
|
223
|
+
*
|
|
224
|
+
* @param {Buffer} data - 8-byte opaque payload to echo back.
|
|
225
|
+
* @param {boolean} [ack=false] - When `true`, sets the ACK flag (reply to a received PING).
|
|
226
|
+
* @returns {Buffer} Encoded PING frame.
|
|
227
|
+
*/
|
|
162
228
|
export function buildPingFrame(data, ack = false) {
|
|
163
229
|
const payload = Buffer.alloc(8);
|
|
164
230
|
data.copy(payload, 0, 0, Math.min(8, data.length));
|
|
@@ -169,6 +235,13 @@ export function buildPingFrame(data, ack = false) {
|
|
|
169
235
|
payload,
|
|
170
236
|
});
|
|
171
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Builds a RST_STREAM frame that immediately terminates a stream.
|
|
240
|
+
*
|
|
241
|
+
* @param {number} streamId - Stream to reset.
|
|
242
|
+
* @param {number} errorCode - HTTP/2 error code describing the reason for the reset.
|
|
243
|
+
* @returns {Buffer} Encoded RST_STREAM frame.
|
|
244
|
+
*/
|
|
172
245
|
export function buildRstStreamFrame(streamId, errorCode) {
|
|
173
246
|
const w = new BufferWriter(4);
|
|
174
247
|
w.writeUInt32(errorCode);
|
|
@@ -179,6 +252,12 @@ export function buildRstStreamFrame(streamId, errorCode) {
|
|
|
179
252
|
payload: w.toBuffer(),
|
|
180
253
|
});
|
|
181
254
|
}
|
|
182
|
-
/**
|
|
255
|
+
/**
|
|
256
|
+
* The HTTP/2 client connection preface as defined in RFC 7540 §3.5.
|
|
257
|
+
* Must be the first bytes sent by a client after the transport connection is
|
|
258
|
+
* established and before any SETTINGS frame.
|
|
259
|
+
*
|
|
260
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-3.5}
|
|
261
|
+
*/
|
|
183
262
|
export const H2_PREFACE = Buffer.from('PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n', 'ascii');
|
|
184
263
|
//# sourceMappingURL=frames.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frames.js","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"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"}
|
package/dist/http/h2/hpack.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HPACK
|
|
2
|
+
* HPACK header compression encoder (RFC 7541). Maintains a dynamic header
|
|
3
|
+
* table and encodes header lists into compact HPACK binary format using
|
|
4
|
+
* Huffman coding and indexed representations.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
* blocks. Zero dependencies beyond Node.js built-ins.
|
|
6
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
|
|
6
7
|
*/
|
|
7
8
|
export declare class HPACKEncoder {
|
|
8
9
|
private dynamicTable;
|
|
@@ -10,16 +11,40 @@ export declare class HPACKEncoder {
|
|
|
10
11
|
private staticFullIndex;
|
|
11
12
|
constructor(tableSize?: number);
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
+
* Encodes an ordered header list into an HPACK binary block ready to be
|
|
15
|
+
* placed in an HTTP/2 HEADERS or PUSH_PROMISE frame payload.
|
|
16
|
+
*
|
|
17
|
+
* @param {Array<[string, string]>} headers - Header name-value pairs to encode.
|
|
18
|
+
* @returns {Buffer} HPACK-encoded header block fragment.
|
|
14
19
|
*/
|
|
15
20
|
encode(headers: Array<[string, string]>): Buffer;
|
|
21
|
+
/**
|
|
22
|
+
* Updates the encoder's dynamic table maximum size — call this whenever a
|
|
23
|
+
* `SETTINGS_HEADER_TABLE_SIZE` value is received from the remote peer so
|
|
24
|
+
* that subsequent {@link encode} calls respect the new limit.
|
|
25
|
+
*
|
|
26
|
+
* @param {number} newSize - New maximum dynamic table size in bytes.
|
|
27
|
+
*/
|
|
16
28
|
updateTableSize(newSize: number): void;
|
|
17
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* HPACK header decompression decoder (RFC 7541). Maintains a synchronized
|
|
32
|
+
* dynamic header table and decodes HPACK binary blocks received in
|
|
33
|
+
* HTTP/2 HEADERS and PUSH_PROMISE frames.
|
|
34
|
+
*
|
|
35
|
+
* @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
|
|
36
|
+
*/
|
|
18
37
|
export declare class HPACKDecoder {
|
|
19
38
|
private dynamicTable;
|
|
20
39
|
constructor(tableSize?: number);
|
|
21
40
|
/**
|
|
22
|
-
*
|
|
41
|
+
* Decodes an HPACK-encoded header block fragment into an ordered list of
|
|
42
|
+
* name-value pairs. Updates the internal dynamic table as required by the
|
|
43
|
+
* HPACK state machine.
|
|
44
|
+
*
|
|
45
|
+
* @param {Buffer} data - HPACK-encoded header block fragment from a HEADERS or PUSH_PROMISE frame.
|
|
46
|
+
* @returns {Array<[string, string]>} Decoded header name-value pairs in transmission order.
|
|
47
|
+
* @throws {Error} If the encoded data references an invalid table index.
|
|
23
48
|
*/
|
|
24
49
|
decode(data: Buffer): Array<[string, string]>;
|
|
25
50
|
private getEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hpack.d.ts","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hpack.d.ts","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"AAgKA;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAsB;gBAEjC,SAAS,GAAE,MAAa;IAiBpC;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM;IA6BhD;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;gBAEvB,SAAS,GAAE,MAAa;IAIpC;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyD7C,OAAO,CAAC,QAAQ;CAWjB"}
|