@fails-components/webtransport 1.6.10 → 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"}
@@ -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;IAEpC;;OAEG;IACH,YAFU,UAAU,EAAE,GAAE,SAAS,CAEN;IAC3B,qBAAqB;IA0FX;;;kBAGC;IAKD,+BAAwB;IAyHtB,qCAAmB;IA2Gf,8BAAyB;IA8G3B,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;0BAr2BY,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"}
@@ -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
  }
@@ -262,7 +262,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
262
262
  return
263
263
  }
264
264
  let curbyte = readByte(bufferstate)
265
- const fin = (curbyte & 0x80) >>> 7
265
+ const wsfin = !!((curbyte & 0x80) >>> 7)
266
266
  const rsv = (curbyte & 0x30) >>> 4
267
267
  if (rsv !== 0) {
268
268
  log('Rsv bits set, should not happen!')
@@ -333,11 +333,12 @@ export class WebSocketParser extends ParserBaseHttp2 {
333
333
  } else {
334
334
  this.maskcontext = undefined
335
335
  }
336
- if (!fin && opcode !== WebSocketParser.WS_CONTINUE) {
336
+ if (!wsfin && opcode !== WebSocketParser.WS_CONTINUE) {
337
337
  this.lastopcode = opcode
338
338
  this.contframes = undefined // reset
339
339
  }
340
- if (fin) this.lastopcode = undefined
340
+ const lastopcode = this.lastopcode // local copy
341
+ if (wsfin) this.lastopcode = undefined
341
342
  if (
342
343
  opcode === WebSocketParser.WS_CLOSE ||
343
344
  opcode === WebSocketParser.WS_PING ||
@@ -417,7 +418,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
417
418
  } else if (
418
419
  opcode === WebSocketParser.WS_BINARY ||
419
420
  (opcode === WebSocketParser.WS_CONTINUE &&
420
- this.lastopcode === WebSocketParser.WS_BINARY)
421
+ lastopcode === WebSocketParser.WS_BINARY)
421
422
  ) {
422
423
  let typelength
423
424
  let type
@@ -498,7 +499,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
498
499
  type !== ParserBase.WT_STREAM_WOFIN ||
499
500
  type !== ParserBase.WT_STREAM_WFIN
500
501
  ) {
501
- if (fin) {
502
+ if (wsfin) {
502
503
  wbufferstate = { ...bufferstate }
503
504
  if (this.contframes) {
504
505
  const newframes = getUint8ArraysfromBuffer(
@@ -578,18 +579,20 @@ export class WebSocketParser extends ParserBaseHttp2 {
578
579
  // TODO submit data
579
580
  if (offsetend - bufferstate.offset >= 0) {
580
581
  const fin =
582
+ wsfin /* The WS packet might be broken into pieces */ &&
581
583
  type === ParserBase.WT_STREAM_WFIN &&
582
584
  bufferstate.size >= length + offsetbegin
583
- object.recvData({
584
- data:
585
- offsetend - bufferstate.offset > 0
586
- ? getUint8ArraysfromBuffer(
587
- bufferstate,
588
- offsetend - bufferstate.offset
589
- )
590
- : undefined,
591
- fin
592
- })
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
+ })
593
596
  if (fin) object.onFin()
594
597
  }
595
598
  }
@@ -673,7 +676,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
673
676
  this.mode = 'c'
674
677
  if (typeof streamid !== 'undefined') {
675
678
  this.rstreamid = streamid
676
- this.rfin = type === ParserBase.WT_STREAM_WFIN
679
+ this.rfin = type === ParserBase.WT_STREAM_WFIN && wsfin
677
680
  }
678
681
  }
679
682
  advanceBufferToOffset(bufferstate, offsetend)
@@ -702,6 +705,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
702
705
  // TODO submitData
703
706
  const object = this.wtstreams.get(this.rstreamid)
704
707
  const fin =
708
+ !!this.rfin &&
705
709
  this.rtype === ParserBase.WT_STREAM_WFIN &&
706
710
  this.remainlength === clength
707
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()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fails-components/webtransport",
3
- "version": "1.6.10",
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
  ".": {