@fails-components/webtransport 1.6.9 → 1.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"browserparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browserparser.js"],"names":[],"mappings":"AAeA;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IACpB;;OAEG;IACH,uNAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAgDtD;IA3BC,cAAY;IACZ;QACE,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;cAAV,MAAM;QAEjB,2BAA2B;gBAAhB,UAAU,EAAE;QAEvB,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;sBAAV,MAAM;MAElB;IACD,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,mBAAsB;IA0JxB;;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,WA6B3G;CAaF"}
1
+ {"version":3,"file":"browserparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/browser/browserparser.js"],"names":[],"mappings":"AAeA;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IACpB;;OAEG;IACH,uNAFW,OAAO,gBAAgB,EAAE,mBAAmB,EAgDtD;IA3BC,cAAY;IACZ;QACE,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;cAAV,MAAM;QAEjB,2BAA2B;gBAAhB,UAAU,EAAE;QAEvB,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;sBAAV,MAAM;MAElB;IACD,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,mBAAsB;IA2JxB;;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,WA6B3G;CAaF"}
@@ -36,18 +36,18 @@ export class WebSocketParser extends ParserBaseHttp2 {
36
36
  rtype: number | undefined;
37
37
  bidirectionalLimitsSet: boolean;
38
38
  unidirectionalLimitsSet: boolean;
39
+ /**
40
+ * @type {Uint8Array[]| undefined}
41
+ */
42
+ contframes: Uint8Array[] | undefined;
43
+ remainlength: number;
39
44
  maskcontext: {
40
45
  mask: Uint8Array;
41
46
  offset: number;
42
47
  } | undefined;
43
48
  lastopcode: number | undefined;
44
49
  curtype: number | bigint | undefined;
45
- /**
46
- * @type {Uint8Array[]}
47
- */
48
- contframes: Uint8Array[] | undefined;
49
50
  cstreamid: bigint | undefined;
50
- remainlength: any;
51
51
  rstreamid: bigint | undefined;
52
52
  rfin: boolean | undefined;
53
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"websocketparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/websocketparser.js"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,qCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,IAAI,SAAS;IAAC,MAAM,SAAS;IAAC,YAAY,SAAQ;CAAC,MAC1F;IAAC,MAAM,SAAS;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,sBAmB3C;AAmHD;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IAwBlB,aAAe;IACf;QACE,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;cAAV,MAAM;QAEjB,2BAA2B;gBAAhB,UAAU,EAAE;QAEvB,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;sBAAV,MAAM;MAElB;IACD,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,gCAAmC;IACnC,iCAAoC;IA0F1B;;;kBAGC;IAKD,+BAAwB;IAwHtB,qCAAmB;IAkEf;;OAEG;IACH,qCAAoB;IAyCpB,8BAAyB;IA2G7B,kBAA2D;IAGzD,8BAAyB;IACzB,0BAA8C;IAkE9D;;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,WAoD3G;IAED;;;OAGG;IACH,gBAHU;QAAC,MAAM,SAAS;QAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,IAAI,SAAS;QAAC,MAAM,SAAS;QAAC,YAAY,SAAQ;KAAC,6BACzF;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;;;kBAyB5D;IAED;;OAEG;IACH,kCAFW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAC;KAAE,WAmC5D;CAmBF;0BAj2BY,OAAO,YAAY,EAAE,WAAW"}
1
+ {"version":3,"file":"websocketparser.d.ts","sourceRoot":"","sources":["../../../../lib/http2/node/websocketparser.js"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,qCAHU;IAAC,MAAM,SAAS;IAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,IAAI,SAAS;IAAC,MAAM,SAAS;IAAC,YAAY,SAAQ;CAAC,MAC1F;IAAC,MAAM,SAAS;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,sBAmB3C;AAmHD;IACE,2BAAwB;IACxB,uBAAoB;IACpB,yBAAsB;IACtB,wBAAqB;IACrB,uBAAoB;IACpB,uBAAoB;IAwBlB,aAAe;IACf;QACE,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;cAAV,MAAM;QAEjB,2BAA2B;gBAAhB,UAAU,EAAE;QAEvB,qBAAqB;gBAAV,MAAM;QAEjB,qBAAqB;sBAAV,MAAM;MAElB;IACD,+BAA+B;IAC/B,OADW,SAAO,SAAS,CACL;IAEtB,gCAAmC;IACnC,iCAAoC;IAEpC;;OAEG;IACH,YAFU,UAAU,EAAE,GAAE,SAAS,CAEN;IAC3B,qBAAqB;IA0FX;;;kBAGC;IAKD,+BAAwB;IA0HtB,qCAAmB;IA2Gf,8BAAyB;IAgH3B,8BAAyB;IACzB,0BAAuD;IAmEvE;;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,WAoD3G;IAED;;;OAGG;IACH,gBAHU;QAAC,MAAM,SAAS;QAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QAAC,IAAI,SAAS;QAAC,MAAM,SAAS;QAAC,YAAY,SAAQ;KAAC,6BACzF;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;;;kBAyB5D;IAED;;OAEG;IACH,kCAFW;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,GAAC,SAAS,CAAC;KAAE,WAmC5D;CAmBF;0BAz2BY,OAAO,YAAY,EAAE,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAOA;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,UAAU,EAAE,QAKtB;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,QAezC;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"}
1
+ {"version":3,"file":"parserbase.d.ts","sourceRoot":"","sources":["../../../lib/http2/parserbase.js"],"names":[],"mappings":"AAOA;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,UAAU,EAAE,QAKtB;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,QAgB1B;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,QAezC;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../lib/http2/stream.js"],"names":[],"mappings":"AAwBA;IACE;;;;;;;;;;;SAWK;IACL,uMAXW;QAAC,QAAQ,EAAE,MAAM,CAAC;QAC5B,cAAgB,EAAE,OAAO,CAAC;QAC1B,QAAU,EAAE,OAAO,CAAC;QACpB,aAAe,EAAE,UAAU,CAAA;QAC3B,gBAAkB,SAAS;QAC3B,mBAAqB,SAAS;QAC9B,2BAA6B,EAAE,OAAO,CAAA;QACtC,sBAAwB,SAAS;QACjC,qBAAuB,EAAE,cAAc,CAAC;QACxC,eAAiB,EAAE,eAAe,CAAA;KAAC,EAmDnC;IArCC,+CAA+C;IAE/C,OAFW,OAAO,WAAW,EAAE,YAAY,CAErB;IACtB,iBAAwB;IACxB,iCAAiC;IACjC,WADW,MAAM,WAAW,CAAC,CACV;IAEnB,0BAAkC;IAClC,mDAAmD;IACnD;;aADsC,OAAO;QACxB;IAErB,+BAOE;IACF,sCAAkD;IAClD,gEAAsC;IAEtC,eAAkB;IAClB,0BAA6B;IAC7B,sBAAwB;IACxB,qBAAwB;IACxB,kBAAkB;IAElB,yBAA4B;IAC5B,yBAA4B;IAU9B,8BAEC;IAED;;;;OAIG;IACH;QAHuC,IAAI,EAAhC,UAAU,EAAE,GAAC,SAAS;QACT,GAAG;aAwC1B;IAED,oBAwEC;IAED,qBAGC;IAED,mBAIC;IAED,oBAEC;IAED;;OAEG;IACH,qBAFW,aAAa,GAAC,aAAa,QAWrC;IAED,sBAGC;IAED,sBAGC;IAED,gBAGC;IAED;;OAEG;IACH,gCAYC;IAED,cAEC;IAED;;OAEG;IACH,gCAYC;IAED;;OAEG;IACH,gBAFW,UAAU,QAMpB;IAED,0BAEC;IAED,oBA6FC;IAED,oBAKC;IAED;;;OAGG;IACH,oDAFW;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,QAOlD;IAED;;OAEG;IACH,+BAFW,MAAM,QAShB;IAED;;OAEG;IACH,0BAFW,MAAM,QAQhB;IAED;;OAEG;IACH,mBAFW,MAAM,QAIhB;IAED,qBAEC;IAED;;OAEG;IACH,kCAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAM1C;IAED,mBAIC;CACF;;;;6CA1cY,OAAO,UAAU,EAAE,8BAA8B;;;;oCACjD,OAAO,UAAU,EAAE,qBAAqB;;;;8BACxC,OAAO,UAAU,EAAE,eAAe;;;;+BAClC,OAAO,UAAU,EAAE,gBAAgB;;;;uCACnC,OAAO,UAAU,EAAE,wBAAwB;;;;0BAE3C,OAAO,UAAU,EAAE,WAAW;;;;8BAC9B,OAAO,sBAAsB,EAAE,eAAe"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../lib/http2/stream.js"],"names":[],"mappings":"AAwBA;IACE;;;;;;;;;;;SAWK;IACL,uMAXW;QAAC,QAAQ,EAAE,MAAM,CAAC;QAC5B,cAAgB,EAAE,OAAO,CAAC;QAC1B,QAAU,EAAE,OAAO,CAAC;QACpB,aAAe,EAAE,UAAU,CAAA;QAC3B,gBAAkB,SAAS;QAC3B,mBAAqB,SAAS;QAC9B,2BAA6B,EAAE,OAAO,CAAA;QACtC,sBAAwB,SAAS;QACjC,qBAAuB,EAAE,cAAc,CAAC;QACxC,eAAiB,EAAE,eAAe,CAAA;KAAC,EAmDnC;IArCC,+CAA+C;IAE/C,OAFW,OAAO,WAAW,EAAE,YAAY,CAErB;IACtB,iBAAwB;IACxB,iCAAiC;IACjC,WADW,MAAM,WAAW,CAAC,CACV;IAEnB,0BAAkC;IAClC,mDAAmD;IACnD;;aADsC,OAAO;QACxB;IAErB,+BAOE;IACF,sCAAkD;IAClD,gEAAsC;IAEtC,eAAkB;IAClB,0BAA6B;IAC7B,sBAAwB;IACxB,qBAAwB;IACxB,kBAAkB;IAElB,yBAA4B;IAC5B,yBAA4B;IAU9B,8BAEC;IAED;;;;OAIG;IACH;QAHuC,IAAI,EAAhC,UAAU,EAAE,GAAC,SAAS;QACT,GAAG;aAwC1B;IAED,oBAwEC;IAED,qBAGC;IAED,mBAIC;IAED,oBAEC;IAED;;OAEG;IACH,qBAFW,aAAa,GAAC,aAAa,QAWrC;IAED,sBAGC;IAED,sBAGC;IAED,gBAKC;IAED;;OAEG;IACH,gCAWC;IAED,cAEC;IAED;;OAEG;IACH,gCAYC;IAED;;OAEG;IACH,gBAFW,UAAU,QAMpB;IAED,0BAEC;IAED,oBA6FC;IAED,oBAKC;IAED;;;OAGG;IACH,oDAFW;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,QAOlD;IAED;;OAEG;IACH,+BAFW,MAAM,QAShB;IAED;;OAEG;IACH,0BAFW,MAAM,QAQhB;IAED;;OAEG;IACH,mBAFW,MAAM,QAIhB;IAED,qBAEC;IAED;;OAEG;IACH,kCAFW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,QAM1C;IAED,mBAIC;CACF;;;;6CA3cY,OAAO,UAAU,EAAE,8BAA8B;;;;oCACjD,OAAO,UAAU,EAAE,qBAAqB;;;;8BACxC,OAAO,UAAU,EAAE,eAAe;;;;+BAClC,OAAO,UAAU,EAAE,gBAAgB;;;;uCACnC,OAAO,UAAU,EAAE,wBAAwB;;;;0BAE3C,OAAO,UAAU,EAAE,WAAW;;;;8BAC9B,OAAO,sBAAsB,EAAE,eAAe"}
@@ -131,13 +131,14 @@ export class BrowserParser extends ParserBase {
131
131
  if (offsetend - bufferstate.offset >= 0) {
132
132
  const fin = type === ParserBase.WT_STREAM_WFIN
133
133
  if (fin) object.onFin()
134
- object.recvData({
135
- data: getUint8ArraysfromBuffer(
136
- bufferstate,
137
- offsetend - bufferstate.offset
138
- ),
139
- fin
140
- })
134
+ if (fin || offsetend - bufferstate.offset > 0)
135
+ object.recvData({
136
+ data: getUint8ArraysfromBuffer(
137
+ bufferstate,
138
+ offsetend - bufferstate.offset
139
+ ),
140
+ fin
141
+ })
141
142
  }
142
143
  }
143
144
  }
@@ -175,7 +175,6 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
175
175
  const fin =
176
176
  type === Http2CapsuleParser.WT_STREAM_WFIN &&
177
177
  bufferstate.size >= length + offsetbegin
178
- if (fin) object.onFin()
179
178
  object.recvData({
180
179
  data:
181
180
  offsetend - bufferstate.offset > 0
@@ -186,6 +185,7 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
186
185
  : undefined,
187
186
  fin
188
187
  })
188
+ if (fin) object.onFin()
189
189
  }
190
190
  }
191
191
  break
@@ -231,6 +231,12 @@ export class WebSocketParser extends ParserBaseHttp2 {
231
231
 
232
232
  this.bidirectionalLimitsSet = false
233
233
  this.unidirectionalLimitsSet = false
234
+
235
+ /**
236
+ * @type {Uint8Array[]| undefined}
237
+ */
238
+ this.contframes = undefined
239
+ this.remainlength = 0
234
240
  }
235
241
 
236
242
  /**
@@ -256,7 +262,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
256
262
  return
257
263
  }
258
264
  let curbyte = readByte(bufferstate)
259
- const fin = (curbyte & 0x80) >>> 7
265
+ const wsfin = !!((curbyte & 0x80) >>> 7)
260
266
  const rsv = (curbyte & 0x30) >>> 4
261
267
  if (rsv !== 0) {
262
268
  log('Rsv bits set, should not happen!')
@@ -327,10 +333,12 @@ export class WebSocketParser extends ParserBaseHttp2 {
327
333
  } else {
328
334
  this.maskcontext = undefined
329
335
  }
330
- if (!fin && opcode !== WebSocketParser.WS_CONTINUE) {
336
+ if (!wsfin && opcode !== WebSocketParser.WS_CONTINUE) {
331
337
  this.lastopcode = opcode
338
+ this.contframes = undefined // reset
332
339
  }
333
- if (fin) this.lastopcode = undefined
340
+ const lastopcode = this.lastopcode // local copy
341
+ if (wsfin) this.lastopcode = undefined
334
342
  if (
335
343
  opcode === WebSocketParser.WS_CLOSE ||
336
344
  opcode === WebSocketParser.WS_PING ||
@@ -410,7 +418,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
410
418
  } else if (
411
419
  opcode === WebSocketParser.WS_BINARY ||
412
420
  (opcode === WebSocketParser.WS_CONTINUE &&
413
- this.lastopcode === WebSocketParser.WS_BINARY)
421
+ lastopcode === WebSocketParser.WS_BINARY)
414
422
  ) {
415
423
  let typelength
416
424
  let type
@@ -491,7 +499,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
491
499
  type !== ParserBase.WT_STREAM_WOFIN ||
492
500
  type !== ParserBase.WT_STREAM_WFIN
493
501
  ) {
494
- if (fin) {
502
+ if (wsfin) {
495
503
  wbufferstate = { ...bufferstate }
496
504
  if (this.contframes) {
497
505
  const newframes = getUint8ArraysfromBuffer(
@@ -511,13 +519,10 @@ export class WebSocketParser extends ParserBaseHttp2 {
511
519
  curBuf: 0,
512
520
  curBufOffset: 0
513
521
  }
522
+ this.contframes = undefined // reset
514
523
  }
515
524
  } else {
516
- if (!this.contframes)
517
- /**
518
- * @type {Uint8Array[]}
519
- */
520
- this.contframes = []
525
+ if (!this.contframes) this.contframes = []
521
526
  const newframes = getUint8ArraysfromBuffer(
522
527
  bufferstate,
523
528
  offsetend - bufferstate.offset
@@ -574,19 +579,21 @@ export class WebSocketParser extends ParserBaseHttp2 {
574
579
  // TODO submit data
575
580
  if (offsetend - bufferstate.offset >= 0) {
576
581
  const fin =
582
+ wsfin /* The WS packet might be broken into pieces */ &&
577
583
  type === ParserBase.WT_STREAM_WFIN &&
578
584
  bufferstate.size >= length + offsetbegin
585
+ if (fin || offsetend - bufferstate.offset > 0)
586
+ object.recvData({
587
+ data:
588
+ offsetend - bufferstate.offset > 0
589
+ ? getUint8ArraysfromBuffer(
590
+ bufferstate,
591
+ offsetend - bufferstate.offset
592
+ )
593
+ : undefined,
594
+ fin
595
+ })
579
596
  if (fin) object.onFin()
580
- object.recvData({
581
- data:
582
- offsetend - bufferstate.offset > 0
583
- ? getUint8ArraysfromBuffer(
584
- bufferstate,
585
- offsetend - bufferstate.offset
586
- )
587
- : undefined,
588
- fin
589
- })
590
597
  }
591
598
  }
592
599
  break
@@ -669,7 +676,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
669
676
  this.mode = 'c'
670
677
  if (typeof streamid !== 'undefined') {
671
678
  this.rstreamid = streamid
672
- this.rfin = type === ParserBase.WT_STREAM_WFIN
679
+ this.rfin = type === ParserBase.WT_STREAM_WFIN && wsfin
673
680
  }
674
681
  }
675
682
  advanceBufferToOffset(bufferstate, offsetend)
@@ -698,6 +705,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
698
705
  // TODO submitData
699
706
  const object = this.wtstreams.get(this.rstreamid)
700
707
  const fin =
708
+ !!this.rfin &&
701
709
  this.rtype === ParserBase.WT_STREAM_WFIN &&
702
710
  this.remainlength === clength
703
711
  if (object) {
@@ -176,7 +176,10 @@ export class ParserBase {
176
176
  * @param {bigint|undefined} val
177
177
  */
178
178
  onMaxData(val) {
179
- if (val && this.session.flowController.updateSendWindowOffset(val)) {
179
+ if (
180
+ typeof val !== 'undefined' &&
181
+ this.session.flowController.updateSendWindowOffset(val)
182
+ ) {
180
183
  let pending = false
181
184
  this.wtstreams.forEach((stream, streamid) => {
182
185
  if (stream.hasPendingData()) {
@@ -194,7 +197,7 @@ export class ParserBase {
194
197
  */
195
198
  onMaxStreamData(streamid, offset) {
196
199
  const object = this.wtstreams.get(streamid)
197
- if (object && offset) {
200
+ if (typeof object !== 'undefined' && offset) {
198
201
  if (object.flowController.updateSendWindowOffset(offset)) {
199
202
  this.scheduleDrainWriteStream(streamid)
200
203
  this.drainWrites()
@@ -310,7 +313,7 @@ export class ParserBase {
310
313
  */
311
314
  removeStream(streamid) {
312
315
  this.scheduler.Unregister(streamid)
313
- //this.wtstreams.delete(streamid) // why does this create troubles
316
+ this.wtstreams.delete(streamid)
314
317
  }
315
318
 
316
319
  /**
@@ -251,13 +251,14 @@ export class Http2WebTransportStream {
251
251
  onClose() {
252
252
  // ok, inform our session id manager
253
253
  this.streamIdManager.onStreamClosed(this.streamid)
254
+ // also remove from capsule parser
255
+ this.capsuleParser.removeStream(this.streamid)
254
256
  }
255
257
 
256
258
  /**
257
259
  * @param {Number} code
258
260
  */
259
261
  stopSending(code) {
260
- this.closeIncoming()
261
262
  this.capsuleParser.writeCapsule({
262
263
  type: ParserBase.WT_STOP_SENDING,
263
264
  headerVints: [this.streamid, code],
@@ -375,7 +376,7 @@ export class Http2WebTransportStream {
375
376
  }
376
377
  }
377
378
  if (finsend) {
378
- this.capsuleParser.removeStream(this.streamid)
379
+ this.closeOutgoing()
379
380
  return
380
381
  }
381
382
 
package/lib/session.js CHANGED
@@ -545,7 +545,7 @@ export class HttpWTSession {
545
545
  onClose(args) {
546
546
  delete this.objint // not valid any more
547
547
 
548
- if (this.state !== 'connected') {
548
+ if (this.state !== 'connected' && this.state !== 'draining') {
549
549
  log.error(
550
550
  'session was closed before state was "connected" - it was "%s"',
551
551
  this.state
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fails-components/webtransport",
3
- "version": "1.6.9",
3
+ "version": "1.6.11",
4
4
  "description": "A component to add webtransport support (server and client) to node.js using libquiche",
5
5
  "exports": {
6
6
  ".": {