@fails-components/webtransport 1.0.10 → 1.0.11

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 (47) hide show
  1. package/dist/lib/http2/browser/browser.d.ts.map +1 -1
  2. package/dist/lib/http2/browser/browserparser.d.ts +4 -3
  3. package/dist/lib/http2/browser/browserparser.d.ts.map +1 -1
  4. package/dist/lib/http2/node/capsuleparser.d.ts +3 -2
  5. package/dist/lib/http2/node/capsuleparser.d.ts.map +1 -1
  6. package/dist/lib/http2/node/client.d.ts.map +1 -1
  7. package/dist/lib/http2/node/server.d.ts.map +1 -1
  8. package/dist/lib/http2/node/websocketparser.d.ts +7 -6
  9. package/dist/lib/http2/node/websocketparser.d.ts.map +1 -1
  10. package/dist/lib/http2/parserbase.d.ts +16 -4
  11. package/dist/lib/http2/parserbase.d.ts.map +1 -1
  12. package/dist/lib/http2/parserbasehttp2.d.ts +9 -1
  13. package/dist/lib/http2/parserbasehttp2.d.ts.map +1 -1
  14. package/dist/lib/http2/session.d.ts.map +1 -1
  15. package/dist/lib/index.node.d.ts +1 -1
  16. package/dist/lib/index.node.d.ts.map +1 -1
  17. package/dist/lib/index.types.d.ts +1 -1
  18. package/dist/lib/index.types.d.ts.map +1 -1
  19. package/dist/lib/types.d.ts +9 -2
  20. package/dist/lib/types.d.ts.map +1 -1
  21. package/dist/lib/webtransport.node.d.ts +1 -0
  22. package/dist/lib/webtransport.node.d.ts.map +1 -1
  23. package/lib/http2/browser/browser.js +2 -1
  24. package/lib/http2/browser/browserparser.js +43 -7
  25. package/lib/http2/node/capsuleparser.js +41 -10
  26. package/lib/http2/node/client.js +23 -5
  27. package/lib/http2/node/server.js +53 -16
  28. package/lib/http2/node/websocketparser.js +42 -20
  29. package/lib/http2/parserbase.js +44 -7
  30. package/lib/http2/parserbasehttp2.js +15 -2
  31. package/lib/http2/session.js +1 -5
  32. package/lib/index.node.js +1 -1
  33. package/lib/index.types.js +1 -1
  34. package/lib/types.ts +10 -2
  35. package/lib/webtransport.node.js +10 -1
  36. package/lib/webtransportbase.js +1 -1
  37. package/old_test/test.js +13 -1
  38. package/package.json +3 -2
  39. package/readme.md +4 -1
  40. package/test/bidirectional-streams.spec.js +31 -0
  41. package/test/datagrams.spec.js +12 -0
  42. package/test/fixtures/quiche.browser.js +2 -0
  43. package/test/fixtures/quiche.js +1 -0
  44. package/test/fixtures/server.js +24 -0
  45. package/test/session.spec.js +13 -3
  46. package/test/stream-limits.spec.js +12 -0
  47. package/test/unidirectional-streams.spec.js +12 -0
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browser.js"],"names":[],"mappings":"AAOA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EA8BtD;IA3BC,aAA6B;IAC7B,iBAAyC;IACzC,uCACmD;IACnD,wCACoD;IAEpD,oCAC8C;IAC9C,qCAC+C;IAE/C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAC7D,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IACtB,wBAAwB;IAExB,WAFW,SAAS,CAEM;IAG5B;;OAEG;IACH,0BAFW;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,QAkExB;IAED;;OAEG;IACH,oBAFW,MAAM,QA+GhB;IAED,oBAGC;CACF"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browser.js"],"names":[],"mappings":"AAOA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EA8BtD;IA3BC,aAA6B;IAC7B,iBAAyC;IACzC,uCACmD;IACnD,wCACoD;IAEpD,oCAC8C;IAC9C,qCAC+C;IAE/C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAC7D,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IACtB,wBAAwB;IAExB,WAFW,SAAS,CAEM;IAG5B;;OAEG;IACH,0BAFW;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,QAkExB;IAED;;OAEG;IACH,oBAFW,MAAM,QAgHhB;IAED,oBAGC;CACF"}
@@ -17,7 +17,7 @@ export class BrowserParser extends ParserBase {
17
17
  /**
18
18
  * @param {import('../../types.js').ParserWebsocketInit} stream
19
19
  */
20
- constructor({ ws, nativesession, isclient, initialStreamSendWindowOffset, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../../types.js').ParserWebsocketInit);
20
+ constructor({ ws, nativesession, isclient, initialStreamSendWindowOffsetUnidi, initialStreamSendWindowOffsetBidi, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../../types.js').ParserWebsocketInit);
21
21
  ws: WebSocket;
22
22
  /** @type {Buffer|undefined} */
23
23
  saveddata: Buffer | undefined;
@@ -29,12 +29,13 @@ export class BrowserParser extends ParserBase {
29
29
  */
30
30
  parseData(data: Uint8Array): void;
31
31
  /**
32
- * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined}} bs
32
+ * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined, end?: () => void}} bs
33
33
  */
34
- writeCapsule({ type, headerVints, payload }: {
34
+ writeCapsule({ type, headerVints, payload, end }: {
35
35
  type: number;
36
36
  headerVints: Array<number | bigint>;
37
37
  payload: Uint8Array | undefined;
38
+ end?: () => void;
38
39
  }): boolean;
39
40
  }
40
41
  import { ParserBase } from "../parserbase.js";
@@ -1 +1 @@
1
- {"version":3,"file":"browserparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browserparser.js"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,gCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,SAAQ;CAAC,OAClD,SAAO,MAAM,QAyBtB;AAED;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IACpB;;OAEG;IACH,+KAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAoCtD;IAjBC,cAAY;IACZ,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,mBAAsB;IAaxB;;OAEG;IACH,gBAFW,UAAU,QAiHpB;IAED;;OAEG;IACH,6CAFU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,MAAM,SAAO,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAA;KAAC,WAsBzF;CAQF"}
1
+ {"version":3,"file":"browserparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browserparser.js"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,gCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,SAAQ;CAAC,OAClD,SAAO,MAAM,QAyBtB;AAED;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IACpB;;OAEG;IACH,uNAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAsCtD;IAjBC,cAAY;IACZ,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,mBAAsB;IAaxB;;OAEG;IACH,gBAFW,UAAU,QAkIpB;IAED;;OAEG;IACH,kDAFU;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,WAuB3G;CAQF"}
@@ -12,12 +12,13 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
12
12
  rstreamid: bigint | undefined;
13
13
  rfin: boolean | undefined;
14
14
  /**
15
- * @param{{type: Number, headerVints: Array<Number>, payload: Uint8Array|undefined}} bs
15
+ * @param{{type: Number, headerVints: Array<Number>, payload: Uint8Array|undefined, end?: () => void}} bs
16
16
  */
17
- writeCapsule({ type, headerVints, payload }: {
17
+ writeCapsule({ type, headerVints, payload, end }: {
18
18
  type: number;
19
19
  headerVints: Array<number>;
20
20
  payload: Uint8Array | undefined;
21
+ end?: () => void;
21
22
  }): boolean | undefined;
22
23
  }
23
24
  import { ParserBaseHttp2 } from "../parserbasehttp2.js";
@@ -1 +1 @@
1
- {"version":3,"file":"capsuleparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/capsuleparser.js"],"names":[],"mappings":"AAGA;IAsBI,aAAe;IACf,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAGxB;;OAEG;IACH,gBAFW,MAAM,QAiPhB;IA/CW,kBAA2D;IAGzD,8BAAyB;IACzB,0BAAsD;IA6CpE;;OAEG;IACH,6CAFU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAA;KAAC,uBAmBlF;CASF"}
1
+ {"version":3,"file":"capsuleparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/capsuleparser.js"],"names":[],"mappings":"AAQA;IAwBI,aAAe;IACf,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAGxB;;OAEG;IACH,gBAFW,MAAM,QAkQhB;IA/CW,kBAA2D;IAGzD,8BAAyB;IACzB,0BAAsD;IA6CpE;;OAEG;IACH,kDAFU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;KAAC,uBA0BpG;CASF"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/client.js"],"names":[],"mappings":";AAOA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAiCtD;IA5BC,aAAwB;IACxB,iBAAyC;IACzC,mEAAyE;IACzE,8BAAqD;IACrD,sBAA+C;IAC/C,mBAAyC;IACzC,uCACmD;IACnD,wCACoD;IAEpD,oCAC8C;IAC9C,qCAC+C;IAE/C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAC7D,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IAGxB,wBAwJC;IA5FC,0DAGC;IA2FH;;OAEG;IACH,oBAFW,MAAM,QA2ChB;IAED,oBAEC;CACF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/client.js"],"names":[],"mappings":";AAOA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAiCtD;IA5BC,aAAwB;IACxB,iBAAyC;IACzC,mEAAyE;IACzE,8BAAqD;IACrD,sBAA+C;IAC/C,mBAAyC;IACzC,uCACmD;IACnD,wCACoD;IAEpD,oCAC8C;IAC9C,qCAC+C;IAE/C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAC7D,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IAGxB,wBAyJC;IA5FC,0DAGC;IA2FH;;OAEG;IACH,oBAFW,MAAM,QA4DhB;IAED,oBAEC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/server.js"],"names":[],"mappings":";AASA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAoUtD;IA/TC,aAAwB;IACxB,eAA0B;IAE1B,aAAqC;IAMrC,uCACmD;IACnD,wCACoD;IAEpD,oCAA2E;IAC3E,qCAC2C;IAE3C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAE7D,sCAAsC;IACtC,OADW,OAAO,MAAM,EAAE,OAAO,CAAC,CACnB;IACf,2BAA8B;IAC9B,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IAEtB,2BAA8B;IAG9B,6CAeE;IAkF6B,4BAWb;IA+KpB;;OAEG;IACH,4BAFW,OAAO,OAAO,EAAE,mBAAmB,OAgB7C;IAED,oBAEC;IAED,mBAGC;IAED;;;;SAIK;IACL,iBAJW,MAAM,WACN,MAAM,aACN,OAAO,QAIjB;IAED;;OAEG;IACH,2BAFW,OAAO,QAIjB;IAED;;OAEG;IACH,cAFW,MAAM,QAIhB;IAED;;OAEG;IACH,+CAFW;QAAC,MAAM,EAAE,OAAO,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,iBA4BvE;IAED;;OAEG;IACH,0EAFW,OAAO,gBAAgB,EAAE,0BAA0B,QAwH7D;CACF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/server.js"],"names":[],"mappings":";AASA;IACE;;OAEG;IACH,kBAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAqVtD;IAhVC,aAAwB;IACxB,eAA0B;IAE1B,aAAqC;IAMrC,uCACmD;IACnD,wCACoD;IAEpD,oCAA2E;IAC3E,qCAC2C;IAE3C,2CACiD;IACjD,yCAC2D;IAE3D,4CACkD;IAClD,0CAC6D;IAE7D,sCAAsC;IACtC,OADW,OAAO,MAAM,EAAE,OAAO,CAAC,CACnB;IACf,2BAA8B;IAC9B,oDAAoD;IAEpD,OAFW,OAAO,kBAAkB,EAAE,UAAU,CAE1B;IAEtB,2BAA8B;IAG9B,6CAgBE;IAkF6B,4BAYb;IA8LpB;;OAEG;IACH,4BAFW,OAAO,OAAO,EAAE,mBAAmB,OAgB7C;IAED,oBAEC;IAED,mBAGC;IAED;;;;SAIK;IACL,iBAJW,MAAM,WACN,MAAM,aACN,OAAO,QAIjB;IAED;;OAEG;IACH,2BAFW,OAAO,QAIjB;IAED;;OAEG;IACH,cAFW,MAAM,QAIhB;IAED;;OAEG;IACH,+CAFW;QAAC,MAAM,EAAE,OAAO,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,iBA4BvE;IAED;;OAEG;IACH,0EAFW,OAAO,gBAAgB,EAAE,0BAA0B,QA4I7D;CACF"}
@@ -43,21 +43,22 @@ export class WebSocketParser extends ParserBaseHttp2 {
43
43
  rstreamid: bigint | undefined;
44
44
  rfin: boolean | undefined;
45
45
  /**
46
- * @param {Uint8Array} payload
46
+ * @param {Uint8Array} [payload]
47
47
  */
48
- sendCloseInt(payload: Uint8Array): void;
48
+ sendCloseInt(payload?: Uint8Array | undefined): void;
49
49
  closesend: boolean | undefined;
50
50
  /**
51
51
  * @param {Uint8Array} payload
52
52
  */
53
53
  sendPong(payload: Uint8Array): void;
54
54
  /**
55
- * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined}} bs
55
+ * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined, end?: () => void}} bs
56
56
  */
57
- writeCapsule({ type, headerVints, payload }: {
57
+ writeCapsule({ type, headerVints, payload, end }: {
58
58
  type: number;
59
59
  headerVints: Array<number | bigint>;
60
60
  payload: Uint8Array | undefined;
61
+ end?: () => void;
61
62
  }): boolean;
62
63
  /**
63
64
  * @param {{ offset: number; size?: number; buffer: Buffer; }} bs
@@ -76,11 +77,11 @@ export class WebSocketParser extends ParserBaseHttp2 {
76
77
  mask: Buffer;
77
78
  } | undefined;
78
79
  /**
79
- * @param {{ opcode: number; payload: Uint8Array; }} args
80
+ * @param {{ opcode: number; payload: Uint8Array|undefined; }} args
80
81
  */
81
82
  writeWSFrame({ opcode, payload }: {
82
83
  opcode: number;
83
- payload: Uint8Array;
84
+ payload: Uint8Array | undefined;
84
85
  }): boolean;
85
86
  }
86
87
  export type Http2Stream = import('node:http2').Http2Stream;
@@ -1 +1 @@
1
- {"version":3,"file":"websocketparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/websocketparser.js"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,qCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,MAC9C;IAAC,MAAM,SAAS;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,sBAmB3C;AA+GD;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IAsBlB,aAAe;IACf,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,gCAAmC;IACnC,iCAAoC;IAGtC;;OAEG;IACH,gBAFW,MAAM,QAmehB;IAhaW;;;kBAGC;IAKD,+BAAwB;IAsItB,qCAAmB;IAyEf;;OAEG;IACH,qCAAoB;IA2CpB,8BAAyB;IAuF7B,kBAA2D;IAGzD,8BAAyB;IACzB,0BAA8C;IAiF9D;;OAEG;IACH,sBAFW,UAAU,QAKpB;IADC,+BAAqB;IAGvB;;OAEG;IACH,kBAFW,UAAU,QAIpB;IAED;;OAEG;IACH,6CAFU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,MAAM,SAAO,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAA;KAAC,WAoDzF;IAED;;;OAGG;IACH,gBAHW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,6BAClD;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;;;kBA4B5D;IAED;;OAEG;IACH,kCAFW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAC;KAAE,WAkClD;CAcF;0BA70BY,OAAO,YAAY,EAAE,WAAW"}
1
+ {"version":3,"file":"websocketparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/websocketparser.js"],"names":[],"mappings":"AAmCA;;;GAGG;AACH,qCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,MAC9C;IAAC,MAAM,SAAS;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,sBAmB3C;AA+GD;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IAwBlB,aAAe;IACf,+BAA+B;IAC/B,WADW,MAAM,GAAC,SAAS,CACD;IAC1B,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,gCAAmC;IACnC,iCAAoC;IAGtC;;OAEG;IACH,gBAFW,MAAM,QAofhB;IAjbW;;;kBAGC;IAKD,+BAAwB;IAsItB,qCAAmB;IAyEf;;OAEG;IACH,qCAAoB;IA2CpB,8BAAyB;IAwG7B,kBAA2D;IAGzD,8BAAyB;IACzB,0BAA8C;IA0E9D;;OAEG;IACH,qDAGC;IADC,+BAAqB;IAGvB;;OAEG;IACH,kBAFW,UAAU,QAIpB;IAED;;OAEG;IACH,kDAFU;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,WAyD3G;IAED;;;OAGG;IACH,gBAHW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,6BAClD;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;;;kBA4B5D;IAED;;OAEG;IACH,kCAFW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAC;KAAE,WAkC5D;CAcF;0BA91BY,OAAO,YAAY,EAAE,WAAW"}
@@ -17,16 +17,19 @@ 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 CLOSE_WEBTRANSPORT_SESSION: number;
21
+ static DRAIN_WEBTRANSPORT_SESSION: number;
20
22
  static DATAGRAM: number;
21
23
  /**
22
24
  * @param {import('../types').ParserInit} arg
23
25
  */
24
- constructor({ nativesession, isclient, initialStreamSendWindowOffset, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../types').ParserInit);
26
+ constructor({ nativesession, isclient, initialStreamSendWindowOffsetBidi, initialStreamSendWindowOffsetUnidi, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../types').ParserInit);
25
27
  session: any;
26
28
  isclient: boolean;
27
29
  /** @type {boolean} */
28
30
  blocked: boolean;
29
- initialStreamSendWindowOffset: number;
31
+ initialStreamSendWindowOffsetUnidi: number;
32
+ initialStreamSendWindowOffsetBidi: number;
30
33
  initialStreamReceiveWindowOffset: number;
31
34
  streamShouldAutoTuneReceiveWindow: boolean;
32
35
  streamReceiveWindowSizeLimit: number;
@@ -39,12 +42,13 @@ export class ParserBase {
39
42
  parseData(data: Buffer | Uint8Array): void;
40
43
  /**
41
44
  * @abstract
42
- * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined}} bs
45
+ * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined, end?: () => void}} bs
43
46
  */
44
- writeCapsule({ type, headerVints, payload }: {
47
+ writeCapsule({ type, headerVints, payload, end }: {
45
48
  type: number;
46
49
  headerVints: Array<number | bigint>;
47
50
  payload: Uint8Array | undefined;
51
+ end?: () => void;
48
52
  }): void;
49
53
  /**
50
54
  * @param{{code: Number, reason: string}}arg
@@ -92,6 +96,14 @@ export class ParserBase {
92
96
  * @param {bigint|undefined} maxstreams
93
97
  */
94
98
  onStreamsBlockedUnidi(maxstreams: bigint | undefined): void;
99
+ /**
100
+ * @param {{code: number, reason: string}} opts
101
+ */
102
+ onCloseWebTransportSession({ code, reason }: {
103
+ code: number;
104
+ reason: string;
105
+ }): void;
106
+ onDrain(): void;
95
107
  /**
96
108
  * @param {number} code
97
109
  */
@@ -1 +1 @@
1
- {"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAMA;;;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,wBAAsB;IAEtB;;OAEG;IACH,2KAFW,OAAO,UAAU,EAAE,UAAU,EAsBvC;IAZC,aAA4B;IAC5B,kBAAwB;IACxB,sBAAsB;IACtB,SADW,OAAO,CACE;IAEpB,sCAAkE;IAClE,yCAAwE;IACxE,2CAA0E;IAC1E,qCAAgE;IAEhE,kDAAkD;IAClD,WADW,IAAI,MAAM,EAAC,uBAAuB,CAAC,CACpB;IAG5B;;;OAGG;IACH,gBAFW,MAAM,GAAC,UAAU,QAI3B;IAED;;;OAGG;IACH,6CAFU;QAAC,IAAI,SAAS;QAAC,WAAW,EAAE,MAAM,SAAO,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAA;KAAC,QAIzF;IAED;;OAEG;IACH,4BAFU;QAAC,IAAI,SAAS;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,QAEV;IAE9B;;OAEG;IACH,oBAFW,MAAM,uCAyChB;IAED,oBAIC;IAED;;OAEG;IACH,eAFW,MAAM,GAAC,SAAS,QAK1B;IAED;;;OAGG;IACH,0BAHW,MAAM,UACN,MAAM,QAQhB;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,uBAFW,MAAM,QAIhB;CACF"}
1
+ {"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAMA;;;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,0CAA0C;IAC1C,0CAA0C;IAC1C,wBAAsB;IAEtB;;OAEG;IACH,mNAFW,OAAO,UAAU,EAAE,UAAU,EAwBvC;IAbC,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;IAG5B;;;OAGG;IACH,gBAFW,MAAM,GAAC,UAAU,QAI3B;IAED;;;OAGG;IACH,kDAFU;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,QAI3G;IAED;;OAEG;IACH,4BAFU;QAAC,IAAI,SAAS;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,QAiBvC;IAED;;OAEG;IACH,oBAFW,MAAM,uCA4ChB;IAED,oBAIC;IAED;;OAEG;IACH,eAFW,MAAM,GAAC,SAAS,QAK1B;IAED;;;OAGG;IACH,0BAHW,MAAM,UACN,MAAM,QAQhB;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;;OAEG;IACH,uBAFW,MAAM,QAIhB;CACF"}
@@ -2,6 +2,14 @@
2
2
  /**
3
3
  * @typedef {import('node:http2').Http2Stream} Http2Stream
4
4
  */
5
+ /**
6
+ * @param{{offset: Number, buffer: Buffer, size: Number}} bs
7
+ */
8
+ export function readUint32(bs: {
9
+ offset: number;
10
+ buffer: Buffer;
11
+ size: number;
12
+ }): number | undefined;
5
13
  /**
6
14
  * @param{{offset: Number, buffer: Buffer, size: Number}} bs
7
15
  */
@@ -23,7 +31,7 @@ export class ParserBaseHttp2 extends ParserBase {
23
31
  /**
24
32
  * @param {import('../types').ParserHttp2Init} stream
25
33
  */
26
- constructor({ stream, nativesession, isclient, initialStreamSendWindowOffset, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../types').ParserHttp2Init);
34
+ constructor({ stream, nativesession, isclient, initialStreamSendWindowOffsetBidi, initialStreamSendWindowOffsetUnidi, initialStreamReceiveWindowOffset, streamShouldAutoTuneReceiveWindow, streamReceiveWindowSizeLimit }: import('../types').ParserHttp2Init);
27
35
  stream: import("http2").Http2Stream;
28
36
  }
29
37
  export type Http2Stream = import('node:http2').Http2Stream;
@@ -1 +1 @@
1
- {"version":3,"file":"parserbasehttp2.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbasehttp2.js"],"names":[],"mappings":";AAEA;;GAEG;AAEH;;GAEG;AACH,+BAFU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,sBAkBvD;AAED;;;GAGG;AACH,gCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,OAC9C,SAAO,MAAM,QA0BtB;AAED;IACE;;OAEG;IACH,mLAFW,OAAO,UAAU,EAAE,eAAe,EAmE5C;IAhDC,oCAAoB;CAiDvB;0BA5HY,OAAO,YAAY,EAAE,WAAW"}
1
+ {"version":3,"file":"parserbasehttp2.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbasehttp2.js"],"names":[],"mappings":";AAEA;;GAEG;AAEH;;GAEG;AAEH,+BAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,sBAQvD;AAED;;GAEG;AACH,+BAFU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,sBAkBvD;AAED;;;GAGG;AACH,gCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,SAAQ;CAAC,OAC9C,SAAO,MAAM,QA0BtB;AAED;IACE;;OAEG;IACH,2NAFW,OAAO,UAAU,EAAE,eAAe,EAqE5C;IAhDC,oCAAoB;CAiDvB;0BAzIY,OAAO,YAAY,EAAE,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/http2/session.js"],"names":[],"mappings":";AAiBA;IACE;;;;;;;;;;;SAWK;IACL,4RAXW;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAC,OAAO,CAAC;QAClE,YAAc,EAAC,OAAO,aAAa,EAAE,oBAAoB,CAAA;QACzD,gBAAkB,SAAS;QAC3B,mBAAqB,SAAS;QAC9B,2BAA6B,EAAE,OAAO,CAAA;QACtC,sBAAwB,SAAS;QACjC,+BAAiC,SAAS;QAC1C,kCAAoC,SAAS;QAC7C,gCAAkC,SAAS;QAC3C,mCAAqC,SAAQ;KAAC,EAqE9C;IApDC,WAAsB;IAEpB,gDAAoB;IAEpB,0BAAY;IAEd,uBAAoC;IACpC,kBAAwB;IACxB,+BAME;IACF,iCAME;IACF,gCAME;IACF,wBAAwB;IACxB,uBAAuB;IAwBzB,8BAIC;IAED;;OAEG;IACH,qBAFW,UAAU,QAWpB;IAED,wCAcC;IAED;;OAEG;IACH,+DAFW;QAAC,SAAS,EAAG,qBAAqB,GAAC,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAA;KAAC,WAYlG;IAED,uCAcC;IAED;;OAEG;IACH,8DAFW;QAAC,SAAS,EAAG,qBAAqB,GAAC,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAA;KAAC,WAYlG;IAED,0BAWC;IAED,2BAMC;IAKD,8BAA0B;IAC1B;;OAEG;IACH,wBAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAQ1C;IAED;;OAEG;IACH,+BAFW,MAAM,QAQhB;IAED;;OAEG;IACH,mBAFW,MAAM,QAIhB;IAED;;OAEG;IACH,0BAFW,MAAM,QAQhB;IAED,qBAEC;IAED;;OAEG;IACH,kCAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAU1C;IAED,mBAUC;IAED;;OAEG;IACH,qBAFa,OAAO,CAInB;IAED;;;OAGG;IACH,2BAHW,MAAM,kBACN,OAAO,QAUjB;CACF;0BAtSY,OAAO,OAAO,EAAE,WAAW;oCAC3B,OAAO,WAAW,EAAE,qBAAqB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/http2/session.js"],"names":[],"mappings":";AAiBA;IACE;;;;;;;;;;;SAWK;IACL,4RAXW;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAC,OAAO,CAAC;QAClE,YAAc,EAAC,OAAO,aAAa,EAAE,oBAAoB,CAAA;QACzD,gBAAkB,SAAS;QAC3B,mBAAqB,SAAS;QAC9B,2BAA6B,EAAE,OAAO,CAAA;QACtC,sBAAwB,SAAS;QACjC,+BAAiC,SAAS;QAC1C,kCAAoC,SAAS;QAC7C,gCAAkC,SAAS;QAC3C,mCAAqC,SAAQ;KAAC,EAqE9C;IApDC,WAAsB;IAEpB,gDAAoB;IAEpB,0BAAY;IAEd,uBAAoC;IACpC,kBAAwB;IACxB,+BAME;IACF,iCAME;IACF,gCAME;IACF,wBAAwB;IACxB,uBAAuB;IAwBzB,8BAIC;IAED;;OAEG;IACH,qBAFW,UAAU,QAWpB;IAED,wCAcC;IAED;;OAEG;IACH,+DAFW;QAAC,SAAS,EAAG,qBAAqB,GAAC,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAA;KAAC,WAYlG;IAED,uCAcC;IAED;;OAEG;IACH,8DAFW;QAAC,SAAS,EAAG,qBAAqB,GAAC,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,OAAO,CAAA;KAAC,WAYlG;IAED,0BAWC;IAED,2BAMC;IAKD,8BAA0B;IAC1B;;OAEG;IACH,wBAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAK1C;IAED;;OAEG;IACH,+BAFW,MAAM,QAQhB;IAED;;OAEG;IACH,mBAFW,MAAM,QAIhB;IAED;;OAEG;IACH,0BAFW,MAAM,QAQhB;IAED,qBAEC;IAED;;OAEG;IACH,kCAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAS1C;IAED,mBAUC;IAED;;OAEG;IACH,qBAFa,OAAO,CAInB;IAED;;;OAGG;IACH,2BAHW,MAAM,kBACN,OAAO,QAUjB;CACF;0BAlSY,OAAO,OAAO,EAAE,WAAW;oCAC3B,OAAO,WAAW,EAAE,qBAAqB"}
@@ -1,4 +1,3 @@
1
- export { WebTransport } from "./webtransport.node.js";
2
1
  /**
3
2
  * // Spec
4
3
  */
@@ -56,4 +55,5 @@ export type WebTransportSession = import('./types').WebTransportSessionImpl;
56
55
  */
57
56
  export type HttpServerInit = import('./types').HttpServerInit;
58
57
  export { HttpServer, Http3Server, Http2Server } from "./server.js";
58
+ export { WebTransport, quicheLoaded } from "./webtransport.node.js";
59
59
  //# sourceMappingURL=index.node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../../lib/index.node.js"],"names":[],"mappings":";;;;wCAOa,OAAO,OAAO,EAAE,yBAAyB;;;;gCACzC,OAAO,OAAO,EAAE,iBAAiB;;;;oCACjC,OAAO,OAAO,EAAE,qBAAqB;;;;+CACrC,OAAO,OAAO,EAAE,gCAAgC;;;;8CAChD,OAAO,OAAO,EAAE,+BAA+B;;;;0CAC/C,OAAO,OAAO,EAAE,2BAA2B;;;;qCAC3C,OAAO,OAAO,EAAE,sBAAsB;;;;6CACtC,OAAO,OAAO,EAAE,8BAA8B;;;;wCAC9C,OAAO,OAAO,EAAE,yBAAyB;;;;+BACzC,OAAO,OAAO,EAAE,gBAAgB;;;;kCAChC,OAAO,OAAO,EAAE,mBAAmB;;;;0CACnC,OAAO,OAAO,EAAE,2BAA2B;;;;kCAG3C,OAAO,SAAS,EAAE,uBAAuB;;;;6BACzC,OAAO,SAAS,EAAE,cAAc"}
1
+ {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../../lib/index.node.js"],"names":[],"mappings":";;;wCAOa,OAAO,OAAO,EAAE,yBAAyB;;;;gCACzC,OAAO,OAAO,EAAE,iBAAiB;;;;oCACjC,OAAO,OAAO,EAAE,qBAAqB;;;;+CACrC,OAAO,OAAO,EAAE,gCAAgC;;;;8CAChD,OAAO,OAAO,EAAE,+BAA+B;;;;0CAC/C,OAAO,OAAO,EAAE,2BAA2B;;;;qCAC3C,OAAO,OAAO,EAAE,sBAAsB;;;;6CACtC,OAAO,OAAO,EAAE,8BAA8B;;;;wCAC9C,OAAO,OAAO,EAAE,yBAAyB;;;;+BACzC,OAAO,OAAO,EAAE,gBAAgB;;;;kCAChC,OAAO,OAAO,EAAE,mBAAmB;;;;0CACnC,OAAO,OAAO,EAAE,2BAA2B;;;;kCAG3C,OAAO,SAAS,EAAE,uBAAuB;;;;6BACzC,OAAO,SAAS,EAAE,cAAc"}
@@ -1,4 +1,3 @@
1
- export { WebTransport } from "./webtransport.node.js";
2
1
  /**
3
2
  * // Spec
4
3
  */
@@ -56,5 +55,6 @@ export type WebTransportSession = import('./types').WebTransportSessionImpl;
56
55
  */
57
56
  export type HttpServerInit = import('./types').HttpServerInit;
58
57
  export { HttpServer, Http3Server, Http2Server } from "./server.js";
58
+ export { WebTransport, quicheLoaded } from "./webtransport.node.js";
59
59
  export { WebTransportPonyfill, WebTransportPolyfill } from "./webtransport.browser.js";
60
60
  //# sourceMappingURL=index.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.types.d.ts","sourceRoot":"","sources":["../../lib/index.types.js"],"names":[],"mappings":";;;;wCAOa,OAAO,OAAO,EAAE,yBAAyB;;;;gCACzC,OAAO,OAAO,EAAE,iBAAiB;;;;oCACjC,OAAO,OAAO,EAAE,qBAAqB;;;;+CACrC,OAAO,OAAO,EAAE,gCAAgC;;;;8CAChD,OAAO,OAAO,EAAE,+BAA+B;;;;0CAC/C,OAAO,OAAO,EAAE,2BAA2B;;;;qCAC3C,OAAO,OAAO,EAAE,sBAAsB;;;;6CACtC,OAAO,OAAO,EAAE,8BAA8B;;;;wCAC9C,OAAO,OAAO,EAAE,yBAAyB;;;;+BACzC,OAAO,OAAO,EAAE,gBAAgB;;;;kCAChC,OAAO,OAAO,EAAE,mBAAmB;;;;0CACnC,OAAO,OAAO,EAAE,2BAA2B;;;;kCAG3C,OAAO,SAAS,EAAE,uBAAuB;;;;6BACzC,OAAO,SAAS,EAAE,cAAc"}
1
+ {"version":3,"file":"index.types.d.ts","sourceRoot":"","sources":["../../lib/index.types.js"],"names":[],"mappings":";;;wCAOa,OAAO,OAAO,EAAE,yBAAyB;;;;gCACzC,OAAO,OAAO,EAAE,iBAAiB;;;;oCACjC,OAAO,OAAO,EAAE,qBAAqB;;;;+CACrC,OAAO,OAAO,EAAE,gCAAgC;;;;8CAChD,OAAO,OAAO,EAAE,+BAA+B;;;;0CAC/C,OAAO,OAAO,EAAE,2BAA2B;;;;qCAC3C,OAAO,OAAO,EAAE,sBAAsB;;;;6CACtC,OAAO,OAAO,EAAE,8BAA8B;;;;wCAC9C,OAAO,OAAO,EAAE,yBAAyB;;;;+BACzC,OAAO,OAAO,EAAE,gBAAgB;;;;kCAChC,OAAO,OAAO,EAAE,mBAAmB;;;;0CACnC,OAAO,OAAO,EAAE,2BAA2B;;;;kCAG3C,OAAO,SAAS,EAAE,uBAAuB;;;;6BACzC,OAAO,SAAS,EAAE,cAAc"}
@@ -231,10 +231,16 @@ export type WebTransportSessionState = 'connecting' | 'connected' | 'draining' |
231
231
  export interface WebTransportSessionImpl extends WebTransportSession {
232
232
  state: WebTransportSessionState;
233
233
  }
234
+ export type QUICHE_LOG_OFF = -1;
235
+ export type QUICHE_LOG_INFO = 0;
236
+ export type QUICHE_LOG_WARNING = 1;
237
+ export type QUICHE_LOG_ERROR = 2;
238
+ export type QUICHE_LOG_FATAL = 3;
239
+ export type QUICHE_LOG = QUICHE_LOG_OFF | QUICHE_LOG_INFO | QUICHE_LOG_WARNING | QUICHE_LOG_ERROR | QUICHE_LOG_FATAL;
234
240
  export interface HttpWebTransportInit extends WebTransportOptions {
235
241
  host: string;
236
242
  port: string | number;
237
- quicheLogVerbose?: number;
243
+ quicheLogVerbose?: QUICHE_LOG;
238
244
  forceIpv6?: boolean;
239
245
  localPort?: number;
240
246
  }
@@ -281,7 +287,8 @@ export type CreateParserFunction = (nativesession: Http2WebTransportSession) =>
281
287
  export interface ParserInit {
282
288
  isclient: boolean;
283
289
  nativesession: any;
284
- initialStreamSendWindowOffset: number;
290
+ initialStreamSendWindowOffsetBidi: number;
291
+ initialStreamSendWindowOffsetUnidi: number;
285
292
  initialStreamReceiveWindowOffset: number;
286
293
  streamShouldAutoTuneReceiveWindow: boolean;
287
294
  streamReceiveWindowSizeLimit: number;
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ export const quicheLoaded: Promise<any>;
1
2
  /**
2
3
  * @typedef {import('./dom').WebTransportCloseInfo} WebTransportCloseInfo
3
4
  * @typedef {import('./dom').WebTransportBidirectionalStream} WebTransportBidirectionalStream
@@ -1 +1 @@
1
- {"version":3,"file":"webtransport.node.d.ts","sourceRoot":"","sources":["../../lib/webtransport.node.js"],"names":[],"mappings":"AAiDA;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;CAuEC;oCAtFY,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"}
1
+ {"version":3,"file":"webtransport.node.d.ts","sourceRoot":"","sources":["../../lib/webtransport.node.js"],"names":[],"mappings":"AA0BA,wCA4BE;AAEF;;;;GAIG;AAEH;;;GAGG;AAEH;;;;GAIG;AACH;CAyEC;oCAxFY,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"}
@@ -127,7 +127,8 @@ export class Http2WebTransportBrowser {
127
127
  ws: this.clientInt,
128
128
  nativesession,
129
129
  isclient: true,
130
- initialStreamSendWindowOffset: 0,
130
+ initialStreamSendWindowOffsetBidi: 0,
131
+ initialStreamSendWindowOffsetUnidi: 0,
131
132
  initialStreamReceiveWindowOffset:
132
133
  this.initialStreamFlowControlWindow,
133
134
  streamShouldAutoTuneReceiveWindow:
@@ -23,6 +23,22 @@ function readVarInt(bs) {
23
23
  return val
24
24
  }
25
25
 
26
+ /**
27
+ * @param{{offset: Number, buffer: Uint8Array, size: Number}} bs
28
+ */
29
+ function readUint32(bs) {
30
+ if (bs.offset + 4 > bs.size) return undefined
31
+ let val = bs.buffer[bs.offset]
32
+ bs.offset++
33
+ val = (val << 8) | bs.buffer[bs.offset]
34
+ bs.offset++
35
+ val = (val << 8) | bs.buffer[bs.offset]
36
+ bs.offset++
37
+ val = (val << 8) | bs.buffer[bs.offset]
38
+ bs.offset++
39
+ return val
40
+ }
41
+
26
42
  /**
27
43
  * @param{{offset: Number, buffer: Uint8Array, size: Number}} bs
28
44
  * @param{Number|bigint} int
@@ -66,7 +82,8 @@ export class BrowserParser extends ParserBase {
66
82
  ws,
67
83
  nativesession,
68
84
  isclient,
69
- initialStreamSendWindowOffset,
85
+ initialStreamSendWindowOffsetUnidi,
86
+ initialStreamSendWindowOffsetBidi,
70
87
  initialStreamReceiveWindowOffset,
71
88
  streamShouldAutoTuneReceiveWindow,
72
89
  streamReceiveWindowSizeLimit
@@ -74,7 +91,8 @@ export class BrowserParser extends ParserBase {
74
91
  super({
75
92
  nativesession,
76
93
  isclient,
77
- initialStreamSendWindowOffset,
94
+ initialStreamSendWindowOffsetUnidi,
95
+ initialStreamSendWindowOffsetBidi,
78
96
  initialStreamReceiveWindowOffset,
79
97
  streamShouldAutoTuneReceiveWindow,
80
98
  streamReceiveWindowSizeLimit
@@ -197,6 +215,23 @@ export class BrowserParser extends ParserBase {
197
215
  case ParserBase.WT_STREAMS_BLOCKED_BIDI:
198
216
  this.onStreamsBlockedBidi(readVarInt(bufferstate))
199
217
  break
218
+ case ParserBase.CLOSE_WEBTRANSPORT_SESSION:
219
+ {
220
+ const code = readUint32(bufferstate) || 0
221
+ const decoder = new TextDecoder()
222
+ const reason = decoder.decode(
223
+ new Uint8Array(
224
+ bufferstate.buffer.buffer,
225
+ bufferstate.buffer.byteOffset + bufferstate.offset,
226
+ offsetend - bufferstate.offset
227
+ )
228
+ )
229
+ this.onCloseWebTransportSession({ code, reason })
230
+ }
231
+ break
232
+ case ParserBase.DRAIN_WEBTRANSPORT_SESSION:
233
+ this.onDrain()
234
+ break
200
235
  case ParserBase.DATAGRAM:
201
236
  this.session.jsobj.onDatagramReceived({
202
237
  datagram: new Uint8Array(
@@ -215,9 +250,9 @@ export class BrowserParser extends ParserBase {
215
250
  }
216
251
 
217
252
  /**
218
- * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined}} bs
253
+ * @param{{type: Number, headerVints: Array<Number|bigint>, payload: Uint8Array|undefined, end?: () => void}} bs
219
254
  */
220
- writeCapsule({ type, headerVints, payload }) {
255
+ writeCapsule({ type, headerVints, payload, end }) {
221
256
  let plength = 0
222
257
  for (const ind in headerVints) plength += lengthVarInt(headerVints[ind])
223
258
  plength += lengthVarInt(type)
@@ -231,6 +266,7 @@ export class BrowserParser extends ParserBase {
231
266
  const dest = new Uint8Array(cdata.buffer, cdata.byteOffset + hlength)
232
267
  if (payload) dest.set(payload)
233
268
  this.ws.send(cdata)
269
+ if (end) end()
234
270
 
235
271
  /* const blocked = this.ws.bufferedAmount > 1024 * 256
236
272
  // do something if blocked
@@ -240,9 +276,9 @@ export class BrowserParser extends ParserBase {
240
276
  }
241
277
 
242
278
  /**
243
- * @param{{code: Number, reason: string}}arg
279
+ * @param {number} code
244
280
  */
245
- sendClose({ code, reason }) {
246
- this.ws.close(1000, code.toString() + ':' + reason)
281
+ closeHttp2Stream(code) {
282
+ this.ws.close(1000)
247
283
  }
248
284
  }
@@ -1,4 +1,9 @@
1
- import { ParserBaseHttp2, readVarInt, writeVarInt } from '../parserbasehttp2.js'
1
+ import {
2
+ ParserBaseHttp2,
3
+ readVarInt,
4
+ readUint32,
5
+ writeVarInt
6
+ } from '../parserbasehttp2.js'
2
7
  import { lengthVarInt } from '../parserbase.js'
3
8
 
4
9
  export class Http2CapsuleParser extends ParserBaseHttp2 {
@@ -9,7 +14,8 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
9
14
  stream,
10
15
  nativesession,
11
16
  isclient,
12
- initialStreamSendWindowOffset,
17
+ initialStreamSendWindowOffsetBidi,
18
+ initialStreamSendWindowOffsetUnidi,
13
19
  initialStreamReceiveWindowOffset,
14
20
  streamShouldAutoTuneReceiveWindow,
15
21
  streamReceiveWindowSizeLimit
@@ -18,7 +24,8 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
18
24
  stream,
19
25
  nativesession,
20
26
  isclient,
21
- initialStreamSendWindowOffset,
27
+ initialStreamSendWindowOffsetBidi,
28
+ initialStreamSendWindowOffsetUnidi,
22
29
  initialStreamReceiveWindowOffset,
23
30
  streamShouldAutoTuneReceiveWindow,
24
31
  streamReceiveWindowSizeLimit
@@ -211,6 +218,23 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
211
218
  case Http2CapsuleParser.WT_STREAMS_BLOCKED_BIDI:
212
219
  this.onStreamsBlockedBidi(readVarInt(bufferstate))
213
220
  break
221
+ case Http2CapsuleParser.CLOSE_WEBTRANSPORT_SESSION:
222
+ {
223
+ const code = readUint32(bufferstate) || 0
224
+ const decoder = new TextDecoder()
225
+ const reason = decoder.decode(
226
+ new Uint8Array(
227
+ bufferstate.buffer.buffer,
228
+ bufferstate.buffer.byteOffset + bufferstate.offset,
229
+ offsetend - bufferstate.offset
230
+ )
231
+ )
232
+ this.onCloseWebTransportSession({ code, reason })
233
+ }
234
+ break
235
+ case Http2CapsuleParser.DRAIN_WEBTRANSPORT_SESSION:
236
+ this.onDrain()
237
+ break
214
238
  case Http2CapsuleParser.DATAGRAM:
215
239
  this.session.jsobj.onDatagramReceived({
216
240
  datagram: new Uint8Array(
@@ -275,9 +299,9 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
275
299
  }
276
300
 
277
301
  /**
278
- * @param{{type: Number, headerVints: Array<Number>, payload: Uint8Array|undefined}} bs
302
+ * @param{{type: Number, headerVints: Array<Number>, payload: Uint8Array|undefined, end?: () => void}} bs
279
303
  */
280
- writeCapsule({ type, headerVints, payload }) {
304
+ writeCapsule({ type, headerVints, payload, end }) {
281
305
  let length = 0
282
306
  for (const ind in headerVints) length += lengthVarInt(headerVints[ind])
283
307
  let headlength = length
@@ -289,11 +313,18 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
289
313
  writeVarInt(bufferstate, length)
290
314
  for (const ind in headerVints) writeVarInt(bufferstate, headerVints[ind])
291
315
  if (!this.stream) return
292
- let blocked = !this.stream.write(cdata)
293
- if (payload) blocked = !this.stream.write(payload) || blocked
294
- // do something if blocked
295
- if (blocked) this.blocked = true
296
- return blocked
316
+ // note it might be illegal to split the write
317
+ if (!end) {
318
+ let blocked = !this.stream.write(cdata)
319
+ if (payload) blocked = !this.stream.write(payload) || blocked
320
+ // do something if blocked
321
+ if (blocked) this.blocked = true
322
+ return blocked
323
+ } else {
324
+ if (!payload) this.stream.end(cdata, end)
325
+ else this.stream.write(cdata)
326
+ if (payload) this.stream.end(payload, end)
327
+ }
297
328
  }
298
329
 
299
330
  /**
@@ -91,7 +91,8 @@ export class Http2WebTransportClient {
91
91
  0x2b63: this.initialStreamFlowControlWindow, // SETTINGS_WEBTRANSPORT_INITIAL_MAX_STREAM_DATA_BIDI
92
92
  0x2b64: this.initialUnidirectionalStreams, // SETTINGS_WEBTRANSPORT_INITIAL_MAX_STREAMS_UNI
93
93
  0x2b65: this.initialBidirectionalStreams // SETTINGS_WEBTRANSPORT_INITIAL_MAX_STREAMS_BIDI
94
- }
94
+ },
95
+ remoteCustomSettings: [0x2b60, 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65]
95
96
  },
96
97
  localPort: this.localPort,
97
98
  // TODO: REMOVE BEFORE RELEASE; UNSAFE SETTING
@@ -210,6 +211,14 @@ export class Http2WebTransportClient {
210
211
  authority: this.hostname,
211
212
  origin: this.hostname
212
213
  })
214
+ const {
215
+ 0x2b65: remoteBidirectionalStreams = undefined,
216
+ 0x2b64: remoteUnidirectionalStreams = undefined,
217
+ 0x2b63: remoteBidirectionalStreamFlowControlWindow = undefined,
218
+ 0x2b62: remoteUnidirectionalStreamFlowControlWindow = undefined,
219
+ 0x2b61: remoteSessionFlowControlWindow = undefined
220
+ // @ts-ignore
221
+ } = this.clientInt.remoteSettings?.customSettings || {}
213
222
 
214
223
  const retObj = {
215
224
  header: stream.sentHeaders,
@@ -221,18 +230,27 @@ export class Http2WebTransportClient {
221
230
  stream,
222
231
  nativesession,
223
232
  isclient: true,
224
- initialStreamSendWindowOffset: this.initialStreamFlowControlWindow, // TODO, once supported by node, use initial settings
233
+ initialStreamSendWindowOffsetBidi:
234
+ remoteBidirectionalStreamFlowControlWindow ||
235
+ this.initialStreamFlowControlWindow,
236
+ initialStreamSendWindowOffsetUnidi:
237
+ remoteUnidirectionalStreamFlowControlWindow ||
238
+ this.initialStreamFlowControlWindow,
225
239
  initialStreamReceiveWindowOffset:
226
240
  this.initialStreamFlowControlWindow,
227
241
  streamShouldAutoTuneReceiveWindow:
228
242
  this.streamShouldAutoTuneReceiveWindow,
229
243
  streamReceiveWindowSizeLimit: this.streamFlowControlWindowSizeLimit
230
244
  }),
231
- initialBidirectionalSendStreams: this.initialBidirectionalStreams, // TODO, once supported by node, use initial settings
245
+ initialBidirectionalSendStreams:
246
+ remoteBidirectionalStreams || this.initialBidirectionalStreams,
232
247
  initialBidirectionalReceiveStreams: this.initialBidirectionalStreams,
233
- initialUnidirectionalSendStreams: this.initialUnidirectionalStreams, // TODO, once supported by node, use initial settings
248
+ initialUnidirectionalSendStreams:
249
+ remoteUnidirectionalStreams || this.initialUnidirectionalStreams,
234
250
  initialUnidirectionalReceiveStreams: this.initialUnidirectionalStreams,
235
- sendWindowOffset: this.sessionFlowControlWindowSizeLimit,
251
+ sendWindowOffset:
252
+ remoteSessionFlowControlWindow ||
253
+ this.sessionFlowControlWindowSizeLimit,
236
254
  receiveWindowOffset: this.sessionFlowControlWindowSizeLimit,
237
255
  shouldAutoTuneReceiveWindow: this.sessionShouldAutoTuneReceiveWindow,
238
256
  receiveWindowSizeLimit: this.sessionFlowControlWindowSizeLimit