@fails-components/webtransport 1.1.4 → 1.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.
Files changed (53) hide show
  1. package/dist/lib/dom.d.ts +27 -10
  2. package/dist/lib/dom.d.ts.map +1 -1
  3. package/dist/lib/http2/browser/browser.d.ts +5 -2
  4. package/dist/lib/http2/browser/browser.d.ts.map +1 -1
  5. package/dist/lib/http2/browser/browserparser.d.ts.map +1 -1
  6. package/dist/lib/http2/node/capsuleparser.d.ts.map +1 -1
  7. package/dist/lib/http2/node/client.d.ts +3 -2
  8. package/dist/lib/http2/node/client.d.ts.map +1 -1
  9. package/dist/lib/http2/node/server.d.ts +10 -5
  10. package/dist/lib/http2/node/server.d.ts.map +1 -1
  11. package/dist/lib/http2/node/websocketparser.d.ts.map +1 -1
  12. package/dist/lib/http2/parserbase.d.ts +33 -1
  13. package/dist/lib/http2/parserbase.d.ts.map +1 -1
  14. package/dist/lib/http2/priorityscheduler.d.ts +167 -0
  15. package/dist/lib/http2/priorityscheduler.d.ts.map +1 -0
  16. package/dist/lib/http2/session.d.ts +25 -16
  17. package/dist/lib/http2/session.d.ts.map +1 -1
  18. package/dist/lib/http2/stream.d.ts +10 -0
  19. package/dist/lib/http2/stream.d.ts.map +1 -1
  20. package/dist/lib/http2/websocketcommon.d.ts.map +1 -1
  21. package/dist/lib/server.d.ts.map +1 -1
  22. package/dist/lib/session.d.ts +31 -17
  23. package/dist/lib/session.d.ts.map +1 -1
  24. package/dist/lib/stream.d.ts +13 -0
  25. package/dist/lib/stream.d.ts.map +1 -1
  26. package/dist/lib/types.d.ts +18 -15
  27. package/dist/lib/types.d.ts.map +1 -1
  28. package/dist/lib/webtransport.browser.d.ts +3 -2
  29. package/dist/lib/webtransport.browser.d.ts.map +1 -1
  30. package/dist/lib/webtransportbase.d.ts +1 -0
  31. package/dist/lib/webtransportbase.d.ts.map +1 -1
  32. package/eslint.config.js +20 -22
  33. package/lib/dom.ts +31 -13
  34. package/lib/http2/browser/browser.js +28 -13
  35. package/lib/http2/browser/browserparser.js +4 -1
  36. package/lib/http2/node/capsuleparser.js +4 -1
  37. package/lib/http2/node/client.js +38 -27
  38. package/lib/http2/node/server.js +56 -19
  39. package/lib/http2/node/websocketparser.js +5 -2
  40. package/lib/http2/parserbase.js +76 -7
  41. package/lib/http2/priorityscheduler.js +654 -0
  42. package/lib/http2/session.js +69 -20
  43. package/lib/http2/stream.js +60 -10
  44. package/lib/http2/websocketcommon.js +1 -1
  45. package/lib/server.js +0 -1
  46. package/lib/session.js +128 -64
  47. package/lib/stream.js +50 -8
  48. package/lib/types.ts +15 -8
  49. package/lib/webtransport.browser.js +77 -18
  50. package/lib/webtransportbase.js +7 -0
  51. package/old_test/testsuite.js +6 -2
  52. package/package.json +6 -6
  53. package/readme.md +3 -1
@@ -5,7 +5,6 @@
5
5
  * @typedef {import('./types').SessionReadyEvent} SessionReadyEvent
6
6
  * @typedef {import('./types').SessionCloseEvent} SessionCloseEvent
7
7
  * @typedef {import('./types').DatagramReceivedEvent} DatagramReceivedEvent
8
- * @typedef {import('./types').DatagramSendEvent} DatagramSendEvent
9
8
  * @typedef {import('./types').GoawayReceivedEvent} GoawayReceivedEvent
10
9
  * @typedef {import('./types').DatagramStatsEvent} DatagramStatsEvent
11
10
  * @typedef {import('./types').SessionStatsEvent} SessionStatsEvent
@@ -19,8 +18,11 @@
19
18
  * @typedef {import('./dom').WebTransportDatagramDuplexStream} WebTransportDatagramDuplexStream
20
19
  * @typedef {import('./dom').WebTransportReliabilityMode} WebTransportReliabilityMode
21
20
  * @typedef {import('./dom').WebTransportCongestionControl} WebTransportCongestionControl
21
+ * @typedef {import('./dom').WebTransportSendGroup} WebTransportSendGroup
22
22
  * @typedef {import('./dom').WebTransportStats} WebTransportStats
23
23
  * @typedef {import('./dom').WebTransportDatagramStats} WebTransportDatagramStats
24
+ * @typedef {import('./dom').WebTransportSendOptions} WebTransportSendOptions
25
+ * @typedef {import('./dom').WebTransportDatagramsWritable} WebTransportDatagramsWritable
24
26
  *
25
27
  * @typedef {import('./types').NativeHttpWTSession} NativeHttpWTSession
26
28
  *
@@ -83,12 +85,6 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
83
85
  /** @type {ReadableStream<WebTransportReceiveStream>} */
84
86
  incomingUnidirectionalStreams: ReadableStream<WebTransportReceiveStream>;
85
87
  incomUniDiController: ReadableStreamDefaultController<import("./dom").WebTransportReceiveStream>;
86
- /** @type {Array<() => void>} */
87
- writeDatagramRes: (() => void)[];
88
- /** @type {Array<(err?: Error) => void>} */
89
- writeDatagramRej: ((err?: Error) => void)[];
90
- /** @type {Array<Promise<void>>} */
91
- writeDatagramProm: Array<Promise<void>>;
92
88
  incomDatagramController: import("stream/web").ReadableByteStreamController;
93
89
  /** @type {WebTransportDatagramDuplexStream} */
94
90
  datagrams: WebTransportDatagramDuplexStream;
@@ -119,12 +115,18 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
119
115
  sendStreamsController: Set<WritableStreamDefaultController>;
120
116
  /** @type {Set<ReadableStreamDefaultController>} */
121
117
  receiveStreamsController: Set<ReadableStreamDefaultController>;
118
+ _sendGroupNum: bigint;
119
+ /** @type {Map<bigint,WebTransportSendGroup>} */
120
+ _sendGroupIndex: Map<bigint, WebTransportSendGroup>;
121
+ /** @type {undefined|string} */
122
+ _selectedProtocol: undefined | string;
122
123
  /**
123
124
  * @param {NativeHttpWTSession} object
124
125
  * @param {boolean} reliable
125
126
  */
126
127
  setSessionObj(object: NativeHttpWTSession, reliable: boolean): void;
127
128
  reliable: boolean | undefined;
129
+ get protocol(): string | undefined;
128
130
  getStats(): Promise<any>;
129
131
  /**
130
132
  * @param {SessionStatsEvent} evt
@@ -134,7 +136,6 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
134
136
  * @param {DatagramStatsEvent} evt
135
137
  */
136
138
  onDatagramStats({ timestamp, expiredOutgoing, lostOutgoing }: DatagramStatsEvent): void;
137
- waitForDatagramsSend(): Promise<void>;
138
139
  notifySessionDraining(): void;
139
140
  /**
140
141
  * @param {HttpWTStream} stream
@@ -184,7 +185,16 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
184
185
  closeCode: number;
185
186
  reason: string;
186
187
  } | undefined): void;
187
- onReady(): void;
188
+ /**
189
+ * @returns {WebTransportSendGroup}
190
+ */
191
+ createSendGroup(): WebTransportSendGroup;
192
+ /**
193
+ * @param {{protocol?: string}} arg
194
+ **/
195
+ onReady({ protocol }: {
196
+ protocol?: string;
197
+ }): void;
188
198
  /**
189
199
  * @param {SessionCloseEvent} args
190
200
  */
@@ -197,10 +207,6 @@ export class HttpWTSession implements WebTransportSessionEventHandler, WebTransp
197
207
  * @param {DatagramReceivedEvent} args
198
208
  */
199
209
  onDatagramReceived(args: DatagramReceivedEvent): void;
200
- /**
201
- * @param {DatagramSendEvent} args
202
- */
203
- onDatagramSend(args: DatagramSendEvent): void;
204
210
  /**
205
211
  * @param {GoawayReceivedEvent} args
206
212
  */
@@ -222,10 +228,6 @@ export type SessionCloseEvent = import('./types').SessionCloseEvent;
222
228
  * WebTransport session events
223
229
  */
224
230
  export type DatagramReceivedEvent = import('./types').DatagramReceivedEvent;
225
- /**
226
- * WebTransport session events
227
- */
228
- export type DatagramSendEvent = import('./types').DatagramSendEvent;
229
231
  /**
230
232
  * WebTransport session events
231
233
  */
@@ -274,6 +276,10 @@ export type WebTransportReliabilityMode = import('./dom').WebTransportReliabilit
274
276
  * WebTransport session events
275
277
  */
276
278
  export type WebTransportCongestionControl = import('./dom').WebTransportCongestionControl;
279
+ /**
280
+ * WebTransport session events
281
+ */
282
+ export type WebTransportSendGroup = import('./dom').WebTransportSendGroup;
277
283
  /**
278
284
  * WebTransport session events
279
285
  */
@@ -282,6 +288,14 @@ export type WebTransportStats = import('./dom').WebTransportStats;
282
288
  * WebTransport session events
283
289
  */
284
290
  export type WebTransportDatagramStats = import('./dom').WebTransportDatagramStats;
291
+ /**
292
+ * WebTransport session events
293
+ */
294
+ export type WebTransportSendOptions = import('./dom').WebTransportSendOptions;
295
+ /**
296
+ * WebTransport session events
297
+ */
298
+ export type WebTransportDatagramsWritable = import('./dom').WebTransportDatagramsWritable;
285
299
  /**
286
300
  * Public API
287
301
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../lib/session.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../lib/session.js"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@
13
13
  * @typedef {import('./dom').WebTransportReceiveStream} WebTransportReceiveStream
14
14
  * @typedef {import('./dom').WebTransportSendStream} WebTransportSendStream
15
15
  *
16
+ * @typedef {import('./dom').WebTransportSendGroup} WebTransportSendGroup
17
+ *
16
18
  * @typedef {import('./session').HttpWTSession} HttpWTSession
17
19
  *
18
20
  * @typedef {import('stream/web').WritableStreamDefaultController} WritableStreamDefaultController
@@ -25,6 +27,8 @@ export class HttpWTStream {
25
27
  * @param {object} args.transport
26
28
  * @param {boolean} args.bidirectional
27
29
  * @param {boolean} args.incoming
30
+ * @param {WebTransportSendGroup|undefined} args.sendGroup
31
+ * @param {bigint} args.sendOrder
28
32
  */
29
33
  constructor(args: {
30
34
  object: NativeHttpWTStream;
@@ -32,6 +36,8 @@ export class HttpWTStream {
32
36
  transport: object;
33
37
  bidirectional: boolean;
34
38
  incoming: boolean;
39
+ sendGroup: WebTransportSendGroup | undefined;
40
+ sendOrder: bigint;
35
41
  });
36
42
  objint: import("./types").NativeHttpWTStream;
37
43
  parentobj: import("./session").HttpWTSession;
@@ -39,6 +45,8 @@ export class HttpWTStream {
39
45
  bidirectional: boolean;
40
46
  incoming: boolean;
41
47
  closed: boolean;
48
+ _sendGroup: import("./dom").WebTransportSendGroup | undefined;
49
+ _sendOrder: bigint;
42
50
  /** @type {Promise<void> | null} */
43
51
  pendingoperation: Promise<void> | null;
44
52
  pendingres: (() => void) | null;
@@ -68,6 +76,7 @@ export class HttpWTStream {
68
76
  commitReadBuffer({ buffer, byob, drained, readBytes, fin }: ReadBuffer): {
69
77
  stopReading: boolean;
70
78
  };
79
+ updateSendOrderAndGroup(): void;
71
80
  /**
72
81
  * @param {import('./types').StreamRecvSignalEvent} args
73
82
  * @returns {void}
@@ -121,6 +130,10 @@ export type WebTransportReceiveStream = import('./dom').WebTransportReceiveStrea
121
130
  * WebTransport stream events
122
131
  */
123
132
  export type WebTransportSendStream = import('./dom').WebTransportSendStream;
133
+ /**
134
+ * WebTransport stream events
135
+ */
136
+ export type WebTransportSendGroup = import('./dom').WebTransportSendGroup;
124
137
  /**
125
138
  * WebTransport stream events
126
139
  */
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../lib/stream.js"],"names":[],"mappings":";AAQA;;;;;;;;;;;;;;;;;GAiBG;AAEH;IACE;;;;;;;OAOG;IACH;QANoC,MAAM,EAA/B,kBAAkB;QACE,SAAS,EAA7B,aAAa;QACA,SAAS,EAAtB,MAAM;QACQ,aAAa,EAA3B,OAAO;QACO,QAAQ,EAAtB,OAAO;OAuLjB;IApLC,6CAAyB;IAEzB,6CAA+B;IAC/B,kBAA+B;IAC/B,uBAAuC;IACvC,kBAA6B;IAC7B,gBAAmB;IAMnB,mCAAmC;IACnC,kBADW,QAAQ,IAAI,CAAC,GAAG,IAAI,CACH;IAC5B,mBAgKkB,IAAI,SAhKA;IAEtB,wCAAwC;IACxC,UADW,yBAAyB,CACvB;IACb,qCAAqC;IACrC,UADW,sBAAsB,CACpB;IAEb,mCAAmC;IACnC,sBADW,QAAQ,IAAI,CAAC,GAAG,IAAI,CACC;IAChC,mEAA0B;IAOpB,sEAAoC;IAqBlC,kBAyHU,IAAI,SAzHU;IAQ1B,wBAA0B;IAkCxB,yEAAoC;IA2DlC,iBAwBQ,IAAI,SAxBW;IA2BjC,qBAAwB;IAG1B;;;OAGG;IACH,4BAHW;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAChB,UAAU,CAgBtB;IAED;;OAEG;IACH,4DAFW,UAAU;;MAsCpB;IAED;;;OAGG;IACH,yBAHW,OAAO,SAAS,EAAE,qBAAqB,GACrC,IAAI,CAkEhB;IA5BO,oCAA0B;IA8BlC,mBAGC;IAED;;OAEG;IAEH,oBAHW,gBAAgB,QAa1B;IAED;;OAEG;IACH,4BAFW,wBAAwB,QAiDlC;IArCK,qCAA2B;CAsClC;;;;6CA5ZY,OAAO,SAAS,EAAE,8BAA8B;;;;oCAChD,OAAO,SAAS,EAAE,qBAAqB;;;;8BACvC,OAAO,SAAS,EAAE,eAAe;;;;+BACjC,OAAO,SAAS,EAAE,gBAAgB;;;;uCAClC,OAAO,SAAS,EAAE,wBAAwB;;;;iCAE1C,OAAO,SAAS,EAAE,kBAAkB;;;;yBACpC,OAAO,SAAS,EAAE,UAAU;;;;wCAE5B,OAAO,OAAO,EAAE,yBAAyB;;;;qCACzC,OAAO,OAAO,EAAE,sBAAsB;;;;4BAEtC,OAAO,WAAW,EAAE,aAAa;;;;8CAEjC,OAAO,YAAY,EAAE,+BAA+B"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../lib/stream.js"],"names":[],"mappings":";AAQA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;IACE;;;;;;;;;OASG;IACH;QARoC,MAAM,EAA/B,kBAAkB;QACE,SAAS,EAA7B,aAAa;QACA,SAAS,EAAtB,MAAM;QACQ,aAAa,EAA3B,OAAO;QACO,QAAQ,EAAtB,OAAO;QAC+B,SAAS,EAA/C,qBAAqB,GAAC,SAAS;QAClB,SAAS,EAAtB,MAAM;OAqNhB;IAlNC,6CAAyB;IAEzB,6CAA+B;IAC/B,kBAA+B;IAC/B,uBAAuC;IACvC,kBAA6B;IAC7B,gBAAmB;IAEnB,8DAAgC;IAChC,mBAAgC;IAMhC,mCAAmC;IACnC,kBADW,QAAQ,IAAI,CAAC,GAAG,IAAI,CACH;IAC5B,mBA2LkB,IAAI,SA3LA;IAEtB,wCAAwC;IACxC,UADW,yBAAyB,CACvB;IACb,qCAAqC;IACrC,UADW,sBAAsB,CACpB;IAEb,mCAAmC;IACnC,sBADW,QAAQ,IAAI,CAAC,GAAG,IAAI,CACC;IAChC,mEAA0B;IAOpB,sEAAoC;IAqBlC,kBAoJU,IAAI,SApJU;IAQ1B,wBAA0B;IAkCxB,yEAAoC;IAwDlC,iBAsDQ,IAAI,SAtDW;IAyDjC,qBAAwB;IAG1B;;;OAGG;IACH,4BAHW;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAChB,UAAU,CAgBtB;IAED;;OAEG;IACH,4DAFW,UAAU;;MAsCpB;IAED,gCAMC;IAED;;;OAGG;IACH,yBAHW,OAAO,SAAS,EAAE,qBAAqB,GACrC,IAAI,CAkEhB;IA5BO,oCAA0B;IA8BlC,mBAGC;IAED;;OAEG;IAEH,oBAHW,gBAAgB,QAa1B;IAED;;OAEG;IACH,4BAFW,wBAAwB,QAiDlC;IArCK,qCAA2B;CAsClC;;;;6CAtcY,OAAO,SAAS,EAAE,8BAA8B;;;;oCAChD,OAAO,SAAS,EAAE,qBAAqB;;;;8BACvC,OAAO,SAAS,EAAE,eAAe;;;;+BACjC,OAAO,SAAS,EAAE,gBAAgB;;;;uCAClC,OAAO,SAAS,EAAE,wBAAwB;;;;iCAE1C,OAAO,SAAS,EAAE,kBAAkB;;;;yBACpC,OAAO,SAAS,EAAE,UAAU;;;;wCAE5B,OAAO,OAAO,EAAE,yBAAyB;;;;qCACzC,OAAO,OAAO,EAAE,sBAAsB;;;;oCAEtC,OAAO,OAAO,EAAE,qBAAqB;;;;4BAErC,OAAO,WAAW,EAAE,aAAa;;;;8CAEjC,OAAO,YAAY,EAAE,+BAA+B"}
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import type { WebTransportSession, WebTransportHash, WebTransportOptions, WebTransportSendGroup } from './dom';
3
+ /// <reference types="node" />
4
+ import type { WebTransportSession, WebTransportHash, WebTransportOptions, WebTransportSendStreamOptions } from './dom';
4
5
  import type { IncomingHttpHeaders, Http2Stream, ServerHttp2Stream } from 'http2';
5
6
  import { ParserBase } from './http2/parserbase';
6
7
  import { Http2WebTransportSession } from './http2/session';
@@ -11,20 +12,16 @@ import { HttpClient } from './client';
11
12
  export interface NativeHttpWTSession {
12
13
  jsobj: WebTransportSessionEventHandler;
13
14
  sendInitialParameters?: () => void;
14
- writeDatagram: (chunk: Uint8Array) => void;
15
- orderUnidiStream: (opts: {
16
- sendGroup: WebTransportSendGroup | null;
17
- sendOrder: number;
18
- waitUntilAvailable: boolean;
19
- }) => boolean;
20
- orderBidiStream: (opts: {
21
- sendGroup: WebTransportSendGroup | null;
22
- sendOrder: number;
23
- waitUntilAvailable: boolean;
24
- }) => boolean;
15
+ writeDatagram: (chunk: Uint8Array) => {
16
+ code: 'success' | 'blocked' | 'internalError' | 'tooBig';
17
+ message?: string;
18
+ };
19
+ orderUnidiStream: (opts: WebTransportSendStreamOptions) => boolean;
20
+ orderBidiStream: (opts: WebTransportSendStreamOptions) => boolean;
25
21
  orderSessionStats: () => void;
26
22
  orderDatagramStats: () => void;
27
23
  notifySessionDraining: () => void;
24
+ getMaxDatagramSize: () => number;
28
25
  close: (arg: {
29
26
  code: number;
30
27
  reason: string;
@@ -44,6 +41,10 @@ export interface NativeHttpWTStream {
44
41
  resetStream: (code: number) => void;
45
42
  writeChunk: (buf: Uint8Array) => void;
46
43
  streamFinal: () => void;
44
+ updateSendOrderAndGroup: (args: {
45
+ sendOrder: bigint;
46
+ sendGroupId: bigint;
47
+ }) => void;
47
48
  }
48
49
  export interface NativeServerOptions {
49
50
  port: number | 443;
@@ -83,6 +84,7 @@ export interface NativeClientOptions {
83
84
  initialSessionFlowControlWindow?: number;
84
85
  sessionShouldAutoTuneReceiveWindow?: boolean;
85
86
  sessionFlowControlWindowSizeLimit?: number;
87
+ protocols?: string[];
86
88
  }
87
89
  export interface FlowControlable {
88
90
  sendWindowUpdate: (windowOffset: bigint) => void;
@@ -114,6 +116,7 @@ export interface NativeFinishSessionRequest {
114
116
  head?: Buffer;
115
117
  userData?: object;
116
118
  transportPrivate?: object;
119
+ selectedProtocol?: string;
117
120
  }
118
121
  export type Purpose = 'StreamRecvSignal' | 'StreamRead' | 'StreamWrite' | 'StreamReset' | 'StreamNetworkFinish';
119
122
  export type NetTask = 'stopSending' | 'resetStream' | 'streamFinal';
@@ -141,6 +144,7 @@ export interface WebTransportStreamEventHandler {
141
144
  }
142
145
  export interface SessionReadyEvent {
143
146
  object: NativeHttpWTSession;
147
+ protocol?: string;
144
148
  }
145
149
  export interface SessionCloseEvent {
146
150
  errorcode: number;
@@ -163,20 +167,19 @@ export interface DatagramStatsEvent {
163
167
  export interface DatagramReceivedEvent {
164
168
  datagram: Uint8Array;
165
169
  }
166
- export interface DatagramSendEvent {
167
- }
168
170
  export interface GoawayReceivedEvent {
169
171
  }
170
172
  export interface NewStreamEvent {
171
173
  stream: NativeHttpWTStream;
172
174
  bidirectional: boolean;
173
175
  incoming: boolean;
176
+ sendGroupId?: bigint;
177
+ sendOrder: bigint;
174
178
  }
175
179
  export interface WebTransportSessionEventHandler {
176
180
  onReady: (evt: SessionReadyEvent) => void;
177
181
  onClose: (evt: SessionCloseEvent) => void;
178
182
  onDatagramReceived: (evt: DatagramReceivedEvent) => void;
179
- onDatagramSend: (evt: DatagramSendEvent) => void;
180
183
  onGoAwayReceived: (evt: GoawayReceivedEvent) => void;
181
184
  onSessionStats: (evt: SessionStatsEvent) => void;
182
185
  onDatagramStats: (evt: DatagramStatsEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export class WebTransportPolyfill {
30
30
  /** @type {import('./dom').WebTransportDatagramDuplexStream} */
31
31
  datagrams: import('./dom').WebTransportDatagramDuplexStream;
32
32
  datagramsReader: ReadableStreamDefaultReader<Uint8Array>;
33
- datagramsWriter: WritableStreamDefaultWriter<Uint8Array>;
33
+ datagramsWriter: any;
34
34
  incomingBidirectionalStreams: globalThis.ReadableStream<any>;
35
35
  incomingBidirectionalStreamsReader: ReadableStreamDefaultReader<import("./dom").WebTransportBidirectionalStream>;
36
36
  incomingUnidirectionalStreams: globalThis.ReadableStream<any>;
@@ -38,6 +38,7 @@ export class WebTransportPolyfill {
38
38
  get congestionControl(): import("./dom").WebTransportCongestionControl;
39
39
  get reliability(): import("./dom").WebTransportReliabilityMode;
40
40
  get supportsReliableOnly(): boolean;
41
+ get protocol(): string | undefined;
41
42
  getStats(): Promise<any>;
42
43
  /**
43
44
  * @param {WebTransportCloseInfo} [closeinfo]
@@ -60,7 +61,7 @@ export type WebTransportBidirectionalStream = import('./dom').WebTransportBidire
60
61
  export type WebTransportSendStream = import('./dom').WebTransportSendStream;
61
62
  export type WebTransportSendStreamOptions = import('./dom').WebTransportSendStreamOptions;
62
63
  export type WebTransportReceiveStream = import('./dom').WebTransportReceiveStream;
63
- export type WebTransportError = import('./error').WebTransportError;
64
+ export type WebTransportSendGroup = import('./dom').WebTransportSendGroup;
64
65
  /**
65
66
  * <T>
66
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"webtransport.browser.d.ts","sourceRoot":"","sources":["../../lib/webtransport.browser.js"],"names":[],"mappings":"AAsDA;;;;GAIG;AACH;IAyBI,4BAA0B;CAe7B;AAED;IACE;;;OAGG;IACH,iBAHW,MAAM,0DAuLhB;IAnLC,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,CAExC;IAMf,yDAAuE;IAgBvE,yDAAuE;IAa3E,6DAgBE;IAZE,iHAC4D;IAYhE,8DAgBE;IAZE,4GAC6D;IAcnE,uEAGC;IAED,+DAGC;IAED,oCAEC;IAED,yBAGC;IAED;;OAEG;IACH,2EAGC;IAED;;;OAGG;IACH,6FAFa,QAAQ,+BAA+B,CAAC,CAKpD;IAED;;;OAGG;IACH,8FAFa,QAAQ,sBAAsB,CAAC,CAK3C;CACF;2BAnUY,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;gCACzC,OAAO,SAAS,EAAE,iBAAiB;;;;gCAKnC,OAAO,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oCAmC3C,OAAO,OAAO,EAAE,YAAY"}
1
+ {"version":3,"file":"webtransport.browser.d.ts","sourceRoot":"","sources":["../../lib/webtransport.browser.js"],"names":[],"mappings":"AAuDA;;;;GAIG;AACH;IAyBI,4BAA0B;CAe7B;AAED;IACE;;;OAGG;IACH,iBAHW,MAAM,0DA6OhB;IAzOC,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;IAMG,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;2BA7XY,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"}
@@ -66,6 +66,7 @@ export class WebTransportBase implements WebTransportInterface {
66
66
  * @returns {Promise<WebTransportSendStream>}
67
67
  */
68
68
  createUnidirectionalStream(opts?: import("./dom.js").WebTransportSendStreamOptions | undefined): Promise<WebTransportSendStream>;
69
+ get protocol(): string | undefined;
69
70
  }
70
71
  export type WebTransportCloseInfo = import('./dom.js').WebTransportCloseInfo;
71
72
  export type WebTransportBidirectionalStream = import('./dom.js').WebTransportBidirectionalStream;
@@ -1 +1 @@
1
- {"version":3,"file":"webtransportbase.d.ts","sourceRoot":"","sources":["../../lib/webtransportbase.js"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E;;;;;;;;GAQG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,iBAHW,MAAM,6DA8BhB;IAdC,qBAA6B;IAC7B,0DAA+B;IAC/B,6BAAmC;IAEnC,+DAAqC;IAErC,4GAA2E;IAE3E,uGAC0C;IAE1C,iDAA4B;IAK9B;;;;OAIG;IAEH,mBALU,OAAO,YAAY,EAAE,oBAAoB,GACvC;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAC,CAM1D;IAED;;;OAGG;IAEH,gDAJU;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,QAMnE;IAED,kEAQC;IAED,0EAQC;IAED,oCAIC;IAED,yBAQC;IAED;;OAEG;IACH,8EASC;IAED;;;OAGG;IACH,gGAFa,QAAQ,+BAA+B,CAAC,CAWpD;IAED;;;OAGG;IACH,iGAFa,QAAQ,sBAAsB,CAAC,CAW3C;CACF;oCAvJY,OAAO,UAAU,EAAE,qBAAqB;8CACxC,OAAO,UAAU,EAAE,+BAA+B;wCAClD,OAAO,UAAU,EAAE,yBAAyB;qCAC5C,OAAO,UAAU,EAAE,sBAAsB;4CACzC,OAAO,UAAU,EAAE,6BAA6B;4BAChD,OAAO,cAAc,EAAE,aAAa;yBACnC,OAAO,cAAc,EAAE,UAAU;;;;gCAKlC,OAAO,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oCAI3C,OAAO,UAAU,EAAE,YAAY"}
1
+ {"version":3,"file":"webtransportbase.d.ts","sourceRoot":"","sources":["../../lib/webtransportbase.js"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E;;;;;;;;GAQG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,iBAHW,MAAM,6DA8BhB;IAdC,qBAA6B;IAC7B,0DAA+B;IAC/B,6BAAmC;IAEnC,+DAAqC;IAErC,4GAA2E;IAE3E,uGAC0C;IAE1C,iDAA4B;IAK9B;;;;OAIG;IAEH,mBALU,OAAO,YAAY,EAAE,oBAAoB,GACvC;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAC,CAM1D;IAED;;;OAGG;IAEH,gDAJU;QAAC,MAAM,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,QAMnE;IAED,kEAQC;IAED,0EAQC;IAED,oCAIC;IAED,yBAQC;IAED;;OAEG;IACH,8EASC;IAED;;;OAGG;IACH,gGAFa,QAAQ,+BAA+B,CAAC,CAWpD;IAED;;;OAGG;IACH,iGAFa,QAAQ,sBAAsB,CAAC,CAW3C;IAED,mCAKC;CACF;oCA9JY,OAAO,UAAU,EAAE,qBAAqB;8CACxC,OAAO,UAAU,EAAE,+BAA+B;wCAClD,OAAO,UAAU,EAAE,yBAAyB;qCAC5C,OAAO,UAAU,EAAE,sBAAsB;4CACzC,OAAO,UAAU,EAAE,6BAA6B;4BAChD,OAAO,cAAc,EAAE,aAAa;yBACnC,OAAO,cAAc,EAAE,UAAU;;;;gCAKlC,OAAO,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oCAI3C,OAAO,UAAU,EAAE,YAAY"}
package/eslint.config.js CHANGED
@@ -1,9 +1,8 @@
1
-
2
- import js from "@eslint/js"
3
- import promise from "eslint-plugin-promise"
4
- import babelParser from "@babel/eslint-parser"
1
+ import js from '@eslint/js'
2
+ import promise from 'eslint-plugin-promise'
3
+ import babelParser from '@babel/eslint-parser'
5
4
  import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
6
- import globals from "globals";
5
+ import globals from 'globals'
7
6
 
8
7
  export default [
9
8
  js.configs.recommended,
@@ -15,7 +14,6 @@ export default [
15
14
  languageOptions: {
16
15
  globals: {
17
16
  ...globals.node
18
-
19
17
  },
20
18
  parser: babelParser,
21
19
  ecmaVersion: 2020,
@@ -24,28 +22,28 @@ export default [
24
22
  legacyDecorators: true,
25
23
  jsx: true
26
24
  },
27
- requireConfigFile: false,
25
+ requireConfigFile: false
28
26
  }
29
27
  },
30
28
  ignores: [
31
- "build/*",
32
- "dist/*",
33
- "node_modules/*",
34
- ".snapshots/*",
35
- "*.min.js"
29
+ 'build/*',
30
+ 'dist/*',
31
+ 'node_modules/*',
32
+ '.snapshots/*',
33
+ '*.min.js'
36
34
  ],
37
35
  rules: {
38
- "space-before-function-paren": 0,
39
- "import/export": 0,
40
- "promise/catch-or-return": "error",
41
- "no-useless-return": 1,
42
- "camelcase": 1,
43
- },
36
+ 'space-before-function-paren': 0,
37
+ 'import/export': 0,
38
+ 'promise/catch-or-return': 'error',
39
+ 'no-useless-return': 1,
40
+ camelcase: 1
41
+ }
44
42
  },
45
43
  {
46
- files: ["test/*.spec.js"],
44
+ files: ['test/*.spec.js'],
47
45
  rules: {
48
- "no-undef": 0
46
+ 'no-undef': 0
49
47
  }
50
- },
51
- ];
48
+ }
49
+ ]
package/lib/dom.ts CHANGED
@@ -24,30 +24,44 @@ export interface WebTransportStats {
24
24
  datagrams: WebTransportDatagramStats
25
25
  }
26
26
 
27
+ export interface WebTransportSendStreamStats {
28
+ bytesWritten: bigint
29
+ bytesSent: bigint
30
+ bytesAcknowledged: bigint
31
+ }
32
+
33
+ export interface WebTransportSendGroup {
34
+ getStats: () => Promise<WebTransportSendStreamStats>
35
+ }
36
+
27
37
  export interface WebTransportCloseInfo {
28
38
  closeCode: number
29
39
  reason: string
30
40
  }
31
41
 
42
+ export interface WebTransportDatagramsWritable extends WritableStream {
43
+ sendGroup?: WebTransportSendGroup;
44
+ sendOrder: bigint;
45
+ };
46
+
47
+ export interface WebTransportSendOptions {
48
+ sendGroup?: WebTransportSendGroup;
49
+ sendOrder: number;
50
+ };
51
+
32
52
  export interface WebTransportDatagramDuplexStream {
53
+ createWritable: (options?: WebTransportSendOptions) => WebTransportDatagramsWritable;
33
54
  readable: ReadableStream<Uint8Array>
34
- writable: WritableStream<Uint8Array>
35
- // readonly maxDatagramSize: number
55
+ readonly maxDatagramSize: number
36
56
  // incomingMaxAge?: number
37
57
  // outgoingMaxAge?: number
38
58
  // incomingHighWaterMark: number
39
59
  // outgoingHighWaterMark: number
40
60
  }
41
61
 
42
-
43
- export interface WebTransportSendStreamStats {
44
- timestamp: number
45
- bytesWritten: bigint
46
- bytesSent: bigint
47
- bytesAcknowledged: bigint
48
- }
49
-
50
62
  export interface WebTransportSendStream extends WritableStream<Uint8Array> {
63
+ sendGroup?: WebTransportSendGroup;
64
+ sendOrder: bigint;
51
65
  getStats: () => Promise<WebTransportSendStreamStats>
52
66
  }
53
67
 
@@ -86,15 +100,18 @@ export interface WebTransportOptions {
86
100
  */
87
101
  webTransportConnectTimeout?: number
88
102
  congestionControl?: WebTransportCongestionControl
103
+ protocols?: string[]
89
104
  }
90
105
 
91
- export interface WebTransportSendGroup {
92
- getStats: () => Promise<WebTransportSendStreamStats>
106
+ export interface WebTransportSendStreamStats {
107
+ bytesWritten: bigint;
108
+ bytesSent: bigint;
109
+ bytesAcknowledged: bigint;
93
110
  }
94
111
 
95
112
  export interface WebTransportSendStreamOptions {
96
113
  sendGroup: WebTransportSendGroup|null
97
- sendOrder?: number
114
+ sendOrder?: bigint
98
115
  waitUntilAvailable?: boolean
99
116
  }
100
117
 
@@ -119,6 +136,7 @@ export interface WebTransportSession {
119
136
 
120
137
  export interface WebTransport extends WebTransportSession {
121
138
  readonly supportsReliableOnly: boolean
139
+ readonly protocol: string | undefined
122
140
  }
123
141
 
124
142
  export type WebTransportReliabilityMode = 'pending' | 'reliable-only' | 'supports-unreliable'
@@ -12,6 +12,7 @@ export class Http2WebTransportBrowser {
12
12
  constructor(args) {
13
13
  this.port = args?.port || 443
14
14
  this.hostname = args?.host || 'localhost'
15
+ this.protocols = args?.protocols || []
15
16
  this.initialStreamFlowControlWindow =
16
17
  args?.initialStreamFlowControlWindow || 16 * 1024 // 16 KB
17
18
  this.initialSessionFlowControlWindow =
@@ -23,12 +24,12 @@ export class Http2WebTransportBrowser {
23
24
  args?.initialUnidirectionalSendStreams || 100
24
25
 
25
26
  this.streamShouldAutoTuneReceiveWindow =
26
- args.streamShouldAutoTuneReceiveWindow || false
27
+ args.streamShouldAutoTuneReceiveWindow || true
27
28
  this.streamFlowControlWindowSizeLimit =
28
29
  args?.streamFlowControlWindowSizeLimit || 6 * 1024 * 1024
29
30
 
30
31
  this.sessionShouldAutoTuneReceiveWindow =
31
- args.sessionShouldAutoTuneReceiveWindow || false
32
+ args.sessionShouldAutoTuneReceiveWindow || true
32
33
  this.sessionFlowControlWindowSizeLimit =
33
34
  args?.sessionFlowControlWindowSizeLimit || 15 * 1024 * 1024
34
35
  /** @type {import('../../session.js').HttpClient} */
@@ -37,6 +38,8 @@ export class Http2WebTransportBrowser {
37
38
  /** @type {WebSocket} */
38
39
  // @ts-ignore
39
40
  this.clientInt = undefined
41
+ /** @type {undefined|string} */
42
+ this._webtransportProtocol = undefined
40
43
  }
41
44
 
42
45
  /**
@@ -46,13 +49,18 @@ export class Http2WebTransportBrowser {
46
49
  try {
47
50
  let url = 'wss://' + this.hostname + ':' + this.port
48
51
  if (path) url = url + '/' + path
49
- // eslint-disable-next-line no-undef
50
- this.clientInt = new WebSocket(
51
- url,
52
- supportedVersions.map(
53
- (/** @type {string} */ el) => 'webtransport_' + el
54
- )
52
+
53
+ let protocols = supportedVersions.map(
54
+ (/** @type {string} */ el) => 'webtransport_' + el
55
55
  )
56
+ if (this.protocols.length > 0) {
57
+ protocols = protocols
58
+ .filter((el) => el !== 'kDraft1')
59
+ .map((el) => this.protocols.map((el2) => el + '_' + el2))
60
+ .flat(1)
61
+ }
62
+ // eslint-disable-next-line no-undef
63
+ this.clientInt = new WebSocket(url, protocols)
56
64
  } catch (error) {
57
65
  log('Failed on WebTransport/Websocket:', error)
58
66
  this.jsobj.onClientConnected({
@@ -73,7 +81,7 @@ export class Http2WebTransportBrowser {
73
81
  }
74
82
  const aprotocol = protocol.split('_')
75
83
  if (
76
- aprotocol.length !== 2 ||
84
+ !(aprotocol.length === 2 || aprotocol.length >= 3) ||
77
85
  aprotocol[0] !== 'webtransport' ||
78
86
  !supportedVersions.includes(aprotocol[1])
79
87
  ) {
@@ -82,7 +90,13 @@ export class Http2WebTransportBrowser {
82
90
  success: false
83
91
  })
84
92
  } else {
85
- this.jsobj.onClientWebTransportSupport({})
93
+ this._webtransportProtocol =
94
+ aprotocol.length >= 3 ? aprotocol.slice(2).join('_') : undefined
95
+ this.jsobj.onClientWebTransportSupport(
96
+ aprotocol.length >= 3
97
+ ? { selectedProtocol: aprotocol.slice(2).join('_') }
98
+ : {}
99
+ )
86
100
  this.jsobj.onClientConnected({
87
101
  success: true
88
102
  })
@@ -208,7 +222,7 @@ export class Http2WebTransportBrowser {
208
222
  return session
209
223
  },
210
224
  sendWindowOffset: 0,
211
- receiveWindowOffset: this.sessionFlowControlWindowSizeLimit,
225
+ receiveWindowOffset: this.initialSessionFlowControlWindow,
212
226
  shouldAutoTuneReceiveWindow: this.sessionShouldAutoTuneReceiveWindow,
213
227
  receiveWindowSizeLimit: this.sessionFlowControlWindowSizeLimit,
214
228
  initialBidirectionalSendStreams: this.initialBidirectionalStreams, // TODO, once supported by node, use initial settings
@@ -219,9 +233,10 @@ export class Http2WebTransportBrowser {
219
233
  reliable: true
220
234
  }
221
235
  this.jsobj.onHttpWTSessionVisitor(retObj)
222
-
223
236
  // @ts-ignore
224
- sessobj.jsobj.onReady({})
237
+ sessobj.jsobj.onReady(
238
+ this._webtransportProtocol ? { protocol: this._webtransportProtocol } : {}
239
+ )
225
240
  }
226
241
 
227
242
  closeClient() {