@moqtap/codec 0.2.2 → 0.2.3
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/{chunk-LH4NTURO.js → chunk-2GODRVT5.js} +699 -589
- package/dist/{chunk-4RIXXEII.js → chunk-2ZT6CVSE.js} +274 -242
- package/dist/{chunk-XUUCOLWU.cjs → chunk-4N4INRE7.cjs} +332 -321
- package/dist/{chunk-PJRA2TQ5.js → chunk-73MWUKSJ.js} +274 -228
- package/dist/{chunk-NGVE2RZT.js → chunk-77MNXX3M.js} +549 -538
- package/dist/{chunk-A27S7HW7.js → chunk-7L43FE6P.js} +24 -3
- package/dist/{chunk-RVJAGE4S.cjs → chunk-ACQ4CUJP.cjs} +297 -265
- package/dist/{chunk-IBVM4DMJ.cjs → chunk-BGWGVINJ.cjs} +332 -321
- package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
- package/dist/{chunk-CXDHOMHG.js → chunk-CEH7ESNC.js} +549 -538
- package/dist/{chunk-ZBKE2QRQ.js → chunk-E6P74GDT.js} +686 -599
- package/dist/{chunk-FUFTMAQD.cjs → chunk-FPISPJ5N.cjs} +785 -497
- package/dist/{chunk-7IVGHMKJ.cjs → chunk-FZDIEHQL.cjs} +300 -124
- package/dist/{chunk-ZSPO2GF2.cjs → chunk-GLBQDG4L.cjs} +971 -884
- package/dist/chunk-HDWJ2GDE.js +24 -0
- package/dist/{chunk-4YJANAXU.cjs → chunk-JGG7CMSZ.cjs} +469 -434
- package/dist/{chunk-IV2H5CFI.cjs → chunk-JTVCOMBI.cjs} +298 -266
- package/dist/chunk-KNDYS3DK.cjs +24 -0
- package/dist/{chunk-BPNL5YFQ.cjs → chunk-KZCYQ7ED.cjs} +5 -5
- package/dist/{chunk-U2B3B42P.js → chunk-MC7W6PMI.js} +709 -421
- package/dist/{chunk-MFAP7R6L.js → chunk-MRJWLGYH.js} +1 -1
- package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
- package/dist/{chunk-TMNGRIPL.js → chunk-N2KBF5Q2.js} +285 -109
- package/dist/{chunk-IV2HRJVT.js → chunk-PZBPH2D7.js} +274 -242
- package/dist/{chunk-FWISIR26.cjs → chunk-RUPCJTC3.cjs} +24 -3
- package/dist/{chunk-G26SJ6XS.cjs → chunk-S74DWJE2.cjs} +1001 -925
- package/dist/{chunk-NUX5BHWO.js → chunk-U3IPZYPX.js} +1113 -1037
- package/dist/{chunk-HSVYF6XX.cjs → chunk-VJUUZ4W2.cjs} +1106 -996
- package/dist/{chunk-ST24APEO.js → chunk-XSNX2IUJ.js} +574 -539
- package/dist/{chunk-K4OLITS2.cjs → chunk-YIG2C3LF.cjs} +295 -249
- package/dist/{drafts/draft15/codec.d.ts → codec-B2cH-f5V.d.cts} +11 -10
- package/dist/codec-B5K73Bdj.d.ts +30 -0
- package/dist/{codec-C_HMXNK_.d.ts → codec-BFeliJFc.d.ts} +4 -10
- package/dist/codec-BUMjz0J4.d.cts +30 -0
- package/dist/{codec-D0x8-SCw.d.cts → codec-Bap882Fh.d.cts} +3 -9
- package/dist/codec-BdVMRMOI.d.ts +34 -0
- package/dist/codec-Bq-tLtfP.d.ts +30 -0
- package/dist/codec-BwFgpeQu.d.ts +23 -0
- package/dist/{codec-95k8CAu5.d.cts → codec-C4n1PS09.d.cts} +3 -9
- package/dist/{codec-BECYPfY8.d.ts → codec-CPlK3Pi5.d.ts} +3 -9
- package/dist/{drafts/draft08/codec.d.ts → codec-CPvPq0sb.d.cts} +11 -9
- package/dist/codec-DNUIgLqc.d.cts +23 -0
- package/dist/codec-DRcsBCsb.d.ts +23 -0
- package/dist/{codec-CAevkgf5.d.cts → codec-DY4QH364.d.cts} +4 -10
- package/dist/codec-DZhZSIii.d.cts +30 -0
- package/dist/{drafts/draft14/codec.d.ts → codec-FvGCxIhr.d.ts} +11 -10
- package/dist/codec-HgBgHkFI.d.cts +23 -0
- package/dist/codec-KXHvXZVb.d.cts +35 -0
- package/dist/{codec-BC5jfvMb.d.ts → codec-R8GrCPt2.d.ts} +3 -9
- package/dist/{codec-BsPU1vNC.d.ts → codec-SKBeHQk7.d.ts} +3 -11
- package/dist/draft10-session.d.cts +1 -1
- package/dist/draft10-session.d.ts +1 -1
- package/dist/draft10.cjs +4 -3
- package/dist/draft10.d.cts +15 -5
- package/dist/draft10.d.ts +15 -5
- package/dist/draft10.js +3 -2
- package/dist/draft11-session.d.cts +1 -1
- package/dist/draft11-session.d.ts +1 -1
- package/dist/draft11.cjs +4 -3
- package/dist/draft11.d.cts +13 -5
- package/dist/draft11.d.ts +13 -5
- package/dist/draft11.js +3 -2
- package/dist/draft12-session.d.cts +1 -1
- package/dist/draft12-session.d.ts +1 -1
- package/dist/draft12.cjs +4 -3
- package/dist/draft12.d.cts +13 -5
- package/dist/draft12.d.ts +13 -5
- package/dist/draft12.js +3 -2
- package/dist/draft13-session.d.cts +1 -1
- package/dist/draft13-session.d.ts +1 -1
- package/dist/draft13.cjs +4 -3
- package/dist/draft13.d.cts +13 -5
- package/dist/draft13.d.ts +13 -5
- package/dist/draft13.js +3 -2
- package/dist/draft14-session.d.cts +1 -1
- package/dist/draft14-session.d.ts +1 -1
- package/dist/draft14.cjs +4 -3
- package/dist/draft14.d.cts +59 -5
- package/dist/draft14.d.ts +59 -5
- package/dist/draft14.js +3 -2
- package/dist/draft15-session.d.cts +1 -1
- package/dist/draft15-session.d.ts +1 -1
- package/dist/draft15.cjs +4 -3
- package/dist/draft15.d.cts +48 -5
- package/dist/draft15.d.ts +48 -5
- package/dist/draft15.js +3 -2
- package/dist/draft16-session.d.cts +1 -1
- package/dist/draft16-session.d.ts +1 -1
- package/dist/draft16.cjs +4 -3
- package/dist/draft16.d.cts +37 -5
- package/dist/draft16.d.ts +37 -5
- package/dist/draft16.js +3 -2
- package/dist/draft17-session.d.cts +1 -1
- package/dist/draft17-session.d.ts +1 -1
- package/dist/draft17.cjs +4 -3
- package/dist/draft17.d.cts +16 -5
- package/dist/draft17.d.ts +16 -5
- package/dist/draft17.js +3 -2
- package/dist/draft7-session.cjs +3 -3
- package/dist/draft7-session.js +2 -2
- package/dist/draft7.cjs +18 -6
- package/dist/draft7.d.cts +84 -8
- package/dist/draft7.d.ts +84 -8
- package/dist/draft7.js +15 -3
- package/dist/draft8-session.d.cts +1 -1
- package/dist/draft8-session.d.ts +1 -1
- package/dist/draft8.cjs +4 -3
- package/dist/draft8.d.cts +15 -5
- package/dist/draft8.d.ts +15 -5
- package/dist/draft8.js +3 -2
- package/dist/draft9-session.d.cts +1 -1
- package/dist/draft9-session.d.ts +1 -1
- package/dist/draft9.cjs +4 -3
- package/dist/draft9.d.cts +15 -5
- package/dist/draft9.d.ts +15 -5
- package/dist/draft9.js +3 -2
- package/dist/index.cjs +25 -24
- package/dist/index.d.cts +20 -20
- package/dist/index.d.ts +38 -46
- package/dist/index.js +111 -93
- package/dist/session.cjs +3 -3
- package/dist/session.d.ts +8 -4
- package/dist/session.js +26 -32
- package/dist/{types-ERexTpT8.d.cts → types-8gUGeMgs.d.cts} +4 -1
- package/dist/{types-ERexTpT8.d.ts → types-8gUGeMgs.d.ts} +4 -1
- package/dist/{types-Cw4WE9dh.d.ts → types-B0FT5Qs2.d.cts} +9 -1
- package/dist/{types-Cw4WE9dh.d.cts → types-B0FT5Qs2.d.ts} +9 -1
- package/dist/{types-DqCDFqgB.d.cts → types-B9A2g05r.d.cts} +4 -1
- package/dist/{types-DqCDFqgB.d.ts → types-B9A2g05r.d.ts} +4 -1
- package/dist/{types-Bg6QYNVt.d.cts → types-BeAVNU-F.d.cts} +7 -2
- package/dist/{types-Bg6QYNVt.d.ts → types-BeAVNU-F.d.ts} +7 -2
- package/dist/{types-C_1HrqBl.d.ts → types-CDa7F5ct.d.cts} +7 -2
- package/dist/{types-C_1HrqBl.d.cts → types-CDa7F5ct.d.ts} +7 -2
- package/dist/{types-r-CasCf1.d.cts → types-D1dI_oTX.d.cts} +8 -1
- package/dist/{types-r-CasCf1.d.ts → types-D1dI_oTX.d.ts} +8 -1
- package/dist/{types-BTFeKYCb.d.ts → types-DKpsfD3i.d.cts} +19 -4
- package/dist/{types-BTFeKYCb.d.cts → types-DKpsfD3i.d.ts} +19 -4
- package/dist/{types-4VxSL2Ho.d.ts → types-DxSFvL2b.d.cts} +7 -1
- package/dist/{types-4VxSL2Ho.d.cts → types-DxSFvL2b.d.ts} +7 -1
- package/dist/{types-B2afJZM-.d.ts → types-Pme7sua0.d.cts} +4 -1
- package/dist/{types-B2afJZM-.d.cts → types-Pme7sua0.d.ts} +4 -1
- package/dist/{types-D5gNQiDj.d.ts → types-gQsr0AAA.d.cts} +9 -1
- package/dist/{types-D5gNQiDj.d.cts → types-gQsr0AAA.d.ts} +9 -1
- package/package.json +192 -192
- package/src/core/buffer-reader.ts +130 -114
- package/src/core/buffer-writer.ts +100 -91
- package/src/core/hex.ts +7 -3
- package/src/drafts/draft07/codec.ts +14 -9
- package/src/drafts/draft07/data-streams.ts +240 -240
- package/src/drafts/draft07/varint.ts +51 -23
- package/src/drafts/draft08/codec.ts +19 -10
- package/src/drafts/draft08/data-streams.ts +359 -359
- package/src/drafts/draft09/codec.ts +19 -10
- package/src/drafts/draft09/data-streams.ts +332 -332
- package/src/drafts/draft10/codec.ts +19 -10
- package/src/drafts/draft10/data-streams.ts +332 -332
- package/src/drafts/draft11/codec.ts +19 -10
- package/src/drafts/draft11/data-streams.ts +269 -269
- package/src/drafts/draft12/codec.ts +19 -10
- package/src/drafts/draft12/data-streams.ts +275 -275
- package/src/drafts/draft13/codec.ts +19 -10
- package/src/drafts/draft13/data-streams.ts +275 -275
- package/src/drafts/draft14/codec.ts +19 -10
- package/src/drafts/draft14/data-streams.ts +813 -798
- package/src/drafts/draft15/codec.ts +21 -12
- package/src/drafts/draft15/data-streams.ts +794 -778
- package/src/drafts/draft16/codec.ts +21 -12
- package/src/drafts/draft16/data-streams.ts +789 -773
- package/src/drafts/draft17/codec.ts +21 -12
- package/src/drafts/draft17/data-streams.ts +758 -742
- package/dist/codec-AFuOxfsO.d.ts +0 -60
- package/dist/codec-B-UJ5Iow.d.cts +0 -75
- package/dist/codec-BvpuF-6u.d.cts +0 -39
- package/dist/codec-C8jZI5Cx.d.cts +0 -39
- package/dist/codec-CSUqCrRs.d.ts +0 -39
- package/dist/codec-CpuvYTSV.d.cts +0 -86
- package/dist/codec-D7ARhpG1.d.ts +0 -75
- package/dist/codec-DNAUGshO.d.cts +0 -60
- package/dist/codec-DPx_QNn0.d.ts +0 -31
- package/dist/codec-DRhCx_hw.d.ts +0 -86
- package/dist/codec-Db7YPe3l.d.ts +0 -31
- package/dist/codec-axkJpb7D.d.cts +0 -31
- package/dist/codec-ujAbFaep.d.cts +0 -31
- package/dist/core/buffer-reader.d.ts +0 -15
- package/dist/core/buffer-reader.d.ts.map +0 -1
- package/dist/core/buffer-reader.js +0 -98
- package/dist/core/buffer-reader.js.map +0 -1
- package/dist/core/buffer-writer.d.ts +0 -16
- package/dist/core/buffer-writer.d.ts.map +0 -1
- package/dist/core/buffer-writer.js +0 -86
- package/dist/core/buffer-writer.js.map +0 -1
- package/dist/core/errors.d.ts +0 -2
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -2
- package/dist/core/errors.js.map +0 -1
- package/dist/core/hex.d.ts +0 -5
- package/dist/core/hex.d.ts.map +0 -1
- package/dist/core/hex.js +0 -17
- package/dist/core/hex.js.map +0 -1
- package/dist/core/session-types.d.ts +0 -99
- package/dist/core/session-types.d.ts.map +0 -1
- package/dist/core/session-types.js +0 -2
- package/dist/core/session-types.js.map +0 -1
- package/dist/core/types.d.ts +0 -235
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -11
- package/dist/core/types.js.map +0 -1
- package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
- package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/announce-fsm.js +0 -2
- package/dist/drafts/draft07/announce-fsm.js.map +0 -1
- package/dist/drafts/draft07/codec.d.ts +0 -17
- package/dist/drafts/draft07/codec.d.ts.map +0 -1
- package/dist/drafts/draft07/codec.js +0 -722
- package/dist/drafts/draft07/codec.js.map +0 -1
- package/dist/drafts/draft07/data-streams.d.ts +0 -9
- package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft07/data-streams.js +0 -228
- package/dist/drafts/draft07/data-streams.js.map +0 -1
- package/dist/drafts/draft07/index.d.ts +0 -14
- package/dist/drafts/draft07/index.d.ts.map +0 -1
- package/dist/drafts/draft07/index.js +0 -18
- package/dist/drafts/draft07/index.js.map +0 -1
- package/dist/drafts/draft07/messages.d.ts +0 -32
- package/dist/drafts/draft07/messages.d.ts.map +0 -1
- package/dist/drafts/draft07/messages.js +0 -42
- package/dist/drafts/draft07/messages.js.map +0 -1
- package/dist/drafts/draft07/parameters.d.ts +0 -4
- package/dist/drafts/draft07/parameters.d.ts.map +0 -1
- package/dist/drafts/draft07/parameters.js +0 -10
- package/dist/drafts/draft07/parameters.js.map +0 -1
- package/dist/drafts/draft07/rules.d.ts +0 -8
- package/dist/drafts/draft07/rules.d.ts.map +0 -1
- package/dist/drafts/draft07/rules.js +0 -95
- package/dist/drafts/draft07/rules.js.map +0 -1
- package/dist/drafts/draft07/session-fsm.d.ts +0 -38
- package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/session-fsm.js +0 -354
- package/dist/drafts/draft07/session-fsm.js.map +0 -1
- package/dist/drafts/draft07/session.d.ts +0 -4
- package/dist/drafts/draft07/session.d.ts.map +0 -1
- package/dist/drafts/draft07/session.js +0 -5
- package/dist/drafts/draft07/session.js.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
- package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.js +0 -2
- package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
- package/dist/drafts/draft07/types.d.ts +0 -61
- package/dist/drafts/draft07/types.d.ts.map +0 -1
- package/dist/drafts/draft07/types.js +0 -4
- package/dist/drafts/draft07/types.js.map +0 -1
- package/dist/drafts/draft07/varint.d.ts +0 -4
- package/dist/drafts/draft07/varint.d.ts.map +0 -1
- package/dist/drafts/draft07/varint.js +0 -22
- package/dist/drafts/draft07/varint.js.map +0 -1
- package/dist/drafts/draft08/codec.d.ts.map +0 -1
- package/dist/drafts/draft08/codec.js +0 -729
- package/dist/drafts/draft08/codec.js.map +0 -1
- package/dist/drafts/draft08/data-streams.d.ts +0 -12
- package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft08/data-streams.js +0 -345
- package/dist/drafts/draft08/data-streams.js.map +0 -1
- package/dist/drafts/draft08/index.d.ts +0 -9
- package/dist/drafts/draft08/index.d.ts.map +0 -1
- package/dist/drafts/draft08/index.js +0 -7
- package/dist/drafts/draft08/index.js.map +0 -1
- package/dist/drafts/draft08/messages.d.ts +0 -34
- package/dist/drafts/draft08/messages.d.ts.map +0 -1
- package/dist/drafts/draft08/messages.js +0 -66
- package/dist/drafts/draft08/messages.js.map +0 -1
- package/dist/drafts/draft08/rules.d.ts +0 -8
- package/dist/drafts/draft08/rules.d.ts.map +0 -1
- package/dist/drafts/draft08/rules.js +0 -83
- package/dist/drafts/draft08/rules.js.map +0 -1
- package/dist/drafts/draft08/session-fsm.d.ts +0 -47
- package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft08/session-fsm.js +0 -483
- package/dist/drafts/draft08/session-fsm.js.map +0 -1
- package/dist/drafts/draft08/session.d.ts +0 -5
- package/dist/drafts/draft08/session.d.ts.map +0 -1
- package/dist/drafts/draft08/session.js +0 -5
- package/dist/drafts/draft08/session.js.map +0 -1
- package/dist/drafts/draft08/types.d.ts +0 -268
- package/dist/drafts/draft08/types.d.ts.map +0 -1
- package/dist/drafts/draft08/types.js +0 -4
- package/dist/drafts/draft08/types.js.map +0 -1
- package/dist/drafts/draft09/codec.d.ts +0 -21
- package/dist/drafts/draft09/codec.d.ts.map +0 -1
- package/dist/drafts/draft09/codec.js +0 -721
- package/dist/drafts/draft09/codec.js.map +0 -1
- package/dist/drafts/draft09/data-streams.d.ts +0 -12
- package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft09/data-streams.js +0 -307
- package/dist/drafts/draft09/data-streams.js.map +0 -1
- package/dist/drafts/draft09/index.d.ts +0 -9
- package/dist/drafts/draft09/index.d.ts.map +0 -1
- package/dist/drafts/draft09/index.js +0 -7
- package/dist/drafts/draft09/index.js.map +0 -1
- package/dist/drafts/draft09/messages.d.ts +0 -34
- package/dist/drafts/draft09/messages.d.ts.map +0 -1
- package/dist/drafts/draft09/messages.js +0 -66
- package/dist/drafts/draft09/messages.js.map +0 -1
- package/dist/drafts/draft09/rules.d.ts +0 -8
- package/dist/drafts/draft09/rules.d.ts.map +0 -1
- package/dist/drafts/draft09/rules.js +0 -83
- package/dist/drafts/draft09/rules.js.map +0 -1
- package/dist/drafts/draft09/session-fsm.d.ts +0 -47
- package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft09/session-fsm.js +0 -483
- package/dist/drafts/draft09/session-fsm.js.map +0 -1
- package/dist/drafts/draft09/session.d.ts +0 -5
- package/dist/drafts/draft09/session.d.ts.map +0 -1
- package/dist/drafts/draft09/session.js +0 -5
- package/dist/drafts/draft09/session.js.map +0 -1
- package/dist/drafts/draft09/types.d.ts +0 -268
- package/dist/drafts/draft09/types.d.ts.map +0 -1
- package/dist/drafts/draft09/types.js +0 -4
- package/dist/drafts/draft09/types.js.map +0 -1
- package/dist/drafts/draft10/codec.d.ts +0 -21
- package/dist/drafts/draft10/codec.d.ts.map +0 -1
- package/dist/drafts/draft10/codec.js +0 -721
- package/dist/drafts/draft10/codec.js.map +0 -1
- package/dist/drafts/draft10/data-streams.d.ts +0 -12
- package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft10/data-streams.js +0 -307
- package/dist/drafts/draft10/data-streams.js.map +0 -1
- package/dist/drafts/draft10/index.d.ts +0 -9
- package/dist/drafts/draft10/index.d.ts.map +0 -1
- package/dist/drafts/draft10/index.js +0 -7
- package/dist/drafts/draft10/index.js.map +0 -1
- package/dist/drafts/draft10/messages.d.ts +0 -34
- package/dist/drafts/draft10/messages.d.ts.map +0 -1
- package/dist/drafts/draft10/messages.js +0 -66
- package/dist/drafts/draft10/messages.js.map +0 -1
- package/dist/drafts/draft10/rules.d.ts +0 -8
- package/dist/drafts/draft10/rules.d.ts.map +0 -1
- package/dist/drafts/draft10/rules.js +0 -83
- package/dist/drafts/draft10/rules.js.map +0 -1
- package/dist/drafts/draft10/session-fsm.d.ts +0 -47
- package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft10/session-fsm.js +0 -483
- package/dist/drafts/draft10/session-fsm.js.map +0 -1
- package/dist/drafts/draft10/session.d.ts +0 -5
- package/dist/drafts/draft10/session.d.ts.map +0 -1
- package/dist/drafts/draft10/session.js +0 -5
- package/dist/drafts/draft10/session.js.map +0 -1
- package/dist/drafts/draft10/types.d.ts +0 -268
- package/dist/drafts/draft10/types.d.ts.map +0 -1
- package/dist/drafts/draft10/types.js +0 -4
- package/dist/drafts/draft10/types.js.map +0 -1
- package/dist/drafts/draft11/codec.d.ts +0 -25
- package/dist/drafts/draft11/codec.d.ts.map +0 -1
- package/dist/drafts/draft11/codec.js +0 -775
- package/dist/drafts/draft11/codec.js.map +0 -1
- package/dist/drafts/draft11/data-streams.d.ts +0 -10
- package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft11/data-streams.js +0 -253
- package/dist/drafts/draft11/data-streams.js.map +0 -1
- package/dist/drafts/draft11/index.d.ts +0 -9
- package/dist/drafts/draft11/index.d.ts.map +0 -1
- package/dist/drafts/draft11/index.js +0 -7
- package/dist/drafts/draft11/index.js.map +0 -1
- package/dist/drafts/draft11/messages.d.ts +0 -33
- package/dist/drafts/draft11/messages.d.ts.map +0 -1
- package/dist/drafts/draft11/messages.js +0 -65
- package/dist/drafts/draft11/messages.js.map +0 -1
- package/dist/drafts/draft11/rules.d.ts +0 -8
- package/dist/drafts/draft11/rules.d.ts.map +0 -1
- package/dist/drafts/draft11/rules.js +0 -88
- package/dist/drafts/draft11/rules.js.map +0 -1
- package/dist/drafts/draft11/session-fsm.d.ts +0 -52
- package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft11/session-fsm.js +0 -530
- package/dist/drafts/draft11/session-fsm.js.map +0 -1
- package/dist/drafts/draft11/session.d.ts +0 -5
- package/dist/drafts/draft11/session.d.ts.map +0 -1
- package/dist/drafts/draft11/session.js +0 -5
- package/dist/drafts/draft11/session.js.map +0 -1
- package/dist/drafts/draft11/types.d.ts +0 -266
- package/dist/drafts/draft11/types.d.ts.map +0 -1
- package/dist/drafts/draft11/types.js +0 -4
- package/dist/drafts/draft11/types.js.map +0 -1
- package/dist/drafts/draft12/codec.d.ts +0 -27
- package/dist/drafts/draft12/codec.d.ts.map +0 -1
- package/dist/drafts/draft12/codec.js +0 -918
- package/dist/drafts/draft12/codec.js.map +0 -1
- package/dist/drafts/draft12/data-streams.d.ts +0 -10
- package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft12/data-streams.js +0 -254
- package/dist/drafts/draft12/data-streams.js.map +0 -1
- package/dist/drafts/draft12/index.d.ts +0 -9
- package/dist/drafts/draft12/index.d.ts.map +0 -1
- package/dist/drafts/draft12/index.js +0 -7
- package/dist/drafts/draft12/index.js.map +0 -1
- package/dist/drafts/draft12/messages.d.ts +0 -37
- package/dist/drafts/draft12/messages.d.ts.map +0 -1
- package/dist/drafts/draft12/messages.js +0 -77
- package/dist/drafts/draft12/messages.js.map +0 -1
- package/dist/drafts/draft12/rules.d.ts +0 -8
- package/dist/drafts/draft12/rules.d.ts.map +0 -1
- package/dist/drafts/draft12/rules.js +0 -94
- package/dist/drafts/draft12/rules.js.map +0 -1
- package/dist/drafts/draft12/session-fsm.d.ts +0 -55
- package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft12/session-fsm.js +0 -569
- package/dist/drafts/draft12/session-fsm.js.map +0 -1
- package/dist/drafts/draft12/session.d.ts +0 -5
- package/dist/drafts/draft12/session.d.ts.map +0 -1
- package/dist/drafts/draft12/session.js +0 -5
- package/dist/drafts/draft12/session.js.map +0 -1
- package/dist/drafts/draft12/types.d.ts +0 -294
- package/dist/drafts/draft12/types.d.ts.map +0 -1
- package/dist/drafts/draft12/types.js +0 -4
- package/dist/drafts/draft12/types.js.map +0 -1
- package/dist/drafts/draft13/codec.d.ts +0 -27
- package/dist/drafts/draft13/codec.d.ts.map +0 -1
- package/dist/drafts/draft13/codec.js +0 -1000
- package/dist/drafts/draft13/codec.js.map +0 -1
- package/dist/drafts/draft13/data-streams.d.ts +0 -10
- package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft13/data-streams.js +0 -254
- package/dist/drafts/draft13/data-streams.js.map +0 -1
- package/dist/drafts/draft13/index.d.ts +0 -9
- package/dist/drafts/draft13/index.d.ts.map +0 -1
- package/dist/drafts/draft13/index.js +0 -7
- package/dist/drafts/draft13/index.js.map +0 -1
- package/dist/drafts/draft13/messages.d.ts +0 -38
- package/dist/drafts/draft13/messages.d.ts.map +0 -1
- package/dist/drafts/draft13/messages.js +0 -79
- package/dist/drafts/draft13/messages.js.map +0 -1
- package/dist/drafts/draft13/rules.d.ts +0 -8
- package/dist/drafts/draft13/rules.d.ts.map +0 -1
- package/dist/drafts/draft13/rules.js +0 -96
- package/dist/drafts/draft13/rules.js.map +0 -1
- package/dist/drafts/draft13/session-fsm.d.ts +0 -56
- package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft13/session-fsm.js +0 -581
- package/dist/drafts/draft13/session-fsm.js.map +0 -1
- package/dist/drafts/draft13/session.d.ts +0 -5
- package/dist/drafts/draft13/session.d.ts.map +0 -1
- package/dist/drafts/draft13/session.js +0 -5
- package/dist/drafts/draft13/session.js.map +0 -1
- package/dist/drafts/draft13/types.d.ts +0 -310
- package/dist/drafts/draft13/types.d.ts.map +0 -1
- package/dist/drafts/draft13/types.js +0 -4
- package/dist/drafts/draft13/types.js.map +0 -1
- package/dist/drafts/draft14/codec.d.ts.map +0 -1
- package/dist/drafts/draft14/codec.js +0 -752
- package/dist/drafts/draft14/codec.js.map +0 -1
- package/dist/drafts/draft14/data-streams.d.ts +0 -56
- package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft14/data-streams.js +0 -729
- package/dist/drafts/draft14/data-streams.js.map +0 -1
- package/dist/drafts/draft14/index.d.ts +0 -9
- package/dist/drafts/draft14/index.d.ts.map +0 -1
- package/dist/drafts/draft14/index.js +0 -7
- package/dist/drafts/draft14/index.js.map +0 -1
- package/dist/drafts/draft14/messages.d.ts +0 -36
- package/dist/drafts/draft14/messages.d.ts.map +0 -1
- package/dist/drafts/draft14/messages.js +0 -71
- package/dist/drafts/draft14/messages.js.map +0 -1
- package/dist/drafts/draft14/rules.d.ts +0 -8
- package/dist/drafts/draft14/rules.d.ts.map +0 -1
- package/dist/drafts/draft14/rules.js +0 -101
- package/dist/drafts/draft14/rules.js.map +0 -1
- package/dist/drafts/draft14/session-fsm.d.ts +0 -58
- package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft14/session-fsm.js +0 -648
- package/dist/drafts/draft14/session-fsm.js.map +0 -1
- package/dist/drafts/draft14/session.d.ts +0 -5
- package/dist/drafts/draft14/session.d.ts.map +0 -1
- package/dist/drafts/draft14/session.js +0 -5
- package/dist/drafts/draft14/session.js.map +0 -1
- package/dist/drafts/draft14/types.d.ts +0 -263
- package/dist/drafts/draft14/types.d.ts.map +0 -1
- package/dist/drafts/draft14/types.js +0 -4
- package/dist/drafts/draft14/types.js.map +0 -1
- package/dist/drafts/draft15/codec.d.ts.map +0 -1
- package/dist/drafts/draft15/codec.js +0 -742
- package/dist/drafts/draft15/codec.js.map +0 -1
- package/dist/drafts/draft15/data-streams.d.ts +0 -45
- package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft15/data-streams.js +0 -675
- package/dist/drafts/draft15/data-streams.js.map +0 -1
- package/dist/drafts/draft15/index.d.ts +0 -9
- package/dist/drafts/draft15/index.d.ts.map +0 -1
- package/dist/drafts/draft15/index.js +0 -7
- package/dist/drafts/draft15/index.js.map +0 -1
- package/dist/drafts/draft15/messages.d.ts +0 -31
- package/dist/drafts/draft15/messages.d.ts.map +0 -1
- package/dist/drafts/draft15/messages.js +0 -59
- package/dist/drafts/draft15/messages.js.map +0 -1
- package/dist/drafts/draft15/rules.d.ts +0 -8
- package/dist/drafts/draft15/rules.d.ts.map +0 -1
- package/dist/drafts/draft15/rules.js +0 -83
- package/dist/drafts/draft15/rules.js.map +0 -1
- package/dist/drafts/draft15/session-fsm.d.ts +0 -48
- package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft15/session-fsm.js +0 -479
- package/dist/drafts/draft15/session-fsm.js.map +0 -1
- package/dist/drafts/draft15/session.d.ts +0 -5
- package/dist/drafts/draft15/session.d.ts.map +0 -1
- package/dist/drafts/draft15/session.js +0 -5
- package/dist/drafts/draft15/session.js.map +0 -1
- package/dist/drafts/draft15/types.d.ts +0 -232
- package/dist/drafts/draft15/types.d.ts.map +0 -1
- package/dist/drafts/draft15/types.js +0 -4
- package/dist/drafts/draft15/types.js.map +0 -1
- package/dist/drafts/draft16/codec.d.ts +0 -29
- package/dist/drafts/draft16/codec.d.ts.map +0 -1
- package/dist/drafts/draft16/codec.js +0 -747
- package/dist/drafts/draft16/codec.js.map +0 -1
- package/dist/drafts/draft16/data-streams.d.ts +0 -34
- package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft16/data-streams.js +0 -667
- package/dist/drafts/draft16/data-streams.js.map +0 -1
- package/dist/drafts/draft16/index.d.ts +0 -9
- package/dist/drafts/draft16/index.d.ts.map +0 -1
- package/dist/drafts/draft16/index.js +0 -7
- package/dist/drafts/draft16/index.js.map +0 -1
- package/dist/drafts/draft16/messages.d.ts +0 -32
- package/dist/drafts/draft16/messages.d.ts.map +0 -1
- package/dist/drafts/draft16/messages.js +0 -62
- package/dist/drafts/draft16/messages.js.map +0 -1
- package/dist/drafts/draft16/rules.d.ts +0 -8
- package/dist/drafts/draft16/rules.d.ts.map +0 -1
- package/dist/drafts/draft16/rules.js +0 -84
- package/dist/drafts/draft16/rules.js.map +0 -1
- package/dist/drafts/draft16/session-fsm.d.ts +0 -48
- package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft16/session-fsm.js +0 -474
- package/dist/drafts/draft16/session-fsm.js.map +0 -1
- package/dist/drafts/draft16/session.d.ts +0 -5
- package/dist/drafts/draft16/session.d.ts.map +0 -1
- package/dist/drafts/draft16/session.js +0 -5
- package/dist/drafts/draft16/session.js.map +0 -1
- package/dist/drafts/draft16/types.d.ts +0 -238
- package/dist/drafts/draft16/types.d.ts.map +0 -1
- package/dist/drafts/draft16/types.js +0 -4
- package/dist/drafts/draft16/types.js.map +0 -1
- package/dist/drafts/draft17/codec.d.ts +0 -29
- package/dist/drafts/draft17/codec.d.ts.map +0 -1
- package/dist/drafts/draft17/codec.js +0 -799
- package/dist/drafts/draft17/codec.js.map +0 -1
- package/dist/drafts/draft17/data-streams.d.ts +0 -13
- package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft17/data-streams.js +0 -633
- package/dist/drafts/draft17/data-streams.js.map +0 -1
- package/dist/drafts/draft17/index.d.ts +0 -8
- package/dist/drafts/draft17/index.d.ts.map +0 -1
- package/dist/drafts/draft17/index.js +0 -6
- package/dist/drafts/draft17/index.js.map +0 -1
- package/dist/drafts/draft17/messages.d.ts +0 -25
- package/dist/drafts/draft17/messages.d.ts.map +0 -1
- package/dist/drafts/draft17/messages.js +0 -48
- package/dist/drafts/draft17/messages.js.map +0 -1
- package/dist/drafts/draft17/rules.d.ts +0 -8
- package/dist/drafts/draft17/rules.d.ts.map +0 -1
- package/dist/drafts/draft17/rules.js +0 -71
- package/dist/drafts/draft17/rules.js.map +0 -1
- package/dist/drafts/draft17/session-fsm.d.ts +0 -45
- package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft17/session-fsm.js +0 -328
- package/dist/drafts/draft17/session-fsm.js.map +0 -1
- package/dist/drafts/draft17/session.d.ts +0 -5
- package/dist/drafts/draft17/session.d.ts.map +0 -1
- package/dist/drafts/draft17/session.js +0 -6
- package/dist/drafts/draft17/session.js.map +0 -1
- package/dist/drafts/draft17/types.d.ts +0 -219
- package/dist/drafts/draft17/types.d.ts.map +0 -1
- package/dist/drafts/draft17/types.js +0 -3
- package/dist/drafts/draft17/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
var _chunkKNDYS3DKcjs = require('./chunk-KNDYS3DK.cjs');
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkRUPCJTC3cjs = require('./chunk-RUPCJTC3.cjs');
|
|
6
10
|
|
|
7
11
|
// src/drafts/draft15/messages.ts
|
|
8
12
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -62,379 +66,998 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
62
66
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
63
67
|
);
|
|
64
68
|
|
|
65
|
-
// src/drafts/draft15/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return bytes;
|
|
79
|
-
}
|
|
80
|
-
function encodeSetupParams(params, writer) {
|
|
81
|
-
let count = 0;
|
|
82
|
-
if (params.path !== void 0) count++;
|
|
83
|
-
if (params.max_request_id !== void 0) count++;
|
|
84
|
-
if (params.max_auth_token_cache_size !== void 0) count++;
|
|
85
|
-
if (params.authority !== void 0) count++;
|
|
86
|
-
if (params.moqt_implementation !== void 0) count++;
|
|
87
|
-
if (params.unknown) count += params.unknown.length;
|
|
88
|
-
writer.writeVarInt(count);
|
|
89
|
-
if (params.path !== void 0) {
|
|
90
|
-
writer.writeVarInt(SETUP_PARAM_PATH);
|
|
91
|
-
const encoded = new TextEncoder().encode(params.path);
|
|
92
|
-
writer.writeVarInt(encoded.byteLength);
|
|
93
|
-
writer.writeBytes(encoded);
|
|
69
|
+
// src/drafts/draft15/data-streams.ts
|
|
70
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
71
|
+
function encodeSubgroupStream(stream) {
|
|
72
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
73
|
+
const streamType = stream.headerType;
|
|
74
|
+
w.writeVarInt(BigInt(streamType));
|
|
75
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
76
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
77
|
+
const hasPriority = streamType < 48;
|
|
78
|
+
w.writeVarInt(stream.trackAlias);
|
|
79
|
+
w.writeVarInt(stream.groupId);
|
|
80
|
+
if (hasSubgroupField) {
|
|
81
|
+
w.writeVarInt(stream.subgroupId);
|
|
94
82
|
}
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
writer.writeVarInt(params.max_request_id);
|
|
83
|
+
if (hasPriority) {
|
|
84
|
+
w.writeUint8(stream.publisherPriority);
|
|
98
85
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
86
|
+
let prevObjectId = -1n;
|
|
87
|
+
for (const obj of stream.objects) {
|
|
88
|
+
const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
89
|
+
w.writeVarInt(delta);
|
|
90
|
+
if (extensionsPresent) {
|
|
91
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
92
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
93
|
+
}
|
|
94
|
+
w.writeVarInt(obj.payloadLength);
|
|
95
|
+
if (obj.payloadLength === 0) {
|
|
96
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
97
|
+
} else {
|
|
98
|
+
w.writeBytes(obj.payload);
|
|
99
|
+
}
|
|
100
|
+
prevObjectId = obj.objectId;
|
|
102
101
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
return w.finish();
|
|
103
|
+
}
|
|
104
|
+
function encodeDatagram(dg) {
|
|
105
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
106
|
+
const dgType = dg.datagramType;
|
|
107
|
+
w.writeVarInt(BigInt(dgType));
|
|
108
|
+
w.writeVarInt(dg.trackAlias);
|
|
109
|
+
w.writeVarInt(dg.groupId);
|
|
110
|
+
const objectIdAbsent = (dgType & 4) !== 0;
|
|
111
|
+
const isStatus = (dgType & 32) !== 0;
|
|
112
|
+
if (!objectIdAbsent) {
|
|
113
|
+
w.writeVarInt(dg.objectId);
|
|
108
114
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
w.writeUint8(dg.publisherPriority);
|
|
116
|
+
if (isStatus) {
|
|
117
|
+
w.writeVarInt(_nullishCoalesce(dg.objectStatus, () => ( 0n)));
|
|
118
|
+
} else {
|
|
119
|
+
w.writeBytes(dg.payload);
|
|
114
120
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
121
|
+
return w.finish();
|
|
122
|
+
}
|
|
123
|
+
function encodeFetchStream(stream) {
|
|
124
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
125
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
126
|
+
w.writeVarInt(stream.requestId);
|
|
127
|
+
for (const obj of stream.objects) {
|
|
128
|
+
w.writeUint8(obj.serializationFlags);
|
|
129
|
+
const flags = obj.serializationFlags;
|
|
130
|
+
if (flags & 8) w.writeVarInt(obj.groupId);
|
|
131
|
+
const subgroupEncoding = flags & 3;
|
|
132
|
+
if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
|
|
133
|
+
if (flags & 4) w.writeVarInt(obj.objectId);
|
|
134
|
+
if (flags & 16) w.writeUint8(obj.publisherPriority);
|
|
135
|
+
if (flags & 32) {
|
|
136
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
137
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
138
|
+
}
|
|
139
|
+
w.writeVarInt(obj.payloadLength);
|
|
140
|
+
if (obj.payloadLength === 0) {
|
|
141
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
142
|
+
} else {
|
|
143
|
+
w.writeBytes(obj.payload);
|
|
129
144
|
}
|
|
130
145
|
}
|
|
146
|
+
return w.finish();
|
|
131
147
|
}
|
|
132
|
-
function
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
148
|
+
function decodeSubgroupStream(bytes) {
|
|
149
|
+
try {
|
|
150
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
151
|
+
const streamType = Number(r.readVarInt());
|
|
152
|
+
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61) || (streamType & 6) === 6) {
|
|
153
|
+
return {
|
|
154
|
+
ok: false,
|
|
155
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
156
|
+
"CONSTRAINT_VIOLATION",
|
|
157
|
+
`Expected subgroup stream type 0x10-0x15/0x18-0x1D/0x30-0x35/0x38-0x3D, got 0x${streamType.toString(16)}`,
|
|
158
|
+
0
|
|
159
|
+
)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
163
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
164
|
+
const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
165
|
+
const hasPriority = streamType < 48;
|
|
166
|
+
const trackAlias = r.readVarInt();
|
|
167
|
+
const groupId = r.readVarInt();
|
|
168
|
+
let subgroupId = 0n;
|
|
169
|
+
if (hasSubgroupField) {
|
|
170
|
+
subgroupId = r.readVarInt();
|
|
171
|
+
}
|
|
172
|
+
let publisherPriority = 128;
|
|
173
|
+
if (hasPriority) {
|
|
174
|
+
publisherPriority = r.readUint8();
|
|
175
|
+
}
|
|
176
|
+
const objects = [];
|
|
177
|
+
let prevObjectId = -1n;
|
|
178
|
+
let firstObject = true;
|
|
179
|
+
while (r.remaining > 0) {
|
|
180
|
+
const byteOffset = r.offset;
|
|
181
|
+
const delta = r.readVarInt();
|
|
182
|
+
let objectId;
|
|
183
|
+
if (firstObject) {
|
|
184
|
+
objectId = delta;
|
|
185
|
+
if (subgroupIsFirstObjId && firstObject) {
|
|
186
|
+
subgroupId = objectId;
|
|
187
|
+
}
|
|
188
|
+
firstObject = false;
|
|
144
189
|
} else {
|
|
145
|
-
|
|
146
|
-
tmpWriter.writeVarInt(value);
|
|
147
|
-
const raw = tmpWriter.finish();
|
|
148
|
-
unknown.push({
|
|
149
|
-
id: `0x${paramType.toString(16)}`,
|
|
150
|
-
length: raw.byteLength,
|
|
151
|
-
raw_hex: bytesToHex(raw)
|
|
152
|
-
});
|
|
190
|
+
objectId = prevObjectId + 1n + delta;
|
|
153
191
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
192
|
+
let extensionData = new Uint8Array(0);
|
|
193
|
+
if (extensionsPresent) {
|
|
194
|
+
const extLen = Number(r.readVarInt());
|
|
195
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
196
|
+
}
|
|
197
|
+
const payloadLength = Number(r.readVarInt());
|
|
198
|
+
let payload;
|
|
199
|
+
let status;
|
|
200
|
+
let payloadByteOffset;
|
|
201
|
+
if (payloadLength === 0) {
|
|
202
|
+
status = r.readVarInt();
|
|
203
|
+
payloadByteOffset = r.offset;
|
|
204
|
+
payload = new Uint8Array(0);
|
|
163
205
|
} else {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
length,
|
|
167
|
-
raw_hex: bytesToHex(bytes)
|
|
168
|
-
});
|
|
206
|
+
payloadByteOffset = r.offset;
|
|
207
|
+
payload = r.readBytesView(payloadLength);
|
|
169
208
|
}
|
|
209
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, extensionData, payload };
|
|
210
|
+
if (status !== void 0) obj.status = status;
|
|
211
|
+
objects.push(obj);
|
|
212
|
+
prevObjectId = objectId;
|
|
170
213
|
}
|
|
214
|
+
return {
|
|
215
|
+
ok: true,
|
|
216
|
+
value: {
|
|
217
|
+
type: "subgroup",
|
|
218
|
+
headerType: streamType,
|
|
219
|
+
trackAlias,
|
|
220
|
+
groupId,
|
|
221
|
+
subgroupId,
|
|
222
|
+
publisherPriority,
|
|
223
|
+
objects
|
|
224
|
+
},
|
|
225
|
+
bytesRead: r.offset
|
|
226
|
+
};
|
|
227
|
+
} catch (e) {
|
|
228
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
229
|
+
throw e;
|
|
171
230
|
}
|
|
172
|
-
if (unknown.length > 0) {
|
|
173
|
-
result.unknown = unknown;
|
|
174
|
-
}
|
|
175
|
-
return result;
|
|
176
231
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
writer.writeVarInt(count);
|
|
190
|
-
if (params.expires !== void 0) {
|
|
191
|
-
writer.writeVarInt(PARAM_EXPIRES);
|
|
192
|
-
writer.writeVarInt(params.expires);
|
|
193
|
-
}
|
|
194
|
-
if (params.largest_object !== void 0) {
|
|
195
|
-
writer.writeVarInt(PARAM_LARGEST_OBJECT);
|
|
196
|
-
const tmpW = new (0, _chunkFWISIR26cjs.BufferWriter)(16);
|
|
197
|
-
tmpW.writeVarInt(params.largest_object.group);
|
|
198
|
-
tmpW.writeVarInt(params.largest_object.object);
|
|
199
|
-
const raw = tmpW.finish();
|
|
200
|
-
writer.writeVarInt(raw.byteLength);
|
|
201
|
-
writer.writeBytes(raw);
|
|
202
|
-
}
|
|
203
|
-
if (params.subscriber_priority !== void 0) {
|
|
204
|
-
writer.writeVarInt(PARAM_SUBSCRIBER_PRIORITY);
|
|
205
|
-
writer.writeVarInt(params.subscriber_priority);
|
|
206
|
-
}
|
|
207
|
-
if (params.subscription_filter !== void 0) {
|
|
208
|
-
writer.writeVarInt(PARAM_SUBSCRIPTION_FILTER);
|
|
209
|
-
const tmpW = new (0, _chunkFWISIR26cjs.BufferWriter)(32);
|
|
210
|
-
const f = params.subscription_filter;
|
|
211
|
-
tmpW.writeVarInt(f.filter_type);
|
|
212
|
-
if (f.filter_type === 3n || f.filter_type === 4n) {
|
|
213
|
-
tmpW.writeVarInt(f.start_group);
|
|
214
|
-
tmpW.writeVarInt(f.start_object);
|
|
215
|
-
}
|
|
216
|
-
if (f.filter_type === 4n) {
|
|
217
|
-
tmpW.writeVarInt(f.end_group);
|
|
232
|
+
function decodeDatagram(bytes) {
|
|
233
|
+
try {
|
|
234
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
235
|
+
const dgType = Number(r.readVarInt());
|
|
236
|
+
const objectIdAbsent = (dgType & 4) !== 0;
|
|
237
|
+
const endOfGroup = (dgType & 2) !== 0;
|
|
238
|
+
const isStatus = (dgType & 32) !== 0;
|
|
239
|
+
const trackAlias = r.readVarInt();
|
|
240
|
+
const groupId = r.readVarInt();
|
|
241
|
+
let objectId = 0n;
|
|
242
|
+
if (!objectIdAbsent) {
|
|
243
|
+
objectId = r.readVarInt();
|
|
218
244
|
}
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (params.unknown) {
|
|
228
|
-
for (const u of params.unknown) {
|
|
229
|
-
const id = BigInt(u.id);
|
|
230
|
-
writer.writeVarInt(id);
|
|
231
|
-
if (id % 2n === 0n) {
|
|
232
|
-
const raw = hexToBytes(u.raw_hex);
|
|
233
|
-
const tmpReader = new (0, _chunkFWISIR26cjs.BufferReader)(raw);
|
|
234
|
-
const value = tmpReader.readVarInt();
|
|
235
|
-
writer.writeVarInt(value);
|
|
236
|
-
} else {
|
|
237
|
-
const raw = hexToBytes(u.raw_hex);
|
|
238
|
-
writer.writeVarInt(raw.byteLength);
|
|
239
|
-
writer.writeBytes(raw);
|
|
240
|
-
}
|
|
245
|
+
const publisherPriority = r.readUint8();
|
|
246
|
+
let objectStatus;
|
|
247
|
+
let payload;
|
|
248
|
+
if (isStatus) {
|
|
249
|
+
objectStatus = r.readVarInt();
|
|
250
|
+
payload = new Uint8Array(0);
|
|
251
|
+
} else {
|
|
252
|
+
payload = r.readBytesView(r.remaining);
|
|
241
253
|
}
|
|
254
|
+
const payloadLength = payload.byteLength;
|
|
255
|
+
const result = {
|
|
256
|
+
type: "datagram",
|
|
257
|
+
datagramType: dgType,
|
|
258
|
+
trackAlias,
|
|
259
|
+
groupId,
|
|
260
|
+
objectId,
|
|
261
|
+
publisherPriority,
|
|
262
|
+
payloadLength,
|
|
263
|
+
payload
|
|
264
|
+
};
|
|
265
|
+
if (endOfGroup) result.endOfGroup = true;
|
|
266
|
+
if (objectStatus !== void 0)
|
|
267
|
+
result.objectStatus = objectStatus;
|
|
268
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
269
|
+
} catch (e) {
|
|
270
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
271
|
+
throw e;
|
|
242
272
|
}
|
|
243
273
|
}
|
|
244
|
-
function
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
const
|
|
267
|
-
const
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
274
|
+
function decodeFetchStream(bytes) {
|
|
275
|
+
try {
|
|
276
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
277
|
+
const streamType = r.readVarInt();
|
|
278
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
279
|
+
return {
|
|
280
|
+
ok: false,
|
|
281
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
282
|
+
"CONSTRAINT_VIOLATION",
|
|
283
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
284
|
+
0
|
|
285
|
+
)
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
const requestId = r.readVarInt();
|
|
289
|
+
const objects = [];
|
|
290
|
+
let prevGroupId = 0n;
|
|
291
|
+
let prevSubgroupId = 0n;
|
|
292
|
+
let prevObjectId = 0n;
|
|
293
|
+
let prevPriority = 128;
|
|
294
|
+
let first = true;
|
|
295
|
+
while (r.remaining > 0) {
|
|
296
|
+
const byteOffset = r.offset;
|
|
297
|
+
const flags = r.readUint8();
|
|
298
|
+
const subgroupEncoding = flags & 3;
|
|
299
|
+
const objectIdPresent = (flags & 4) !== 0;
|
|
300
|
+
const groupIdPresent = (flags & 8) !== 0;
|
|
301
|
+
const priorityPresent = (flags & 16) !== 0;
|
|
302
|
+
const extensionsPresent = (flags & 32) !== 0;
|
|
303
|
+
if (flags & 192) {
|
|
304
|
+
return {
|
|
305
|
+
ok: false,
|
|
306
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
307
|
+
"CONSTRAINT_VIOLATION",
|
|
308
|
+
"Reserved bits set in fetch object flags",
|
|
309
|
+
r.offset
|
|
310
|
+
)
|
|
311
|
+
};
|
|
272
312
|
}
|
|
273
|
-
|
|
274
|
-
|
|
313
|
+
let groupId = prevGroupId;
|
|
314
|
+
if (groupIdPresent) {
|
|
315
|
+
groupId = r.readVarInt();
|
|
316
|
+
} else if (first) {
|
|
317
|
+
return {
|
|
318
|
+
ok: false,
|
|
319
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
320
|
+
"CONSTRAINT_VIOLATION",
|
|
321
|
+
"First fetch object must include groupId",
|
|
322
|
+
r.offset
|
|
323
|
+
)
|
|
324
|
+
};
|
|
275
325
|
}
|
|
276
|
-
|
|
277
|
-
if (
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
326
|
+
let subgroupId;
|
|
327
|
+
if (subgroupEncoding === 0) {
|
|
328
|
+
subgroupId = 0n;
|
|
329
|
+
} else if (subgroupEncoding === 1) {
|
|
330
|
+
if (first) {
|
|
331
|
+
return {
|
|
332
|
+
ok: false,
|
|
333
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
334
|
+
"CONSTRAINT_VIOLATION",
|
|
335
|
+
"First fetch object cannot reference prior subgroupId",
|
|
336
|
+
r.offset
|
|
337
|
+
)
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
subgroupId = prevSubgroupId;
|
|
341
|
+
} else if (subgroupEncoding === 2) {
|
|
342
|
+
if (first) {
|
|
343
|
+
return {
|
|
344
|
+
ok: false,
|
|
345
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
346
|
+
"CONSTRAINT_VIOLATION",
|
|
347
|
+
"First fetch object cannot reference prior subgroupId",
|
|
348
|
+
r.offset
|
|
349
|
+
)
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
subgroupId = prevSubgroupId + 1n;
|
|
353
|
+
} else {
|
|
354
|
+
subgroupId = r.readVarInt();
|
|
355
|
+
}
|
|
356
|
+
let objectId = prevObjectId + 1n;
|
|
357
|
+
if (objectIdPresent) {
|
|
358
|
+
objectId = r.readVarInt();
|
|
359
|
+
} else if (first) {
|
|
360
|
+
return {
|
|
361
|
+
ok: false,
|
|
362
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
363
|
+
"CONSTRAINT_VIOLATION",
|
|
364
|
+
"First fetch object must include objectId",
|
|
365
|
+
r.offset
|
|
366
|
+
)
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
if (priorityPresent) {
|
|
370
|
+
prevPriority = r.readUint8();
|
|
371
|
+
}
|
|
372
|
+
let extensionData = new Uint8Array(0);
|
|
373
|
+
if (extensionsPresent) {
|
|
374
|
+
const extLen = Number(r.readVarInt());
|
|
375
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
376
|
+
}
|
|
377
|
+
const payloadLength = Number(r.readVarInt());
|
|
378
|
+
let payload;
|
|
379
|
+
let status;
|
|
380
|
+
let payloadByteOffset;
|
|
381
|
+
if (payloadLength > 0) {
|
|
382
|
+
payloadByteOffset = r.offset;
|
|
383
|
+
payload = r.readBytesView(payloadLength);
|
|
384
|
+
} else {
|
|
385
|
+
status = r.readVarInt();
|
|
386
|
+
payloadByteOffset = r.offset;
|
|
387
|
+
payload = new Uint8Array(0);
|
|
388
|
+
}
|
|
389
|
+
const obj = {
|
|
390
|
+
type: "object",
|
|
391
|
+
byteOffset,
|
|
392
|
+
payloadByteOffset,
|
|
393
|
+
serializationFlags: flags,
|
|
394
|
+
groupId,
|
|
395
|
+
subgroupId,
|
|
396
|
+
objectId,
|
|
397
|
+
publisherPriority: prevPriority,
|
|
398
|
+
payloadLength,
|
|
399
|
+
extensionData,
|
|
400
|
+
payload
|
|
401
|
+
};
|
|
402
|
+
if (status !== void 0) obj.status = status;
|
|
403
|
+
objects.push(obj);
|
|
404
|
+
prevGroupId = groupId;
|
|
405
|
+
prevSubgroupId = subgroupId;
|
|
406
|
+
prevObjectId = objectId;
|
|
407
|
+
first = false;
|
|
297
408
|
}
|
|
409
|
+
return {
|
|
410
|
+
ok: true,
|
|
411
|
+
value: { type: "fetch", requestId, objects },
|
|
412
|
+
bytesRead: r.offset
|
|
413
|
+
};
|
|
414
|
+
} catch (e) {
|
|
415
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
416
|
+
throw e;
|
|
298
417
|
}
|
|
299
|
-
if (unknown.length > 0) {
|
|
300
|
-
result.unknown = unknown;
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
303
|
-
}
|
|
304
|
-
function encodeClientSetupPayload(msg, w) {
|
|
305
|
-
encodeSetupParams(msg.parameters, w);
|
|
306
|
-
}
|
|
307
|
-
function encodeServerSetupPayload(msg, w) {
|
|
308
|
-
encodeSetupParams(msg.parameters, w);
|
|
309
|
-
}
|
|
310
|
-
function encodeSubscribePayload(msg, w) {
|
|
311
|
-
w.writeVarInt(msg.request_id);
|
|
312
|
-
w.writeTuple(msg.track_namespace);
|
|
313
|
-
w.writeString(msg.track_name);
|
|
314
|
-
encodeParams(msg.parameters, w);
|
|
315
|
-
}
|
|
316
|
-
function encodeSubscribeOkPayload(msg, w) {
|
|
317
|
-
w.writeVarInt(msg.request_id);
|
|
318
|
-
w.writeVarInt(msg.track_alias);
|
|
319
|
-
encodeParams(msg.parameters, w);
|
|
320
|
-
}
|
|
321
|
-
function encodeSubscribeUpdatePayload(msg, w) {
|
|
322
|
-
w.writeVarInt(msg.request_id);
|
|
323
|
-
w.writeVarInt(msg.subscription_request_id);
|
|
324
|
-
encodeParams(msg.parameters, w);
|
|
325
|
-
}
|
|
326
|
-
function encodeUnsubscribePayload(msg, w) {
|
|
327
|
-
w.writeVarInt(msg.request_id);
|
|
328
|
-
}
|
|
329
|
-
function encodePublishPayload(msg, w) {
|
|
330
|
-
w.writeVarInt(msg.request_id);
|
|
331
|
-
w.writeTuple(msg.track_namespace);
|
|
332
|
-
w.writeString(msg.track_name);
|
|
333
|
-
w.writeVarInt(msg.track_alias);
|
|
334
|
-
encodeParams(msg.parameters, w);
|
|
335
|
-
}
|
|
336
|
-
function encodePublishOkPayload(msg, w) {
|
|
337
|
-
w.writeVarInt(msg.request_id);
|
|
338
|
-
encodeParams(msg.parameters, w);
|
|
339
|
-
}
|
|
340
|
-
function encodePublishDonePayload(msg, w) {
|
|
341
|
-
w.writeVarInt(msg.request_id);
|
|
342
|
-
w.writeVarInt(msg.status_code);
|
|
343
|
-
w.writeVarInt(msg.stream_count);
|
|
344
|
-
w.writeString(msg.reason_phrase);
|
|
345
|
-
}
|
|
346
|
-
function encodePublishNamespacePayload(msg, w) {
|
|
347
|
-
w.writeVarInt(msg.request_id);
|
|
348
|
-
w.writeTuple(msg.track_namespace);
|
|
349
|
-
encodeParams(msg.parameters, w);
|
|
350
418
|
}
|
|
351
|
-
function
|
|
352
|
-
|
|
419
|
+
function decodeDataStream(streamType, bytes) {
|
|
420
|
+
switch (streamType) {
|
|
421
|
+
case "subgroup":
|
|
422
|
+
return decodeSubgroupStream(bytes);
|
|
423
|
+
case "datagram":
|
|
424
|
+
return decodeDatagram(bytes);
|
|
425
|
+
case "fetch":
|
|
426
|
+
return decodeFetchStream(bytes);
|
|
427
|
+
default: {
|
|
428
|
+
const _exhaustive = streamType;
|
|
429
|
+
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
353
432
|
}
|
|
354
|
-
function
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
433
|
+
function createSubgroupStreamDecoder() {
|
|
434
|
+
let buffer = new Uint8Array(0);
|
|
435
|
+
let offset = 0;
|
|
436
|
+
let headerEmitted = false;
|
|
437
|
+
let prevObjectId = -1n;
|
|
438
|
+
let firstObject = true;
|
|
439
|
+
let _subgroupIsFirstObjId = false;
|
|
440
|
+
let _extensionsPresent = false;
|
|
441
|
+
return new TransformStream({
|
|
442
|
+
transform(chunk, controller) {
|
|
443
|
+
if (offset > 0) {
|
|
444
|
+
buffer = buffer.subarray(offset);
|
|
445
|
+
offset = 0;
|
|
446
|
+
}
|
|
447
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
448
|
+
newBuffer.set(buffer, 0);
|
|
449
|
+
newBuffer.set(chunk, buffer.length);
|
|
450
|
+
buffer = newBuffer;
|
|
451
|
+
if (!headerEmitted) {
|
|
452
|
+
try {
|
|
453
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
454
|
+
const streamType = Number(r.readVarInt());
|
|
455
|
+
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
|
|
456
|
+
controller.error(
|
|
457
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
458
|
+
"CONSTRAINT_VIOLATION",
|
|
459
|
+
`Expected subgroup stream type, got 0x${streamType.toString(16)}`,
|
|
460
|
+
0
|
|
461
|
+
)
|
|
462
|
+
);
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
_extensionsPresent = (streamType & 1) !== 0;
|
|
466
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
467
|
+
_subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
468
|
+
const hasPriority = streamType < 48;
|
|
469
|
+
const trackAlias = r.readVarInt();
|
|
470
|
+
const groupId = r.readVarInt();
|
|
471
|
+
let subgroupId = 0n;
|
|
472
|
+
if (hasSubgroupField) {
|
|
473
|
+
subgroupId = r.readVarInt();
|
|
474
|
+
}
|
|
475
|
+
let publisherPriority = 128;
|
|
476
|
+
if (hasPriority) {
|
|
477
|
+
publisherPriority = r.readUint8();
|
|
478
|
+
}
|
|
479
|
+
controller.enqueue({
|
|
480
|
+
type: "subgroup_header",
|
|
481
|
+
trackAlias,
|
|
482
|
+
groupId,
|
|
483
|
+
subgroupId,
|
|
484
|
+
publisherPriority
|
|
485
|
+
});
|
|
486
|
+
headerEmitted = true;
|
|
487
|
+
offset += r.offset;
|
|
488
|
+
} catch (e) {
|
|
489
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
controller.error(e);
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
while (offset < buffer.length) {
|
|
497
|
+
try {
|
|
498
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
499
|
+
const byteOffset = r.offset;
|
|
500
|
+
const delta = r.readVarInt();
|
|
501
|
+
let objectId;
|
|
502
|
+
if (firstObject) {
|
|
503
|
+
objectId = delta;
|
|
504
|
+
firstObject = false;
|
|
505
|
+
} else {
|
|
506
|
+
objectId = prevObjectId + 1n + delta;
|
|
507
|
+
}
|
|
508
|
+
let extensionData = new Uint8Array(0);
|
|
509
|
+
if (_extensionsPresent) {
|
|
510
|
+
const extLen = Number(r.readVarInt());
|
|
511
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
512
|
+
}
|
|
513
|
+
const payloadLength = Number(r.readVarInt());
|
|
514
|
+
const payloadByteOffset = r.offset;
|
|
515
|
+
const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
|
|
516
|
+
controller.enqueue({ type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, extensionData, payload });
|
|
517
|
+
offset += r.offset;
|
|
518
|
+
prevObjectId = objectId;
|
|
519
|
+
} catch (e) {
|
|
520
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
521
|
+
break;
|
|
522
|
+
}
|
|
523
|
+
controller.error(e);
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
flush(controller) {
|
|
529
|
+
if (offset < buffer.length) {
|
|
530
|
+
controller.error(new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
});
|
|
358
534
|
}
|
|
359
|
-
function
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
535
|
+
function createFetchStreamDecoder() {
|
|
536
|
+
let buffer = new Uint8Array(0);
|
|
537
|
+
let offset = 0;
|
|
538
|
+
let headerEmitted = false;
|
|
539
|
+
return new TransformStream({
|
|
540
|
+
transform(chunk, controller) {
|
|
541
|
+
if (offset > 0) {
|
|
542
|
+
buffer = buffer.subarray(offset);
|
|
543
|
+
offset = 0;
|
|
544
|
+
}
|
|
545
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
546
|
+
newBuffer.set(buffer, 0);
|
|
547
|
+
newBuffer.set(chunk, buffer.length);
|
|
548
|
+
buffer = newBuffer;
|
|
549
|
+
if (!headerEmitted) {
|
|
550
|
+
try {
|
|
551
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
552
|
+
const streamType = r.readVarInt();
|
|
553
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
554
|
+
controller.error(
|
|
555
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
556
|
+
"CONSTRAINT_VIOLATION",
|
|
557
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
558
|
+
0
|
|
559
|
+
)
|
|
560
|
+
);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
const requestId = r.readVarInt();
|
|
564
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
565
|
+
headerEmitted = true;
|
|
566
|
+
offset += r.offset;
|
|
567
|
+
} catch (e) {
|
|
568
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
controller.error(e);
|
|
572
|
+
return;
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
while (offset < buffer.length) {
|
|
576
|
+
try {
|
|
577
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
578
|
+
const flags = r.readUint8();
|
|
579
|
+
const objectIdPresent = (flags & 4) !== 0;
|
|
580
|
+
const groupIdPresent = (flags & 8) !== 0;
|
|
581
|
+
const priorityPresent = (flags & 16) !== 0;
|
|
582
|
+
const extensionsPresent = (flags & 32) !== 0;
|
|
583
|
+
const subgroupEncoding = flags & 3;
|
|
584
|
+
if (groupIdPresent) r.readVarInt();
|
|
585
|
+
if (subgroupEncoding === 3) r.readVarInt();
|
|
586
|
+
let objectId = 0n;
|
|
587
|
+
if (objectIdPresent) objectId = r.readVarInt();
|
|
588
|
+
if (priorityPresent) r.readUint8();
|
|
589
|
+
let extensionData = new Uint8Array(0);
|
|
590
|
+
if (extensionsPresent) {
|
|
591
|
+
const extLen = Number(r.readVarInt());
|
|
592
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
593
|
+
}
|
|
594
|
+
const payloadLength = Number(r.readVarInt());
|
|
595
|
+
const payloadByteOffset = r.offset;
|
|
596
|
+
const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
|
|
597
|
+
controller.enqueue({ type: "object", objectId, payloadLength, extensionData, payload, byteOffset: 0, payloadByteOffset });
|
|
598
|
+
offset += r.offset;
|
|
599
|
+
} catch (e) {
|
|
600
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
601
|
+
break;
|
|
602
|
+
}
|
|
603
|
+
controller.error(e);
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
},
|
|
608
|
+
flush(controller) {
|
|
609
|
+
if (offset < buffer.length) {
|
|
610
|
+
controller.error(new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
});
|
|
363
614
|
}
|
|
364
|
-
function
|
|
365
|
-
|
|
615
|
+
function createDataStreamDecoder() {
|
|
616
|
+
let buffer = new Uint8Array(0);
|
|
617
|
+
let offset = 0;
|
|
618
|
+
let inner = null;
|
|
619
|
+
const _innerWriter = null;
|
|
620
|
+
const _innerReader = null;
|
|
621
|
+
return new TransformStream({
|
|
622
|
+
transform(chunk, controller) {
|
|
623
|
+
if (offset > 0) {
|
|
624
|
+
buffer = buffer.subarray(offset);
|
|
625
|
+
offset = 0;
|
|
626
|
+
}
|
|
627
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
628
|
+
newBuffer.set(buffer, 0);
|
|
629
|
+
newBuffer.set(chunk, buffer.length);
|
|
630
|
+
buffer = newBuffer;
|
|
631
|
+
if (inner === null) {
|
|
632
|
+
if (offset >= buffer.length) return;
|
|
633
|
+
const firstByte = buffer[offset];
|
|
634
|
+
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
635
|
+
const decoder = createSubgroupStreamDecoder();
|
|
636
|
+
inner = decoder;
|
|
637
|
+
} else if (firstByte === 5) {
|
|
638
|
+
const decoder = createFetchStreamDecoder();
|
|
639
|
+
inner = decoder;
|
|
640
|
+
} else {
|
|
641
|
+
controller.error(
|
|
642
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
643
|
+
"CONSTRAINT_VIOLATION",
|
|
644
|
+
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
645
|
+
0
|
|
646
|
+
)
|
|
647
|
+
);
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
flush(controller) {
|
|
653
|
+
if (offset >= buffer.length) return;
|
|
654
|
+
const view = buffer.subarray(offset);
|
|
655
|
+
const firstByte = view[0];
|
|
656
|
+
let result;
|
|
657
|
+
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
658
|
+
result = decodeSubgroupStream(view);
|
|
659
|
+
} else if (firstByte === 5) {
|
|
660
|
+
result = decodeFetchStream(view);
|
|
661
|
+
} else {
|
|
662
|
+
controller.error(
|
|
663
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
664
|
+
"CONSTRAINT_VIOLATION",
|
|
665
|
+
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
666
|
+
0
|
|
667
|
+
)
|
|
668
|
+
);
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
if (!result.ok) {
|
|
672
|
+
controller.error(result.error);
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
const stream = result.value;
|
|
676
|
+
if (stream.type === "subgroup") {
|
|
677
|
+
controller.enqueue({
|
|
678
|
+
type: "subgroup_header",
|
|
679
|
+
trackAlias: stream.trackAlias,
|
|
680
|
+
groupId: stream.groupId,
|
|
681
|
+
subgroupId: stream.subgroupId,
|
|
682
|
+
publisherPriority: stream.publisherPriority
|
|
683
|
+
});
|
|
684
|
+
for (const obj of stream.objects) {
|
|
685
|
+
controller.enqueue(obj);
|
|
686
|
+
}
|
|
687
|
+
} else if (stream.type === "fetch") {
|
|
688
|
+
controller.enqueue({
|
|
689
|
+
type: "fetch_header",
|
|
690
|
+
requestId: stream.requestId
|
|
691
|
+
});
|
|
692
|
+
for (const obj of stream.objects) {
|
|
693
|
+
controller.enqueue(obj);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
});
|
|
366
698
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
699
|
+
|
|
700
|
+
// src/drafts/draft15/codec.ts
|
|
701
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
702
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
703
|
+
function encodeSetupParams(params, writer) {
|
|
704
|
+
let count = 0;
|
|
705
|
+
if (params.path !== void 0) count++;
|
|
706
|
+
if (params.max_request_id !== void 0) count++;
|
|
707
|
+
if (params.max_auth_token_cache_size !== void 0) count++;
|
|
708
|
+
if (params.authority !== void 0) count++;
|
|
709
|
+
if (params.moqt_implementation !== void 0) count++;
|
|
710
|
+
if (params.unknown) count += params.unknown.length;
|
|
711
|
+
writer.writeVarInt(count);
|
|
712
|
+
if (params.path !== void 0) {
|
|
713
|
+
writer.writeVarInt(SETUP_PARAM_PATH);
|
|
714
|
+
const encoded = textEncoder.encode(params.path);
|
|
715
|
+
writer.writeVarInt(encoded.byteLength);
|
|
716
|
+
writer.writeBytes(encoded);
|
|
717
|
+
}
|
|
718
|
+
if (params.max_request_id !== void 0) {
|
|
719
|
+
writer.writeVarInt(SETUP_PARAM_MAX_REQUEST_ID);
|
|
720
|
+
writer.writeVarInt(params.max_request_id);
|
|
721
|
+
}
|
|
722
|
+
if (params.max_auth_token_cache_size !== void 0) {
|
|
723
|
+
writer.writeVarInt(SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE);
|
|
724
|
+
writer.writeVarInt(params.max_auth_token_cache_size);
|
|
725
|
+
}
|
|
726
|
+
if (params.authority !== void 0) {
|
|
727
|
+
writer.writeVarInt(SETUP_PARAM_AUTHORITY);
|
|
728
|
+
const encoded = textEncoder.encode(params.authority);
|
|
729
|
+
writer.writeVarInt(encoded.byteLength);
|
|
730
|
+
writer.writeBytes(encoded);
|
|
731
|
+
}
|
|
732
|
+
if (params.moqt_implementation !== void 0) {
|
|
733
|
+
writer.writeVarInt(SETUP_PARAM_MOQT_IMPLEMENTATION);
|
|
734
|
+
const encoded = textEncoder.encode(params.moqt_implementation);
|
|
735
|
+
writer.writeVarInt(encoded.byteLength);
|
|
736
|
+
writer.writeBytes(encoded);
|
|
737
|
+
}
|
|
738
|
+
if (params.unknown) {
|
|
739
|
+
for (const u of params.unknown) {
|
|
740
|
+
const id = BigInt(u.id);
|
|
741
|
+
writer.writeVarInt(id);
|
|
742
|
+
if (id % 2n === 0n) {
|
|
743
|
+
const raw = _chunkKNDYS3DKcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
744
|
+
const tmpReader = new (0, _chunkRUPCJTC3cjs.BufferReader)(raw);
|
|
745
|
+
const value = tmpReader.readVarInt();
|
|
746
|
+
writer.writeVarInt(value);
|
|
747
|
+
} else {
|
|
748
|
+
const raw = _chunkKNDYS3DKcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
749
|
+
writer.writeVarInt(raw.byteLength);
|
|
750
|
+
writer.writeBytes(raw);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
381
753
|
}
|
|
382
|
-
encodeParams(msg.parameters, w);
|
|
383
|
-
}
|
|
384
|
-
function encodeFetchOkPayload(msg, w) {
|
|
385
|
-
w.writeVarInt(msg.request_id);
|
|
386
|
-
w.writeUint8(msg.end_of_track);
|
|
387
|
-
w.writeVarInt(msg.end_group);
|
|
388
|
-
w.writeVarInt(msg.end_object);
|
|
389
|
-
encodeParams(msg.parameters, w);
|
|
390
|
-
}
|
|
391
|
-
function encodeFetchCancelPayload(msg, w) {
|
|
392
|
-
w.writeVarInt(msg.request_id);
|
|
393
754
|
}
|
|
394
|
-
function
|
|
755
|
+
function decodeSetupParams(reader) {
|
|
756
|
+
const count = Number(reader.readVarInt());
|
|
757
|
+
const result = {};
|
|
758
|
+
const unknown = [];
|
|
759
|
+
for (let i = 0; i < count; i++) {
|
|
760
|
+
const paramType = reader.readVarInt();
|
|
761
|
+
if (paramType % 2n === 0n) {
|
|
762
|
+
const value = reader.readVarInt();
|
|
763
|
+
if (paramType === SETUP_PARAM_MAX_REQUEST_ID) {
|
|
764
|
+
result.max_request_id = value;
|
|
765
|
+
} else if (paramType === SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE) {
|
|
766
|
+
result.max_auth_token_cache_size = value;
|
|
767
|
+
} else {
|
|
768
|
+
const tmpWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)(16);
|
|
769
|
+
tmpWriter.writeVarInt(value);
|
|
770
|
+
const raw = tmpWriter.finish();
|
|
771
|
+
unknown.push({
|
|
772
|
+
id: `0x${paramType.toString(16)}`,
|
|
773
|
+
length: raw.byteLength,
|
|
774
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, raw)
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
} else {
|
|
778
|
+
const length = Number(reader.readVarInt());
|
|
779
|
+
const bytes = reader.readBytes(length);
|
|
780
|
+
if (paramType === SETUP_PARAM_PATH) {
|
|
781
|
+
result.path = textDecoder.decode(bytes);
|
|
782
|
+
} else if (paramType === SETUP_PARAM_AUTHORITY) {
|
|
783
|
+
result.authority = textDecoder.decode(bytes);
|
|
784
|
+
} else if (paramType === SETUP_PARAM_MOQT_IMPLEMENTATION) {
|
|
785
|
+
result.moqt_implementation = textDecoder.decode(bytes);
|
|
786
|
+
} else {
|
|
787
|
+
unknown.push({
|
|
788
|
+
id: `0x${paramType.toString(16)}`,
|
|
789
|
+
length,
|
|
790
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, bytes)
|
|
791
|
+
});
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
if (unknown.length > 0) {
|
|
796
|
+
result.unknown = unknown;
|
|
797
|
+
}
|
|
798
|
+
return result;
|
|
799
|
+
}
|
|
800
|
+
var PARAM_EXPIRES = 0x08n;
|
|
801
|
+
var PARAM_LARGEST_OBJECT = 0x09n;
|
|
802
|
+
var PARAM_SUBSCRIBER_PRIORITY = 0x20n;
|
|
803
|
+
var PARAM_SUBSCRIPTION_FILTER = 0x21n;
|
|
804
|
+
var PARAM_GROUP_ORDER = 0x22n;
|
|
805
|
+
function encodeParams(params, writer) {
|
|
806
|
+
let count = params.unknown ? params.unknown.length : 0;
|
|
807
|
+
if (params.expires !== void 0) count++;
|
|
808
|
+
if (params.largest_object !== void 0) count++;
|
|
809
|
+
if (params.subscriber_priority !== void 0) count++;
|
|
810
|
+
if (params.subscription_filter !== void 0) count++;
|
|
811
|
+
if (params.group_order !== void 0) count++;
|
|
812
|
+
writer.writeVarInt(count);
|
|
813
|
+
if (params.expires !== void 0) {
|
|
814
|
+
writer.writeVarInt(PARAM_EXPIRES);
|
|
815
|
+
writer.writeVarInt(params.expires);
|
|
816
|
+
}
|
|
817
|
+
if (params.largest_object !== void 0) {
|
|
818
|
+
writer.writeVarInt(PARAM_LARGEST_OBJECT);
|
|
819
|
+
const tmpW = new (0, _chunkRUPCJTC3cjs.BufferWriter)(16);
|
|
820
|
+
tmpW.writeVarInt(params.largest_object.group);
|
|
821
|
+
tmpW.writeVarInt(params.largest_object.object);
|
|
822
|
+
const raw = tmpW.finish();
|
|
823
|
+
writer.writeVarInt(raw.byteLength);
|
|
824
|
+
writer.writeBytes(raw);
|
|
825
|
+
}
|
|
826
|
+
if (params.subscriber_priority !== void 0) {
|
|
827
|
+
writer.writeVarInt(PARAM_SUBSCRIBER_PRIORITY);
|
|
828
|
+
writer.writeVarInt(params.subscriber_priority);
|
|
829
|
+
}
|
|
830
|
+
if (params.subscription_filter !== void 0) {
|
|
831
|
+
writer.writeVarInt(PARAM_SUBSCRIPTION_FILTER);
|
|
832
|
+
const tmpW = new (0, _chunkRUPCJTC3cjs.BufferWriter)(32);
|
|
833
|
+
const f = params.subscription_filter;
|
|
834
|
+
tmpW.writeVarInt(f.filter_type);
|
|
835
|
+
if (f.filter_type === 3n || f.filter_type === 4n) {
|
|
836
|
+
tmpW.writeVarInt(f.start_group);
|
|
837
|
+
tmpW.writeVarInt(f.start_object);
|
|
838
|
+
}
|
|
839
|
+
if (f.filter_type === 4n) {
|
|
840
|
+
tmpW.writeVarInt(f.end_group);
|
|
841
|
+
}
|
|
842
|
+
const raw = tmpW.finish();
|
|
843
|
+
writer.writeVarInt(raw.byteLength);
|
|
844
|
+
writer.writeBytes(raw);
|
|
845
|
+
}
|
|
846
|
+
if (params.group_order !== void 0) {
|
|
847
|
+
writer.writeVarInt(PARAM_GROUP_ORDER);
|
|
848
|
+
writer.writeVarInt(params.group_order);
|
|
849
|
+
}
|
|
850
|
+
if (params.unknown) {
|
|
851
|
+
for (const u of params.unknown) {
|
|
852
|
+
const id = BigInt(u.id);
|
|
853
|
+
writer.writeVarInt(id);
|
|
854
|
+
if (id % 2n === 0n) {
|
|
855
|
+
const raw = _chunkKNDYS3DKcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
856
|
+
const tmpReader = new (0, _chunkRUPCJTC3cjs.BufferReader)(raw);
|
|
857
|
+
const value = tmpReader.readVarInt();
|
|
858
|
+
writer.writeVarInt(value);
|
|
859
|
+
} else {
|
|
860
|
+
const raw = _chunkKNDYS3DKcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
861
|
+
writer.writeVarInt(raw.byteLength);
|
|
862
|
+
writer.writeBytes(raw);
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
function decodeParams(reader) {
|
|
868
|
+
const count = Number(reader.readVarInt());
|
|
869
|
+
const result = {};
|
|
870
|
+
const unknown = [];
|
|
871
|
+
for (let i = 0; i < count; i++) {
|
|
872
|
+
const paramType = reader.readVarInt();
|
|
873
|
+
if (paramType === PARAM_EXPIRES) {
|
|
874
|
+
result.expires = reader.readVarInt();
|
|
875
|
+
} else if (paramType === PARAM_SUBSCRIBER_PRIORITY) {
|
|
876
|
+
result.subscriber_priority = reader.readVarInt();
|
|
877
|
+
} else if (paramType === PARAM_GROUP_ORDER) {
|
|
878
|
+
result.group_order = reader.readVarInt();
|
|
879
|
+
} else if (paramType === PARAM_LARGEST_OBJECT) {
|
|
880
|
+
const length = Number(reader.readVarInt());
|
|
881
|
+
const startOff = reader.offset;
|
|
882
|
+
const group = reader.readVarInt();
|
|
883
|
+
const object = reader.readVarInt();
|
|
884
|
+
const consumed = reader.offset - startOff;
|
|
885
|
+
if (consumed < length) reader.readBytes(length - consumed);
|
|
886
|
+
result.largest_object = { group, object };
|
|
887
|
+
} else if (paramType === PARAM_SUBSCRIPTION_FILTER) {
|
|
888
|
+
const length = Number(reader.readVarInt());
|
|
889
|
+
const startOff = reader.offset;
|
|
890
|
+
const filter_type = reader.readVarInt();
|
|
891
|
+
const filter = { filter_type };
|
|
892
|
+
if (filter_type === 3n || filter_type === 4n) {
|
|
893
|
+
filter.start_group = reader.readVarInt();
|
|
894
|
+
filter.start_object = reader.readVarInt();
|
|
895
|
+
}
|
|
896
|
+
if (filter_type === 4n) {
|
|
897
|
+
filter.end_group = reader.readVarInt();
|
|
898
|
+
}
|
|
899
|
+
const consumed = reader.offset - startOff;
|
|
900
|
+
if (consumed < length) reader.readBytes(length - consumed);
|
|
901
|
+
result.subscription_filter = filter;
|
|
902
|
+
} else if (paramType % 2n === 0n) {
|
|
903
|
+
const value = reader.readVarInt();
|
|
904
|
+
const tmpWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)(16);
|
|
905
|
+
tmpWriter.writeVarInt(value);
|
|
906
|
+
const raw = tmpWriter.finish();
|
|
907
|
+
unknown.push({
|
|
908
|
+
id: `0x${paramType.toString(16)}`,
|
|
909
|
+
length: raw.byteLength,
|
|
910
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, raw)
|
|
911
|
+
});
|
|
912
|
+
} else {
|
|
913
|
+
const length = Number(reader.readVarInt());
|
|
914
|
+
const bytes = reader.readBytes(length);
|
|
915
|
+
unknown.push({
|
|
916
|
+
id: `0x${paramType.toString(16)}`,
|
|
917
|
+
length,
|
|
918
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, bytes)
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
if (unknown.length > 0) {
|
|
923
|
+
result.unknown = unknown;
|
|
924
|
+
}
|
|
925
|
+
return result;
|
|
926
|
+
}
|
|
927
|
+
function encodeClientSetupPayload(msg, w) {
|
|
928
|
+
encodeSetupParams(msg.parameters, w);
|
|
929
|
+
}
|
|
930
|
+
function encodeServerSetupPayload(msg, w) {
|
|
931
|
+
encodeSetupParams(msg.parameters, w);
|
|
932
|
+
}
|
|
933
|
+
function encodeSubscribePayload(msg, w) {
|
|
395
934
|
w.writeVarInt(msg.request_id);
|
|
396
935
|
w.writeTuple(msg.track_namespace);
|
|
397
936
|
w.writeString(msg.track_name);
|
|
398
937
|
encodeParams(msg.parameters, w);
|
|
399
938
|
}
|
|
400
|
-
function
|
|
939
|
+
function encodeSubscribeOkPayload(msg, w) {
|
|
401
940
|
w.writeVarInt(msg.request_id);
|
|
941
|
+
w.writeVarInt(msg.track_alias);
|
|
402
942
|
encodeParams(msg.parameters, w);
|
|
403
943
|
}
|
|
404
|
-
function
|
|
944
|
+
function encodeSubscribeUpdatePayload(msg, w) {
|
|
405
945
|
w.writeVarInt(msg.request_id);
|
|
406
|
-
w.writeVarInt(msg.
|
|
407
|
-
|
|
946
|
+
w.writeVarInt(msg.subscription_request_id);
|
|
947
|
+
encodeParams(msg.parameters, w);
|
|
408
948
|
}
|
|
409
|
-
function
|
|
410
|
-
w.
|
|
949
|
+
function encodeUnsubscribePayload(msg, w) {
|
|
950
|
+
w.writeVarInt(msg.request_id);
|
|
411
951
|
}
|
|
412
|
-
function
|
|
413
|
-
w.writeVarInt(msg.
|
|
952
|
+
function encodePublishPayload(msg, w) {
|
|
953
|
+
w.writeVarInt(msg.request_id);
|
|
954
|
+
w.writeTuple(msg.track_namespace);
|
|
955
|
+
w.writeString(msg.track_name);
|
|
956
|
+
w.writeVarInt(msg.track_alias);
|
|
957
|
+
encodeParams(msg.parameters, w);
|
|
414
958
|
}
|
|
415
|
-
function
|
|
416
|
-
w.writeVarInt(msg.
|
|
959
|
+
function encodePublishOkPayload(msg, w) {
|
|
960
|
+
w.writeVarInt(msg.request_id);
|
|
961
|
+
encodeParams(msg.parameters, w);
|
|
417
962
|
}
|
|
418
|
-
function
|
|
419
|
-
|
|
420
|
-
|
|
963
|
+
function encodePublishDonePayload(msg, w) {
|
|
964
|
+
w.writeVarInt(msg.request_id);
|
|
965
|
+
w.writeVarInt(msg.status_code);
|
|
966
|
+
w.writeVarInt(msg.stream_count);
|
|
967
|
+
w.writeString(msg.reason_phrase);
|
|
421
968
|
}
|
|
422
|
-
function
|
|
423
|
-
|
|
424
|
-
|
|
969
|
+
function encodePublishNamespacePayload(msg, w) {
|
|
970
|
+
w.writeVarInt(msg.request_id);
|
|
971
|
+
w.writeTuple(msg.track_namespace);
|
|
972
|
+
encodeParams(msg.parameters, w);
|
|
425
973
|
}
|
|
426
|
-
function
|
|
427
|
-
|
|
428
|
-
const track_namespace = r.readTuple();
|
|
429
|
-
const track_name = r.readString();
|
|
430
|
-
const parameters = decodeParams(r);
|
|
431
|
-
return { type: "subscribe", request_id, track_namespace, track_name, parameters };
|
|
974
|
+
function encodePublishNamespaceDonePayload(msg, w) {
|
|
975
|
+
w.writeTuple(msg.track_namespace);
|
|
432
976
|
}
|
|
433
|
-
function
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
977
|
+
function encodePublishNamespaceCancelPayload(msg, w) {
|
|
978
|
+
w.writeTuple(msg.track_namespace);
|
|
979
|
+
w.writeVarInt(msg.error_code);
|
|
980
|
+
w.writeString(msg.reason_phrase);
|
|
981
|
+
}
|
|
982
|
+
function encodeSubscribeNamespacePayload(msg, w) {
|
|
983
|
+
w.writeVarInt(msg.request_id);
|
|
984
|
+
w.writeTuple(msg.namespace_prefix);
|
|
985
|
+
encodeParams(msg.parameters, w);
|
|
986
|
+
}
|
|
987
|
+
function encodeUnsubscribeNamespacePayload(msg, w) {
|
|
988
|
+
w.writeVarInt(msg.request_id);
|
|
989
|
+
}
|
|
990
|
+
function encodeFetchPayload(msg, w) {
|
|
991
|
+
w.writeVarInt(msg.request_id);
|
|
992
|
+
w.writeVarInt(msg.fetch_type);
|
|
993
|
+
const ft = Number(msg.fetch_type);
|
|
994
|
+
if (ft === 1 && msg.standalone) {
|
|
995
|
+
w.writeTuple(msg.standalone.track_namespace);
|
|
996
|
+
w.writeString(msg.standalone.track_name);
|
|
997
|
+
w.writeVarInt(msg.standalone.start_group);
|
|
998
|
+
w.writeVarInt(msg.standalone.start_object);
|
|
999
|
+
w.writeVarInt(msg.standalone.end_group);
|
|
1000
|
+
w.writeVarInt(msg.standalone.end_object);
|
|
1001
|
+
} else if ((ft === 2 || ft === 3) && msg.joining) {
|
|
1002
|
+
w.writeVarInt(msg.joining.joining_request_id);
|
|
1003
|
+
w.writeVarInt(msg.joining.joining_start);
|
|
1004
|
+
}
|
|
1005
|
+
encodeParams(msg.parameters, w);
|
|
1006
|
+
}
|
|
1007
|
+
function encodeFetchOkPayload(msg, w) {
|
|
1008
|
+
w.writeVarInt(msg.request_id);
|
|
1009
|
+
w.writeUint8(msg.end_of_track);
|
|
1010
|
+
w.writeVarInt(msg.end_group);
|
|
1011
|
+
w.writeVarInt(msg.end_object);
|
|
1012
|
+
encodeParams(msg.parameters, w);
|
|
1013
|
+
}
|
|
1014
|
+
function encodeFetchCancelPayload(msg, w) {
|
|
1015
|
+
w.writeVarInt(msg.request_id);
|
|
1016
|
+
}
|
|
1017
|
+
function encodeTrackStatusPayload(msg, w) {
|
|
1018
|
+
w.writeVarInt(msg.request_id);
|
|
1019
|
+
w.writeTuple(msg.track_namespace);
|
|
1020
|
+
w.writeString(msg.track_name);
|
|
1021
|
+
encodeParams(msg.parameters, w);
|
|
1022
|
+
}
|
|
1023
|
+
function encodeRequestOkPayload(msg, w) {
|
|
1024
|
+
w.writeVarInt(msg.request_id);
|
|
1025
|
+
encodeParams(msg.parameters, w);
|
|
1026
|
+
}
|
|
1027
|
+
function encodeRequestErrorPayload(msg, w) {
|
|
1028
|
+
w.writeVarInt(msg.request_id);
|
|
1029
|
+
w.writeVarInt(msg.error_code);
|
|
1030
|
+
w.writeString(msg.reason_phrase);
|
|
1031
|
+
}
|
|
1032
|
+
function encodeGoAwayPayload(msg, w) {
|
|
1033
|
+
w.writeString(msg.new_session_uri);
|
|
1034
|
+
}
|
|
1035
|
+
function encodeMaxRequestIdPayload(msg, w) {
|
|
1036
|
+
w.writeVarInt(msg.max_request_id);
|
|
1037
|
+
}
|
|
1038
|
+
function encodeRequestsBlockedPayload(msg, w) {
|
|
1039
|
+
w.writeVarInt(msg.maximum_request_id);
|
|
1040
|
+
}
|
|
1041
|
+
function decodeClientSetupPayload(r) {
|
|
1042
|
+
const parameters = decodeSetupParams(r);
|
|
1043
|
+
return { type: "client_setup", parameters };
|
|
1044
|
+
}
|
|
1045
|
+
function decodeServerSetupPayload(r) {
|
|
1046
|
+
const parameters = decodeSetupParams(r);
|
|
1047
|
+
return { type: "server_setup", parameters };
|
|
1048
|
+
}
|
|
1049
|
+
function decodeSubscribePayload(r) {
|
|
1050
|
+
const request_id = r.readVarInt();
|
|
1051
|
+
const track_namespace = r.readTuple();
|
|
1052
|
+
const track_name = r.readString();
|
|
1053
|
+
const parameters = decodeParams(r);
|
|
1054
|
+
return { type: "subscribe", request_id, track_namespace, track_name, parameters };
|
|
1055
|
+
}
|
|
1056
|
+
function decodeSubscribeOkPayload(r) {
|
|
1057
|
+
const request_id = r.readVarInt();
|
|
1058
|
+
const track_alias = r.readVarInt();
|
|
1059
|
+
const parameters = decodeParams(r);
|
|
1060
|
+
return { type: "subscribe_ok", request_id, track_alias, parameters };
|
|
438
1061
|
}
|
|
439
1062
|
function decodeSubscribeUpdatePayload(r) {
|
|
440
1063
|
const request_id = r.readVarInt();
|
|
@@ -497,7 +1120,7 @@ function decodeFetchPayload(r) {
|
|
|
497
1120
|
const fetch_type = r.readVarInt();
|
|
498
1121
|
const ft = Number(fetch_type);
|
|
499
1122
|
if (ft < 1 || ft > 3) {
|
|
500
|
-
throw new (0,
|
|
1123
|
+
throw new (0, _chunkRUPCJTC3cjs.DecodeError)("CONSTRAINT_VIOLATION", `Invalid fetch_type: ${ft}`, r.offset);
|
|
501
1124
|
}
|
|
502
1125
|
let standalone;
|
|
503
1126
|
let joining;
|
|
@@ -596,13 +1219,13 @@ function encodeMessage(message) {
|
|
|
596
1219
|
if (typeId === void 0) {
|
|
597
1220
|
throw new Error(`Unknown message type: ${message.type}`);
|
|
598
1221
|
}
|
|
599
|
-
const payloadWriter = new (0,
|
|
1222
|
+
const payloadWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
600
1223
|
encodePayload(message, payloadWriter);
|
|
601
|
-
const payload = payloadWriter.
|
|
1224
|
+
const payload = payloadWriter.finishView();
|
|
602
1225
|
if (payload.byteLength > 65535) {
|
|
603
1226
|
throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
|
|
604
1227
|
}
|
|
605
|
-
const writer = new (0,
|
|
1228
|
+
const writer = new (0, _chunkRUPCJTC3cjs.BufferWriter)(payload.byteLength + 16);
|
|
606
1229
|
writer.writeVarInt(typeId);
|
|
607
1230
|
writer.writeUint8(payload.byteLength >> 8 & 255);
|
|
608
1231
|
writer.writeUint8(payload.byteLength & 255);
|
|
@@ -651,370 +1274,62 @@ function encodePayload(msg, w) {
|
|
|
651
1274
|
return encodeRequestOkPayload(msg, w);
|
|
652
1275
|
case "request_error":
|
|
653
1276
|
return encodeRequestErrorPayload(msg, w);
|
|
654
|
-
case "goaway":
|
|
655
|
-
return encodeGoAwayPayload(msg, w);
|
|
656
|
-
case "max_request_id":
|
|
657
|
-
return encodeMaxRequestIdPayload(msg, w);
|
|
658
|
-
case "requests_blocked":
|
|
659
|
-
return encodeRequestsBlockedPayload(msg, w);
|
|
660
|
-
default: {
|
|
661
|
-
const _exhaustive = msg;
|
|
662
|
-
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
function decodeMessage(bytes) {
|
|
667
|
-
try {
|
|
668
|
-
const reader = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
669
|
-
const typeId = reader.readVarInt();
|
|
670
|
-
const lenHi = reader.readUint8();
|
|
671
|
-
const lenLo = reader.readUint8();
|
|
672
|
-
const payloadLength = lenHi << 8 | lenLo;
|
|
673
|
-
const payloadBytes = reader.readBytes(payloadLength);
|
|
674
|
-
const payloadReader = new (0, _chunkFWISIR26cjs.BufferReader)(payloadBytes);
|
|
675
|
-
const decoder = payloadDecoders.get(typeId);
|
|
676
|
-
if (!decoder) {
|
|
677
|
-
return {
|
|
678
|
-
ok: false,
|
|
679
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
680
|
-
"UNKNOWN_MESSAGE_TYPE",
|
|
681
|
-
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
682
|
-
0
|
|
683
|
-
)
|
|
684
|
-
};
|
|
685
|
-
}
|
|
686
|
-
const message = decoder(payloadReader);
|
|
687
|
-
return { ok: true, value: message, bytesRead: reader.offset };
|
|
688
|
-
} catch (e) {
|
|
689
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) {
|
|
690
|
-
return { ok: false, error: e };
|
|
691
|
-
}
|
|
692
|
-
throw e;
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
var FETCH_STREAM_TYPE = 0x05n;
|
|
696
|
-
function encodeSubgroupStream(stream) {
|
|
697
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
698
|
-
const streamType = stream.headerType;
|
|
699
|
-
w.writeVarInt(BigInt(streamType));
|
|
700
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
701
|
-
const hasPriority = streamType < 48;
|
|
702
|
-
w.writeVarInt(stream.trackAlias);
|
|
703
|
-
w.writeVarInt(stream.groupId);
|
|
704
|
-
if (hasSubgroupField) {
|
|
705
|
-
w.writeVarInt(stream.subgroupId);
|
|
706
|
-
}
|
|
707
|
-
if (hasPriority) {
|
|
708
|
-
w.writeUint8(stream.publisherPriority);
|
|
709
|
-
}
|
|
710
|
-
let prevObjectId = -1n;
|
|
711
|
-
for (const obj of stream.objects) {
|
|
712
|
-
const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
713
|
-
w.writeVarInt(delta);
|
|
714
|
-
w.writeVarInt(obj.payloadLength);
|
|
715
|
-
if (obj.payloadLength === 0) {
|
|
716
|
-
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
717
|
-
} else {
|
|
718
|
-
w.writeBytes(obj.payload);
|
|
719
|
-
}
|
|
720
|
-
prevObjectId = obj.objectId;
|
|
721
|
-
}
|
|
722
|
-
return w.finish();
|
|
723
|
-
}
|
|
724
|
-
function encodeDatagram(dg) {
|
|
725
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
726
|
-
const dgType = dg.datagramType;
|
|
727
|
-
w.writeVarInt(BigInt(dgType));
|
|
728
|
-
w.writeVarInt(dg.trackAlias);
|
|
729
|
-
w.writeVarInt(dg.groupId);
|
|
730
|
-
const objectIdAbsent = (dgType & 4) !== 0;
|
|
731
|
-
const isStatus = (dgType & 32) !== 0;
|
|
732
|
-
if (!objectIdAbsent) {
|
|
733
|
-
w.writeVarInt(dg.objectId);
|
|
734
|
-
}
|
|
735
|
-
w.writeUint8(dg.publisherPriority);
|
|
736
|
-
if (isStatus) {
|
|
737
|
-
w.writeVarInt(_nullishCoalesce(dg.objectStatus, () => ( 0n)));
|
|
738
|
-
} else {
|
|
739
|
-
w.writeBytes(dg.payload);
|
|
740
|
-
}
|
|
741
|
-
return w.finish();
|
|
742
|
-
}
|
|
743
|
-
function encodeFetchStream(stream) {
|
|
744
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
745
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
746
|
-
w.writeVarInt(stream.requestId);
|
|
747
|
-
for (const obj of stream.objects) {
|
|
748
|
-
w.writeUint8(obj.serializationFlags);
|
|
749
|
-
const flags = obj.serializationFlags;
|
|
750
|
-
if (flags & 8) w.writeVarInt(obj.groupId);
|
|
751
|
-
const subgroupEncoding = flags & 3;
|
|
752
|
-
if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
|
|
753
|
-
if (flags & 4) w.writeVarInt(obj.objectId);
|
|
754
|
-
if (flags & 16) w.writeUint8(obj.publisherPriority);
|
|
755
|
-
w.writeVarInt(obj.payloadLength);
|
|
756
|
-
if (obj.payloadLength === 0) {
|
|
757
|
-
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
758
|
-
} else {
|
|
759
|
-
w.writeBytes(obj.payload);
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
return w.finish();
|
|
763
|
-
}
|
|
764
|
-
function decodeSubgroupStream(bytes) {
|
|
765
|
-
try {
|
|
766
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
767
|
-
const streamType = Number(r.readVarInt());
|
|
768
|
-
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
|
|
769
|
-
return {
|
|
770
|
-
ok: false,
|
|
771
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
772
|
-
"CONSTRAINT_VIOLATION",
|
|
773
|
-
`Expected subgroup stream type 0x10-0x1D or 0x30-0x3D, got 0x${streamType.toString(16)}`,
|
|
774
|
-
0
|
|
775
|
-
)
|
|
776
|
-
};
|
|
777
|
-
}
|
|
778
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
779
|
-
const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
780
|
-
const hasPriority = streamType < 48;
|
|
781
|
-
const trackAlias = r.readVarInt();
|
|
782
|
-
const groupId = r.readVarInt();
|
|
783
|
-
let subgroupId = 0n;
|
|
784
|
-
if (hasSubgroupField) {
|
|
785
|
-
subgroupId = r.readVarInt();
|
|
786
|
-
}
|
|
787
|
-
let publisherPriority = 128;
|
|
788
|
-
if (hasPriority) {
|
|
789
|
-
publisherPriority = r.readUint8();
|
|
790
|
-
}
|
|
791
|
-
const objects = [];
|
|
792
|
-
let prevObjectId = -1n;
|
|
793
|
-
let firstObject = true;
|
|
794
|
-
while (r.remaining > 0) {
|
|
795
|
-
const delta = r.readVarInt();
|
|
796
|
-
let objectId;
|
|
797
|
-
if (firstObject) {
|
|
798
|
-
objectId = delta;
|
|
799
|
-
if (subgroupIsFirstObjId && firstObject) {
|
|
800
|
-
subgroupId = objectId;
|
|
801
|
-
}
|
|
802
|
-
firstObject = false;
|
|
803
|
-
} else {
|
|
804
|
-
objectId = prevObjectId + 1n + delta;
|
|
805
|
-
}
|
|
806
|
-
const payloadLength = Number(r.readVarInt());
|
|
807
|
-
let payload;
|
|
808
|
-
let status;
|
|
809
|
-
if (payloadLength === 0) {
|
|
810
|
-
status = r.readVarInt();
|
|
811
|
-
payload = new Uint8Array(0);
|
|
812
|
-
} else {
|
|
813
|
-
payload = r.readBytes(payloadLength);
|
|
814
|
-
}
|
|
815
|
-
const obj = { type: "object", objectId, payloadLength, payload };
|
|
816
|
-
if (status !== void 0) obj.status = status;
|
|
817
|
-
objects.push(obj);
|
|
818
|
-
prevObjectId = objectId;
|
|
819
|
-
}
|
|
820
|
-
return {
|
|
821
|
-
ok: true,
|
|
822
|
-
value: {
|
|
823
|
-
type: "subgroup",
|
|
824
|
-
headerType: streamType,
|
|
825
|
-
trackAlias,
|
|
826
|
-
groupId,
|
|
827
|
-
subgroupId,
|
|
828
|
-
publisherPriority,
|
|
829
|
-
objects
|
|
830
|
-
},
|
|
831
|
-
bytesRead: r.offset
|
|
832
|
-
};
|
|
833
|
-
} catch (e) {
|
|
834
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
835
|
-
throw e;
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
|
-
function decodeDatagram(bytes) {
|
|
839
|
-
try {
|
|
840
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
841
|
-
const dgType = Number(r.readVarInt());
|
|
842
|
-
const objectIdAbsent = (dgType & 4) !== 0;
|
|
843
|
-
const endOfGroup = (dgType & 2) !== 0;
|
|
844
|
-
const isStatus = (dgType & 32) !== 0;
|
|
845
|
-
const trackAlias = r.readVarInt();
|
|
846
|
-
const groupId = r.readVarInt();
|
|
847
|
-
let objectId = 0n;
|
|
848
|
-
if (!objectIdAbsent) {
|
|
849
|
-
objectId = r.readVarInt();
|
|
850
|
-
}
|
|
851
|
-
const publisherPriority = r.readUint8();
|
|
852
|
-
let objectStatus;
|
|
853
|
-
let payload;
|
|
854
|
-
if (isStatus) {
|
|
855
|
-
objectStatus = r.readVarInt();
|
|
856
|
-
payload = new Uint8Array(0);
|
|
857
|
-
} else {
|
|
858
|
-
payload = r.readBytes(r.remaining);
|
|
859
|
-
}
|
|
860
|
-
const payloadLength = payload.byteLength;
|
|
861
|
-
const result = {
|
|
862
|
-
type: "datagram",
|
|
863
|
-
datagramType: dgType,
|
|
864
|
-
trackAlias,
|
|
865
|
-
groupId,
|
|
866
|
-
objectId,
|
|
867
|
-
publisherPriority,
|
|
868
|
-
payloadLength,
|
|
869
|
-
payload
|
|
870
|
-
};
|
|
871
|
-
if (endOfGroup) result.endOfGroup = true;
|
|
872
|
-
if (objectStatus !== void 0)
|
|
873
|
-
result.objectStatus = objectStatus;
|
|
874
|
-
return { ok: true, value: result, bytesRead: r.offset };
|
|
875
|
-
} catch (e) {
|
|
876
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
877
|
-
throw e;
|
|
878
|
-
}
|
|
879
|
-
}
|
|
880
|
-
function decodeFetchStream(bytes) {
|
|
881
|
-
try {
|
|
882
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
883
|
-
const streamType = r.readVarInt();
|
|
884
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
885
|
-
return {
|
|
886
|
-
ok: false,
|
|
887
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
888
|
-
"CONSTRAINT_VIOLATION",
|
|
889
|
-
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
890
|
-
0
|
|
891
|
-
)
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
const requestId = r.readVarInt();
|
|
895
|
-
const objects = [];
|
|
896
|
-
let prevGroupId = 0n;
|
|
897
|
-
let prevSubgroupId = 0n;
|
|
898
|
-
let prevObjectId = 0n;
|
|
899
|
-
let prevPriority = 128;
|
|
900
|
-
let first = true;
|
|
901
|
-
while (r.remaining > 0) {
|
|
902
|
-
const flags = r.readUint8();
|
|
903
|
-
const subgroupEncoding = flags & 3;
|
|
904
|
-
const objectIdPresent = (flags & 4) !== 0;
|
|
905
|
-
const groupIdPresent = (flags & 8) !== 0;
|
|
906
|
-
const priorityPresent = (flags & 16) !== 0;
|
|
907
|
-
const extensionsPresent = (flags & 32) !== 0;
|
|
908
|
-
if (flags & 192) {
|
|
909
|
-
return {
|
|
910
|
-
ok: false,
|
|
911
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
912
|
-
"CONSTRAINT_VIOLATION",
|
|
913
|
-
"Reserved bits set in fetch object flags",
|
|
914
|
-
r.offset
|
|
915
|
-
)
|
|
916
|
-
};
|
|
917
|
-
}
|
|
918
|
-
let groupId = prevGroupId;
|
|
919
|
-
if (groupIdPresent) {
|
|
920
|
-
groupId = r.readVarInt();
|
|
921
|
-
} else if (first) {
|
|
922
|
-
return {
|
|
923
|
-
ok: false,
|
|
924
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
925
|
-
"CONSTRAINT_VIOLATION",
|
|
926
|
-
"First fetch object must include groupId",
|
|
927
|
-
r.offset
|
|
928
|
-
)
|
|
929
|
-
};
|
|
930
|
-
}
|
|
931
|
-
let subgroupId = prevSubgroupId;
|
|
932
|
-
if (subgroupEncoding === 3) {
|
|
933
|
-
subgroupId = r.readVarInt();
|
|
934
|
-
} else if (subgroupEncoding === 0) {
|
|
935
|
-
}
|
|
936
|
-
let objectId = prevObjectId + 1n;
|
|
937
|
-
if (objectIdPresent) {
|
|
938
|
-
objectId = r.readVarInt();
|
|
939
|
-
} else if (first) {
|
|
940
|
-
return {
|
|
941
|
-
ok: false,
|
|
942
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
943
|
-
"CONSTRAINT_VIOLATION",
|
|
944
|
-
"First fetch object must include objectId",
|
|
945
|
-
r.offset
|
|
946
|
-
)
|
|
947
|
-
};
|
|
948
|
-
}
|
|
949
|
-
if (priorityPresent) {
|
|
950
|
-
prevPriority = r.readUint8();
|
|
951
|
-
}
|
|
952
|
-
if (extensionsPresent) {
|
|
953
|
-
const extLen = Number(r.readVarInt());
|
|
954
|
-
if (extLen > 0) {
|
|
955
|
-
r.readBytes(extLen);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
const payloadLength = Number(r.readVarInt());
|
|
959
|
-
let payload;
|
|
960
|
-
let status;
|
|
961
|
-
if (payloadLength > 0) {
|
|
962
|
-
payload = r.readBytes(payloadLength);
|
|
963
|
-
} else {
|
|
964
|
-
status = r.readVarInt();
|
|
965
|
-
payload = new Uint8Array(0);
|
|
966
|
-
}
|
|
967
|
-
const obj = {
|
|
968
|
-
type: "object",
|
|
969
|
-
serializationFlags: flags,
|
|
970
|
-
groupId,
|
|
971
|
-
subgroupId,
|
|
972
|
-
objectId,
|
|
973
|
-
publisherPriority: prevPriority,
|
|
974
|
-
payloadLength,
|
|
975
|
-
payload
|
|
976
|
-
};
|
|
977
|
-
if (status !== void 0) obj.status = status;
|
|
978
|
-
objects.push(obj);
|
|
979
|
-
prevGroupId = groupId;
|
|
980
|
-
prevSubgroupId = subgroupId;
|
|
981
|
-
prevObjectId = objectId;
|
|
982
|
-
first = false;
|
|
1277
|
+
case "goaway":
|
|
1278
|
+
return encodeGoAwayPayload(msg, w);
|
|
1279
|
+
case "max_request_id":
|
|
1280
|
+
return encodeMaxRequestIdPayload(msg, w);
|
|
1281
|
+
case "requests_blocked":
|
|
1282
|
+
return encodeRequestsBlockedPayload(msg, w);
|
|
1283
|
+
default: {
|
|
1284
|
+
const _exhaustive = msg;
|
|
1285
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
983
1286
|
}
|
|
984
|
-
return {
|
|
985
|
-
ok: true,
|
|
986
|
-
value: { type: "fetch", requestId, objects },
|
|
987
|
-
bytesRead: r.offset
|
|
988
|
-
};
|
|
989
|
-
} catch (e) {
|
|
990
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
991
|
-
throw e;
|
|
992
1287
|
}
|
|
993
1288
|
}
|
|
994
|
-
function
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1289
|
+
function decodeMessage(bytes) {
|
|
1290
|
+
try {
|
|
1291
|
+
const reader = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
1292
|
+
const typeId = reader.readVarInt();
|
|
1293
|
+
const lenHi = reader.readUint8();
|
|
1294
|
+
const lenLo = reader.readUint8();
|
|
1295
|
+
const payloadLength = lenHi << 8 | lenLo;
|
|
1296
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1297
|
+
const payloadReader = new (0, _chunkRUPCJTC3cjs.BufferReader)(payloadBytes);
|
|
1298
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1299
|
+
if (!decoder) {
|
|
1300
|
+
return {
|
|
1301
|
+
ok: false,
|
|
1302
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
1303
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1304
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
1305
|
+
0
|
|
1306
|
+
)
|
|
1307
|
+
};
|
|
1308
|
+
}
|
|
1309
|
+
const message = decoder(payloadReader);
|
|
1310
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
1311
|
+
} catch (e) {
|
|
1312
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) {
|
|
1313
|
+
return { ok: false, error: e };
|
|
1005
1314
|
}
|
|
1315
|
+
throw e;
|
|
1006
1316
|
}
|
|
1007
1317
|
}
|
|
1008
1318
|
function createStreamDecoder() {
|
|
1009
1319
|
let buffer = new Uint8Array(0);
|
|
1320
|
+
let offset = 0;
|
|
1010
1321
|
return new TransformStream({
|
|
1011
1322
|
transform(chunk, controller) {
|
|
1323
|
+
if (offset > 0) {
|
|
1324
|
+
buffer = buffer.subarray(offset);
|
|
1325
|
+
offset = 0;
|
|
1326
|
+
}
|
|
1012
1327
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1013
1328
|
newBuffer.set(buffer, 0);
|
|
1014
1329
|
newBuffer.set(chunk, buffer.length);
|
|
1015
1330
|
buffer = newBuffer;
|
|
1016
|
-
while (buffer.length
|
|
1017
|
-
const result = decodeMessage(buffer);
|
|
1331
|
+
while (offset < buffer.length) {
|
|
1332
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1018
1333
|
if (!result.ok) {
|
|
1019
1334
|
if (result.error.code === "UNEXPECTED_END") {
|
|
1020
1335
|
break;
|
|
@@ -1023,253 +1338,14 @@ function createStreamDecoder() {
|
|
|
1023
1338
|
return;
|
|
1024
1339
|
}
|
|
1025
1340
|
controller.enqueue(result.value);
|
|
1026
|
-
|
|
1027
|
-
}
|
|
1028
|
-
},
|
|
1029
|
-
flush(controller) {
|
|
1030
|
-
if (buffer.length > 0) {
|
|
1031
|
-
controller.error(
|
|
1032
|
-
new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
1033
|
-
);
|
|
1034
|
-
}
|
|
1035
|
-
}
|
|
1036
|
-
});
|
|
1037
|
-
}
|
|
1038
|
-
function createSubgroupStreamDecoder() {
|
|
1039
|
-
let buffer = new Uint8Array(0);
|
|
1040
|
-
let headerEmitted = false;
|
|
1041
|
-
let prevObjectId = -1n;
|
|
1042
|
-
let firstObject = true;
|
|
1043
|
-
let _subgroupIsFirstObjId = false;
|
|
1044
|
-
return new TransformStream({
|
|
1045
|
-
transform(chunk, controller) {
|
|
1046
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1047
|
-
newBuffer.set(buffer, 0);
|
|
1048
|
-
newBuffer.set(chunk, buffer.length);
|
|
1049
|
-
buffer = newBuffer;
|
|
1050
|
-
if (!headerEmitted) {
|
|
1051
|
-
try {
|
|
1052
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1053
|
-
const streamType = Number(r.readVarInt());
|
|
1054
|
-
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
|
|
1055
|
-
controller.error(
|
|
1056
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1057
|
-
"CONSTRAINT_VIOLATION",
|
|
1058
|
-
`Expected subgroup stream type, got 0x${streamType.toString(16)}`,
|
|
1059
|
-
0
|
|
1060
|
-
)
|
|
1061
|
-
);
|
|
1062
|
-
return;
|
|
1063
|
-
}
|
|
1064
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
1065
|
-
_subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
1066
|
-
const hasPriority = streamType < 48;
|
|
1067
|
-
const trackAlias = r.readVarInt();
|
|
1068
|
-
const groupId = r.readVarInt();
|
|
1069
|
-
let subgroupId = 0n;
|
|
1070
|
-
if (hasSubgroupField) {
|
|
1071
|
-
subgroupId = r.readVarInt();
|
|
1072
|
-
}
|
|
1073
|
-
let publisherPriority = 128;
|
|
1074
|
-
if (hasPriority) {
|
|
1075
|
-
publisherPriority = r.readUint8();
|
|
1076
|
-
}
|
|
1077
|
-
controller.enqueue({
|
|
1078
|
-
type: "subgroup_header",
|
|
1079
|
-
trackAlias,
|
|
1080
|
-
groupId,
|
|
1081
|
-
subgroupId,
|
|
1082
|
-
publisherPriority
|
|
1083
|
-
});
|
|
1084
|
-
headerEmitted = true;
|
|
1085
|
-
buffer = buffer.slice(r.offset);
|
|
1086
|
-
} catch (e) {
|
|
1087
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1088
|
-
return;
|
|
1089
|
-
}
|
|
1090
|
-
controller.error(e);
|
|
1091
|
-
return;
|
|
1092
|
-
}
|
|
1093
|
-
}
|
|
1094
|
-
while (buffer.length > 0) {
|
|
1095
|
-
try {
|
|
1096
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1097
|
-
const delta = r.readVarInt();
|
|
1098
|
-
let objectId;
|
|
1099
|
-
if (firstObject) {
|
|
1100
|
-
objectId = delta;
|
|
1101
|
-
firstObject = false;
|
|
1102
|
-
} else {
|
|
1103
|
-
objectId = prevObjectId + 1n + delta;
|
|
1104
|
-
}
|
|
1105
|
-
const payloadLength = Number(r.readVarInt());
|
|
1106
|
-
const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
|
|
1107
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1108
|
-
buffer = buffer.slice(r.offset);
|
|
1109
|
-
prevObjectId = objectId;
|
|
1110
|
-
} catch (e) {
|
|
1111
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1112
|
-
break;
|
|
1113
|
-
}
|
|
1114
|
-
controller.error(e);
|
|
1115
|
-
return;
|
|
1116
|
-
}
|
|
1341
|
+
offset += result.bytesRead;
|
|
1117
1342
|
}
|
|
1118
1343
|
},
|
|
1119
1344
|
flush(controller) {
|
|
1120
|
-
if (buffer.length
|
|
1121
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
});
|
|
1125
|
-
}
|
|
1126
|
-
function createFetchStreamDecoder() {
|
|
1127
|
-
let buffer = new Uint8Array(0);
|
|
1128
|
-
let headerEmitted = false;
|
|
1129
|
-
return new TransformStream({
|
|
1130
|
-
transform(chunk, controller) {
|
|
1131
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1132
|
-
newBuffer.set(buffer, 0);
|
|
1133
|
-
newBuffer.set(chunk, buffer.length);
|
|
1134
|
-
buffer = newBuffer;
|
|
1135
|
-
if (!headerEmitted) {
|
|
1136
|
-
try {
|
|
1137
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1138
|
-
const streamType = r.readVarInt();
|
|
1139
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
1140
|
-
controller.error(
|
|
1141
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1142
|
-
"CONSTRAINT_VIOLATION",
|
|
1143
|
-
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
1144
|
-
0
|
|
1145
|
-
)
|
|
1146
|
-
);
|
|
1147
|
-
return;
|
|
1148
|
-
}
|
|
1149
|
-
const requestId = r.readVarInt();
|
|
1150
|
-
controller.enqueue({ type: "fetch_header", requestId });
|
|
1151
|
-
headerEmitted = true;
|
|
1152
|
-
buffer = buffer.slice(r.offset);
|
|
1153
|
-
} catch (e) {
|
|
1154
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1155
|
-
return;
|
|
1156
|
-
}
|
|
1157
|
-
controller.error(e);
|
|
1158
|
-
return;
|
|
1159
|
-
}
|
|
1160
|
-
}
|
|
1161
|
-
while (buffer.length > 0) {
|
|
1162
|
-
try {
|
|
1163
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1164
|
-
const flags = r.readUint8();
|
|
1165
|
-
const objectIdPresent = (flags & 4) !== 0;
|
|
1166
|
-
const groupIdPresent = (flags & 8) !== 0;
|
|
1167
|
-
const priorityPresent = (flags & 16) !== 0;
|
|
1168
|
-
const extensionsPresent = (flags & 32) !== 0;
|
|
1169
|
-
const subgroupEncoding = flags & 3;
|
|
1170
|
-
if (groupIdPresent) r.readVarInt();
|
|
1171
|
-
if (subgroupEncoding === 3) r.readVarInt();
|
|
1172
|
-
let objectId = 0n;
|
|
1173
|
-
if (objectIdPresent) objectId = r.readVarInt();
|
|
1174
|
-
if (priorityPresent) r.readUint8();
|
|
1175
|
-
if (extensionsPresent) {
|
|
1176
|
-
const extLen = Number(r.readVarInt());
|
|
1177
|
-
if (extLen > 0) r.readBytes(extLen);
|
|
1178
|
-
}
|
|
1179
|
-
const payloadLength = Number(r.readVarInt());
|
|
1180
|
-
const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
|
|
1181
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1182
|
-
buffer = buffer.slice(r.offset);
|
|
1183
|
-
} catch (e) {
|
|
1184
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1185
|
-
break;
|
|
1186
|
-
}
|
|
1187
|
-
controller.error(e);
|
|
1188
|
-
return;
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
},
|
|
1192
|
-
flush(controller) {
|
|
1193
|
-
if (buffer.length > 0) {
|
|
1194
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1195
|
-
}
|
|
1196
|
-
}
|
|
1197
|
-
});
|
|
1198
|
-
}
|
|
1199
|
-
function createDataStreamDecoder() {
|
|
1200
|
-
let buffer = new Uint8Array(0);
|
|
1201
|
-
let inner = null;
|
|
1202
|
-
const _innerWriter = null;
|
|
1203
|
-
const _innerReader = null;
|
|
1204
|
-
return new TransformStream({
|
|
1205
|
-
transform(chunk, controller) {
|
|
1206
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1207
|
-
newBuffer.set(buffer, 0);
|
|
1208
|
-
newBuffer.set(chunk, buffer.length);
|
|
1209
|
-
buffer = newBuffer;
|
|
1210
|
-
if (inner === null) {
|
|
1211
|
-
if (buffer.length === 0) return;
|
|
1212
|
-
const firstByte = buffer[0];
|
|
1213
|
-
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
1214
|
-
const decoder = createSubgroupStreamDecoder();
|
|
1215
|
-
inner = decoder;
|
|
1216
|
-
} else if (firstByte === 5) {
|
|
1217
|
-
const decoder = createFetchStreamDecoder();
|
|
1218
|
-
inner = decoder;
|
|
1219
|
-
} else {
|
|
1220
|
-
controller.error(
|
|
1221
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1222
|
-
"CONSTRAINT_VIOLATION",
|
|
1223
|
-
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
1224
|
-
0
|
|
1225
|
-
)
|
|
1226
|
-
);
|
|
1227
|
-
return;
|
|
1228
|
-
}
|
|
1229
|
-
}
|
|
1230
|
-
},
|
|
1231
|
-
flush(controller) {
|
|
1232
|
-
if (buffer.length === 0) return;
|
|
1233
|
-
const firstByte = buffer[0];
|
|
1234
|
-
let result;
|
|
1235
|
-
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
1236
|
-
result = decodeSubgroupStream(buffer);
|
|
1237
|
-
} else if (firstByte === 5) {
|
|
1238
|
-
result = decodeFetchStream(buffer);
|
|
1239
|
-
} else {
|
|
1345
|
+
if (offset < buffer.length) {
|
|
1240
1346
|
controller.error(
|
|
1241
|
-
new (0,
|
|
1242
|
-
"CONSTRAINT_VIOLATION",
|
|
1243
|
-
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
1244
|
-
0
|
|
1245
|
-
)
|
|
1347
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
1246
1348
|
);
|
|
1247
|
-
return;
|
|
1248
|
-
}
|
|
1249
|
-
if (!result.ok) {
|
|
1250
|
-
controller.error(result.error);
|
|
1251
|
-
return;
|
|
1252
|
-
}
|
|
1253
|
-
const stream = result.value;
|
|
1254
|
-
if (stream.type === "subgroup") {
|
|
1255
|
-
controller.enqueue({
|
|
1256
|
-
type: "subgroup_header",
|
|
1257
|
-
trackAlias: stream.trackAlias,
|
|
1258
|
-
groupId: stream.groupId,
|
|
1259
|
-
subgroupId: stream.subgroupId,
|
|
1260
|
-
publisherPriority: stream.publisherPriority
|
|
1261
|
-
});
|
|
1262
|
-
for (const obj of stream.objects) {
|
|
1263
|
-
controller.enqueue(obj);
|
|
1264
|
-
}
|
|
1265
|
-
} else if (stream.type === "fetch") {
|
|
1266
|
-
controller.enqueue({
|
|
1267
|
-
type: "fetch_header",
|
|
1268
|
-
requestId: stream.requestId
|
|
1269
|
-
});
|
|
1270
|
-
for (const obj of stream.objects) {
|
|
1271
|
-
controller.enqueue(obj);
|
|
1272
|
-
}
|
|
1273
1349
|
}
|
|
1274
1350
|
}
|
|
1275
1351
|
});
|
|
@@ -1338,4 +1414,4 @@ function createDraft15Codec() {
|
|
|
1338
1414
|
|
|
1339
1415
|
|
|
1340
1416
|
|
|
1341
|
-
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_REQUEST_ERROR = MSG_REQUEST_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_REQUEST_OK = MSG_REQUEST_OK; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_REQUEST_ID = SETUP_PARAM_MAX_REQUEST_ID; exports.SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE; exports.SETUP_PARAM_AUTHORITY = SETUP_PARAM_AUTHORITY; exports.SETUP_PARAM_MOQT_IMPLEMENTATION = SETUP_PARAM_MOQT_IMPLEMENTATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.
|
|
1417
|
+
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_REQUEST_ERROR = MSG_REQUEST_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_REQUEST_OK = MSG_REQUEST_OK; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_REQUEST_ID = SETUP_PARAM_MAX_REQUEST_ID; exports.SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE; exports.SETUP_PARAM_AUTHORITY = SETUP_PARAM_AUTHORITY; exports.SETUP_PARAM_MOQT_IMPLEMENTATION = SETUP_PARAM_MOQT_IMPLEMENTATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.encodeSubgroupStream = encodeSubgroupStream; exports.encodeDatagram = encodeDatagram; exports.encodeFetchStream = encodeFetchStream; exports.decodeSubgroupStream = decodeSubgroupStream; exports.decodeDatagram = decodeDatagram; exports.decodeFetchStream = decodeFetchStream; exports.decodeDataStream = decodeDataStream; exports.createSubgroupStreamDecoder = createSubgroupStreamDecoder; exports.createFetchStreamDecoder = createFetchStreamDecoder; exports.createDataStreamDecoder = createDataStreamDecoder; exports.encodeMessage = encodeMessage; exports.decodeMessage = decodeMessage; exports.createStreamDecoder = createStreamDecoder; exports.createDraft15Codec = createDraft15Codec;
|