cdk-common 2.0.1351 → 2.0.1353
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/.jsii +38 -2
- package/API.md +36 -0
- package/lib/main.js +1 -1
- package/lib/managed-policies.d.ts +7 -1
- package/lib/managed-policies.js +7 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/assert/strict.d.ts +5 -11
- package/node_modules/@types/concat-stream/node_modules/@types/node/assert.d.ts +9 -169
- package/node_modules/@types/concat-stream/node_modules/@types/node/async_hooks.d.ts +8 -8
- package/node_modules/@types/concat-stream/node_modules/@types/node/buffer.buffer.d.ts +1 -7
- package/node_modules/@types/concat-stream/node_modules/@types/node/buffer.d.ts +44 -168
- package/node_modules/@types/concat-stream/node_modules/@types/node/child_process.d.ts +16 -64
- package/node_modules/@types/concat-stream/node_modules/@types/node/cluster.d.ts +240 -332
- package/node_modules/@types/concat-stream/node_modules/@types/node/console.d.ts +49 -351
- package/node_modules/@types/concat-stream/node_modules/@types/node/constants.d.ts +3 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/crypto.d.ts +279 -1631
- package/node_modules/@types/concat-stream/node_modules/@types/node/dgram.d.ts +15 -51
- package/node_modules/@types/concat-stream/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/dns/promises.d.ts +3 -3
- package/node_modules/@types/concat-stream/node_modules/@types/node/dns.d.ts +131 -132
- package/node_modules/@types/concat-stream/node_modules/@types/node/domain.d.ts +13 -17
- package/node_modules/@types/concat-stream/node_modules/@types/node/events.d.ts +869 -791
- package/node_modules/@types/concat-stream/node_modules/@types/node/fs/promises.d.ts +7 -8
- package/node_modules/@types/concat-stream/node_modules/@types/node/fs.d.ts +417 -455
- package/node_modules/@types/concat-stream/node_modules/@types/node/globals.d.ts +6 -26
- package/node_modules/@types/concat-stream/node_modules/@types/node/globals.typedarray.d.ts +60 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/http.d.ts +263 -254
- package/node_modules/@types/concat-stream/node_modules/@types/node/http2.d.ts +528 -804
- package/node_modules/@types/concat-stream/node_modules/@types/node/https.d.ts +59 -239
- package/node_modules/@types/concat-stream/node_modules/@types/node/index.d.ts +15 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/inspector/promises.d.ts +41 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/inspector.d.ts +6 -59
- package/node_modules/@types/concat-stream/node_modules/@types/node/inspector.generated.d.ts +3 -10
- package/node_modules/@types/concat-stream/node_modules/@types/node/module.d.ts +47 -122
- package/node_modules/@types/concat-stream/node_modules/@types/node/net.d.ts +63 -184
- package/node_modules/@types/concat-stream/node_modules/@types/node/os.d.ts +6 -6
- package/node_modules/@types/concat-stream/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/concat-stream/node_modules/@types/node/path/posix.d.ts +8 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/path/win32.d.ts +8 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/path.d.ts +120 -133
- package/node_modules/@types/concat-stream/node_modules/@types/node/perf_hooks.d.ts +282 -643
- package/node_modules/@types/concat-stream/node_modules/@types/node/process.d.ts +156 -128
- package/node_modules/@types/concat-stream/node_modules/@types/node/punycode.d.ts +5 -5
- package/node_modules/@types/concat-stream/node_modules/@types/node/querystring.d.ts +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/quic.d.ts +910 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/readline/promises.d.ts +3 -3
- package/node_modules/@types/concat-stream/node_modules/@types/node/readline.d.ts +67 -120
- package/node_modules/@types/concat-stream/node_modules/@types/node/repl.d.ts +75 -98
- package/node_modules/@types/concat-stream/node_modules/@types/node/sea.d.ts +1 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/sqlite.d.ts +2 -2
- package/node_modules/@types/concat-stream/node_modules/@types/node/stream/consumers.d.ts +10 -10
- package/node_modules/@types/concat-stream/node_modules/@types/node/stream/promises.d.ts +136 -15
- package/node_modules/@types/concat-stream/node_modules/@types/node/stream/web.d.ts +176 -453
- package/node_modules/@types/concat-stream/node_modules/@types/node/stream.d.ts +555 -478
- package/node_modules/@types/concat-stream/node_modules/@types/node/string_decoder.d.ts +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/test/reporters.d.ts +96 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/test.d.ts +80 -180
- package/node_modules/@types/concat-stream/node_modules/@types/node/timers/promises.d.ts +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/timers.d.ts +4 -130
- package/node_modules/@types/concat-stream/node_modules/@types/node/tls.d.ts +102 -177
- package/node_modules/@types/concat-stream/node_modules/@types/node/trace_events.d.ts +9 -9
- package/node_modules/@types/concat-stream/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +1 -7
- package/node_modules/@types/concat-stream/node_modules/@types/node/ts5.6/index.d.ts +15 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/ts5.7/index.d.ts +15 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/tty.d.ts +58 -16
- package/node_modules/@types/concat-stream/node_modules/@types/node/url.d.ts +54 -592
- package/node_modules/@types/concat-stream/node_modules/@types/node/util/types.d.ts +558 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/util.d.ts +120 -792
- package/node_modules/@types/concat-stream/node_modules/@types/node/v8.d.ts +32 -5
- package/node_modules/@types/concat-stream/node_modules/@types/node/vm.d.ts +13 -13
- package/node_modules/@types/concat-stream/node_modules/@types/node/wasi.d.ts +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/abortcontroller.d.ts +27 -2
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/crypto.d.ts +7 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/events.d.ts +9 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/fetch.d.ts +4 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/streams.d.ts +93 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/node_modules/@types/concat-stream/node_modules/@types/node/worker_threads.d.ts +176 -358
- package/node_modules/@types/concat-stream/node_modules/@types/node/zlib.d.ts +8 -71
- package/node_modules/@types/form-data/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/form-data/node_modules/@types/node/assert/strict.d.ts +5 -11
- package/node_modules/@types/form-data/node_modules/@types/node/assert.d.ts +9 -169
- package/node_modules/@types/form-data/node_modules/@types/node/async_hooks.d.ts +8 -8
- package/node_modules/@types/form-data/node_modules/@types/node/buffer.buffer.d.ts +1 -7
- package/node_modules/@types/form-data/node_modules/@types/node/buffer.d.ts +44 -168
- package/node_modules/@types/form-data/node_modules/@types/node/child_process.d.ts +16 -64
- package/node_modules/@types/form-data/node_modules/@types/node/cluster.d.ts +240 -332
- package/node_modules/@types/form-data/node_modules/@types/node/console.d.ts +49 -351
- package/node_modules/@types/form-data/node_modules/@types/node/constants.d.ts +3 -4
- package/node_modules/@types/form-data/node_modules/@types/node/crypto.d.ts +279 -1631
- package/node_modules/@types/form-data/node_modules/@types/node/dgram.d.ts +15 -51
- package/node_modules/@types/form-data/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/form-data/node_modules/@types/node/dns/promises.d.ts +3 -3
- package/node_modules/@types/form-data/node_modules/@types/node/dns.d.ts +131 -132
- package/node_modules/@types/form-data/node_modules/@types/node/domain.d.ts +13 -17
- package/node_modules/@types/form-data/node_modules/@types/node/events.d.ts +869 -791
- package/node_modules/@types/form-data/node_modules/@types/node/fs/promises.d.ts +7 -8
- package/node_modules/@types/form-data/node_modules/@types/node/fs.d.ts +417 -455
- package/node_modules/@types/form-data/node_modules/@types/node/globals.d.ts +6 -26
- package/node_modules/@types/form-data/node_modules/@types/node/globals.typedarray.d.ts +60 -0
- package/node_modules/@types/form-data/node_modules/@types/node/http.d.ts +263 -254
- package/node_modules/@types/form-data/node_modules/@types/node/http2.d.ts +528 -804
- package/node_modules/@types/form-data/node_modules/@types/node/https.d.ts +59 -239
- package/node_modules/@types/form-data/node_modules/@types/node/index.d.ts +15 -1
- package/node_modules/@types/form-data/node_modules/@types/node/inspector/promises.d.ts +41 -0
- package/node_modules/@types/form-data/node_modules/@types/node/inspector.d.ts +6 -59
- package/node_modules/@types/form-data/node_modules/@types/node/inspector.generated.d.ts +3 -10
- package/node_modules/@types/form-data/node_modules/@types/node/module.d.ts +47 -122
- package/node_modules/@types/form-data/node_modules/@types/node/net.d.ts +63 -184
- package/node_modules/@types/form-data/node_modules/@types/node/os.d.ts +6 -6
- package/node_modules/@types/form-data/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/form-data/node_modules/@types/node/path/posix.d.ts +8 -0
- package/node_modules/@types/form-data/node_modules/@types/node/path/win32.d.ts +8 -0
- package/node_modules/@types/form-data/node_modules/@types/node/path.d.ts +120 -133
- package/node_modules/@types/form-data/node_modules/@types/node/perf_hooks.d.ts +282 -643
- package/node_modules/@types/form-data/node_modules/@types/node/process.d.ts +156 -128
- package/node_modules/@types/form-data/node_modules/@types/node/punycode.d.ts +5 -5
- package/node_modules/@types/form-data/node_modules/@types/node/querystring.d.ts +4 -4
- package/node_modules/@types/form-data/node_modules/@types/node/quic.d.ts +910 -0
- package/node_modules/@types/form-data/node_modules/@types/node/readline/promises.d.ts +3 -3
- package/node_modules/@types/form-data/node_modules/@types/node/readline.d.ts +67 -120
- package/node_modules/@types/form-data/node_modules/@types/node/repl.d.ts +75 -98
- package/node_modules/@types/form-data/node_modules/@types/node/sea.d.ts +1 -1
- package/node_modules/@types/form-data/node_modules/@types/node/sqlite.d.ts +2 -2
- package/node_modules/@types/form-data/node_modules/@types/node/stream/consumers.d.ts +10 -10
- package/node_modules/@types/form-data/node_modules/@types/node/stream/promises.d.ts +136 -15
- package/node_modules/@types/form-data/node_modules/@types/node/stream/web.d.ts +176 -453
- package/node_modules/@types/form-data/node_modules/@types/node/stream.d.ts +555 -478
- package/node_modules/@types/form-data/node_modules/@types/node/string_decoder.d.ts +4 -4
- package/node_modules/@types/form-data/node_modules/@types/node/test/reporters.d.ts +96 -0
- package/node_modules/@types/form-data/node_modules/@types/node/test.d.ts +80 -180
- package/node_modules/@types/form-data/node_modules/@types/node/timers/promises.d.ts +4 -4
- package/node_modules/@types/form-data/node_modules/@types/node/timers.d.ts +4 -130
- package/node_modules/@types/form-data/node_modules/@types/node/tls.d.ts +102 -177
- package/node_modules/@types/form-data/node_modules/@types/node/trace_events.d.ts +9 -9
- package/node_modules/@types/form-data/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +1 -7
- package/node_modules/@types/form-data/node_modules/@types/node/ts5.6/index.d.ts +15 -1
- package/node_modules/@types/form-data/node_modules/@types/node/ts5.7/index.d.ts +15 -1
- package/node_modules/@types/form-data/node_modules/@types/node/tty.d.ts +58 -16
- package/node_modules/@types/form-data/node_modules/@types/node/url.d.ts +54 -592
- package/node_modules/@types/form-data/node_modules/@types/node/util/types.d.ts +558 -0
- package/node_modules/@types/form-data/node_modules/@types/node/util.d.ts +120 -792
- package/node_modules/@types/form-data/node_modules/@types/node/v8.d.ts +32 -5
- package/node_modules/@types/form-data/node_modules/@types/node/vm.d.ts +13 -13
- package/node_modules/@types/form-data/node_modules/@types/node/wasi.d.ts +4 -4
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/abortcontroller.d.ts +27 -2
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/crypto.d.ts +7 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/events.d.ts +9 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/fetch.d.ts +4 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/streams.d.ts +93 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/node_modules/@types/form-data/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/node_modules/@types/form-data/node_modules/@types/node/worker_threads.d.ts +176 -358
- package/node_modules/@types/form-data/node_modules/@types/node/zlib.d.ts +8 -71
- package/package.json +4 -4
|
@@ -0,0 +1,910 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 'node:quic' module provides an implementation of the QUIC protocol.
|
|
3
|
+
* To access it, start Node.js with the `--experimental-quic` option and:
|
|
4
|
+
*
|
|
5
|
+
* ```js
|
|
6
|
+
* import quic from 'node:quic';
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* The module is only available under the `node:` scheme.
|
|
10
|
+
* @since v23.8.0
|
|
11
|
+
* @experimental
|
|
12
|
+
* @see [source](https://github.com/nodejs/node/blob/v25.x/lib/quic.js)
|
|
13
|
+
*/
|
|
14
|
+
declare module "node:quic" {
|
|
15
|
+
import { KeyObject, webcrypto } from "node:crypto";
|
|
16
|
+
import { SocketAddress } from "node:net";
|
|
17
|
+
import { ReadableStream } from "node:stream/web";
|
|
18
|
+
/**
|
|
19
|
+
* @since v23.8.0
|
|
20
|
+
*/
|
|
21
|
+
type OnSessionCallback = (this: QuicEndpoint, session: QuicSession) => void;
|
|
22
|
+
/**
|
|
23
|
+
* @since v23.8.0
|
|
24
|
+
*/
|
|
25
|
+
type OnStreamCallback = (this: QuicSession, stream: QuicStream) => void;
|
|
26
|
+
/**
|
|
27
|
+
* @since v23.8.0
|
|
28
|
+
*/
|
|
29
|
+
type OnDatagramCallback = (this: QuicSession, datagram: Uint8Array, early: boolean) => void;
|
|
30
|
+
/**
|
|
31
|
+
* @since v23.8.0
|
|
32
|
+
*/
|
|
33
|
+
type OnDatagramStatusCallback = (this: QuicSession, id: bigint, status: "lost" | "acknowledged") => void;
|
|
34
|
+
/**
|
|
35
|
+
* @since v23.8.0
|
|
36
|
+
*/
|
|
37
|
+
type OnPathValidationCallback = (
|
|
38
|
+
this: QuicSession,
|
|
39
|
+
result: "success" | "failure" | "aborted",
|
|
40
|
+
newLocalAddress: SocketAddress,
|
|
41
|
+
newRemoteAddress: SocketAddress,
|
|
42
|
+
oldLocalAddress: SocketAddress,
|
|
43
|
+
oldRemoteAddress: SocketAddress,
|
|
44
|
+
preferredAddress: boolean,
|
|
45
|
+
) => void;
|
|
46
|
+
/**
|
|
47
|
+
* @since v23.8.0
|
|
48
|
+
*/
|
|
49
|
+
type OnSessionTicketCallback = (this: QuicSession, ticket: object) => void;
|
|
50
|
+
/**
|
|
51
|
+
* @since v23.8.0
|
|
52
|
+
*/
|
|
53
|
+
type OnVersionNegotiationCallback = (
|
|
54
|
+
this: QuicSession,
|
|
55
|
+
version: number,
|
|
56
|
+
requestedVersions: number[],
|
|
57
|
+
supportedVersions: number[],
|
|
58
|
+
) => void;
|
|
59
|
+
/**
|
|
60
|
+
* @since v23.8.0
|
|
61
|
+
*/
|
|
62
|
+
type OnHandshakeCallback = (
|
|
63
|
+
this: QuicSession,
|
|
64
|
+
sni: string,
|
|
65
|
+
alpn: string,
|
|
66
|
+
cipher: string,
|
|
67
|
+
cipherVersion: string,
|
|
68
|
+
validationErrorReason: string,
|
|
69
|
+
validationErrorCode: number,
|
|
70
|
+
earlyDataAccepted: boolean,
|
|
71
|
+
) => void;
|
|
72
|
+
/**
|
|
73
|
+
* @since v23.8.0
|
|
74
|
+
*/
|
|
75
|
+
type OnBlockedCallback = (this: QuicStream) => void;
|
|
76
|
+
/**
|
|
77
|
+
* @since v23.8.0
|
|
78
|
+
*/
|
|
79
|
+
type OnStreamErrorCallback = (this: QuicStream, error: any) => void;
|
|
80
|
+
/**
|
|
81
|
+
* @since v23.8.0
|
|
82
|
+
*/
|
|
83
|
+
interface TransportParams {
|
|
84
|
+
/**
|
|
85
|
+
* The preferred IPv4 address to advertise.
|
|
86
|
+
* @since v23.8.0
|
|
87
|
+
*/
|
|
88
|
+
preferredAddressIpv4?: SocketAddress | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* The preferred IPv6 address to advertise.
|
|
91
|
+
* @since v23.8.0
|
|
92
|
+
*/
|
|
93
|
+
preferredAddressIpv6?: SocketAddress | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* @since v23.8.0
|
|
96
|
+
*/
|
|
97
|
+
initialMaxStreamDataBidiLocal?: bigint | number | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* @since v23.8.0
|
|
100
|
+
*/
|
|
101
|
+
initialMaxStreamDataBidiRemote?: bigint | number | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* @since v23.8.0
|
|
104
|
+
*/
|
|
105
|
+
initialMaxStreamDataUni?: bigint | number | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* @since v23.8.0
|
|
108
|
+
*/
|
|
109
|
+
initialMaxData?: bigint | number | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* @since v23.8.0
|
|
112
|
+
*/
|
|
113
|
+
initialMaxStreamsBidi?: bigint | number | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* @since v23.8.0
|
|
116
|
+
*/
|
|
117
|
+
initialMaxStreamsUni?: bigint | number | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* @since v23.8.0
|
|
120
|
+
*/
|
|
121
|
+
maxIdleTimeout?: bigint | number | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* @since v23.8.0
|
|
124
|
+
*/
|
|
125
|
+
activeConnectionIDLimit?: bigint | number | undefined;
|
|
126
|
+
/**
|
|
127
|
+
* @since v23.8.0
|
|
128
|
+
*/
|
|
129
|
+
ackDelayExponent?: bigint | number | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* @since v23.8.0
|
|
132
|
+
*/
|
|
133
|
+
maxAckDelay?: bigint | number | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* @since v23.8.0
|
|
136
|
+
*/
|
|
137
|
+
maxDatagramFrameSize?: bigint | number | undefined;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @since v23.8.0
|
|
141
|
+
*/
|
|
142
|
+
interface SessionOptions {
|
|
143
|
+
/**
|
|
144
|
+
* An endpoint to use.
|
|
145
|
+
* @since v23.8.0
|
|
146
|
+
*/
|
|
147
|
+
endpoint?: EndpointOptions | QuicEndpoint | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* The ALPN protocol identifier.
|
|
150
|
+
* @since v23.8.0
|
|
151
|
+
*/
|
|
152
|
+
alpn?: string | undefined;
|
|
153
|
+
/**
|
|
154
|
+
* The CA certificates to use for sessions.
|
|
155
|
+
* @since v23.8.0
|
|
156
|
+
*/
|
|
157
|
+
ca?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray<ArrayBuffer | NodeJS.ArrayBufferView> | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Specifies the congestion control algorithm that will be used.
|
|
160
|
+
* Must be set to one of either `'reno'`, `'cubic'`, or `'bbr'`.
|
|
161
|
+
*
|
|
162
|
+
* This is an advanced option that users typically won't have need to specify.
|
|
163
|
+
* @since v23.8.0
|
|
164
|
+
*/
|
|
165
|
+
cc?: `${constants.cc}` | undefined;
|
|
166
|
+
/**
|
|
167
|
+
* The TLS certificates to use for sessions.
|
|
168
|
+
* @since v23.8.0
|
|
169
|
+
*/
|
|
170
|
+
certs?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray<ArrayBuffer | NodeJS.ArrayBufferView> | undefined;
|
|
171
|
+
/**
|
|
172
|
+
* The list of supported TLS 1.3 cipher algorithms.
|
|
173
|
+
* @since v23.8.0
|
|
174
|
+
*/
|
|
175
|
+
ciphers?: string | undefined;
|
|
176
|
+
/**
|
|
177
|
+
* The CRL to use for sessions.
|
|
178
|
+
* @since v23.8.0
|
|
179
|
+
*/
|
|
180
|
+
crl?: ArrayBuffer | NodeJS.ArrayBufferView | ReadonlyArray<ArrayBuffer | NodeJS.ArrayBufferView> | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* The list of support TLS 1.3 cipher groups.
|
|
183
|
+
* @since v23.8.0
|
|
184
|
+
*/
|
|
185
|
+
groups?: string | undefined;
|
|
186
|
+
/**
|
|
187
|
+
* True to enable TLS keylogging output.
|
|
188
|
+
* @since v23.8.0
|
|
189
|
+
*/
|
|
190
|
+
keylog?: boolean | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* The TLS crypto keys to use for sessions.
|
|
193
|
+
* @since v23.8.0
|
|
194
|
+
*/
|
|
195
|
+
keys?: KeyObject | webcrypto.CryptoKey | ReadonlyArray<KeyObject | webcrypto.CryptoKey> | undefined;
|
|
196
|
+
/**
|
|
197
|
+
* Specifies the maximum UDP packet payload size.
|
|
198
|
+
* @since v23.8.0
|
|
199
|
+
*/
|
|
200
|
+
maxPayloadSize?: bigint | number | undefined;
|
|
201
|
+
/**
|
|
202
|
+
* Specifies the maximum stream flow-control window size.
|
|
203
|
+
* @since v23.8.0
|
|
204
|
+
*/
|
|
205
|
+
maxStreamWindow?: bigint | number | undefined;
|
|
206
|
+
/**
|
|
207
|
+
* Specifies the maximum session flow-control window size.
|
|
208
|
+
* @since v23.8.0
|
|
209
|
+
*/
|
|
210
|
+
maxWindow?: bigint | number | undefined;
|
|
211
|
+
/**
|
|
212
|
+
* The minimum QUIC version number to allow. This is an advanced option that users
|
|
213
|
+
* typically won't have need to specify.
|
|
214
|
+
* @since v23.8.0
|
|
215
|
+
*/
|
|
216
|
+
minVersion?: number | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* When the remote peer advertises a preferred address, this option specifies whether
|
|
219
|
+
* to use it or ignore it.
|
|
220
|
+
* @since v23.8.0
|
|
221
|
+
*/
|
|
222
|
+
preferredAddressPolicy?: "use" | "ignore" | "default" | undefined;
|
|
223
|
+
/**
|
|
224
|
+
* True if qlog output should be enabled.
|
|
225
|
+
* @since v23.8.0
|
|
226
|
+
*/
|
|
227
|
+
qlog?: boolean | undefined;
|
|
228
|
+
/**
|
|
229
|
+
* A session ticket to use for 0RTT session resumption.
|
|
230
|
+
* @since v23.8.0
|
|
231
|
+
*/
|
|
232
|
+
sessionTicket?: NodeJS.ArrayBufferView | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Specifies the maximum number of milliseconds a TLS handshake is permitted to take
|
|
235
|
+
* to complete before timing out.
|
|
236
|
+
* @since v23.8.0
|
|
237
|
+
*/
|
|
238
|
+
handshakeTimeout?: bigint | number | undefined;
|
|
239
|
+
/**
|
|
240
|
+
* The peer server name to target.
|
|
241
|
+
* @since v23.8.0
|
|
242
|
+
*/
|
|
243
|
+
sni?: string | undefined;
|
|
244
|
+
/**
|
|
245
|
+
* True to enable TLS tracing output.
|
|
246
|
+
* @since v23.8.0
|
|
247
|
+
*/
|
|
248
|
+
tlsTrace?: boolean | undefined;
|
|
249
|
+
/**
|
|
250
|
+
* The QUIC transport parameters to use for the session.
|
|
251
|
+
* @since v23.8.0
|
|
252
|
+
*/
|
|
253
|
+
transportParams?: TransportParams | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* Specifies the maximum number of unacknowledged packets a session should allow.
|
|
256
|
+
* @since v23.8.0
|
|
257
|
+
*/
|
|
258
|
+
unacknowledgedPacketThreshold?: bigint | number | undefined;
|
|
259
|
+
/**
|
|
260
|
+
* True to require verification of TLS client certificate.
|
|
261
|
+
* @since v23.8.0
|
|
262
|
+
*/
|
|
263
|
+
verifyClient?: boolean | undefined;
|
|
264
|
+
/**
|
|
265
|
+
* True to require private key verification.
|
|
266
|
+
* @since v23.8.0
|
|
267
|
+
*/
|
|
268
|
+
verifyPrivateKey?: boolean | undefined;
|
|
269
|
+
/**
|
|
270
|
+
* The QUIC version number to use. This is an advanced option that users typically
|
|
271
|
+
* won't have need to specify.
|
|
272
|
+
* @since v23.8.0
|
|
273
|
+
*/
|
|
274
|
+
version?: number | undefined;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Initiate a new client-side session.
|
|
278
|
+
*
|
|
279
|
+
* ```js
|
|
280
|
+
* import { connect } from 'node:quic';
|
|
281
|
+
* import { Buffer } from 'node:buffer';
|
|
282
|
+
*
|
|
283
|
+
* const enc = new TextEncoder();
|
|
284
|
+
* const alpn = 'foo';
|
|
285
|
+
* const client = await connect('123.123.123.123:8888', { alpn });
|
|
286
|
+
* await client.createUnidirectionalStream({
|
|
287
|
+
* body: enc.encode('hello world'),
|
|
288
|
+
* });
|
|
289
|
+
* ```
|
|
290
|
+
*
|
|
291
|
+
* By default, every call to `connect(...)` will create a new local
|
|
292
|
+
* `QuicEndpoint` instance bound to a new random local IP port. To
|
|
293
|
+
* specify the exact local address to use, or to multiplex multiple
|
|
294
|
+
* QUIC sessions over a single local port, pass the `endpoint` option
|
|
295
|
+
* with either a `QuicEndpoint` or `EndpointOptions` as the argument.
|
|
296
|
+
*
|
|
297
|
+
* ```js
|
|
298
|
+
* import { QuicEndpoint, connect } from 'node:quic';
|
|
299
|
+
*
|
|
300
|
+
* const endpoint = new QuicEndpoint({
|
|
301
|
+
* address: '127.0.0.1:1234',
|
|
302
|
+
* });
|
|
303
|
+
*
|
|
304
|
+
* const client = await connect('123.123.123.123:8888', { endpoint });
|
|
305
|
+
* ```
|
|
306
|
+
* @since v23.8.0
|
|
307
|
+
*/
|
|
308
|
+
function connect(address: string | SocketAddress, options?: SessionOptions): Promise<QuicSession>;
|
|
309
|
+
/**
|
|
310
|
+
* Configures the endpoint to listen as a server. When a new session is initiated by
|
|
311
|
+
* a remote peer, the given `onsession` callback will be invoked with the created
|
|
312
|
+
* session.
|
|
313
|
+
*
|
|
314
|
+
* ```js
|
|
315
|
+
* import { listen } from 'node:quic';
|
|
316
|
+
*
|
|
317
|
+
* const endpoint = await listen((session) => {
|
|
318
|
+
* // ... handle the session
|
|
319
|
+
* });
|
|
320
|
+
*
|
|
321
|
+
* // Closing the endpoint allows any sessions open when close is called
|
|
322
|
+
* // to complete naturally while preventing new sessions from being
|
|
323
|
+
* // initiated. Once all existing sessions have finished, the endpoint
|
|
324
|
+
* // will be destroyed. The call returns a promise that is resolved once
|
|
325
|
+
* // the endpoint is destroyed.
|
|
326
|
+
* await endpoint.close();
|
|
327
|
+
* ```
|
|
328
|
+
*
|
|
329
|
+
* By default, every call to `listen(...)` will create a new local
|
|
330
|
+
* `QuicEndpoint` instance bound to a new random local IP port. To
|
|
331
|
+
* specify the exact local address to use, or to multiplex multiple
|
|
332
|
+
* QUIC sessions over a single local port, pass the `endpoint` option
|
|
333
|
+
* with either a `QuicEndpoint` or `EndpointOptions` as the argument.
|
|
334
|
+
*
|
|
335
|
+
* At most, any single `QuicEndpoint` can only be configured to listen as
|
|
336
|
+
* a server once.
|
|
337
|
+
* @since v23.8.0
|
|
338
|
+
*/
|
|
339
|
+
function listen(onsession: OnSessionCallback, options?: SessionOptions): Promise<QuicEndpoint>;
|
|
340
|
+
/**
|
|
341
|
+
* The endpoint configuration options passed when constructing a new `QuicEndpoint` instance.
|
|
342
|
+
* @since v23.8.0
|
|
343
|
+
*/
|
|
344
|
+
interface EndpointOptions {
|
|
345
|
+
/**
|
|
346
|
+
* If not specified the endpoint will bind to IPv4 `localhost` on a random port.
|
|
347
|
+
* @since v23.8.0
|
|
348
|
+
*/
|
|
349
|
+
address?: SocketAddress | string | undefined;
|
|
350
|
+
/**
|
|
351
|
+
* The endpoint maintains an internal cache of validated socket addresses as a
|
|
352
|
+
* performance optimization. This option sets the maximum number of addresses
|
|
353
|
+
* that are cache. This is an advanced option that users typically won't have
|
|
354
|
+
* need to specify.
|
|
355
|
+
* @since v23.8.0
|
|
356
|
+
*/
|
|
357
|
+
addressLRUSize?: bigint | number | undefined;
|
|
358
|
+
/**
|
|
359
|
+
* When `true`, indicates that the endpoint should bind only to IPv6 addresses.
|
|
360
|
+
* @since v23.8.0
|
|
361
|
+
*/
|
|
362
|
+
ipv6Only?: boolean | undefined;
|
|
363
|
+
/**
|
|
364
|
+
* Specifies the maximum number of concurrent sessions allowed per remote peer address.
|
|
365
|
+
* @since v23.8.0
|
|
366
|
+
*/
|
|
367
|
+
maxConnectionsPerHost?: bigint | number | undefined;
|
|
368
|
+
/**
|
|
369
|
+
* Specifies the maximum total number of concurrent sessions.
|
|
370
|
+
* @since v23.8.0
|
|
371
|
+
*/
|
|
372
|
+
maxConnectionsTotal?: bigint | number | undefined;
|
|
373
|
+
/**
|
|
374
|
+
* Specifies the maximum number of QUIC retry attempts allowed per remote peer address.
|
|
375
|
+
* @since v23.8.0
|
|
376
|
+
*/
|
|
377
|
+
maxRetries?: bigint | number | undefined;
|
|
378
|
+
/**
|
|
379
|
+
* Specifies the maximum number of stateless resets that are allowed per remote peer address.
|
|
380
|
+
* @since v23.8.0
|
|
381
|
+
*/
|
|
382
|
+
maxStatelessResetsPerHost?: bigint | number | undefined;
|
|
383
|
+
/**
|
|
384
|
+
* Specifies the length of time a QUIC retry token is considered valid.
|
|
385
|
+
* @since v23.8.0
|
|
386
|
+
*/
|
|
387
|
+
retryTokenExpiration?: bigint | number | undefined;
|
|
388
|
+
/**
|
|
389
|
+
* Specifies the 16-byte secret used to generate QUIC retry tokens.
|
|
390
|
+
* @since v23.8.0
|
|
391
|
+
*/
|
|
392
|
+
resetTokenSecret?: NodeJS.ArrayBufferView | undefined;
|
|
393
|
+
/**
|
|
394
|
+
* Specifies the length of time a QUIC token is considered valid.
|
|
395
|
+
* @since v23.8.0
|
|
396
|
+
*/
|
|
397
|
+
tokenExpiration?: bigint | number | undefined;
|
|
398
|
+
/**
|
|
399
|
+
* Specifies the 16-byte secret used to generate QUIC tokens.
|
|
400
|
+
* @since v23.8.0
|
|
401
|
+
*/
|
|
402
|
+
tokenSecret?: NodeJS.ArrayBufferView | undefined;
|
|
403
|
+
/**
|
|
404
|
+
* @since v23.8.0
|
|
405
|
+
*/
|
|
406
|
+
udpReceiveBufferSize?: number | undefined;
|
|
407
|
+
/**
|
|
408
|
+
* @since v23.8.0
|
|
409
|
+
*/
|
|
410
|
+
udpSendBufferSize?: number | undefined;
|
|
411
|
+
/**
|
|
412
|
+
* @since v23.8.0
|
|
413
|
+
*/
|
|
414
|
+
udpTTL?: number | undefined;
|
|
415
|
+
/**
|
|
416
|
+
* When `true`, requires that the endpoint validate peer addresses using retry packets
|
|
417
|
+
* while establishing a new connection.
|
|
418
|
+
* @since v23.8.0
|
|
419
|
+
*/
|
|
420
|
+
validateAddress?: boolean | undefined;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* A `QuicEndpoint` encapsulates the local UDP-port binding for QUIC. It can be
|
|
424
|
+
* used as both a client and a server.
|
|
425
|
+
* @since v23.8.0
|
|
426
|
+
*/
|
|
427
|
+
class QuicEndpoint implements AsyncDisposable {
|
|
428
|
+
constructor(options?: EndpointOptions);
|
|
429
|
+
/**
|
|
430
|
+
* The local UDP socket address to which the endpoint is bound, if any.
|
|
431
|
+
*
|
|
432
|
+
* If the endpoint is not currently bound then the value will be `undefined`. Read only.
|
|
433
|
+
* @since v23.8.0
|
|
434
|
+
*/
|
|
435
|
+
readonly address: SocketAddress | undefined;
|
|
436
|
+
/**
|
|
437
|
+
* When `endpoint.busy` is set to true, the endpoint will temporarily reject
|
|
438
|
+
* new sessions from being created. Read/write.
|
|
439
|
+
*
|
|
440
|
+
* ```js
|
|
441
|
+
* // Mark the endpoint busy. New sessions will be prevented.
|
|
442
|
+
* endpoint.busy = true;
|
|
443
|
+
*
|
|
444
|
+
* // Mark the endpoint free. New session will be allowed.
|
|
445
|
+
* endpoint.busy = false;
|
|
446
|
+
* ```
|
|
447
|
+
*
|
|
448
|
+
* The `busy` property is useful when the endpoint is under heavy load and needs to
|
|
449
|
+
* temporarily reject new sessions while it catches up.
|
|
450
|
+
* @since v23.8.0
|
|
451
|
+
*/
|
|
452
|
+
busy: boolean;
|
|
453
|
+
/**
|
|
454
|
+
* Gracefully close the endpoint. The endpoint will close and destroy itself when
|
|
455
|
+
* all currently open sessions close. Once called, new sessions will be rejected.
|
|
456
|
+
*
|
|
457
|
+
* Returns a promise that is fulfilled when the endpoint is destroyed.
|
|
458
|
+
* @since v23.8.0
|
|
459
|
+
*/
|
|
460
|
+
close(): Promise<void>;
|
|
461
|
+
/**
|
|
462
|
+
* A promise that is fulfilled when the endpoint is destroyed. This will be the same promise that is
|
|
463
|
+
* returned by the `endpoint.close()` function. Read only.
|
|
464
|
+
* @since v23.8.0
|
|
465
|
+
*/
|
|
466
|
+
readonly closed: Promise<void>;
|
|
467
|
+
/**
|
|
468
|
+
* True if `endpoint.close()` has been called and closing the endpoint has not yet completed.
|
|
469
|
+
* Read only.
|
|
470
|
+
* @since v23.8.0
|
|
471
|
+
*/
|
|
472
|
+
readonly closing: boolean;
|
|
473
|
+
/**
|
|
474
|
+
* Forcefully closes the endpoint by forcing all open sessions to be immediately
|
|
475
|
+
* closed.
|
|
476
|
+
* @since v23.8.0
|
|
477
|
+
*/
|
|
478
|
+
destroy(error?: any): void;
|
|
479
|
+
/**
|
|
480
|
+
* True if `endpoint.destroy()` has been called. Read only.
|
|
481
|
+
* @since v23.8.0
|
|
482
|
+
*/
|
|
483
|
+
readonly destroyed: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* The statistics collected for an active session. Read only.
|
|
486
|
+
* @since v23.8.0
|
|
487
|
+
*/
|
|
488
|
+
readonly stats: QuicEndpoint.Stats;
|
|
489
|
+
/**
|
|
490
|
+
* Calls `endpoint.close()` and returns a promise that fulfills when the
|
|
491
|
+
* endpoint has closed.
|
|
492
|
+
* @since v23.8.0
|
|
493
|
+
*/
|
|
494
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
495
|
+
}
|
|
496
|
+
namespace QuicEndpoint {
|
|
497
|
+
/**
|
|
498
|
+
* A view of the collected statistics for an endpoint.
|
|
499
|
+
* @since v23.8.0
|
|
500
|
+
*/
|
|
501
|
+
class Stats {
|
|
502
|
+
private constructor();
|
|
503
|
+
/**
|
|
504
|
+
* A timestamp indicating the moment the endpoint was created. Read only.
|
|
505
|
+
* @since v23.8.0
|
|
506
|
+
*/
|
|
507
|
+
readonly createdAt: bigint;
|
|
508
|
+
/**
|
|
509
|
+
* A timestamp indicating the moment the endpoint was destroyed. Read only.
|
|
510
|
+
* @since v23.8.0
|
|
511
|
+
*/
|
|
512
|
+
readonly destroyedAt: bigint;
|
|
513
|
+
/**
|
|
514
|
+
* The total number of bytes received by this endpoint. Read only.
|
|
515
|
+
* @since v23.8.0
|
|
516
|
+
*/
|
|
517
|
+
readonly bytesReceived: bigint;
|
|
518
|
+
/**
|
|
519
|
+
* The total number of bytes sent by this endpoint. Read only.
|
|
520
|
+
* @since v23.8.0
|
|
521
|
+
*/
|
|
522
|
+
readonly bytesSent: bigint;
|
|
523
|
+
/**
|
|
524
|
+
* The total number of QUIC packets successfully received by this endpoint. Read only.
|
|
525
|
+
* @since v23.8.0
|
|
526
|
+
*/
|
|
527
|
+
readonly packetsReceived: bigint;
|
|
528
|
+
/**
|
|
529
|
+
* The total number of QUIC packets successfully sent by this endpoint. Read only.
|
|
530
|
+
* @since v23.8.0
|
|
531
|
+
*/
|
|
532
|
+
readonly packetsSent: bigint;
|
|
533
|
+
/**
|
|
534
|
+
* The total number of peer-initiated sessions received by this endpoint. Read only.
|
|
535
|
+
* @since v23.8.0
|
|
536
|
+
*/
|
|
537
|
+
readonly serverSessions: bigint;
|
|
538
|
+
/**
|
|
539
|
+
* The total number of sessions initiated by this endpoint. Read only.
|
|
540
|
+
* @since v23.8.0
|
|
541
|
+
*/
|
|
542
|
+
readonly clientSessions: bigint;
|
|
543
|
+
/**
|
|
544
|
+
* The total number of times an initial packet was rejected due to the
|
|
545
|
+
* endpoint being marked busy. Read only.
|
|
546
|
+
* @since v23.8.0
|
|
547
|
+
*/
|
|
548
|
+
readonly serverBusyCount: bigint;
|
|
549
|
+
/**
|
|
550
|
+
* The total number of QUIC retry attempts on this endpoint. Read only.
|
|
551
|
+
* @since v23.8.0
|
|
552
|
+
*/
|
|
553
|
+
readonly retryCount: bigint;
|
|
554
|
+
/**
|
|
555
|
+
* The total number sessions rejected due to QUIC version mismatch. Read only.
|
|
556
|
+
* @since v23.8.0
|
|
557
|
+
*/
|
|
558
|
+
readonly versionNegotiationCount: bigint;
|
|
559
|
+
/**
|
|
560
|
+
* The total number of stateless resets handled by this endpoint. Read only.
|
|
561
|
+
* @since v23.8.0
|
|
562
|
+
*/
|
|
563
|
+
readonly statelessResetCount: bigint;
|
|
564
|
+
/**
|
|
565
|
+
* The total number of sessions that were closed before handshake completed. Read only.
|
|
566
|
+
* @since v23.8.0
|
|
567
|
+
*/
|
|
568
|
+
readonly immediateCloseCount: bigint;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
interface CreateStreamOptions {
|
|
572
|
+
body?: ArrayBuffer | NodeJS.ArrayBufferView | Blob | undefined;
|
|
573
|
+
sendOrder?: number | undefined;
|
|
574
|
+
}
|
|
575
|
+
interface SessionPath {
|
|
576
|
+
local: SocketAddress;
|
|
577
|
+
remote: SocketAddress;
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* A `QuicSession` represents the local side of a QUIC connection.
|
|
581
|
+
* @since v23.8.0
|
|
582
|
+
*/
|
|
583
|
+
class QuicSession implements AsyncDisposable {
|
|
584
|
+
private constructor();
|
|
585
|
+
/**
|
|
586
|
+
* Initiate a graceful close of the session. Existing streams will be allowed
|
|
587
|
+
* to complete but no new streams will be opened. Once all streams have closed,
|
|
588
|
+
* the session will be destroyed. The returned promise will be fulfilled once
|
|
589
|
+
* the session has been destroyed.
|
|
590
|
+
* @since v23.8.0
|
|
591
|
+
*/
|
|
592
|
+
close(): Promise<void>;
|
|
593
|
+
/**
|
|
594
|
+
* A promise that is fulfilled once the session is destroyed.
|
|
595
|
+
* @since v23.8.0
|
|
596
|
+
*/
|
|
597
|
+
readonly closed: Promise<void>;
|
|
598
|
+
/**
|
|
599
|
+
* Immediately destroy the session. All streams will be destroys and the
|
|
600
|
+
* session will be closed.
|
|
601
|
+
* @since v23.8.0
|
|
602
|
+
*/
|
|
603
|
+
destroy(error?: any): void;
|
|
604
|
+
/**
|
|
605
|
+
* True if `session.destroy()` has been called. Read only.
|
|
606
|
+
* @since v23.8.0
|
|
607
|
+
*/
|
|
608
|
+
readonly destroyed: boolean;
|
|
609
|
+
/**
|
|
610
|
+
* The endpoint that created this session. Read only.
|
|
611
|
+
* @since v23.8.0
|
|
612
|
+
*/
|
|
613
|
+
readonly endpoint: QuicEndpoint;
|
|
614
|
+
/**
|
|
615
|
+
* The callback to invoke when a new stream is initiated by a remote peer. Read/write.
|
|
616
|
+
* @since v23.8.0
|
|
617
|
+
*/
|
|
618
|
+
onstream: OnStreamCallback | undefined;
|
|
619
|
+
/**
|
|
620
|
+
* The callback to invoke when a new datagram is received from a remote peer. Read/write.
|
|
621
|
+
* @since v23.8.0
|
|
622
|
+
*/
|
|
623
|
+
ondatagram: OnDatagramCallback | undefined;
|
|
624
|
+
/**
|
|
625
|
+
* The callback to invoke when the status of a datagram is updated. Read/write.
|
|
626
|
+
* @since v23.8.0
|
|
627
|
+
*/
|
|
628
|
+
ondatagramstatus: OnDatagramStatusCallback | undefined;
|
|
629
|
+
/**
|
|
630
|
+
* The callback to invoke when the path validation is updated. Read/write.
|
|
631
|
+
* @since v23.8.0
|
|
632
|
+
*/
|
|
633
|
+
onpathvalidation: OnPathValidationCallback | undefined;
|
|
634
|
+
/**
|
|
635
|
+
* The callback to invoke when a new session ticket is received. Read/write.
|
|
636
|
+
* @since v23.8.0
|
|
637
|
+
*/
|
|
638
|
+
onsessionticket: OnSessionTicketCallback | undefined;
|
|
639
|
+
/**
|
|
640
|
+
* The callback to invoke when a version negotiation is initiated. Read/write.
|
|
641
|
+
* @since v23.8.0
|
|
642
|
+
*/
|
|
643
|
+
onversionnegotiation: OnVersionNegotiationCallback | undefined;
|
|
644
|
+
/**
|
|
645
|
+
* The callback to invoke when the TLS handshake is completed. Read/write.
|
|
646
|
+
* @since v23.8.0
|
|
647
|
+
*/
|
|
648
|
+
onhandshake: OnHandshakeCallback | undefined;
|
|
649
|
+
/**
|
|
650
|
+
* Open a new bidirectional stream. If the `body` option is not specified,
|
|
651
|
+
* the outgoing stream will be half-closed.
|
|
652
|
+
* @since v23.8.0
|
|
653
|
+
*/
|
|
654
|
+
createBidirectionalStream(options?: CreateStreamOptions): Promise<QuicStream>;
|
|
655
|
+
/**
|
|
656
|
+
* Open a new unidirectional stream. If the `body` option is not specified,
|
|
657
|
+
* the outgoing stream will be closed.
|
|
658
|
+
* @since v23.8.0
|
|
659
|
+
*/
|
|
660
|
+
createUnidirectionalStream(options?: CreateStreamOptions): Promise<QuicStream>;
|
|
661
|
+
/**
|
|
662
|
+
* The local and remote socket addresses associated with the session. Read only.
|
|
663
|
+
* @since v23.8.0
|
|
664
|
+
*/
|
|
665
|
+
path: SessionPath | undefined;
|
|
666
|
+
/**
|
|
667
|
+
* Sends an unreliable datagram to the remote peer, returning the datagram ID.
|
|
668
|
+
* If the datagram payload is specified as an `ArrayBufferView`, then ownership of
|
|
669
|
+
* that view will be transfered to the underlying stream.
|
|
670
|
+
* @since v23.8.0
|
|
671
|
+
*/
|
|
672
|
+
sendDatagram(datagram: string | NodeJS.ArrayBufferView): bigint;
|
|
673
|
+
/**
|
|
674
|
+
* Return the current statistics for the session. Read only.
|
|
675
|
+
* @since v23.8.0
|
|
676
|
+
*/
|
|
677
|
+
readonly stats: QuicSession.Stats;
|
|
678
|
+
/**
|
|
679
|
+
* Initiate a key update for the session.
|
|
680
|
+
* @since v23.8.0
|
|
681
|
+
*/
|
|
682
|
+
updateKey(): void;
|
|
683
|
+
/**
|
|
684
|
+
* Calls `session.close()` and returns a promise that fulfills when the
|
|
685
|
+
* session has closed.
|
|
686
|
+
* @since v23.8.0
|
|
687
|
+
*/
|
|
688
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
689
|
+
}
|
|
690
|
+
namespace QuicSession {
|
|
691
|
+
/**
|
|
692
|
+
* @since v23.8.0
|
|
693
|
+
*/
|
|
694
|
+
class Stats {
|
|
695
|
+
private constructor();
|
|
696
|
+
/**
|
|
697
|
+
* @since v23.8.0
|
|
698
|
+
*/
|
|
699
|
+
readonly createdAt: bigint;
|
|
700
|
+
/**
|
|
701
|
+
* @since v23.8.0
|
|
702
|
+
*/
|
|
703
|
+
readonly closingAt: bigint;
|
|
704
|
+
/**
|
|
705
|
+
* @since v23.8.0
|
|
706
|
+
*/
|
|
707
|
+
readonly handshakeCompletedAt: bigint;
|
|
708
|
+
/**
|
|
709
|
+
* @since v23.8.0
|
|
710
|
+
*/
|
|
711
|
+
readonly handshakeConfirmedAt: bigint;
|
|
712
|
+
/**
|
|
713
|
+
* @since v23.8.0
|
|
714
|
+
*/
|
|
715
|
+
readonly bytesReceived: bigint;
|
|
716
|
+
/**
|
|
717
|
+
* @since v23.8.0
|
|
718
|
+
*/
|
|
719
|
+
readonly bytesSent: bigint;
|
|
720
|
+
/**
|
|
721
|
+
* @since v23.8.0
|
|
722
|
+
*/
|
|
723
|
+
readonly bidiInStreamCount: bigint;
|
|
724
|
+
/**
|
|
725
|
+
* @since v23.8.0
|
|
726
|
+
*/
|
|
727
|
+
readonly bidiOutStreamCount: bigint;
|
|
728
|
+
/**
|
|
729
|
+
* @since v23.8.0
|
|
730
|
+
*/
|
|
731
|
+
readonly uniInStreamCount: bigint;
|
|
732
|
+
/**
|
|
733
|
+
* @since v23.8.0
|
|
734
|
+
*/
|
|
735
|
+
readonly uniOutStreamCount: bigint;
|
|
736
|
+
/**
|
|
737
|
+
* @since v23.8.0
|
|
738
|
+
*/
|
|
739
|
+
readonly maxBytesInFlights: bigint;
|
|
740
|
+
/**
|
|
741
|
+
* @since v23.8.0
|
|
742
|
+
*/
|
|
743
|
+
readonly bytesInFlight: bigint;
|
|
744
|
+
/**
|
|
745
|
+
* @since v23.8.0
|
|
746
|
+
*/
|
|
747
|
+
readonly blockCount: bigint;
|
|
748
|
+
/**
|
|
749
|
+
* @since v23.8.0
|
|
750
|
+
*/
|
|
751
|
+
readonly cwnd: bigint;
|
|
752
|
+
/**
|
|
753
|
+
* @since v23.8.0
|
|
754
|
+
*/
|
|
755
|
+
readonly latestRtt: bigint;
|
|
756
|
+
/**
|
|
757
|
+
* @since v23.8.0
|
|
758
|
+
*/
|
|
759
|
+
readonly minRtt: bigint;
|
|
760
|
+
/**
|
|
761
|
+
* @since v23.8.0
|
|
762
|
+
*/
|
|
763
|
+
readonly rttVar: bigint;
|
|
764
|
+
/**
|
|
765
|
+
* @since v23.8.0
|
|
766
|
+
*/
|
|
767
|
+
readonly smoothedRtt: bigint;
|
|
768
|
+
/**
|
|
769
|
+
* @since v23.8.0
|
|
770
|
+
*/
|
|
771
|
+
readonly ssthresh: bigint;
|
|
772
|
+
/**
|
|
773
|
+
* @since v23.8.0
|
|
774
|
+
*/
|
|
775
|
+
readonly datagramsReceived: bigint;
|
|
776
|
+
/**
|
|
777
|
+
* @since v23.8.0
|
|
778
|
+
*/
|
|
779
|
+
readonly datagramsSent: bigint;
|
|
780
|
+
/**
|
|
781
|
+
* @since v23.8.0
|
|
782
|
+
*/
|
|
783
|
+
readonly datagramsAcknowledged: bigint;
|
|
784
|
+
/**
|
|
785
|
+
* @since v23.8.0
|
|
786
|
+
*/
|
|
787
|
+
readonly datagramsLost: bigint;
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
/**
|
|
791
|
+
* @since v23.8.0
|
|
792
|
+
*/
|
|
793
|
+
class QuicStream {
|
|
794
|
+
private constructor();
|
|
795
|
+
/**
|
|
796
|
+
* A promise that is fulfilled when the stream is fully closed.
|
|
797
|
+
* @since v23.8.0
|
|
798
|
+
*/
|
|
799
|
+
readonly closed: Promise<void>;
|
|
800
|
+
/**
|
|
801
|
+
* Immediately and abruptly destroys the stream.
|
|
802
|
+
* @since v23.8.0
|
|
803
|
+
*/
|
|
804
|
+
destroy(error?: any): void;
|
|
805
|
+
/**
|
|
806
|
+
* True if `stream.destroy()` has been called.
|
|
807
|
+
* @since v23.8.0
|
|
808
|
+
*/
|
|
809
|
+
readonly destroyed: boolean;
|
|
810
|
+
/**
|
|
811
|
+
* The directionality of the stream. Read only.
|
|
812
|
+
* @since v23.8.0
|
|
813
|
+
*/
|
|
814
|
+
readonly direction: "bidi" | "uni";
|
|
815
|
+
/**
|
|
816
|
+
* The stream ID. Read only.
|
|
817
|
+
* @since v23.8.0
|
|
818
|
+
*/
|
|
819
|
+
readonly id: bigint;
|
|
820
|
+
/**
|
|
821
|
+
* The callback to invoke when the stream is blocked. Read/write.
|
|
822
|
+
* @since v23.8.0
|
|
823
|
+
*/
|
|
824
|
+
onblocked: OnBlockedCallback | undefined;
|
|
825
|
+
/**
|
|
826
|
+
* The callback to invoke when the stream is reset. Read/write.
|
|
827
|
+
* @since v23.8.0
|
|
828
|
+
*/
|
|
829
|
+
onreset: OnStreamErrorCallback | undefined;
|
|
830
|
+
/**
|
|
831
|
+
* @since v23.8.0
|
|
832
|
+
*/
|
|
833
|
+
readonly readable: ReadableStream<Uint8Array>;
|
|
834
|
+
/**
|
|
835
|
+
* The session that created this stream. Read only.
|
|
836
|
+
* @since v23.8.0
|
|
837
|
+
*/
|
|
838
|
+
readonly session: QuicSession;
|
|
839
|
+
/**
|
|
840
|
+
* The current statistics for the stream. Read only.
|
|
841
|
+
* @since v23.8.0
|
|
842
|
+
*/
|
|
843
|
+
readonly stats: QuicStream.Stats;
|
|
844
|
+
}
|
|
845
|
+
namespace QuicStream {
|
|
846
|
+
/**
|
|
847
|
+
* @since v23.8.0
|
|
848
|
+
*/
|
|
849
|
+
class Stats {
|
|
850
|
+
private constructor();
|
|
851
|
+
/**
|
|
852
|
+
* @since v23.8.0
|
|
853
|
+
*/
|
|
854
|
+
readonly ackedAt: bigint;
|
|
855
|
+
/**
|
|
856
|
+
* @since v23.8.0
|
|
857
|
+
*/
|
|
858
|
+
readonly bytesReceived: bigint;
|
|
859
|
+
/**
|
|
860
|
+
* @since v23.8.0
|
|
861
|
+
*/
|
|
862
|
+
readonly bytesSent: bigint;
|
|
863
|
+
/**
|
|
864
|
+
* @since v23.8.0
|
|
865
|
+
*/
|
|
866
|
+
readonly createdAt: bigint;
|
|
867
|
+
/**
|
|
868
|
+
* @since v23.8.0
|
|
869
|
+
*/
|
|
870
|
+
readonly destroyedAt: bigint;
|
|
871
|
+
/**
|
|
872
|
+
* @since v23.8.0
|
|
873
|
+
*/
|
|
874
|
+
readonly finalSize: bigint;
|
|
875
|
+
/**
|
|
876
|
+
* @since v23.8.0
|
|
877
|
+
*/
|
|
878
|
+
readonly isConnected: bigint;
|
|
879
|
+
/**
|
|
880
|
+
* @since v23.8.0
|
|
881
|
+
*/
|
|
882
|
+
readonly maxOffset: bigint;
|
|
883
|
+
/**
|
|
884
|
+
* @since v23.8.0
|
|
885
|
+
*/
|
|
886
|
+
readonly maxOffsetAcknowledged: bigint;
|
|
887
|
+
/**
|
|
888
|
+
* @since v23.8.0
|
|
889
|
+
*/
|
|
890
|
+
readonly maxOffsetReceived: bigint;
|
|
891
|
+
/**
|
|
892
|
+
* @since v23.8.0
|
|
893
|
+
*/
|
|
894
|
+
readonly openedAt: bigint;
|
|
895
|
+
/**
|
|
896
|
+
* @since v23.8.0
|
|
897
|
+
*/
|
|
898
|
+
readonly receivedAt: bigint;
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
namespace constants {
|
|
902
|
+
enum cc {
|
|
903
|
+
RENO = "reno",
|
|
904
|
+
CUBIC = "cubic",
|
|
905
|
+
BBR = "bbr",
|
|
906
|
+
}
|
|
907
|
+
const DEFAULT_CIPHERS: string;
|
|
908
|
+
const DEFAULT_GROUPS: string;
|
|
909
|
+
}
|
|
910
|
+
}
|