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