@fails-components/webtransport 1.4.0 → 1.4.1
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/dist/lib/dom.d.ts +2 -0
- package/dist/lib/dom.d.ts.map +1 -1
- package/dist/lib/http2/parserbase.d.ts +2 -2
- package/dist/lib/http2/parserbase.d.ts.map +1 -1
- package/dist/lib/server.d.ts +1 -0
- package/dist/lib/server.d.ts.map +1 -1
- package/dist/lib/session.d.ts +12 -1
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/types.d.ts +2 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/webtransport.browser.d.ts.map +1 -1
- package/dist/lib/webtransport.node.d.ts.map +1 -1
- package/lib/dom.ts +3 -0
- package/lib/http2/browser/browserparser.js +2 -2
- package/lib/http2/node/capsuleparser.js +2 -2
- package/lib/http2/node/client.js +6 -6
- package/lib/http2/node/server.js +6 -6
- package/lib/http2/node/websocketparser.js +2 -2
- package/lib/http2/parserbase.js +3 -3
- package/lib/server.js +3 -0
- package/lib/session.js +41 -10
- package/lib/types.ts +3 -1
- package/lib/webtransport.browser.js +1 -0
- package/lib/webtransport.node.js +1 -0
- package/package.json +1 -1
package/dist/lib/dom.d.ts
CHANGED
|
@@ -65,10 +65,12 @@ export interface WebTransportHash {
|
|
|
65
65
|
algorithm: string;
|
|
66
66
|
value: BufferSource;
|
|
67
67
|
}
|
|
68
|
+
export type DatagramsReadableMode = "bytes";
|
|
68
69
|
export interface WebTransportOptions {
|
|
69
70
|
allowPooling?: boolean;
|
|
70
71
|
requireUnreliable?: boolean;
|
|
71
72
|
serverCertificateHashes?: WebTransportHash[];
|
|
73
|
+
datagramsReadableMode?: DatagramsReadableMode;
|
|
72
74
|
/**
|
|
73
75
|
* Nonstandard option - when a new connection is opened, how long to wait for the quic handshake to complete in ms before rejecting or switching to http2
|
|
74
76
|
*/
|
package/dist/lib/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../lib/dom.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,yBAAyB,EAAE,MAAM,CAAA;IACjC,yBAAyB,EAAE,MAAM,CAAA;IACjC,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,yBAAyB,CAAA;CACrC;AAED,MAAM,WAAY,2BAA2B;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAO,OAAO,CAAC,2BAA2B,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,6BAA8B,SAAQ,cAAc;IACnE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gCAAgC;IAC/C,cAAc,EAAE,CAAC,OAAO,CAAC,EAAG,uBAAuB,KAAK,6BAA6B,CAAC;IACtF,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAKjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAAC,UAAU,CAAC;IACxE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,2BAA2B,CAAC,CAAA;CACrD;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAC3E,QAAQ,EAAE,MAAM,OAAO,CAAC,8BAA8B,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../lib/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,8 @@ export class ParserBase {
|
|
|
17
17
|
static WT_STREAM_DATA_BLOCKED: number;
|
|
18
18
|
static WT_STREAMS_BLOCKED_UNIDI: number;
|
|
19
19
|
static WT_STREAMS_BLOCKED_BIDI: number;
|
|
20
|
-
static
|
|
21
|
-
static
|
|
20
|
+
static WT_CLOSE_SESSION: number;
|
|
21
|
+
static WT_DRAIN_SESSION: number;
|
|
22
22
|
static DATAGRAM: number;
|
|
23
23
|
/**
|
|
24
24
|
* @param {import('../types').ParserInit} arg
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,kCAHU,SAAO,MAAM,UAStB;AAED;IACE,uBAA2B;IAC3B,+BAAmC;IACnC,+BAAmC;IACnC,+BAAmC;IACnC,8BAAkC;IAClC,2BAA+B;IAC/B,kCAAsC;IACtC,mCAAuC;IACvC,oCAAwC;IACxC,+BAAmC;IACnC,sCAA0C;IAC1C,wCAA4C;IAC5C,uCAA2C;IAC3C,
|
|
1
|
+
{"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,kCAHU,SAAO,MAAM,UAStB;AAED;IACE,uBAA2B;IAC3B,+BAAmC;IACnC,+BAAmC;IACnC,+BAAmC;IACnC,8BAAkC;IAClC,2BAA+B;IAC/B,kCAAsC;IACtC,mCAAuC;IACvC,oCAAwC;IACxC,+BAAmC;IACnC,sCAA0C;IAC1C,wCAA4C;IAC5C,uCAA2C;IAC3C,gCAAgC;IAChC,gCAAgC;IAChC,wBAAsB;IAEtB;;OAEG;IACH,mNAFW,OAAO,UAAU,EAAE,UAAU,EA0BvC;IAfC,aAA4B;IAC5B,kBAAwB;IACxB,sBAAsB;IACtB,SADW,OAAO,CACE;IAEpB,2CAA4E;IAC5E,0CAA0E;IAC1E,yCAAwE;IACxE,2CAA0E;IAC1E,qCAAgE;IAEhE,kDAAkD;IAClD,WADW,IAAI,MAAM,EAAC,uBAAuB,CAAC,CACpB;IAE1B,6BAAwC;IAG1C;;;OAGG;IAEH,gBAHW,MAAM,GAAC,UAAU,QAK3B;IAED;;;OAGG;IAEH,kDAHU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,MAAM,SAAO,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAC,QAK3G;IAED;;;OAGG;IACH,8BAFW,OAAO,CAIjB;IAED;;OAEG;IACH,4BAFU;QAAC,IAAI,SAAS;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,QAiBvC;IAED;;;OAGG;IACH,oBAHW,MAAM,YACN;QAAC,SAAS,EAAE,MAAM,CAAC;QAAA,WAAW,EAAE,MAAM,CAAA;KAAC,uCA+CjD;IAED,4BAUC;IAPC,oDAAoC;IAStC,oBASC;IAED;;OAEG;IACH,eAFW,MAAM,GAAC,SAAS,QAa1B;IAED;;;OAGG;IACH,0BAHW,MAAM,UACN,MAAM,QAUhB;IAED;;OAEG;IACH,iCAFW,MAAM,GAAC,SAAS,QAM1B;IAED;;OAEG;IACH,gCAFW,MAAM,GAAC,SAAS,QAM1B;IAED;;OAEG;IACH,mBAFW,MAAM,GAAC,SAAS,QAK1B;IAED;;;OAGG;IACH,8BAHW,MAAM,UACN,MAAM,QAMhB;IAED;;OAEG;IACH,iCAFW,MAAM,GAAC,SAAS,QAW1B;IAED;;OAEG;IACH,kCAFW,MAAM,GAAC,SAAS,QAW1B;IAED;;OAEG;IACH,6CAFW;QAAC,IAAI,EAAG,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,QAQzC;IAED,gBAEC;IAED;;;OAGG;IACH,4BAFW,MAAM,WAIhB;IAED;;;OAGG;IACH,mCAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,uBAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,wCAHW,MAAM,8BACN;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,QAKlD;IAED;;OAEG;IAEH,uBAHW,MAAM,QAKhB;CACF"}
|
package/dist/lib/server.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export class HttpServer implements HttpServerEventHandler {
|
|
|
15
15
|
sessionController: Record<string, ReadableStreamDefaultController<HttpWTSession>>;
|
|
16
16
|
port: number | null;
|
|
17
17
|
host: string | null;
|
|
18
|
+
defaultDatagramsReadableMode_: "bytes";
|
|
18
19
|
/** @type {any} */
|
|
19
20
|
requestHandler: any;
|
|
20
21
|
_ready: import("./types").Deferred<unknown>;
|
package/dist/lib/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../lib/server.js"],"names":[],"mappings":";AAuHA;;GAEG;AACH;IACE;;;OAGG;IACH,kBAFW,cAAc,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../lib/server.js"],"names":[],"mappings":";AAuHA;;GAEG;AACH;IACE;;;OAGG;IACH,kBAFW,cAAc,EAiCxB;IA9BC,uCAAgB;IAChB,6CAA6C;IAC7C,gBADW,OAAO,MAAM,EAAE,cAAc,CAAC,CACjB;IAExB,6EAA6E;IAC7E,mBADW,OAAO,MAAM,EAAE,gCAAgC,aAAa,CAAC,CAAC,CAC9C;IAE3B,oBAAgB;IAChB,oBAAgB;IAEhB,uCAAsE;IAGtE,kBAAkB;IAClB,gBADW,GAAG,CACY;IAE1B,4CAAqB;IACrB,wBAAgC;IAEhC,6CAAsB;IACtB,yBAAkC;IAClC;;OAEG;IACH,eAFU,MAAM,EAAE,CAEK;IAEvB;;OAEG;IACH,yBAFU,SAAS,GAAC,OAAO,CAEa;IAG1C,oBAgBC;IAED,mBAOC;IADC,6BAAmB;IAGrB;;;;SAIK;IACL,iBAJW,MAAM,WACN,MAAM,aACN,OAAO,QAKjB;IAED;;OAEG;IACH,WAFa;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAY1E;IAED;;OAEG;IACH,6BAFW,GAAG,QAOb;IAED;;;;;OAKG;IACH,oBALW,MAAM;;oBAGJ,eAAe,mBAAmB,CAAC,CAgB/C;IAED;;OAEG;IACH,uBAFW,yBAAyB,QAuBnC;IAED;;OAEG;IACH,6BAFW,+BAA+B,QAezC;IAED;;OAEG;IACH,+CAEC;IAED;;OAEG;IACH,uBAFW,wBAAwB,QAMlC;IAED;OACG;IACH,sBAEC;IAED;;QAEI;IACJ,0BAFU;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAE,SAAS,iBAsElC;IA1CO,kBAA0D;CA2CnE;AAED;CAQC;AAED;CAQC;kCA7VY,OAAO,SAAS,EAAE,uBAAuB;kCACzC,OAAO,SAAS,EAAE,mBAAmB;qCACrC,OAAO,SAAS,EAAE,sBAAsB;8CACxC,OAAO,SAAS,EAAE,+BAA+B;uCACjD,OAAO,SAAS,EAAE,wBAAwB;wCAC1C,OAAO,SAAS,EAAE,yBAAyB;6BAC3C,OAAO,SAAS,EAAE,cAAc"}
|
package/dist/lib/session.d.ts
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* @typedef {import('./dom').WebTransportDatagramStats} WebTransportDatagramStats
|
|
24
24
|
* @typedef {import('./dom').WebTransportSendOptions} WebTransportSendOptions
|
|
25
25
|
* @typedef {import('./dom').WebTransportDatagramsWritable} WebTransportDatagramsWritable
|
|
26
|
+
* @typedef {import('./dom').DatagramsReadableMode} DatagramsReadableMode
|
|
26
27
|
*
|
|
27
28
|
* @typedef {import('./types').NativeHttpWTSession} NativeHttpWTSession
|
|
28
29
|
*
|
|
@@ -46,6 +47,7 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
|
|
|
46
47
|
* @param {Object | undefined} [args.header= undefined]
|
|
47
48
|
* @param {Object | undefined} [args.userData= undefined]
|
|
48
49
|
* @param {string | undefined} [args.peerAddress= undefined]
|
|
50
|
+
* @param {DatagramsReadableMode} [args.datagramsReadableMode]
|
|
49
51
|
*/
|
|
50
52
|
constructor(args: {
|
|
51
53
|
object?: import("./types").NativeHttpWTSession | undefined;
|
|
@@ -53,6 +55,7 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
|
|
|
53
55
|
header?: Object | undefined;
|
|
54
56
|
userData?: Object | undefined;
|
|
55
57
|
peerAddress?: string | undefined;
|
|
58
|
+
datagramsReadableMode?: "bytes" | undefined;
|
|
56
59
|
});
|
|
57
60
|
objint: import("./types").NativeHttpWTSession | undefined;
|
|
58
61
|
parentobj: import("./client").HttpClient | import("./server").HttpServer;
|
|
@@ -68,6 +71,7 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
|
|
|
68
71
|
userData: (Object | null | undefined);
|
|
69
72
|
/** @type {(string | undefined)} */
|
|
70
73
|
peerAddress_: (string | undefined);
|
|
74
|
+
datagramsReadableMode_: "bytes" | undefined;
|
|
71
75
|
/** @type {Promise<void>} */
|
|
72
76
|
ready: Promise<void>;
|
|
73
77
|
readyReject: (reason?: any) => void;
|
|
@@ -89,7 +93,10 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
|
|
|
89
93
|
/** @type {ReadableStream<WebTransportReceiveStream>} */
|
|
90
94
|
incomingUnidirectionalStreams: ReadableStream<WebTransportReceiveStream>;
|
|
91
95
|
incomUniDiController: ReadableStreamDefaultController<import("./dom").WebTransportReceiveStream>;
|
|
92
|
-
|
|
96
|
+
/** @type {import("stream/web").ReadableByteStreamController | undefined} */
|
|
97
|
+
incomDatagramControllerBytes_: import("stream/web").ReadableByteStreamController | undefined;
|
|
98
|
+
/** @type {import("stream/web").ReadableStreamController<Uint8Array> | undefined} */
|
|
99
|
+
incomDatagramController_: import("stream/web").ReadableStreamController<Uint8Array> | undefined;
|
|
93
100
|
_lastGetMaxDatagramSize: number;
|
|
94
101
|
/** @type {WebTransportDatagramDuplexStream} */
|
|
95
102
|
datagrams: WebTransportDatagramDuplexStream;
|
|
@@ -302,6 +309,10 @@ export type WebTransportSendOptions = import('./dom').WebTransportSendOptions;
|
|
|
302
309
|
* WebTransport session events
|
|
303
310
|
*/
|
|
304
311
|
export type WebTransportDatagramsWritable = import('./dom').WebTransportDatagramsWritable;
|
|
312
|
+
/**
|
|
313
|
+
* WebTransport session events
|
|
314
|
+
*/
|
|
315
|
+
export type DatagramsReadableMode = import('./dom').DatagramsReadableMode;
|
|
305
316
|
/**
|
|
306
317
|
* Public API
|
|
307
318
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../lib/session.js"],"names":[],"mappings":";AASA
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../lib/session.js"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
import type { WebTransportSession, WebTransportHash, WebTransportOptions, WebTransportSendStreamOptions } from './dom';
|
|
4
|
+
import type { WebTransportSession, WebTransportHash, WebTransportOptions, WebTransportSendStreamOptions, DatagramsReadableMode } from './dom';
|
|
5
5
|
import type { IncomingHttpHeaders, Http2Stream, ServerHttp2Stream } from 'http2';
|
|
6
6
|
import { ParserBase } from './http2/parserbase';
|
|
7
7
|
import { Http2WebTransportSession } from './http2/session';
|
|
@@ -270,6 +270,7 @@ export interface HttpServerInit extends HttpWebTransportInit {
|
|
|
270
270
|
sessionShouldAutoTuneReceiveWindow?: boolean;
|
|
271
271
|
sessionFlowControlWindowSizeLimit?: number;
|
|
272
272
|
reliability?: WebTransportServerReliability;
|
|
273
|
+
defaultDatagramsReadableMode: DatagramsReadableMode;
|
|
273
274
|
}
|
|
274
275
|
export interface HttpClientInit extends HttpWebTransportInit {
|
|
275
276
|
forceReliable?: any;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,qBAAqB,EACtB,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,+BAA+B,CAAA;IACtC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK;QAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IACnH,gBAAgB,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAK,OAAO,CAAA;IAClE,eAAe,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAM,OAAO,CAAA;IAClE,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAC9B,qBAAqB,EAAE,MAAM,IAAI,CAAA;IACjC,kBAAkB,EAAE,MAAM,MAAM,CAAA;IAChC,KAAK,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,8BAA8B,CAAA;IACrC,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,UAAU,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,uBAAuB,EAAE,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAA;KACpB,KAAK,IAAI,CAAA;CACX;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,MAAM,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB,EAAE,gBAAgB,EAAE,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,MAAM,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,OAAO,CAAA;IACxB,eAAe,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChE,WAAW,EAAE,MAAM,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAA;IAChC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;CACtE;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,yBAAyB,CAAA;IAChC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,mBAAmB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,iBAAiB,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,GAAG,WAAW,GAAG,oBAAoB,GAAG,OAAO,CAAA;IAClE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,OAAO,GACf,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,qBAAqB,CAAA;AACzB,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAA;AAEnE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;CAAG;AAEpC,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxD,aAAa,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC9C,qBAAqB,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IAGpB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,UAAU,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACzC,kBAAkB,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACxD,gBAAgB,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACpD,cAAc,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAChD,eAAe,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAClD,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,8BAA8B;CAAG;AAElD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAA;IACtD,2BAA2B,EAAE,CAAC,GAAG,EAAE,8BAA8B,KAAK,IAAI,CAAA;IAC1E,sBAAsB,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,IAAI,CAAA;CACjE;AAED,MAAM,WAAW,+BACf,SAAQ,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,GAAG,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,IAAI,CAAA;IACtE,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACtC,iBAAiB,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAC1D,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACnB,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;IAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAGD,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,GACR,QAAQ,CAAA;AAEZ,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,KAAK,EAAE,wBAAwB,CAAA;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,CAAA;AAC/B,MAAM,MAAM,eAAe,GAAG,CAAC,CAAA;AAC/B,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAClC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAChC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAChC,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;AAEpH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,6BAA6B,GACrC,gBAAgB,GAChB,cAAc,GACd,MAAM,CAAA;AAGV,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAC1D,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,WAAW,CAAC,EAAE,6BAA6B,CAAA;IAC3C,4BAA4B,EAAE,qBAAqB,CAAA;CACpD;AAGD,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IAC1D,aAAa,CAAC,EAAE,GAAG,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,iCAAiC,CAAC,EAAE,MAAM,CAAA;IAC1C,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,GAAG,CAAA;IACnD,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,GAAG,CAAA;CACrD;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,IAAI,CAAA;IAE3B,uBAAuB,EAAE,KAAK,IAAI,EAAE,cAAc,KAAK,GAAG,CAAA;IAC1D,6BAA6B,EAAE,KAAK,IAAI,EAAE,cAAc,KAAK,GAAG,CAAA;CACjE;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACtC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC/C,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAChD;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,aAAa,EAAE,wBAAwB,KACpC,UAAU,CAAA;AAEf,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,GAAG,CAAA;IAClB,iCAAiC,EAAE,MAAM,CAAA;IACzC,kCAAkC,EAAE,MAAM,CAAA;IAC1C,gCAAgC,EAAE,MAAM,CAAA;IACxC,iCAAiC,EAAE,OAAO,CAAA;IAC1C,4BAA4B,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,EAAE,EAAE,SAAS,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAC,SAAS,CAAA;IAC1B,GAAG,EAAE,OAAO,CAAA;CACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webtransport.browser.d.ts","sourceRoot":"","sources":["../../lib/webtransport.browser.js"],"names":[],"mappings":"AAuDA;;;;GAIG;AACH;IAyBI,4BAA0B;
|
|
1
|
+
{"version":3,"file":"webtransport.browser.d.ts","sourceRoot":"","sources":["../../lib/webtransport.browser.js"],"names":[],"mappings":"AAuDA;;;;GAIG;AACH;IAyBI,4BAA0B;CAgB7B;AAED;IACE;;;OAGG;IACH,iBAHW,MAAM,0DAoPhB;IAhPC,gBAAuB;IACvB,kBAAqB;IACrB,uBAAyB;IACzB,2BAA8B;IAC9B,sDAAgB;IAEhB,qBAGE;IAFA,+BAAuB;IACvB,iCAAsB;IAGxB,oBAGE;IAFA,+BAAuB;IACvB,iCAAsB;IAGxB,uBAGE;IAFA,kCAA0B;IAC1B,oCAAyB;IAMzB,cAeW,YAAY,GAAC,oBAAoB,CAfW;IAoFzD,+DAA+D;IAE/D,WAFW,OAAO,OAAO,EAAE,gCAAgC,CAY1D;IAaG,yDAAuE;IA6BnE,qBAEkD;IA0C1D,6DAgBE;IAZE,iHAC4D;IAYhE,8DAgBE;IAZE,4GAC6D;IAcnE,uEAGC;IAED,+DAGC;IAED,oCAEC;IAED,mCAEC;IAED,yBAGC;IAED;;OAEG;IACH,2EAGC;IAED;;;OAGG;IACH,6FAFa,QAAQ,+BAA+B,CAAC,CAKpD;IAED;;;OAGG;IACH,8FAFa,QAAQ,sBAAsB,CAAC,CAK3C;CACF;2BArYY,OAAO,OAAO,EAAE,YAAY;oCAC5B,OAAO,OAAO,EAAE,qBAAqB;8CACrC,OAAO,OAAO,EAAE,+BAA+B;qCAC/C,OAAO,OAAO,EAAE,sBAAsB;4CACtC,OAAO,OAAO,EAAE,6BAA6B;wCAC7C,OAAO,OAAO,EAAE,yBAAyB;oCACzC,OAAO,OAAO,EAAE,qBAAqB;;;;gCAKrC,OAAO,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oCAmC3C,OAAO,OAAO,EAAE,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webtransport.node.d.ts","sourceRoot":"","sources":["../../lib/webtransport.node.js"],"names":[],"mappings":"AAyBA,wCA4BE;AAEF;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;
|
|
1
|
+
{"version":3,"file":"webtransport.node.d.ts","sourceRoot":"","sources":["../../lib/webtransport.node.js"],"names":[],"mappings":"AAyBA,wCA4BE;AAEF;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;CA8EC;oCA7FY,OAAO,OAAO,EAAE,qBAAqB;8CACrC,OAAO,OAAO,EAAE,+BAA+B;wCAC/C,OAAO,OAAO,EAAE,yBAAyB;;;;gCAKzC,OAAO,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oCAI3C,OAAO,OAAO,EAAE,YAAY"}
|
package/lib/dom.ts
CHANGED
|
@@ -85,10 +85,13 @@ export interface WebTransportHash {
|
|
|
85
85
|
value: BufferSource
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
export type DatagramsReadableMode = "bytes";
|
|
89
|
+
|
|
88
90
|
export interface WebTransportOptions {
|
|
89
91
|
allowPooling?: boolean
|
|
90
92
|
requireUnreliable?: boolean
|
|
91
93
|
serverCertificateHashes?: WebTransportHash[]
|
|
94
|
+
datagramsReadableMode?: DatagramsReadableMode;
|
|
92
95
|
|
|
93
96
|
/**
|
|
94
97
|
* Nonstandard option - when a new connection is opened, how long to wait for the quic handshake to complete in ms before rejecting or switching to http2
|
|
@@ -220,7 +220,7 @@ export class BrowserParser extends ParserBase {
|
|
|
220
220
|
case ParserBase.WT_STREAMS_BLOCKED_BIDI:
|
|
221
221
|
this.onStreamsBlockedBidi(readVarInt(bufferstate))
|
|
222
222
|
break
|
|
223
|
-
case ParserBase.
|
|
223
|
+
case ParserBase.WT_CLOSE_SESSION:
|
|
224
224
|
{
|
|
225
225
|
const code = readUint32(bufferstate) || 0
|
|
226
226
|
const decoder = new TextDecoder()
|
|
@@ -234,7 +234,7 @@ export class BrowserParser extends ParserBase {
|
|
|
234
234
|
this.onCloseWebTransportSession({ code, reason })
|
|
235
235
|
}
|
|
236
236
|
break
|
|
237
|
-
case ParserBase.
|
|
237
|
+
case ParserBase.WT_DRAIN_SESSION:
|
|
238
238
|
this.onDrain()
|
|
239
239
|
break
|
|
240
240
|
case ParserBase.DATAGRAM:
|
|
@@ -223,7 +223,7 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
|
|
|
223
223
|
case Http2CapsuleParser.WT_STREAMS_BLOCKED_BIDI:
|
|
224
224
|
this.onStreamsBlockedBidi(readVarInt(bufferstate))
|
|
225
225
|
break
|
|
226
|
-
case Http2CapsuleParser.
|
|
226
|
+
case Http2CapsuleParser.WT_CLOSE_SESSION:
|
|
227
227
|
{
|
|
228
228
|
const code = readUint32(bufferstate) || 0
|
|
229
229
|
const decoder = new TextDecoder()
|
|
@@ -237,7 +237,7 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
|
|
|
237
237
|
this.onCloseWebTransportSession({ code, reason })
|
|
238
238
|
}
|
|
239
239
|
break
|
|
240
|
-
case Http2CapsuleParser.
|
|
240
|
+
case Http2CapsuleParser.WT_DRAIN_SESSION:
|
|
241
241
|
this.onDrain()
|
|
242
242
|
break
|
|
243
243
|
case Http2CapsuleParser.DATAGRAM:
|
package/lib/http2/node/client.js
CHANGED
|
@@ -87,12 +87,12 @@ export class Http2WebTransportClient {
|
|
|
87
87
|
settings: {
|
|
88
88
|
enableConnectProtocol: true,
|
|
89
89
|
customSettings: {
|
|
90
|
-
0x2b60: 1, //
|
|
91
|
-
0x2b61: this.initialSessionFlowControlWindow, //
|
|
92
|
-
0x2b62: this.initialStreamFlowControlWindow, //
|
|
93
|
-
0x2b63: this.initialStreamFlowControlWindow, //
|
|
94
|
-
0x2b64: this.initialUnidirectionalStreams, //
|
|
95
|
-
0x2b65: this.initialBidirectionalStreams //
|
|
90
|
+
0x2b60: 1, // SETTINGS_WT_MAX_SESSIONS, TODO fix number
|
|
91
|
+
0x2b61: this.initialSessionFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_DATA
|
|
92
|
+
0x2b62: this.initialStreamFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_STREAM_DATA_UNI
|
|
93
|
+
0x2b63: this.initialStreamFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_STREAM_DATA_BIDI
|
|
94
|
+
0x2b64: this.initialUnidirectionalStreams, // SETTINGS_WT_INITIAL_MAX_STREAMS_UNI
|
|
95
|
+
0x2b65: this.initialBidirectionalStreams // SETTINGS_WT_INITIAL_MAX_STREAMS_BIDI
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
remoteCustomSettings: [0x2b60, 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65],
|
package/lib/http2/node/server.js
CHANGED
|
@@ -59,12 +59,12 @@ export class Http2WebTransportServer {
|
|
|
59
59
|
settings: {
|
|
60
60
|
enableConnectProtocol: true,
|
|
61
61
|
customSettings: {
|
|
62
|
-
0x2b60: 1, //
|
|
63
|
-
0x2b61: this.initialSessionFlowControlWindow, //
|
|
64
|
-
0x2b62: this.initialStreamFlowControlWindow, //
|
|
65
|
-
0x2b63: this.initialStreamFlowControlWindow, //
|
|
66
|
-
0x2b64: this.initialUnidirectionalStreams, //
|
|
67
|
-
0x2b65: this.initialBidirectionalStreams //
|
|
62
|
+
0x2b60: 1, // SETTINGS_WT_MAX_SESSIONS, TODO fix number
|
|
63
|
+
0x2b61: this.initialSessionFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_DATA
|
|
64
|
+
0x2b62: this.initialStreamFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_STREAM_DATA_UNI
|
|
65
|
+
0x2b63: this.initialStreamFlowControlWindow, // SETTINGS_WT_INITIAL_MAX_STREAM_DATA_BIDI
|
|
66
|
+
0x2b64: this.initialUnidirectionalStreams, // SETTINGS_WT_INITIAL_MAX_STREAMS_UNI
|
|
67
|
+
0x2b65: this.initialBidirectionalStreams // SETTINGS_WT_INITIAL_MAX_STREAMS_BIDI
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
70
|
remoteCustomSettings: [0x2b60, 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65]
|
|
@@ -608,7 +608,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
|
|
|
608
608
|
case ParserBase.WT_STREAMS_BLOCKED_BIDI:
|
|
609
609
|
this.onStreamsBlockedBidi(readVarInt(bufferstate))
|
|
610
610
|
break
|
|
611
|
-
case ParserBase.
|
|
611
|
+
case ParserBase.WT_CLOSE_SESSION:
|
|
612
612
|
{
|
|
613
613
|
const code = readUint32(bufferstate) || 0
|
|
614
614
|
const decoder = new TextDecoder()
|
|
@@ -622,7 +622,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
|
|
|
622
622
|
this.onCloseWebTransportSession({ code, reason })
|
|
623
623
|
}
|
|
624
624
|
break
|
|
625
|
-
case ParserBase.
|
|
625
|
+
case ParserBase.WT_DRAIN_SESSION:
|
|
626
626
|
this.onDrain()
|
|
627
627
|
break
|
|
628
628
|
case ParserBase.DATAGRAM:
|
package/lib/http2/parserbase.js
CHANGED
|
@@ -31,8 +31,8 @@ export class ParserBase {
|
|
|
31
31
|
static WT_STREAM_DATA_BLOCKED = 0x190b4d42
|
|
32
32
|
static WT_STREAMS_BLOCKED_UNIDI = 0x190b4d43
|
|
33
33
|
static WT_STREAMS_BLOCKED_BIDI = 0x190b4d44
|
|
34
|
-
static
|
|
35
|
-
static
|
|
34
|
+
static WT_CLOSE_SESSION = 0x2843
|
|
35
|
+
static WT_DRAIN_SESSION = 0x78ae
|
|
36
36
|
static DATAGRAM = 0x00
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -101,7 +101,7 @@ export class ParserBase {
|
|
|
101
101
|
payload[2] = (code >> 8) & 0xff
|
|
102
102
|
payload[3] = code & 0xff
|
|
103
103
|
this.writeCapsule({
|
|
104
|
-
type: ParserBase.
|
|
104
|
+
type: ParserBase.WT_CLOSE_SESSION,
|
|
105
105
|
headerVints: [],
|
|
106
106
|
payload,
|
|
107
107
|
end: () => {
|
package/lib/server.js
CHANGED
|
@@ -136,6 +136,8 @@ export class HttpServer {
|
|
|
136
136
|
this.port = null
|
|
137
137
|
this.host = null
|
|
138
138
|
|
|
139
|
+
this.defaultDatagramsReadableMode_ = args.defaultDatagramsReadableMode
|
|
140
|
+
|
|
139
141
|
// FIX ME TYPE
|
|
140
142
|
/** @type {any} */
|
|
141
143
|
this.requestHandler = null
|
|
@@ -276,6 +278,7 @@ export class HttpServer {
|
|
|
276
278
|
header: args.header,
|
|
277
279
|
peerAddress: args.peerAddress,
|
|
278
280
|
userData: args.userData ?? {},
|
|
281
|
+
datagramsReadableMode: this.defaultDatagramsReadableMode_,
|
|
279
282
|
parentobj: this
|
|
280
283
|
})
|
|
281
284
|
args.session.jsobj = sesobj
|
package/lib/session.js
CHANGED
|
@@ -31,6 +31,7 @@ const log = logger(`webtransport:httpwtsession(${pid})`)
|
|
|
31
31
|
* @typedef {import('./dom').WebTransportDatagramStats} WebTransportDatagramStats
|
|
32
32
|
* @typedef {import('./dom').WebTransportSendOptions} WebTransportSendOptions
|
|
33
33
|
* @typedef {import('./dom').WebTransportDatagramsWritable} WebTransportDatagramsWritable
|
|
34
|
+
* @typedef {import('./dom').DatagramsReadableMode} DatagramsReadableMode
|
|
34
35
|
*
|
|
35
36
|
* @typedef {import('./types').NativeHttpWTSession} NativeHttpWTSession
|
|
36
37
|
*
|
|
@@ -55,6 +56,7 @@ export class HttpWTSession {
|
|
|
55
56
|
* @param {Object | undefined} [args.header= undefined]
|
|
56
57
|
* @param {Object | undefined} [args.userData= undefined]
|
|
57
58
|
* @param {string | undefined} [args.peerAddress= undefined]
|
|
59
|
+
* @param {DatagramsReadableMode} [args.datagramsReadableMode]
|
|
58
60
|
*/
|
|
59
61
|
constructor(args) {
|
|
60
62
|
if (args.object) {
|
|
@@ -80,6 +82,8 @@ export class HttpWTSession {
|
|
|
80
82
|
/** @type {(string | undefined)} */
|
|
81
83
|
this.peerAddress_ = args.peerAddress
|
|
82
84
|
|
|
85
|
+
this.datagramsReadableMode_ = args.datagramsReadableMode
|
|
86
|
+
|
|
83
87
|
/** @type {Promise<void>} */
|
|
84
88
|
this.ready = new Promise((resolve, reject) => {
|
|
85
89
|
this.readyResolve = resolve
|
|
@@ -117,14 +121,32 @@ export class HttpWTSession {
|
|
|
117
121
|
this.incomUniDiController = controller
|
|
118
122
|
}
|
|
119
123
|
})
|
|
124
|
+
/** @type {import("stream/web").ReadableByteStreamController | undefined} */
|
|
125
|
+
this.incomDatagramControllerBytes_ = undefined
|
|
126
|
+
/** @type {import("stream/web").ReadableStreamController<Uint8Array> | undefined} */
|
|
127
|
+
this.incomDatagramController_ = undefined
|
|
120
128
|
|
|
121
129
|
const readableopts = {
|
|
122
130
|
start: (
|
|
123
|
-
/** @type {import("stream/web").ReadableByteStreamController} */ controller
|
|
131
|
+
/** @type {import("stream/web").ReadableByteStreamController | import("stream/web").ReadableStreamController<Uint8Array>} */ controller
|
|
124
132
|
) => {
|
|
125
|
-
this.
|
|
133
|
+
if (this.datagramsReadableMode_ === 'bytes') {
|
|
134
|
+
this.incomDatagramControllerBytes_ =
|
|
135
|
+
/** @type {import("stream/web").ReadableByteStreamController} */ (
|
|
136
|
+
controller
|
|
137
|
+
)
|
|
138
|
+
} else {
|
|
139
|
+
this.incomDatagramController_ =
|
|
140
|
+
/** @type {import("stream/web").ReadableStreamController<Uint8Array>} */ (
|
|
141
|
+
controller
|
|
142
|
+
)
|
|
143
|
+
}
|
|
126
144
|
},
|
|
127
|
-
type
|
|
145
|
+
/** @type {undefined | 'bytes'} */
|
|
146
|
+
type: undefined
|
|
147
|
+
}
|
|
148
|
+
if (this.datagramsReadableMode_ === 'bytes') {
|
|
149
|
+
readableopts.type = 'bytes'
|
|
128
150
|
}
|
|
129
151
|
if (!canByteStream) {
|
|
130
152
|
// @ts-ignore
|
|
@@ -558,7 +580,10 @@ export class HttpWTSession {
|
|
|
558
580
|
|
|
559
581
|
this.incomBiDiController.close()
|
|
560
582
|
this.incomUniDiController.close()
|
|
561
|
-
|
|
583
|
+
// @ts-ignore
|
|
584
|
+
;(
|
|
585
|
+
this.incomDatagramController_ || this.incomDatagramControllerBytes_
|
|
586
|
+
).close()
|
|
562
587
|
// this.outgoDatagramController.error(errorcode)
|
|
563
588
|
this.state = 'closed'
|
|
564
589
|
|
|
@@ -645,16 +670,19 @@ export class HttpWTSession {
|
|
|
645
670
|
* @param {DatagramReceivedEvent} args
|
|
646
671
|
*/
|
|
647
672
|
onDatagramReceived(args) {
|
|
648
|
-
log
|
|
673
|
+
log('datagram received', args.datagram)
|
|
649
674
|
// streams spec says zero length chunk on byob stream is illegal
|
|
650
|
-
if (
|
|
651
|
-
|
|
675
|
+
if (
|
|
676
|
+
args.datagram.byteLength === 0 &&
|
|
677
|
+
this.datagramsReadableMode_ === 'bytes'
|
|
678
|
+
) {
|
|
679
|
+
log('zerolength datagram dropped for a byte stream')
|
|
652
680
|
return
|
|
653
681
|
}
|
|
654
682
|
// console.log('datagram received', args.datagram, Date.now())
|
|
655
|
-
if (this.
|
|
683
|
+
if (this.incomDatagramControllerBytes_?.byobRequest) {
|
|
656
684
|
/** @type {ReadableStreamBYOBRequest} */
|
|
657
|
-
const byob = this.
|
|
685
|
+
const byob = this.incomDatagramControllerBytes_.byobRequest
|
|
658
686
|
/** @type {Uint8Array} */
|
|
659
687
|
// @ts-ignore
|
|
660
688
|
const view = byob?.view
|
|
@@ -672,7 +700,10 @@ export class HttpWTSession {
|
|
|
672
700
|
destview.set(args.datagram)
|
|
673
701
|
byob.respond(args.datagram.byteLength)
|
|
674
702
|
} else {
|
|
675
|
-
|
|
703
|
+
// @ts-ignore
|
|
704
|
+
;(
|
|
705
|
+
this.incomDatagramController_ || this.incomDatagramControllerBytes_
|
|
706
|
+
).enqueue(new Uint8Array(args.datagram))
|
|
676
707
|
}
|
|
677
708
|
}
|
|
678
709
|
|
package/lib/types.ts
CHANGED
|
@@ -2,7 +2,8 @@ import type {
|
|
|
2
2
|
WebTransportSession,
|
|
3
3
|
WebTransportHash,
|
|
4
4
|
WebTransportOptions,
|
|
5
|
-
WebTransportSendStreamOptions
|
|
5
|
+
WebTransportSendStreamOptions,
|
|
6
|
+
DatagramsReadableMode
|
|
6
7
|
} from './dom'
|
|
7
8
|
import type { IncomingHttpHeaders, Http2Stream, ServerHttp2Stream } from 'http2'
|
|
8
9
|
import { ParserBase } from './http2/parserbase'
|
|
@@ -316,6 +317,7 @@ export interface HttpServerInit extends HttpWebTransportInit {
|
|
|
316
317
|
sessionShouldAutoTuneReceiveWindow?: boolean
|
|
317
318
|
sessionFlowControlWindowSizeLimit?: number
|
|
318
319
|
reliability?: WebTransportServerReliability
|
|
320
|
+
defaultDatagramsReadableMode: DatagramsReadableMode
|
|
319
321
|
}
|
|
320
322
|
|
|
321
323
|
// see HttpClientJS C++ type
|
package/lib/webtransport.node.js
CHANGED