@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.
- package/dist/lib/http2/browser/browserparser.d.ts.map +1 -1
- package/dist/lib/http2/node/websocketparser.d.ts.map +1 -1
- package/dist/lib/http2/parserbase.d.ts.map +1 -1
- package/lib/http2/browser/browserparser.js +8 -7
- package/lib/http2/node/websocketparser.js +20 -16
- package/lib/http2/parserbase.js +5 -2
- package/package.json +1 -1
|
@@ -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;
|
|
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;
|
|
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,
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
|
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 (!
|
|
336
|
+
if (!wsfin && opcode !== WebSocketParser.WS_CONTINUE) {
|
|
337
337
|
this.lastopcode = opcode
|
|
338
338
|
this.contframes = undefined // reset
|
|
339
339
|
}
|
|
340
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
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) {
|
package/lib/http2/parserbase.js
CHANGED
|
@@ -176,7 +176,10 @@ export class ParserBase {
|
|
|
176
176
|
* @param {bigint|undefined} val
|
|
177
177
|
*/
|
|
178
178
|
onMaxData(val) {
|
|
179
|
-
if (
|
|
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()
|