@moqtap/codec 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-LH4NTURO.js → chunk-2GODRVT5.js} +699 -589
- package/dist/{chunk-4RIXXEII.js → chunk-2ZT6CVSE.js} +274 -242
- package/dist/{chunk-XUUCOLWU.cjs → chunk-4N4INRE7.cjs} +332 -321
- package/dist/{chunk-PJRA2TQ5.js → chunk-73MWUKSJ.js} +274 -228
- package/dist/{chunk-NGVE2RZT.js → chunk-77MNXX3M.js} +549 -538
- package/dist/{chunk-A27S7HW7.js → chunk-7L43FE6P.js} +24 -3
- package/dist/{chunk-RVJAGE4S.cjs → chunk-ACQ4CUJP.cjs} +297 -265
- package/dist/{chunk-IBVM4DMJ.cjs → chunk-BGWGVINJ.cjs} +332 -321
- package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
- package/dist/{chunk-CXDHOMHG.js → chunk-CEH7ESNC.js} +549 -538
- package/dist/{chunk-ZBKE2QRQ.js → chunk-E6P74GDT.js} +686 -599
- package/dist/{chunk-FUFTMAQD.cjs → chunk-FPISPJ5N.cjs} +785 -497
- package/dist/{chunk-7IVGHMKJ.cjs → chunk-FZDIEHQL.cjs} +300 -124
- package/dist/{chunk-ZSPO2GF2.cjs → chunk-GLBQDG4L.cjs} +971 -884
- package/dist/chunk-HDWJ2GDE.js +24 -0
- package/dist/{chunk-4YJANAXU.cjs → chunk-JGG7CMSZ.cjs} +469 -434
- package/dist/{chunk-IV2H5CFI.cjs → chunk-JTVCOMBI.cjs} +298 -266
- package/dist/chunk-KNDYS3DK.cjs +24 -0
- package/dist/{chunk-BPNL5YFQ.cjs → chunk-KZCYQ7ED.cjs} +5 -5
- package/dist/{chunk-U2B3B42P.js → chunk-MC7W6PMI.js} +709 -421
- package/dist/{chunk-MFAP7R6L.js → chunk-MRJWLGYH.js} +1 -1
- package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
- package/dist/{chunk-TMNGRIPL.js → chunk-N2KBF5Q2.js} +285 -109
- package/dist/{chunk-IV2HRJVT.js → chunk-PZBPH2D7.js} +274 -242
- package/dist/{chunk-FWISIR26.cjs → chunk-RUPCJTC3.cjs} +24 -3
- package/dist/{chunk-G26SJ6XS.cjs → chunk-S74DWJE2.cjs} +1001 -925
- package/dist/{chunk-NUX5BHWO.js → chunk-U3IPZYPX.js} +1113 -1037
- package/dist/{chunk-HSVYF6XX.cjs → chunk-VJUUZ4W2.cjs} +1106 -996
- package/dist/{chunk-ST24APEO.js → chunk-XSNX2IUJ.js} +574 -539
- package/dist/{chunk-K4OLITS2.cjs → chunk-YIG2C3LF.cjs} +295 -249
- package/dist/{drafts/draft15/codec.d.ts → codec-B2cH-f5V.d.cts} +11 -10
- package/dist/codec-B5K73Bdj.d.ts +30 -0
- package/dist/{codec-C_HMXNK_.d.ts → codec-BFeliJFc.d.ts} +4 -10
- package/dist/codec-BUMjz0J4.d.cts +30 -0
- package/dist/{codec-D0x8-SCw.d.cts → codec-Bap882Fh.d.cts} +3 -9
- package/dist/codec-BdVMRMOI.d.ts +34 -0
- package/dist/codec-Bq-tLtfP.d.ts +30 -0
- package/dist/codec-BwFgpeQu.d.ts +23 -0
- package/dist/{codec-95k8CAu5.d.cts → codec-C4n1PS09.d.cts} +3 -9
- package/dist/{codec-BECYPfY8.d.ts → codec-CPlK3Pi5.d.ts} +3 -9
- package/dist/{drafts/draft08/codec.d.ts → codec-CPvPq0sb.d.cts} +11 -9
- package/dist/codec-DNUIgLqc.d.cts +23 -0
- package/dist/codec-DRcsBCsb.d.ts +23 -0
- package/dist/{codec-CAevkgf5.d.cts → codec-DY4QH364.d.cts} +4 -10
- package/dist/codec-DZhZSIii.d.cts +30 -0
- package/dist/{drafts/draft14/codec.d.ts → codec-FvGCxIhr.d.ts} +11 -10
- package/dist/codec-HgBgHkFI.d.cts +23 -0
- package/dist/codec-KXHvXZVb.d.cts +35 -0
- package/dist/{codec-BC5jfvMb.d.ts → codec-R8GrCPt2.d.ts} +3 -9
- package/dist/{codec-BsPU1vNC.d.ts → codec-SKBeHQk7.d.ts} +3 -11
- package/dist/draft10-session.d.cts +1 -1
- package/dist/draft10-session.d.ts +1 -1
- package/dist/draft10.cjs +4 -3
- package/dist/draft10.d.cts +15 -5
- package/dist/draft10.d.ts +15 -5
- package/dist/draft10.js +3 -2
- package/dist/draft11-session.d.cts +1 -1
- package/dist/draft11-session.d.ts +1 -1
- package/dist/draft11.cjs +4 -3
- package/dist/draft11.d.cts +13 -5
- package/dist/draft11.d.ts +13 -5
- package/dist/draft11.js +3 -2
- package/dist/draft12-session.d.cts +1 -1
- package/dist/draft12-session.d.ts +1 -1
- package/dist/draft12.cjs +4 -3
- package/dist/draft12.d.cts +13 -5
- package/dist/draft12.d.ts +13 -5
- package/dist/draft12.js +3 -2
- package/dist/draft13-session.d.cts +1 -1
- package/dist/draft13-session.d.ts +1 -1
- package/dist/draft13.cjs +4 -3
- package/dist/draft13.d.cts +13 -5
- package/dist/draft13.d.ts +13 -5
- package/dist/draft13.js +3 -2
- package/dist/draft14-session.d.cts +1 -1
- package/dist/draft14-session.d.ts +1 -1
- package/dist/draft14.cjs +4 -3
- package/dist/draft14.d.cts +59 -5
- package/dist/draft14.d.ts +59 -5
- package/dist/draft14.js +3 -2
- package/dist/draft15-session.d.cts +1 -1
- package/dist/draft15-session.d.ts +1 -1
- package/dist/draft15.cjs +4 -3
- package/dist/draft15.d.cts +48 -5
- package/dist/draft15.d.ts +48 -5
- package/dist/draft15.js +3 -2
- package/dist/draft16-session.d.cts +1 -1
- package/dist/draft16-session.d.ts +1 -1
- package/dist/draft16.cjs +4 -3
- package/dist/draft16.d.cts +37 -5
- package/dist/draft16.d.ts +37 -5
- package/dist/draft16.js +3 -2
- package/dist/draft17-session.d.cts +1 -1
- package/dist/draft17-session.d.ts +1 -1
- package/dist/draft17.cjs +4 -3
- package/dist/draft17.d.cts +16 -5
- package/dist/draft17.d.ts +16 -5
- package/dist/draft17.js +3 -2
- package/dist/draft7-session.cjs +3 -3
- package/dist/draft7-session.js +2 -2
- package/dist/draft7.cjs +18 -6
- package/dist/draft7.d.cts +84 -8
- package/dist/draft7.d.ts +84 -8
- package/dist/draft7.js +15 -3
- package/dist/draft8-session.d.cts +1 -1
- package/dist/draft8-session.d.ts +1 -1
- package/dist/draft8.cjs +4 -3
- package/dist/draft8.d.cts +15 -5
- package/dist/draft8.d.ts +15 -5
- package/dist/draft8.js +3 -2
- package/dist/draft9-session.d.cts +1 -1
- package/dist/draft9-session.d.ts +1 -1
- package/dist/draft9.cjs +4 -3
- package/dist/draft9.d.cts +15 -5
- package/dist/draft9.d.ts +15 -5
- package/dist/draft9.js +3 -2
- package/dist/index.cjs +25 -24
- package/dist/index.d.cts +20 -20
- package/dist/index.d.ts +38 -46
- package/dist/index.js +111 -93
- package/dist/session.cjs +3 -3
- package/dist/session.d.ts +8 -4
- package/dist/session.js +26 -32
- package/dist/{types-ERexTpT8.d.cts → types-8gUGeMgs.d.cts} +4 -1
- package/dist/{types-ERexTpT8.d.ts → types-8gUGeMgs.d.ts} +4 -1
- package/dist/{types-Cw4WE9dh.d.ts → types-B0FT5Qs2.d.cts} +9 -1
- package/dist/{types-Cw4WE9dh.d.cts → types-B0FT5Qs2.d.ts} +9 -1
- package/dist/{types-DqCDFqgB.d.cts → types-B9A2g05r.d.cts} +4 -1
- package/dist/{types-DqCDFqgB.d.ts → types-B9A2g05r.d.ts} +4 -1
- package/dist/{types-Bg6QYNVt.d.cts → types-BeAVNU-F.d.cts} +7 -2
- package/dist/{types-Bg6QYNVt.d.ts → types-BeAVNU-F.d.ts} +7 -2
- package/dist/{types-C_1HrqBl.d.ts → types-CDa7F5ct.d.cts} +7 -2
- package/dist/{types-C_1HrqBl.d.cts → types-CDa7F5ct.d.ts} +7 -2
- package/dist/{types-r-CasCf1.d.cts → types-D1dI_oTX.d.cts} +8 -1
- package/dist/{types-r-CasCf1.d.ts → types-D1dI_oTX.d.ts} +8 -1
- package/dist/{types-BTFeKYCb.d.ts → types-DKpsfD3i.d.cts} +19 -4
- package/dist/{types-BTFeKYCb.d.cts → types-DKpsfD3i.d.ts} +19 -4
- package/dist/{types-4VxSL2Ho.d.ts → types-DxSFvL2b.d.cts} +7 -1
- package/dist/{types-4VxSL2Ho.d.cts → types-DxSFvL2b.d.ts} +7 -1
- package/dist/{types-B2afJZM-.d.ts → types-Pme7sua0.d.cts} +4 -1
- package/dist/{types-B2afJZM-.d.cts → types-Pme7sua0.d.ts} +4 -1
- package/dist/{types-D5gNQiDj.d.ts → types-gQsr0AAA.d.cts} +9 -1
- package/dist/{types-D5gNQiDj.d.cts → types-gQsr0AAA.d.ts} +9 -1
- package/package.json +192 -192
- package/src/core/buffer-reader.ts +130 -114
- package/src/core/buffer-writer.ts +100 -91
- package/src/core/hex.ts +7 -3
- package/src/drafts/draft07/codec.ts +14 -9
- package/src/drafts/draft07/data-streams.ts +240 -240
- package/src/drafts/draft07/varint.ts +51 -23
- package/src/drafts/draft08/codec.ts +19 -10
- package/src/drafts/draft08/data-streams.ts +359 -359
- package/src/drafts/draft09/codec.ts +19 -10
- package/src/drafts/draft09/data-streams.ts +332 -332
- package/src/drafts/draft10/codec.ts +19 -10
- package/src/drafts/draft10/data-streams.ts +332 -332
- package/src/drafts/draft11/codec.ts +19 -10
- package/src/drafts/draft11/data-streams.ts +269 -269
- package/src/drafts/draft12/codec.ts +19 -10
- package/src/drafts/draft12/data-streams.ts +275 -275
- package/src/drafts/draft13/codec.ts +19 -10
- package/src/drafts/draft13/data-streams.ts +275 -275
- package/src/drafts/draft14/codec.ts +19 -10
- package/src/drafts/draft14/data-streams.ts +813 -798
- package/src/drafts/draft15/codec.ts +21 -12
- package/src/drafts/draft15/data-streams.ts +794 -778
- package/src/drafts/draft16/codec.ts +21 -12
- package/src/drafts/draft16/data-streams.ts +789 -773
- package/src/drafts/draft17/codec.ts +21 -12
- package/src/drafts/draft17/data-streams.ts +758 -742
- package/dist/codec-AFuOxfsO.d.ts +0 -60
- package/dist/codec-B-UJ5Iow.d.cts +0 -75
- package/dist/codec-BvpuF-6u.d.cts +0 -39
- package/dist/codec-C8jZI5Cx.d.cts +0 -39
- package/dist/codec-CSUqCrRs.d.ts +0 -39
- package/dist/codec-CpuvYTSV.d.cts +0 -86
- package/dist/codec-D7ARhpG1.d.ts +0 -75
- package/dist/codec-DNAUGshO.d.cts +0 -60
- package/dist/codec-DPx_QNn0.d.ts +0 -31
- package/dist/codec-DRhCx_hw.d.ts +0 -86
- package/dist/codec-Db7YPe3l.d.ts +0 -31
- package/dist/codec-axkJpb7D.d.cts +0 -31
- package/dist/codec-ujAbFaep.d.cts +0 -31
- package/dist/core/buffer-reader.d.ts +0 -15
- package/dist/core/buffer-reader.d.ts.map +0 -1
- package/dist/core/buffer-reader.js +0 -98
- package/dist/core/buffer-reader.js.map +0 -1
- package/dist/core/buffer-writer.d.ts +0 -16
- package/dist/core/buffer-writer.d.ts.map +0 -1
- package/dist/core/buffer-writer.js +0 -86
- package/dist/core/buffer-writer.js.map +0 -1
- package/dist/core/errors.d.ts +0 -2
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -2
- package/dist/core/errors.js.map +0 -1
- package/dist/core/hex.d.ts +0 -5
- package/dist/core/hex.d.ts.map +0 -1
- package/dist/core/hex.js +0 -17
- package/dist/core/hex.js.map +0 -1
- package/dist/core/session-types.d.ts +0 -99
- package/dist/core/session-types.d.ts.map +0 -1
- package/dist/core/session-types.js +0 -2
- package/dist/core/session-types.js.map +0 -1
- package/dist/core/types.d.ts +0 -235
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -11
- package/dist/core/types.js.map +0 -1
- package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
- package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/announce-fsm.js +0 -2
- package/dist/drafts/draft07/announce-fsm.js.map +0 -1
- package/dist/drafts/draft07/codec.d.ts +0 -17
- package/dist/drafts/draft07/codec.d.ts.map +0 -1
- package/dist/drafts/draft07/codec.js +0 -722
- package/dist/drafts/draft07/codec.js.map +0 -1
- package/dist/drafts/draft07/data-streams.d.ts +0 -9
- package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft07/data-streams.js +0 -228
- package/dist/drafts/draft07/data-streams.js.map +0 -1
- package/dist/drafts/draft07/index.d.ts +0 -14
- package/dist/drafts/draft07/index.d.ts.map +0 -1
- package/dist/drafts/draft07/index.js +0 -18
- package/dist/drafts/draft07/index.js.map +0 -1
- package/dist/drafts/draft07/messages.d.ts +0 -32
- package/dist/drafts/draft07/messages.d.ts.map +0 -1
- package/dist/drafts/draft07/messages.js +0 -42
- package/dist/drafts/draft07/messages.js.map +0 -1
- package/dist/drafts/draft07/parameters.d.ts +0 -4
- package/dist/drafts/draft07/parameters.d.ts.map +0 -1
- package/dist/drafts/draft07/parameters.js +0 -10
- package/dist/drafts/draft07/parameters.js.map +0 -1
- package/dist/drafts/draft07/rules.d.ts +0 -8
- package/dist/drafts/draft07/rules.d.ts.map +0 -1
- package/dist/drafts/draft07/rules.js +0 -95
- package/dist/drafts/draft07/rules.js.map +0 -1
- package/dist/drafts/draft07/session-fsm.d.ts +0 -38
- package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/session-fsm.js +0 -354
- package/dist/drafts/draft07/session-fsm.js.map +0 -1
- package/dist/drafts/draft07/session.d.ts +0 -4
- package/dist/drafts/draft07/session.d.ts.map +0 -1
- package/dist/drafts/draft07/session.js +0 -5
- package/dist/drafts/draft07/session.js.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
- package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.js +0 -2
- package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
- package/dist/drafts/draft07/types.d.ts +0 -61
- package/dist/drafts/draft07/types.d.ts.map +0 -1
- package/dist/drafts/draft07/types.js +0 -4
- package/dist/drafts/draft07/types.js.map +0 -1
- package/dist/drafts/draft07/varint.d.ts +0 -4
- package/dist/drafts/draft07/varint.d.ts.map +0 -1
- package/dist/drafts/draft07/varint.js +0 -22
- package/dist/drafts/draft07/varint.js.map +0 -1
- package/dist/drafts/draft08/codec.d.ts.map +0 -1
- package/dist/drafts/draft08/codec.js +0 -729
- package/dist/drafts/draft08/codec.js.map +0 -1
- package/dist/drafts/draft08/data-streams.d.ts +0 -12
- package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft08/data-streams.js +0 -345
- package/dist/drafts/draft08/data-streams.js.map +0 -1
- package/dist/drafts/draft08/index.d.ts +0 -9
- package/dist/drafts/draft08/index.d.ts.map +0 -1
- package/dist/drafts/draft08/index.js +0 -7
- package/dist/drafts/draft08/index.js.map +0 -1
- package/dist/drafts/draft08/messages.d.ts +0 -34
- package/dist/drafts/draft08/messages.d.ts.map +0 -1
- package/dist/drafts/draft08/messages.js +0 -66
- package/dist/drafts/draft08/messages.js.map +0 -1
- package/dist/drafts/draft08/rules.d.ts +0 -8
- package/dist/drafts/draft08/rules.d.ts.map +0 -1
- package/dist/drafts/draft08/rules.js +0 -83
- package/dist/drafts/draft08/rules.js.map +0 -1
- package/dist/drafts/draft08/session-fsm.d.ts +0 -47
- package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft08/session-fsm.js +0 -483
- package/dist/drafts/draft08/session-fsm.js.map +0 -1
- package/dist/drafts/draft08/session.d.ts +0 -5
- package/dist/drafts/draft08/session.d.ts.map +0 -1
- package/dist/drafts/draft08/session.js +0 -5
- package/dist/drafts/draft08/session.js.map +0 -1
- package/dist/drafts/draft08/types.d.ts +0 -268
- package/dist/drafts/draft08/types.d.ts.map +0 -1
- package/dist/drafts/draft08/types.js +0 -4
- package/dist/drafts/draft08/types.js.map +0 -1
- package/dist/drafts/draft09/codec.d.ts +0 -21
- package/dist/drafts/draft09/codec.d.ts.map +0 -1
- package/dist/drafts/draft09/codec.js +0 -721
- package/dist/drafts/draft09/codec.js.map +0 -1
- package/dist/drafts/draft09/data-streams.d.ts +0 -12
- package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft09/data-streams.js +0 -307
- package/dist/drafts/draft09/data-streams.js.map +0 -1
- package/dist/drafts/draft09/index.d.ts +0 -9
- package/dist/drafts/draft09/index.d.ts.map +0 -1
- package/dist/drafts/draft09/index.js +0 -7
- package/dist/drafts/draft09/index.js.map +0 -1
- package/dist/drafts/draft09/messages.d.ts +0 -34
- package/dist/drafts/draft09/messages.d.ts.map +0 -1
- package/dist/drafts/draft09/messages.js +0 -66
- package/dist/drafts/draft09/messages.js.map +0 -1
- package/dist/drafts/draft09/rules.d.ts +0 -8
- package/dist/drafts/draft09/rules.d.ts.map +0 -1
- package/dist/drafts/draft09/rules.js +0 -83
- package/dist/drafts/draft09/rules.js.map +0 -1
- package/dist/drafts/draft09/session-fsm.d.ts +0 -47
- package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft09/session-fsm.js +0 -483
- package/dist/drafts/draft09/session-fsm.js.map +0 -1
- package/dist/drafts/draft09/session.d.ts +0 -5
- package/dist/drafts/draft09/session.d.ts.map +0 -1
- package/dist/drafts/draft09/session.js +0 -5
- package/dist/drafts/draft09/session.js.map +0 -1
- package/dist/drafts/draft09/types.d.ts +0 -268
- package/dist/drafts/draft09/types.d.ts.map +0 -1
- package/dist/drafts/draft09/types.js +0 -4
- package/dist/drafts/draft09/types.js.map +0 -1
- package/dist/drafts/draft10/codec.d.ts +0 -21
- package/dist/drafts/draft10/codec.d.ts.map +0 -1
- package/dist/drafts/draft10/codec.js +0 -721
- package/dist/drafts/draft10/codec.js.map +0 -1
- package/dist/drafts/draft10/data-streams.d.ts +0 -12
- package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft10/data-streams.js +0 -307
- package/dist/drafts/draft10/data-streams.js.map +0 -1
- package/dist/drafts/draft10/index.d.ts +0 -9
- package/dist/drafts/draft10/index.d.ts.map +0 -1
- package/dist/drafts/draft10/index.js +0 -7
- package/dist/drafts/draft10/index.js.map +0 -1
- package/dist/drafts/draft10/messages.d.ts +0 -34
- package/dist/drafts/draft10/messages.d.ts.map +0 -1
- package/dist/drafts/draft10/messages.js +0 -66
- package/dist/drafts/draft10/messages.js.map +0 -1
- package/dist/drafts/draft10/rules.d.ts +0 -8
- package/dist/drafts/draft10/rules.d.ts.map +0 -1
- package/dist/drafts/draft10/rules.js +0 -83
- package/dist/drafts/draft10/rules.js.map +0 -1
- package/dist/drafts/draft10/session-fsm.d.ts +0 -47
- package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft10/session-fsm.js +0 -483
- package/dist/drafts/draft10/session-fsm.js.map +0 -1
- package/dist/drafts/draft10/session.d.ts +0 -5
- package/dist/drafts/draft10/session.d.ts.map +0 -1
- package/dist/drafts/draft10/session.js +0 -5
- package/dist/drafts/draft10/session.js.map +0 -1
- package/dist/drafts/draft10/types.d.ts +0 -268
- package/dist/drafts/draft10/types.d.ts.map +0 -1
- package/dist/drafts/draft10/types.js +0 -4
- package/dist/drafts/draft10/types.js.map +0 -1
- package/dist/drafts/draft11/codec.d.ts +0 -25
- package/dist/drafts/draft11/codec.d.ts.map +0 -1
- package/dist/drafts/draft11/codec.js +0 -775
- package/dist/drafts/draft11/codec.js.map +0 -1
- package/dist/drafts/draft11/data-streams.d.ts +0 -10
- package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft11/data-streams.js +0 -253
- package/dist/drafts/draft11/data-streams.js.map +0 -1
- package/dist/drafts/draft11/index.d.ts +0 -9
- package/dist/drafts/draft11/index.d.ts.map +0 -1
- package/dist/drafts/draft11/index.js +0 -7
- package/dist/drafts/draft11/index.js.map +0 -1
- package/dist/drafts/draft11/messages.d.ts +0 -33
- package/dist/drafts/draft11/messages.d.ts.map +0 -1
- package/dist/drafts/draft11/messages.js +0 -65
- package/dist/drafts/draft11/messages.js.map +0 -1
- package/dist/drafts/draft11/rules.d.ts +0 -8
- package/dist/drafts/draft11/rules.d.ts.map +0 -1
- package/dist/drafts/draft11/rules.js +0 -88
- package/dist/drafts/draft11/rules.js.map +0 -1
- package/dist/drafts/draft11/session-fsm.d.ts +0 -52
- package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft11/session-fsm.js +0 -530
- package/dist/drafts/draft11/session-fsm.js.map +0 -1
- package/dist/drafts/draft11/session.d.ts +0 -5
- package/dist/drafts/draft11/session.d.ts.map +0 -1
- package/dist/drafts/draft11/session.js +0 -5
- package/dist/drafts/draft11/session.js.map +0 -1
- package/dist/drafts/draft11/types.d.ts +0 -266
- package/dist/drafts/draft11/types.d.ts.map +0 -1
- package/dist/drafts/draft11/types.js +0 -4
- package/dist/drafts/draft11/types.js.map +0 -1
- package/dist/drafts/draft12/codec.d.ts +0 -27
- package/dist/drafts/draft12/codec.d.ts.map +0 -1
- package/dist/drafts/draft12/codec.js +0 -918
- package/dist/drafts/draft12/codec.js.map +0 -1
- package/dist/drafts/draft12/data-streams.d.ts +0 -10
- package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft12/data-streams.js +0 -254
- package/dist/drafts/draft12/data-streams.js.map +0 -1
- package/dist/drafts/draft12/index.d.ts +0 -9
- package/dist/drafts/draft12/index.d.ts.map +0 -1
- package/dist/drafts/draft12/index.js +0 -7
- package/dist/drafts/draft12/index.js.map +0 -1
- package/dist/drafts/draft12/messages.d.ts +0 -37
- package/dist/drafts/draft12/messages.d.ts.map +0 -1
- package/dist/drafts/draft12/messages.js +0 -77
- package/dist/drafts/draft12/messages.js.map +0 -1
- package/dist/drafts/draft12/rules.d.ts +0 -8
- package/dist/drafts/draft12/rules.d.ts.map +0 -1
- package/dist/drafts/draft12/rules.js +0 -94
- package/dist/drafts/draft12/rules.js.map +0 -1
- package/dist/drafts/draft12/session-fsm.d.ts +0 -55
- package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft12/session-fsm.js +0 -569
- package/dist/drafts/draft12/session-fsm.js.map +0 -1
- package/dist/drafts/draft12/session.d.ts +0 -5
- package/dist/drafts/draft12/session.d.ts.map +0 -1
- package/dist/drafts/draft12/session.js +0 -5
- package/dist/drafts/draft12/session.js.map +0 -1
- package/dist/drafts/draft12/types.d.ts +0 -294
- package/dist/drafts/draft12/types.d.ts.map +0 -1
- package/dist/drafts/draft12/types.js +0 -4
- package/dist/drafts/draft12/types.js.map +0 -1
- package/dist/drafts/draft13/codec.d.ts +0 -27
- package/dist/drafts/draft13/codec.d.ts.map +0 -1
- package/dist/drafts/draft13/codec.js +0 -1000
- package/dist/drafts/draft13/codec.js.map +0 -1
- package/dist/drafts/draft13/data-streams.d.ts +0 -10
- package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft13/data-streams.js +0 -254
- package/dist/drafts/draft13/data-streams.js.map +0 -1
- package/dist/drafts/draft13/index.d.ts +0 -9
- package/dist/drafts/draft13/index.d.ts.map +0 -1
- package/dist/drafts/draft13/index.js +0 -7
- package/dist/drafts/draft13/index.js.map +0 -1
- package/dist/drafts/draft13/messages.d.ts +0 -38
- package/dist/drafts/draft13/messages.d.ts.map +0 -1
- package/dist/drafts/draft13/messages.js +0 -79
- package/dist/drafts/draft13/messages.js.map +0 -1
- package/dist/drafts/draft13/rules.d.ts +0 -8
- package/dist/drafts/draft13/rules.d.ts.map +0 -1
- package/dist/drafts/draft13/rules.js +0 -96
- package/dist/drafts/draft13/rules.js.map +0 -1
- package/dist/drafts/draft13/session-fsm.d.ts +0 -56
- package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft13/session-fsm.js +0 -581
- package/dist/drafts/draft13/session-fsm.js.map +0 -1
- package/dist/drafts/draft13/session.d.ts +0 -5
- package/dist/drafts/draft13/session.d.ts.map +0 -1
- package/dist/drafts/draft13/session.js +0 -5
- package/dist/drafts/draft13/session.js.map +0 -1
- package/dist/drafts/draft13/types.d.ts +0 -310
- package/dist/drafts/draft13/types.d.ts.map +0 -1
- package/dist/drafts/draft13/types.js +0 -4
- package/dist/drafts/draft13/types.js.map +0 -1
- package/dist/drafts/draft14/codec.d.ts.map +0 -1
- package/dist/drafts/draft14/codec.js +0 -752
- package/dist/drafts/draft14/codec.js.map +0 -1
- package/dist/drafts/draft14/data-streams.d.ts +0 -56
- package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft14/data-streams.js +0 -729
- package/dist/drafts/draft14/data-streams.js.map +0 -1
- package/dist/drafts/draft14/index.d.ts +0 -9
- package/dist/drafts/draft14/index.d.ts.map +0 -1
- package/dist/drafts/draft14/index.js +0 -7
- package/dist/drafts/draft14/index.js.map +0 -1
- package/dist/drafts/draft14/messages.d.ts +0 -36
- package/dist/drafts/draft14/messages.d.ts.map +0 -1
- package/dist/drafts/draft14/messages.js +0 -71
- package/dist/drafts/draft14/messages.js.map +0 -1
- package/dist/drafts/draft14/rules.d.ts +0 -8
- package/dist/drafts/draft14/rules.d.ts.map +0 -1
- package/dist/drafts/draft14/rules.js +0 -101
- package/dist/drafts/draft14/rules.js.map +0 -1
- package/dist/drafts/draft14/session-fsm.d.ts +0 -58
- package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft14/session-fsm.js +0 -648
- package/dist/drafts/draft14/session-fsm.js.map +0 -1
- package/dist/drafts/draft14/session.d.ts +0 -5
- package/dist/drafts/draft14/session.d.ts.map +0 -1
- package/dist/drafts/draft14/session.js +0 -5
- package/dist/drafts/draft14/session.js.map +0 -1
- package/dist/drafts/draft14/types.d.ts +0 -263
- package/dist/drafts/draft14/types.d.ts.map +0 -1
- package/dist/drafts/draft14/types.js +0 -4
- package/dist/drafts/draft14/types.js.map +0 -1
- package/dist/drafts/draft15/codec.d.ts.map +0 -1
- package/dist/drafts/draft15/codec.js +0 -742
- package/dist/drafts/draft15/codec.js.map +0 -1
- package/dist/drafts/draft15/data-streams.d.ts +0 -45
- package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft15/data-streams.js +0 -675
- package/dist/drafts/draft15/data-streams.js.map +0 -1
- package/dist/drafts/draft15/index.d.ts +0 -9
- package/dist/drafts/draft15/index.d.ts.map +0 -1
- package/dist/drafts/draft15/index.js +0 -7
- package/dist/drafts/draft15/index.js.map +0 -1
- package/dist/drafts/draft15/messages.d.ts +0 -31
- package/dist/drafts/draft15/messages.d.ts.map +0 -1
- package/dist/drafts/draft15/messages.js +0 -59
- package/dist/drafts/draft15/messages.js.map +0 -1
- package/dist/drafts/draft15/rules.d.ts +0 -8
- package/dist/drafts/draft15/rules.d.ts.map +0 -1
- package/dist/drafts/draft15/rules.js +0 -83
- package/dist/drafts/draft15/rules.js.map +0 -1
- package/dist/drafts/draft15/session-fsm.d.ts +0 -48
- package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft15/session-fsm.js +0 -479
- package/dist/drafts/draft15/session-fsm.js.map +0 -1
- package/dist/drafts/draft15/session.d.ts +0 -5
- package/dist/drafts/draft15/session.d.ts.map +0 -1
- package/dist/drafts/draft15/session.js +0 -5
- package/dist/drafts/draft15/session.js.map +0 -1
- package/dist/drafts/draft15/types.d.ts +0 -232
- package/dist/drafts/draft15/types.d.ts.map +0 -1
- package/dist/drafts/draft15/types.js +0 -4
- package/dist/drafts/draft15/types.js.map +0 -1
- package/dist/drafts/draft16/codec.d.ts +0 -29
- package/dist/drafts/draft16/codec.d.ts.map +0 -1
- package/dist/drafts/draft16/codec.js +0 -747
- package/dist/drafts/draft16/codec.js.map +0 -1
- package/dist/drafts/draft16/data-streams.d.ts +0 -34
- package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft16/data-streams.js +0 -667
- package/dist/drafts/draft16/data-streams.js.map +0 -1
- package/dist/drafts/draft16/index.d.ts +0 -9
- package/dist/drafts/draft16/index.d.ts.map +0 -1
- package/dist/drafts/draft16/index.js +0 -7
- package/dist/drafts/draft16/index.js.map +0 -1
- package/dist/drafts/draft16/messages.d.ts +0 -32
- package/dist/drafts/draft16/messages.d.ts.map +0 -1
- package/dist/drafts/draft16/messages.js +0 -62
- package/dist/drafts/draft16/messages.js.map +0 -1
- package/dist/drafts/draft16/rules.d.ts +0 -8
- package/dist/drafts/draft16/rules.d.ts.map +0 -1
- package/dist/drafts/draft16/rules.js +0 -84
- package/dist/drafts/draft16/rules.js.map +0 -1
- package/dist/drafts/draft16/session-fsm.d.ts +0 -48
- package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft16/session-fsm.js +0 -474
- package/dist/drafts/draft16/session-fsm.js.map +0 -1
- package/dist/drafts/draft16/session.d.ts +0 -5
- package/dist/drafts/draft16/session.d.ts.map +0 -1
- package/dist/drafts/draft16/session.js +0 -5
- package/dist/drafts/draft16/session.js.map +0 -1
- package/dist/drafts/draft16/types.d.ts +0 -238
- package/dist/drafts/draft16/types.d.ts.map +0 -1
- package/dist/drafts/draft16/types.js +0 -4
- package/dist/drafts/draft16/types.js.map +0 -1
- package/dist/drafts/draft17/codec.d.ts +0 -29
- package/dist/drafts/draft17/codec.d.ts.map +0 -1
- package/dist/drafts/draft17/codec.js +0 -799
- package/dist/drafts/draft17/codec.js.map +0 -1
- package/dist/drafts/draft17/data-streams.d.ts +0 -13
- package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft17/data-streams.js +0 -633
- package/dist/drafts/draft17/data-streams.js.map +0 -1
- package/dist/drafts/draft17/index.d.ts +0 -8
- package/dist/drafts/draft17/index.d.ts.map +0 -1
- package/dist/drafts/draft17/index.js +0 -6
- package/dist/drafts/draft17/index.js.map +0 -1
- package/dist/drafts/draft17/messages.d.ts +0 -25
- package/dist/drafts/draft17/messages.d.ts.map +0 -1
- package/dist/drafts/draft17/messages.js +0 -48
- package/dist/drafts/draft17/messages.js.map +0 -1
- package/dist/drafts/draft17/rules.d.ts +0 -8
- package/dist/drafts/draft17/rules.d.ts.map +0 -1
- package/dist/drafts/draft17/rules.js +0 -71
- package/dist/drafts/draft17/rules.js.map +0 -1
- package/dist/drafts/draft17/session-fsm.d.ts +0 -45
- package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft17/session-fsm.js +0 -328
- package/dist/drafts/draft17/session-fsm.js.map +0 -1
- package/dist/drafts/draft17/session.d.ts +0 -5
- package/dist/drafts/draft17/session.d.ts.map +0 -1
- package/dist/drafts/draft17/session.js +0 -6
- package/dist/drafts/draft17/session.js.map +0 -1
- package/dist/drafts/draft17/types.d.ts +0 -219
- package/dist/drafts/draft17/types.d.ts.map +0 -1
- package/dist/drafts/draft17/types.js +0 -3
- package/dist/drafts/draft17/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
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/draft14/messages.ts
|
|
8
12
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -74,142 +78,787 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
74
78
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
75
79
|
);
|
|
76
80
|
|
|
77
|
-
// src/drafts/draft14/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
hex += bytes[i].toString(16).padStart(2, "0");
|
|
82
|
-
}
|
|
83
|
-
return hex;
|
|
81
|
+
// src/drafts/draft14/data-streams.ts
|
|
82
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
83
|
+
function isValidSubgroupType(t) {
|
|
84
|
+
return t >= 16 && t <= 21 || t >= 24 && t <= 29;
|
|
84
85
|
}
|
|
85
|
-
function
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
function encodeSubgroupStream(stream) {
|
|
87
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
88
|
+
w.writeVarInt(BigInt(stream.headerType));
|
|
89
|
+
w.writeVarInt(stream.trackAlias);
|
|
90
|
+
w.writeVarInt(stream.groupId);
|
|
91
|
+
const hasSubgroupField = (stream.headerType & 4) !== 0;
|
|
92
|
+
const extensionsPresent = (stream.headerType & 1) !== 0;
|
|
93
|
+
if (hasSubgroupField) {
|
|
94
|
+
w.writeVarInt(stream.subgroupId);
|
|
89
95
|
}
|
|
90
|
-
|
|
96
|
+
w.writeUint8(stream.publisherPriority);
|
|
97
|
+
let prevObjectId = -1n;
|
|
98
|
+
let first = true;
|
|
99
|
+
for (const obj of stream.objects) {
|
|
100
|
+
const delta = first ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
101
|
+
w.writeVarInt(delta);
|
|
102
|
+
first = false;
|
|
103
|
+
prevObjectId = obj.objectId;
|
|
104
|
+
if (extensionsPresent) {
|
|
105
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
106
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
107
|
+
}
|
|
108
|
+
if (obj.payloadLength === 0) {
|
|
109
|
+
w.writeVarInt(0);
|
|
110
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
111
|
+
} else {
|
|
112
|
+
w.writeVarInt(obj.payloadLength);
|
|
113
|
+
w.writeBytes(obj.payload);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return w.finish();
|
|
91
117
|
}
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
118
|
+
function encodeDatagram(dg) {
|
|
119
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
120
|
+
w.writeVarInt(BigInt(dg.datagramType));
|
|
121
|
+
w.writeVarInt(dg.trackAlias);
|
|
122
|
+
w.writeVarInt(dg.groupId);
|
|
123
|
+
const objectIdPresent = (dg.datagramType & 4) === 0;
|
|
124
|
+
const isStatus = dg.datagramType >= 32;
|
|
125
|
+
const extensionsPresent = (dg.datagramType & 1) !== 0;
|
|
126
|
+
if (objectIdPresent) {
|
|
127
|
+
w.writeVarInt(dg.objectId);
|
|
102
128
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
writer.writeVarInt(encoded.byteLength);
|
|
107
|
-
writer.writeBytes(encoded);
|
|
129
|
+
w.writeUint8(dg.publisherPriority);
|
|
130
|
+
if (extensionsPresent) {
|
|
131
|
+
w.writeVarInt(0);
|
|
108
132
|
}
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
|
|
133
|
+
if (isStatus) {
|
|
134
|
+
w.writeVarInt(_nullishCoalesce(dg.objectStatus, () => ( 0n)));
|
|
135
|
+
} else {
|
|
136
|
+
w.writeBytes(dg.payload);
|
|
112
137
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
138
|
+
return w.finish();
|
|
139
|
+
}
|
|
140
|
+
function encodeFetchStream(stream) {
|
|
141
|
+
const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
142
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
143
|
+
w.writeVarInt(stream.requestId);
|
|
144
|
+
for (const obj of stream.objects) {
|
|
145
|
+
w.writeVarInt(obj.groupId);
|
|
146
|
+
w.writeVarInt(obj.subgroupId);
|
|
147
|
+
w.writeVarInt(obj.objectId);
|
|
148
|
+
w.writeUint8(obj.publisherPriority);
|
|
149
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
150
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
151
|
+
if (obj.payloadLength === 0) {
|
|
152
|
+
w.writeVarInt(0);
|
|
153
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
154
|
+
} else {
|
|
155
|
+
w.writeVarInt(obj.payloadLength);
|
|
156
|
+
w.writeBytes(obj.payload);
|
|
120
157
|
}
|
|
121
158
|
}
|
|
159
|
+
return w.finish();
|
|
122
160
|
}
|
|
123
|
-
function
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
161
|
+
function decodeSubgroupStream(bytes) {
|
|
162
|
+
try {
|
|
163
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
164
|
+
const streamType = Number(r.readVarInt());
|
|
165
|
+
if (!isValidSubgroupType(streamType)) {
|
|
166
|
+
return {
|
|
167
|
+
ok: false,
|
|
168
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
169
|
+
"CONSTRAINT_VIOLATION",
|
|
170
|
+
`Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
|
|
171
|
+
0
|
|
172
|
+
)
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
176
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
177
|
+
const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
178
|
+
const trackAlias = r.readVarInt();
|
|
179
|
+
const groupId = r.readVarInt();
|
|
180
|
+
let subgroupId = 0n;
|
|
181
|
+
if (hasSubgroupField) {
|
|
182
|
+
subgroupId = r.readVarInt();
|
|
183
|
+
}
|
|
184
|
+
const publisherPriority = r.readUint8();
|
|
185
|
+
const objects = [];
|
|
186
|
+
let prevObjectId = -1n;
|
|
187
|
+
let firstObject = true;
|
|
188
|
+
while (r.remaining > 0) {
|
|
189
|
+
const byteOffset = r.offset;
|
|
190
|
+
const delta = r.readVarInt();
|
|
191
|
+
let objectId;
|
|
192
|
+
if (firstObject) {
|
|
193
|
+
objectId = delta;
|
|
194
|
+
if (subgroupIsFirstObjId) {
|
|
195
|
+
subgroupId = objectId;
|
|
196
|
+
}
|
|
197
|
+
firstObject = false;
|
|
135
198
|
} else {
|
|
136
|
-
|
|
137
|
-
tmpWriter.writeVarInt(value);
|
|
138
|
-
const raw = tmpWriter.finish();
|
|
139
|
-
unknown.push({
|
|
140
|
-
id: `0x${paramType.toString(16)}`,
|
|
141
|
-
length: raw.byteLength,
|
|
142
|
-
raw_hex: bytesToHex(raw)
|
|
143
|
-
});
|
|
199
|
+
objectId = prevObjectId + 1n + delta;
|
|
144
200
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
201
|
+
let extensionData = new Uint8Array(0);
|
|
202
|
+
if (extensionsPresent) {
|
|
203
|
+
const extLen = Number(r.readVarInt());
|
|
204
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
205
|
+
}
|
|
206
|
+
const payloadLength = Number(r.readVarInt());
|
|
207
|
+
let payload;
|
|
208
|
+
let status;
|
|
209
|
+
let payloadByteOffset;
|
|
210
|
+
if (payloadLength === 0) {
|
|
211
|
+
status = r.readVarInt();
|
|
212
|
+
payloadByteOffset = r.offset;
|
|
213
|
+
payload = new Uint8Array(0);
|
|
150
214
|
} else {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
length,
|
|
154
|
-
raw_hex: bytesToHex(bytes)
|
|
155
|
-
});
|
|
215
|
+
payloadByteOffset = r.offset;
|
|
216
|
+
payload = r.readBytesView(payloadLength);
|
|
156
217
|
}
|
|
218
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
219
|
+
if (status !== void 0) obj.status = status;
|
|
220
|
+
objects.push(obj);
|
|
221
|
+
prevObjectId = objectId;
|
|
157
222
|
}
|
|
223
|
+
return {
|
|
224
|
+
ok: true,
|
|
225
|
+
value: {
|
|
226
|
+
type: "subgroup",
|
|
227
|
+
headerType: streamType,
|
|
228
|
+
trackAlias,
|
|
229
|
+
groupId,
|
|
230
|
+
subgroupId,
|
|
231
|
+
publisherPriority,
|
|
232
|
+
objects
|
|
233
|
+
},
|
|
234
|
+
bytesRead: r.offset
|
|
235
|
+
};
|
|
236
|
+
} catch (e) {
|
|
237
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
238
|
+
throw e;
|
|
158
239
|
}
|
|
159
|
-
if (unknown.length > 0) {
|
|
160
|
-
result.unknown = unknown;
|
|
161
|
-
}
|
|
162
|
-
return result;
|
|
163
240
|
}
|
|
164
|
-
function
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
241
|
+
function decodeDatagram(bytes) {
|
|
242
|
+
try {
|
|
243
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
244
|
+
const dgType = Number(r.readVarInt());
|
|
245
|
+
const validDatagram = dgType >= 0 && dgType <= 7 || dgType === 32 || dgType === 33;
|
|
246
|
+
if (!validDatagram) {
|
|
247
|
+
return {
|
|
248
|
+
ok: false,
|
|
249
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
250
|
+
"CONSTRAINT_VIOLATION",
|
|
251
|
+
`Expected datagram type 0x00-0x07 or 0x20-0x21, got 0x${dgType.toString(16)}`,
|
|
252
|
+
0
|
|
253
|
+
)
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
const objectIdPresent = (dgType & 4) === 0;
|
|
257
|
+
const endOfGroup = (dgType & 2) !== 0;
|
|
258
|
+
const extensionsPresent = (dgType & 1) !== 0;
|
|
259
|
+
const isStatus = dgType >= 32;
|
|
260
|
+
const trackAlias = r.readVarInt();
|
|
261
|
+
const groupId = r.readVarInt();
|
|
262
|
+
let objectId = 0n;
|
|
263
|
+
if (objectIdPresent) {
|
|
264
|
+
objectId = r.readVarInt();
|
|
265
|
+
}
|
|
266
|
+
const publisherPriority = r.readUint8();
|
|
267
|
+
if (extensionsPresent) {
|
|
268
|
+
const extLen = Number(r.readVarInt());
|
|
269
|
+
if (extLen > 0) {
|
|
270
|
+
r.readBytesView(extLen);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
let objectStatus;
|
|
274
|
+
let payload;
|
|
275
|
+
if (isStatus) {
|
|
276
|
+
objectStatus = r.readVarInt();
|
|
277
|
+
payload = new Uint8Array(0);
|
|
278
|
+
} else {
|
|
279
|
+
payload = r.readBytesView(r.remaining);
|
|
280
|
+
}
|
|
281
|
+
const payloadLength = payload.byteLength;
|
|
282
|
+
const result = {
|
|
283
|
+
type: "datagram",
|
|
284
|
+
datagramType: dgType,
|
|
285
|
+
trackAlias,
|
|
286
|
+
groupId,
|
|
287
|
+
objectId,
|
|
288
|
+
publisherPriority,
|
|
289
|
+
payloadLength,
|
|
290
|
+
payload
|
|
291
|
+
};
|
|
292
|
+
if (endOfGroup) result.endOfGroup = true;
|
|
293
|
+
if (objectStatus !== void 0)
|
|
294
|
+
result.objectStatus = objectStatus;
|
|
295
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
296
|
+
} catch (e) {
|
|
297
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
298
|
+
throw e;
|
|
168
299
|
}
|
|
169
|
-
encodeParams(msg.parameters, w);
|
|
170
|
-
}
|
|
171
|
-
function encodeServerSetupPayload(msg, w) {
|
|
172
|
-
w.writeVarInt(msg.selected_version);
|
|
173
|
-
encodeParams(msg.parameters, w);
|
|
174
300
|
}
|
|
175
|
-
function
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
301
|
+
function decodeFetchStream(bytes) {
|
|
302
|
+
try {
|
|
303
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
304
|
+
const streamType = r.readVarInt();
|
|
305
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
306
|
+
return {
|
|
307
|
+
ok: false,
|
|
308
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
309
|
+
"CONSTRAINT_VIOLATION",
|
|
310
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
311
|
+
0
|
|
312
|
+
)
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
const requestId = r.readVarInt();
|
|
316
|
+
const objects = [];
|
|
317
|
+
while (r.remaining > 0) {
|
|
318
|
+
const byteOffset = r.offset;
|
|
319
|
+
const groupId = r.readVarInt();
|
|
320
|
+
const subgroupId = r.readVarInt();
|
|
321
|
+
const objectId = r.readVarInt();
|
|
322
|
+
const publisherPriority = r.readUint8();
|
|
323
|
+
const extLen = Number(r.readVarInt());
|
|
324
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
325
|
+
const payloadLength = Number(r.readVarInt());
|
|
326
|
+
let payload;
|
|
327
|
+
let status;
|
|
328
|
+
let payloadByteOffset;
|
|
329
|
+
if (payloadLength === 0) {
|
|
330
|
+
status = r.readVarInt();
|
|
331
|
+
payloadByteOffset = r.offset;
|
|
332
|
+
payload = new Uint8Array(0);
|
|
333
|
+
} else {
|
|
334
|
+
payloadByteOffset = r.offset;
|
|
335
|
+
payload = r.readBytesView(payloadLength);
|
|
336
|
+
}
|
|
337
|
+
const obj = {
|
|
338
|
+
type: "object",
|
|
339
|
+
byteOffset,
|
|
340
|
+
payloadByteOffset,
|
|
341
|
+
groupId,
|
|
342
|
+
subgroupId,
|
|
343
|
+
objectId,
|
|
344
|
+
publisherPriority,
|
|
345
|
+
payloadLength,
|
|
346
|
+
payload,
|
|
347
|
+
extensionData
|
|
348
|
+
};
|
|
349
|
+
if (status !== void 0) obj.status = status;
|
|
350
|
+
objects.push(obj);
|
|
351
|
+
}
|
|
352
|
+
return {
|
|
353
|
+
ok: true,
|
|
354
|
+
value: { type: "fetch", requestId, objects },
|
|
355
|
+
bytesRead: r.offset
|
|
356
|
+
};
|
|
357
|
+
} catch (e) {
|
|
358
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
|
|
359
|
+
throw e;
|
|
190
360
|
}
|
|
191
|
-
encodeParams(msg.parameters, w);
|
|
192
361
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
362
|
+
function decodeDataStream(streamType, bytes) {
|
|
363
|
+
switch (streamType) {
|
|
364
|
+
case "subgroup":
|
|
365
|
+
return decodeSubgroupStream(bytes);
|
|
366
|
+
case "datagram":
|
|
367
|
+
return decodeDatagram(bytes);
|
|
368
|
+
case "fetch":
|
|
369
|
+
return decodeFetchStream(bytes);
|
|
370
|
+
default: {
|
|
371
|
+
const _exhaustive = streamType;
|
|
372
|
+
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
373
|
+
}
|
|
202
374
|
}
|
|
203
|
-
encodeParams(msg.parameters, w);
|
|
204
375
|
}
|
|
205
|
-
function
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
376
|
+
function createSubgroupStreamDecoder() {
|
|
377
|
+
let buffer = new Uint8Array(0);
|
|
378
|
+
let offset = 0;
|
|
379
|
+
let headerEmitted = false;
|
|
380
|
+
let extensionsPresent = false;
|
|
381
|
+
let prevObjectId = -1n;
|
|
382
|
+
let firstObject = true;
|
|
383
|
+
return new TransformStream({
|
|
384
|
+
transform(chunk, controller) {
|
|
385
|
+
if (offset > 0) {
|
|
386
|
+
buffer = buffer.subarray(offset);
|
|
387
|
+
offset = 0;
|
|
388
|
+
}
|
|
389
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
390
|
+
newBuffer.set(buffer, 0);
|
|
391
|
+
newBuffer.set(chunk, buffer.length);
|
|
392
|
+
buffer = newBuffer;
|
|
393
|
+
if (!headerEmitted) {
|
|
394
|
+
try {
|
|
395
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
396
|
+
const streamType = Number(r.readVarInt());
|
|
397
|
+
if (!isValidSubgroupType(streamType)) {
|
|
398
|
+
controller.error(
|
|
399
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
400
|
+
"CONSTRAINT_VIOLATION",
|
|
401
|
+
`Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
|
|
402
|
+
0
|
|
403
|
+
)
|
|
404
|
+
);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
extensionsPresent = (streamType & 1) !== 0;
|
|
408
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
409
|
+
const trackAlias = r.readVarInt();
|
|
410
|
+
const groupId = r.readVarInt();
|
|
411
|
+
let subgroupId = 0n;
|
|
412
|
+
if (hasSubgroupField) {
|
|
413
|
+
subgroupId = r.readVarInt();
|
|
414
|
+
}
|
|
415
|
+
const publisherPriority = r.readUint8();
|
|
416
|
+
controller.enqueue({
|
|
417
|
+
type: "subgroup_header",
|
|
418
|
+
headerType: streamType,
|
|
419
|
+
trackAlias,
|
|
420
|
+
groupId,
|
|
421
|
+
subgroupId,
|
|
422
|
+
publisherPriority
|
|
423
|
+
});
|
|
424
|
+
headerEmitted = true;
|
|
425
|
+
offset += r.offset;
|
|
426
|
+
} catch (e) {
|
|
427
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
controller.error(e);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
while (offset < buffer.length) {
|
|
435
|
+
try {
|
|
436
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
437
|
+
const byteOffset = r.offset;
|
|
438
|
+
const delta = r.readVarInt();
|
|
439
|
+
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
440
|
+
firstObject = false;
|
|
441
|
+
let extensionData = new Uint8Array(0);
|
|
442
|
+
if (extensionsPresent) {
|
|
443
|
+
const extLen = Number(r.readVarInt());
|
|
444
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
445
|
+
}
|
|
446
|
+
const payloadLength = Number(r.readVarInt());
|
|
447
|
+
let payload;
|
|
448
|
+
let status;
|
|
449
|
+
let payloadByteOffset;
|
|
450
|
+
if (payloadLength === 0) {
|
|
451
|
+
status = r.readVarInt();
|
|
452
|
+
payloadByteOffset = r.offset;
|
|
453
|
+
payload = new Uint8Array(0);
|
|
454
|
+
} else {
|
|
455
|
+
payloadByteOffset = r.offset;
|
|
456
|
+
payload = r.readBytesView(payloadLength);
|
|
457
|
+
}
|
|
458
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
459
|
+
if (status !== void 0) obj.status = status;
|
|
460
|
+
controller.enqueue(obj);
|
|
461
|
+
prevObjectId = objectId;
|
|
462
|
+
offset += r.offset;
|
|
463
|
+
} catch (e) {
|
|
464
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
controller.error(e);
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
flush(controller) {
|
|
473
|
+
if (offset < buffer.length) {
|
|
474
|
+
controller.error(new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
function createFetchStreamDecoder() {
|
|
480
|
+
let buffer = new Uint8Array(0);
|
|
481
|
+
let offset = 0;
|
|
482
|
+
let headerEmitted = false;
|
|
483
|
+
return new TransformStream({
|
|
484
|
+
transform(chunk, controller) {
|
|
485
|
+
if (offset > 0) {
|
|
486
|
+
buffer = buffer.subarray(offset);
|
|
487
|
+
offset = 0;
|
|
488
|
+
}
|
|
489
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
490
|
+
newBuffer.set(buffer, 0);
|
|
491
|
+
newBuffer.set(chunk, buffer.length);
|
|
492
|
+
buffer = newBuffer;
|
|
493
|
+
if (!headerEmitted) {
|
|
494
|
+
try {
|
|
495
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
496
|
+
const streamType = r.readVarInt();
|
|
497
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
498
|
+
controller.error(
|
|
499
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
500
|
+
"CONSTRAINT_VIOLATION",
|
|
501
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
502
|
+
0
|
|
503
|
+
)
|
|
504
|
+
);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
const requestId = r.readVarInt();
|
|
508
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
509
|
+
headerEmitted = true;
|
|
510
|
+
offset += r.offset;
|
|
511
|
+
} catch (e) {
|
|
512
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
controller.error(e);
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
while (offset < buffer.length) {
|
|
520
|
+
try {
|
|
521
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
522
|
+
const byteOffset = r.offset;
|
|
523
|
+
const groupId = r.readVarInt();
|
|
524
|
+
const subgroupId = r.readVarInt();
|
|
525
|
+
const objectId = r.readVarInt();
|
|
526
|
+
const publisherPriority = r.readUint8();
|
|
527
|
+
const extLen = Number(r.readVarInt());
|
|
528
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
529
|
+
const payloadLength = Number(r.readVarInt());
|
|
530
|
+
let payload;
|
|
531
|
+
let status;
|
|
532
|
+
let payloadByteOffset;
|
|
533
|
+
if (payloadLength === 0) {
|
|
534
|
+
status = r.readVarInt();
|
|
535
|
+
payloadByteOffset = r.offset;
|
|
536
|
+
payload = new Uint8Array(0);
|
|
537
|
+
} else {
|
|
538
|
+
payloadByteOffset = r.offset;
|
|
539
|
+
payload = r.readBytesView(payloadLength);
|
|
540
|
+
}
|
|
541
|
+
const obj = {
|
|
542
|
+
type: "object",
|
|
543
|
+
byteOffset,
|
|
544
|
+
payloadByteOffset,
|
|
545
|
+
groupId,
|
|
546
|
+
subgroupId,
|
|
547
|
+
objectId,
|
|
548
|
+
publisherPriority,
|
|
549
|
+
payloadLength,
|
|
550
|
+
payload,
|
|
551
|
+
extensionData
|
|
552
|
+
};
|
|
553
|
+
if (status !== void 0) obj.status = status;
|
|
554
|
+
controller.enqueue(obj);
|
|
555
|
+
offset += r.offset;
|
|
556
|
+
} catch (e) {
|
|
557
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
558
|
+
break;
|
|
559
|
+
}
|
|
560
|
+
controller.error(e);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
flush(controller) {
|
|
566
|
+
if (offset < buffer.length) {
|
|
567
|
+
controller.error(new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
function createDataStreamDecoder() {
|
|
573
|
+
let buffer = new Uint8Array(0);
|
|
574
|
+
let offset = 0;
|
|
575
|
+
let detectedType = null;
|
|
576
|
+
let headerEmitted = false;
|
|
577
|
+
let extensionsPresent = false;
|
|
578
|
+
let prevObjectId = -1n;
|
|
579
|
+
let firstObject = true;
|
|
580
|
+
return new TransformStream({
|
|
581
|
+
transform(chunk, controller) {
|
|
582
|
+
if (offset > 0) {
|
|
583
|
+
buffer = buffer.subarray(offset);
|
|
584
|
+
offset = 0;
|
|
585
|
+
}
|
|
586
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
587
|
+
newBuffer.set(buffer, 0);
|
|
588
|
+
newBuffer.set(chunk, buffer.length);
|
|
589
|
+
buffer = newBuffer;
|
|
590
|
+
if (detectedType === null) {
|
|
591
|
+
try {
|
|
592
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
593
|
+
const streamType = Number(r.readVarInt());
|
|
594
|
+
if (isValidSubgroupType(streamType)) {
|
|
595
|
+
detectedType = "subgroup";
|
|
596
|
+
} else if (streamType === 5) {
|
|
597
|
+
detectedType = "fetch";
|
|
598
|
+
} else {
|
|
599
|
+
controller.error(
|
|
600
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
601
|
+
"CONSTRAINT_VIOLATION",
|
|
602
|
+
`Unknown data stream type: 0x${streamType.toString(16)}`,
|
|
603
|
+
0
|
|
604
|
+
)
|
|
605
|
+
);
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
} catch (e) {
|
|
609
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
controller.error(e);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
if (detectedType === "subgroup") {
|
|
617
|
+
if (!headerEmitted) {
|
|
618
|
+
try {
|
|
619
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
620
|
+
const streamType = Number(r.readVarInt());
|
|
621
|
+
extensionsPresent = (streamType & 1) !== 0;
|
|
622
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
623
|
+
const trackAlias = r.readVarInt();
|
|
624
|
+
const groupId = r.readVarInt();
|
|
625
|
+
let subgroupId = 0n;
|
|
626
|
+
if (hasSubgroupField) subgroupId = r.readVarInt();
|
|
627
|
+
const publisherPriority = r.readUint8();
|
|
628
|
+
controller.enqueue({
|
|
629
|
+
type: "subgroup_header",
|
|
630
|
+
headerType: streamType,
|
|
631
|
+
trackAlias,
|
|
632
|
+
groupId,
|
|
633
|
+
subgroupId,
|
|
634
|
+
publisherPriority
|
|
635
|
+
});
|
|
636
|
+
headerEmitted = true;
|
|
637
|
+
offset += r.offset;
|
|
638
|
+
} catch (e) {
|
|
639
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") return;
|
|
640
|
+
controller.error(e);
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
while (offset < buffer.length) {
|
|
645
|
+
try {
|
|
646
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
647
|
+
const byteOffset = r.offset;
|
|
648
|
+
const delta = r.readVarInt();
|
|
649
|
+
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
650
|
+
firstObject = false;
|
|
651
|
+
let extensionData = new Uint8Array(0);
|
|
652
|
+
if (extensionsPresent) {
|
|
653
|
+
const extLen = Number(r.readVarInt());
|
|
654
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
655
|
+
}
|
|
656
|
+
const payloadLength = Number(r.readVarInt());
|
|
657
|
+
let payload;
|
|
658
|
+
let status;
|
|
659
|
+
let payloadByteOffset;
|
|
660
|
+
if (payloadLength === 0) {
|
|
661
|
+
status = r.readVarInt();
|
|
662
|
+
payloadByteOffset = r.offset;
|
|
663
|
+
payload = new Uint8Array(0);
|
|
664
|
+
} else {
|
|
665
|
+
payloadByteOffset = r.offset;
|
|
666
|
+
payload = r.readBytesView(payloadLength);
|
|
667
|
+
}
|
|
668
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
669
|
+
if (status !== void 0)
|
|
670
|
+
obj.status = status;
|
|
671
|
+
controller.enqueue(obj);
|
|
672
|
+
prevObjectId = objectId;
|
|
673
|
+
offset += r.offset;
|
|
674
|
+
} catch (e) {
|
|
675
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") break;
|
|
676
|
+
controller.error(e);
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
} else {
|
|
681
|
+
if (!headerEmitted) {
|
|
682
|
+
try {
|
|
683
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
684
|
+
r.readVarInt();
|
|
685
|
+
const requestId = r.readVarInt();
|
|
686
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
687
|
+
headerEmitted = true;
|
|
688
|
+
offset += r.offset;
|
|
689
|
+
} catch (e) {
|
|
690
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") return;
|
|
691
|
+
controller.error(e);
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
while (offset < buffer.length) {
|
|
696
|
+
try {
|
|
697
|
+
const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(buffer.subarray(offset));
|
|
698
|
+
const byteOffset = r.offset;
|
|
699
|
+
const groupId = r.readVarInt();
|
|
700
|
+
const subgroupId = r.readVarInt();
|
|
701
|
+
const objectId = r.readVarInt();
|
|
702
|
+
const publisherPriority = r.readUint8();
|
|
703
|
+
const extLen = Number(r.readVarInt());
|
|
704
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
705
|
+
const payloadLength = Number(r.readVarInt());
|
|
706
|
+
let payload;
|
|
707
|
+
let status;
|
|
708
|
+
let payloadByteOffset;
|
|
709
|
+
if (payloadLength === 0) {
|
|
710
|
+
status = r.readVarInt();
|
|
711
|
+
payloadByteOffset = r.offset;
|
|
712
|
+
payload = new Uint8Array(0);
|
|
713
|
+
} else {
|
|
714
|
+
payloadByteOffset = r.offset;
|
|
715
|
+
payload = r.readBytesView(payloadLength);
|
|
716
|
+
}
|
|
717
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
718
|
+
if (status !== void 0)
|
|
719
|
+
obj.status = status;
|
|
720
|
+
controller.enqueue(obj);
|
|
721
|
+
offset += r.offset;
|
|
722
|
+
} catch (e) {
|
|
723
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError && e.code === "UNEXPECTED_END") break;
|
|
724
|
+
controller.error(e);
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
flush(controller) {
|
|
731
|
+
if (offset < buffer.length) {
|
|
732
|
+
controller.error(new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// src/drafts/draft14/codec.ts
|
|
739
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
740
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
741
|
+
function encodeParams(params, writer) {
|
|
742
|
+
let count = 0;
|
|
743
|
+
if (params.role !== void 0) count++;
|
|
744
|
+
if (params.path !== void 0) count++;
|
|
745
|
+
if (params.max_request_id !== void 0) count++;
|
|
746
|
+
if (params.unknown) count += params.unknown.length;
|
|
747
|
+
writer.writeVarInt(count);
|
|
748
|
+
if (params.role !== void 0) {
|
|
749
|
+
writer.writeVarInt(PARAM_ROLE);
|
|
750
|
+
writer.writeVarInt(params.role);
|
|
751
|
+
}
|
|
752
|
+
if (params.path !== void 0) {
|
|
753
|
+
writer.writeVarInt(PARAM_PATH);
|
|
754
|
+
const encoded = textEncoder.encode(params.path);
|
|
755
|
+
writer.writeVarInt(encoded.byteLength);
|
|
756
|
+
writer.writeBytes(encoded);
|
|
757
|
+
}
|
|
758
|
+
if (params.max_request_id !== void 0) {
|
|
759
|
+
writer.writeVarInt(PARAM_MAX_REQUEST_ID);
|
|
760
|
+
writer.writeVarInt(params.max_request_id);
|
|
761
|
+
}
|
|
762
|
+
if (params.unknown) {
|
|
763
|
+
for (const u of params.unknown) {
|
|
764
|
+
const id = BigInt(u.id);
|
|
765
|
+
writer.writeVarInt(id);
|
|
766
|
+
const raw = _chunkKNDYS3DKcjs.hexToBytes.call(void 0, u.raw_hex);
|
|
767
|
+
writer.writeVarInt(raw.byteLength);
|
|
768
|
+
writer.writeBytes(raw);
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
function decodeParams(reader) {
|
|
773
|
+
const count = Number(reader.readVarInt());
|
|
774
|
+
const result = {};
|
|
775
|
+
const unknown = [];
|
|
776
|
+
for (let i = 0; i < count; i++) {
|
|
777
|
+
const paramType = reader.readVarInt();
|
|
778
|
+
if (paramType % 2n === 0n) {
|
|
779
|
+
const value = reader.readVarInt();
|
|
780
|
+
if (paramType === PARAM_ROLE) {
|
|
781
|
+
result.role = value;
|
|
782
|
+
} else if (paramType === PARAM_MAX_REQUEST_ID) {
|
|
783
|
+
result.max_request_id = value;
|
|
784
|
+
} else {
|
|
785
|
+
const tmpWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)(16);
|
|
786
|
+
tmpWriter.writeVarInt(value);
|
|
787
|
+
const raw = tmpWriter.finish();
|
|
788
|
+
unknown.push({
|
|
789
|
+
id: `0x${paramType.toString(16)}`,
|
|
790
|
+
length: raw.byteLength,
|
|
791
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, raw)
|
|
792
|
+
});
|
|
793
|
+
}
|
|
794
|
+
} else {
|
|
795
|
+
const length = Number(reader.readVarInt());
|
|
796
|
+
const bytes = reader.readBytes(length);
|
|
797
|
+
if (paramType === PARAM_PATH) {
|
|
798
|
+
result.path = textDecoder.decode(bytes);
|
|
799
|
+
} else {
|
|
800
|
+
unknown.push({
|
|
801
|
+
id: `0x${paramType.toString(16)}`,
|
|
802
|
+
length,
|
|
803
|
+
raw_hex: _chunkKNDYS3DKcjs.bytesToHex.call(void 0, bytes)
|
|
804
|
+
});
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
if (unknown.length > 0) {
|
|
809
|
+
result.unknown = unknown;
|
|
810
|
+
}
|
|
811
|
+
return result;
|
|
812
|
+
}
|
|
813
|
+
function encodeClientSetupPayload(msg, w) {
|
|
814
|
+
w.writeVarInt(msg.supported_versions.length);
|
|
815
|
+
for (const v of msg.supported_versions) {
|
|
816
|
+
w.writeVarInt(v);
|
|
817
|
+
}
|
|
818
|
+
encodeParams(msg.parameters, w);
|
|
819
|
+
}
|
|
820
|
+
function encodeServerSetupPayload(msg, w) {
|
|
821
|
+
w.writeVarInt(msg.selected_version);
|
|
822
|
+
encodeParams(msg.parameters, w);
|
|
823
|
+
}
|
|
824
|
+
function encodeSubscribePayload(msg, w) {
|
|
825
|
+
w.writeVarInt(msg.request_id);
|
|
826
|
+
w.writeTuple(msg.track_namespace);
|
|
827
|
+
w.writeString(msg.track_name);
|
|
828
|
+
w.writeUint8(Number(msg.subscriber_priority));
|
|
829
|
+
w.writeVarInt(msg.group_order);
|
|
830
|
+
w.writeVarInt(msg.forward);
|
|
831
|
+
w.writeVarInt(msg.filter_type);
|
|
832
|
+
const ft = Number(msg.filter_type);
|
|
833
|
+
if (ft >= 3) {
|
|
834
|
+
w.writeVarInt(msg.start_group);
|
|
835
|
+
w.writeVarInt(msg.start_object);
|
|
836
|
+
}
|
|
837
|
+
if (ft === 4) {
|
|
838
|
+
w.writeVarInt(msg.end_group);
|
|
839
|
+
}
|
|
840
|
+
encodeParams(msg.parameters, w);
|
|
841
|
+
}
|
|
842
|
+
function encodeSubscribeOkPayload(msg, w) {
|
|
843
|
+
w.writeVarInt(msg.request_id);
|
|
844
|
+
w.writeVarInt(msg.track_alias);
|
|
845
|
+
w.writeVarInt(msg.expires);
|
|
846
|
+
w.writeVarInt(msg.group_order);
|
|
847
|
+
w.writeVarInt(msg.content_exists);
|
|
848
|
+
if (Number(msg.content_exists) === 1) {
|
|
849
|
+
w.writeVarInt(msg.largest_group);
|
|
850
|
+
w.writeVarInt(msg.largest_object);
|
|
851
|
+
}
|
|
852
|
+
encodeParams(msg.parameters, w);
|
|
853
|
+
}
|
|
854
|
+
function encodeSubscribeUpdatePayload(msg, w) {
|
|
855
|
+
w.writeVarInt(msg.request_id);
|
|
856
|
+
w.writeVarInt(msg.start_group);
|
|
857
|
+
w.writeVarInt(msg.start_object);
|
|
858
|
+
w.writeVarInt(msg.end_group);
|
|
859
|
+
w.writeUint8(Number(msg.subscriber_priority));
|
|
860
|
+
w.writeVarInt(msg.forward);
|
|
861
|
+
encodeParams(msg.parameters, w);
|
|
213
862
|
}
|
|
214
863
|
function encodeSubscribeErrorPayload(msg, w) {
|
|
215
864
|
w.writeVarInt(msg.request_id);
|
|
@@ -337,7 +986,7 @@ function encodeRequestsBlockedPayload(msg, w) {
|
|
|
337
986
|
function decodeClientSetupPayload(r) {
|
|
338
987
|
const numVersions = Number(r.readVarInt());
|
|
339
988
|
if (numVersions === 0) {
|
|
340
|
-
throw new (0,
|
|
989
|
+
throw new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
341
990
|
"CONSTRAINT_VIOLATION",
|
|
342
991
|
"CLIENT_SETUP must offer at least one version",
|
|
343
992
|
r.offset
|
|
@@ -365,7 +1014,7 @@ function decodeSubscribePayload(r) {
|
|
|
365
1014
|
const filter_type = r.readVarInt();
|
|
366
1015
|
const ft = Number(filter_type);
|
|
367
1016
|
if (ft < 1 || ft > 4) {
|
|
368
|
-
throw new (0,
|
|
1017
|
+
throw new (0, _chunkRUPCJTC3cjs.DecodeError)("CONSTRAINT_VIOLATION", `Invalid filter_type: ${ft}`, r.offset);
|
|
369
1018
|
}
|
|
370
1019
|
let start_group;
|
|
371
1020
|
let start_object;
|
|
@@ -640,13 +1289,13 @@ function encodeMessage(message) {
|
|
|
640
1289
|
if (typeId === void 0) {
|
|
641
1290
|
throw new Error(`Unknown message type: ${message.type}`);
|
|
642
1291
|
}
|
|
643
|
-
const payloadWriter = new (0,
|
|
1292
|
+
const payloadWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
|
|
644
1293
|
encodePayload(message, payloadWriter);
|
|
645
|
-
const payload = payloadWriter.
|
|
1294
|
+
const payload = payloadWriter.finishView();
|
|
646
1295
|
if (payload.byteLength > 65535) {
|
|
647
1296
|
throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
|
|
648
1297
|
}
|
|
649
|
-
const writer = new (0,
|
|
1298
|
+
const writer = new (0, _chunkRUPCJTC3cjs.BufferWriter)(payload.byteLength + 16);
|
|
650
1299
|
writer.writeVarInt(typeId);
|
|
651
1300
|
writer.writeUint8(payload.byteLength >> 8 & 255);
|
|
652
1301
|
writer.writeUint8(payload.byteLength & 255);
|
|
@@ -723,18 +1372,18 @@ function encodePayload(msg, w) {
|
|
|
723
1372
|
}
|
|
724
1373
|
function decodeMessage(bytes) {
|
|
725
1374
|
try {
|
|
726
|
-
const reader = new (0,
|
|
1375
|
+
const reader = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
|
|
727
1376
|
const typeId = reader.readVarInt();
|
|
728
1377
|
const lenHi = reader.readUint8();
|
|
729
1378
|
const lenLo = reader.readUint8();
|
|
730
1379
|
const payloadLength = lenHi << 8 | lenLo;
|
|
731
1380
|
const payloadBytes = reader.readBytes(payloadLength);
|
|
732
|
-
const payloadReader = new (0,
|
|
1381
|
+
const payloadReader = new (0, _chunkRUPCJTC3cjs.BufferReader)(payloadBytes);
|
|
733
1382
|
const decoder = payloadDecoders.get(typeId);
|
|
734
1383
|
if (!decoder) {
|
|
735
1384
|
return {
|
|
736
1385
|
ok: false,
|
|
737
|
-
error: new (0,
|
|
1386
|
+
error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
|
|
738
1387
|
"UNKNOWN_MESSAGE_TYPE",
|
|
739
1388
|
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
740
1389
|
0
|
|
@@ -744,155 +1393,27 @@ function decodeMessage(bytes) {
|
|
|
744
1393
|
const message = decoder(payloadReader);
|
|
745
1394
|
return { ok: true, value: message, bytesRead: reader.offset };
|
|
746
1395
|
} catch (e) {
|
|
747
|
-
if (e instanceof
|
|
1396
|
+
if (e instanceof _chunkRUPCJTC3cjs.DecodeError) {
|
|
748
1397
|
return { ok: false, error: e };
|
|
749
1398
|
}
|
|
750
1399
|
throw e;
|
|
751
1400
|
}
|
|
752
1401
|
}
|
|
753
|
-
function encodeSubgroupStream(stream) {
|
|
754
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
755
|
-
w.writeVarInt(0n);
|
|
756
|
-
w.writeVarInt(stream.trackAlias);
|
|
757
|
-
w.writeVarInt(stream.groupId);
|
|
758
|
-
w.writeVarInt(stream.subgroupId);
|
|
759
|
-
w.writeUint8(stream.publisherPriority);
|
|
760
|
-
for (const obj of stream.objects) {
|
|
761
|
-
w.writeVarInt(obj.objectId);
|
|
762
|
-
w.writeVarInt(obj.payloadLength);
|
|
763
|
-
w.writeBytes(obj.payload);
|
|
764
|
-
}
|
|
765
|
-
return w.finish();
|
|
766
|
-
}
|
|
767
|
-
function encodeDatagram(dg) {
|
|
768
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
769
|
-
w.writeVarInt(dg.trackAlias);
|
|
770
|
-
w.writeVarInt(dg.groupId);
|
|
771
|
-
w.writeVarInt(dg.objectId);
|
|
772
|
-
w.writeVarInt(dg.payloadLength);
|
|
773
|
-
w.writeBytes(dg.payload);
|
|
774
|
-
return w.finish();
|
|
775
|
-
}
|
|
776
|
-
function encodeFetchStream(stream) {
|
|
777
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
778
|
-
w.writeVarInt(2n);
|
|
779
|
-
w.writeVarInt(stream.subscribeRequestId);
|
|
780
|
-
for (const obj of stream.objects) {
|
|
781
|
-
w.writeVarInt(obj.objectId);
|
|
782
|
-
w.writeVarInt(obj.payloadLength);
|
|
783
|
-
w.writeBytes(obj.payload);
|
|
784
|
-
}
|
|
785
|
-
return w.finish();
|
|
786
|
-
}
|
|
787
|
-
function decodeSubgroupStream(bytes) {
|
|
788
|
-
try {
|
|
789
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
790
|
-
const streamType = r.readVarInt();
|
|
791
|
-
if (streamType !== 0n) {
|
|
792
|
-
return {
|
|
793
|
-
ok: false,
|
|
794
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
795
|
-
"CONSTRAINT_VIOLATION",
|
|
796
|
-
`Expected subgroup stream type 0, got ${streamType}`,
|
|
797
|
-
0
|
|
798
|
-
)
|
|
799
|
-
};
|
|
800
|
-
}
|
|
801
|
-
const trackAlias = r.readVarInt();
|
|
802
|
-
const groupId = r.readVarInt();
|
|
803
|
-
const subgroupId = r.readVarInt();
|
|
804
|
-
const publisherPriority = r.readUint8();
|
|
805
|
-
const objects = [];
|
|
806
|
-
while (r.remaining > 0) {
|
|
807
|
-
const objectId = r.readVarInt();
|
|
808
|
-
const payloadLength = Number(r.readVarInt());
|
|
809
|
-
const payload = r.readBytes(payloadLength);
|
|
810
|
-
objects.push({ type: "object", objectId, payloadLength, payload });
|
|
811
|
-
}
|
|
812
|
-
return {
|
|
813
|
-
ok: true,
|
|
814
|
-
value: { type: "subgroup", trackAlias, groupId, subgroupId, publisherPriority, objects },
|
|
815
|
-
bytesRead: r.offset
|
|
816
|
-
};
|
|
817
|
-
} catch (e) {
|
|
818
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
819
|
-
throw e;
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
function decodeDatagram(bytes) {
|
|
823
|
-
try {
|
|
824
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
825
|
-
const trackAlias = r.readVarInt();
|
|
826
|
-
const groupId = r.readVarInt();
|
|
827
|
-
const objectId = r.readVarInt();
|
|
828
|
-
const payloadLength = Number(r.readVarInt());
|
|
829
|
-
const payload = r.readBytes(payloadLength);
|
|
830
|
-
return {
|
|
831
|
-
ok: true,
|
|
832
|
-
value: { type: "datagram", trackAlias, groupId, objectId, payloadLength, payload },
|
|
833
|
-
bytesRead: r.offset
|
|
834
|
-
};
|
|
835
|
-
} catch (e) {
|
|
836
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
837
|
-
throw e;
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
function decodeFetchStream(bytes) {
|
|
841
|
-
try {
|
|
842
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
843
|
-
const streamType = r.readVarInt();
|
|
844
|
-
if (streamType !== 2n) {
|
|
845
|
-
return {
|
|
846
|
-
ok: false,
|
|
847
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
848
|
-
"CONSTRAINT_VIOLATION",
|
|
849
|
-
`Expected fetch stream type 2, got ${streamType}`,
|
|
850
|
-
0
|
|
851
|
-
)
|
|
852
|
-
};
|
|
853
|
-
}
|
|
854
|
-
const subscribeRequestId = r.readVarInt();
|
|
855
|
-
const objects = [];
|
|
856
|
-
while (r.remaining > 0) {
|
|
857
|
-
const objectId = r.readVarInt();
|
|
858
|
-
const payloadLength = Number(r.readVarInt());
|
|
859
|
-
const payload = r.readBytes(payloadLength);
|
|
860
|
-
objects.push({ type: "object", objectId, payloadLength, payload });
|
|
861
|
-
}
|
|
862
|
-
return {
|
|
863
|
-
ok: true,
|
|
864
|
-
value: { type: "fetch", subscribeRequestId, objects },
|
|
865
|
-
bytesRead: r.offset
|
|
866
|
-
};
|
|
867
|
-
} catch (e) {
|
|
868
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
869
|
-
throw e;
|
|
870
|
-
}
|
|
871
|
-
}
|
|
872
|
-
function decodeDataStream(streamType, bytes) {
|
|
873
|
-
switch (streamType) {
|
|
874
|
-
case "subgroup":
|
|
875
|
-
return decodeSubgroupStream(bytes);
|
|
876
|
-
case "datagram":
|
|
877
|
-
return decodeDatagram(bytes);
|
|
878
|
-
case "fetch":
|
|
879
|
-
return decodeFetchStream(bytes);
|
|
880
|
-
default: {
|
|
881
|
-
const _exhaustive = streamType;
|
|
882
|
-
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
1402
|
function createStreamDecoder() {
|
|
887
1403
|
let buffer = new Uint8Array(0);
|
|
1404
|
+
let offset = 0;
|
|
888
1405
|
return new TransformStream({
|
|
889
1406
|
transform(chunk, controller) {
|
|
1407
|
+
if (offset > 0) {
|
|
1408
|
+
buffer = buffer.subarray(offset);
|
|
1409
|
+
offset = 0;
|
|
1410
|
+
}
|
|
890
1411
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
891
1412
|
newBuffer.set(buffer, 0);
|
|
892
1413
|
newBuffer.set(chunk, buffer.length);
|
|
893
1414
|
buffer = newBuffer;
|
|
894
|
-
while (buffer.length
|
|
895
|
-
const result = decodeMessage(buffer);
|
|
1415
|
+
while (offset < buffer.length) {
|
|
1416
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
896
1417
|
if (!result.ok) {
|
|
897
1418
|
if (result.error.code === "UNEXPECTED_END") {
|
|
898
1419
|
break;
|
|
@@ -901,251 +1422,18 @@ function createStreamDecoder() {
|
|
|
901
1422
|
return;
|
|
902
1423
|
}
|
|
903
1424
|
controller.enqueue(result.value);
|
|
904
|
-
|
|
1425
|
+
offset += result.bytesRead;
|
|
905
1426
|
}
|
|
906
1427
|
},
|
|
907
1428
|
flush(controller) {
|
|
908
|
-
if (buffer.length
|
|
1429
|
+
if (offset < buffer.length) {
|
|
909
1430
|
controller.error(
|
|
910
|
-
new (0,
|
|
1431
|
+
new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
911
1432
|
);
|
|
912
1433
|
}
|
|
913
1434
|
}
|
|
914
1435
|
});
|
|
915
1436
|
}
|
|
916
|
-
function createSubgroupStreamDecoder() {
|
|
917
|
-
let buffer = new Uint8Array(0);
|
|
918
|
-
let headerEmitted = false;
|
|
919
|
-
return new TransformStream({
|
|
920
|
-
transform(chunk, controller) {
|
|
921
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
922
|
-
newBuffer.set(buffer, 0);
|
|
923
|
-
newBuffer.set(chunk, buffer.length);
|
|
924
|
-
buffer = newBuffer;
|
|
925
|
-
if (!headerEmitted) {
|
|
926
|
-
try {
|
|
927
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
928
|
-
const streamType = r.readVarInt();
|
|
929
|
-
if (streamType !== 0n) {
|
|
930
|
-
controller.error(
|
|
931
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
932
|
-
"CONSTRAINT_VIOLATION",
|
|
933
|
-
`Expected subgroup stream type 0, got ${streamType}`,
|
|
934
|
-
0
|
|
935
|
-
)
|
|
936
|
-
);
|
|
937
|
-
return;
|
|
938
|
-
}
|
|
939
|
-
const trackAlias = r.readVarInt();
|
|
940
|
-
const groupId = r.readVarInt();
|
|
941
|
-
const subgroupId = r.readVarInt();
|
|
942
|
-
const publisherPriority = r.readUint8();
|
|
943
|
-
controller.enqueue({
|
|
944
|
-
type: "subgroup_header",
|
|
945
|
-
trackAlias,
|
|
946
|
-
groupId,
|
|
947
|
-
subgroupId,
|
|
948
|
-
publisherPriority
|
|
949
|
-
});
|
|
950
|
-
headerEmitted = true;
|
|
951
|
-
buffer = buffer.slice(r.offset);
|
|
952
|
-
} catch (e) {
|
|
953
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
954
|
-
return;
|
|
955
|
-
}
|
|
956
|
-
controller.error(e);
|
|
957
|
-
return;
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
|
-
while (buffer.length > 0) {
|
|
961
|
-
try {
|
|
962
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
963
|
-
const objectId = r.readVarInt();
|
|
964
|
-
const payloadLength = Number(r.readVarInt());
|
|
965
|
-
const payload = r.readBytes(payloadLength);
|
|
966
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
967
|
-
buffer = buffer.slice(r.offset);
|
|
968
|
-
} catch (e) {
|
|
969
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
970
|
-
break;
|
|
971
|
-
}
|
|
972
|
-
controller.error(e);
|
|
973
|
-
return;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
},
|
|
977
|
-
flush(controller) {
|
|
978
|
-
if (buffer.length > 0) {
|
|
979
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
});
|
|
983
|
-
}
|
|
984
|
-
function createFetchStreamDecoder() {
|
|
985
|
-
let buffer = new Uint8Array(0);
|
|
986
|
-
let headerEmitted = false;
|
|
987
|
-
return new TransformStream({
|
|
988
|
-
transform(chunk, controller) {
|
|
989
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
990
|
-
newBuffer.set(buffer, 0);
|
|
991
|
-
newBuffer.set(chunk, buffer.length);
|
|
992
|
-
buffer = newBuffer;
|
|
993
|
-
if (!headerEmitted) {
|
|
994
|
-
try {
|
|
995
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
996
|
-
const streamType = r.readVarInt();
|
|
997
|
-
if (streamType !== 2n) {
|
|
998
|
-
controller.error(
|
|
999
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1000
|
-
"CONSTRAINT_VIOLATION",
|
|
1001
|
-
`Expected fetch stream type 2, got ${streamType}`,
|
|
1002
|
-
0
|
|
1003
|
-
)
|
|
1004
|
-
);
|
|
1005
|
-
return;
|
|
1006
|
-
}
|
|
1007
|
-
const subscribeRequestId = r.readVarInt();
|
|
1008
|
-
controller.enqueue({
|
|
1009
|
-
type: "fetch_header",
|
|
1010
|
-
subscribeRequestId
|
|
1011
|
-
});
|
|
1012
|
-
headerEmitted = true;
|
|
1013
|
-
buffer = buffer.slice(r.offset);
|
|
1014
|
-
} catch (e) {
|
|
1015
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1016
|
-
return;
|
|
1017
|
-
}
|
|
1018
|
-
controller.error(e);
|
|
1019
|
-
return;
|
|
1020
|
-
}
|
|
1021
|
-
}
|
|
1022
|
-
while (buffer.length > 0) {
|
|
1023
|
-
try {
|
|
1024
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1025
|
-
const objectId = r.readVarInt();
|
|
1026
|
-
const payloadLength = Number(r.readVarInt());
|
|
1027
|
-
const payload = r.readBytes(payloadLength);
|
|
1028
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1029
|
-
buffer = buffer.slice(r.offset);
|
|
1030
|
-
} catch (e) {
|
|
1031
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1032
|
-
break;
|
|
1033
|
-
}
|
|
1034
|
-
controller.error(e);
|
|
1035
|
-
return;
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
},
|
|
1039
|
-
flush(controller) {
|
|
1040
|
-
if (buffer.length > 0) {
|
|
1041
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1042
|
-
}
|
|
1043
|
-
}
|
|
1044
|
-
});
|
|
1045
|
-
}
|
|
1046
|
-
function createDataStreamDecoder() {
|
|
1047
|
-
let buffer = new Uint8Array(0);
|
|
1048
|
-
let detectedType = null;
|
|
1049
|
-
let headerEmitted = false;
|
|
1050
|
-
return new TransformStream({
|
|
1051
|
-
transform(chunk, controller) {
|
|
1052
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1053
|
-
newBuffer.set(buffer, 0);
|
|
1054
|
-
newBuffer.set(chunk, buffer.length);
|
|
1055
|
-
buffer = newBuffer;
|
|
1056
|
-
if (detectedType === null) {
|
|
1057
|
-
try {
|
|
1058
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1059
|
-
const streamType = r.readVarInt();
|
|
1060
|
-
if (streamType === 0n) {
|
|
1061
|
-
detectedType = "subgroup";
|
|
1062
|
-
} else if (streamType === 2n) {
|
|
1063
|
-
detectedType = "fetch";
|
|
1064
|
-
} else {
|
|
1065
|
-
controller.error(
|
|
1066
|
-
new (0, _chunkFWISIR26cjs.DecodeError)("CONSTRAINT_VIOLATION", `Unknown data stream type: ${streamType}`, 0)
|
|
1067
|
-
);
|
|
1068
|
-
return;
|
|
1069
|
-
}
|
|
1070
|
-
} catch (e) {
|
|
1071
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1072
|
-
return;
|
|
1073
|
-
}
|
|
1074
|
-
controller.error(e);
|
|
1075
|
-
return;
|
|
1076
|
-
}
|
|
1077
|
-
}
|
|
1078
|
-
if (detectedType === "subgroup") {
|
|
1079
|
-
if (!headerEmitted) {
|
|
1080
|
-
try {
|
|
1081
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1082
|
-
r.readVarInt();
|
|
1083
|
-
const trackAlias = r.readVarInt();
|
|
1084
|
-
const groupId = r.readVarInt();
|
|
1085
|
-
const subgroupId = r.readVarInt();
|
|
1086
|
-
const publisherPriority = r.readUint8();
|
|
1087
|
-
controller.enqueue({
|
|
1088
|
-
type: "subgroup_header",
|
|
1089
|
-
trackAlias,
|
|
1090
|
-
groupId,
|
|
1091
|
-
subgroupId,
|
|
1092
|
-
publisherPriority
|
|
1093
|
-
});
|
|
1094
|
-
headerEmitted = true;
|
|
1095
|
-
buffer = buffer.slice(r.offset);
|
|
1096
|
-
} catch (e) {
|
|
1097
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1098
|
-
return;
|
|
1099
|
-
}
|
|
1100
|
-
controller.error(e);
|
|
1101
|
-
return;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
} else {
|
|
1105
|
-
if (!headerEmitted) {
|
|
1106
|
-
try {
|
|
1107
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1108
|
-
r.readVarInt();
|
|
1109
|
-
const subscribeRequestId = r.readVarInt();
|
|
1110
|
-
controller.enqueue({
|
|
1111
|
-
type: "fetch_header",
|
|
1112
|
-
subscribeRequestId
|
|
1113
|
-
});
|
|
1114
|
-
headerEmitted = true;
|
|
1115
|
-
buffer = buffer.slice(r.offset);
|
|
1116
|
-
} catch (e) {
|
|
1117
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1118
|
-
return;
|
|
1119
|
-
}
|
|
1120
|
-
controller.error(e);
|
|
1121
|
-
return;
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
}
|
|
1125
|
-
while (buffer.length > 0) {
|
|
1126
|
-
try {
|
|
1127
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1128
|
-
const objectId = r.readVarInt();
|
|
1129
|
-
const payloadLength = Number(r.readVarInt());
|
|
1130
|
-
const payload = r.readBytes(payloadLength);
|
|
1131
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1132
|
-
buffer = buffer.slice(r.offset);
|
|
1133
|
-
} catch (e) {
|
|
1134
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1135
|
-
break;
|
|
1136
|
-
}
|
|
1137
|
-
controller.error(e);
|
|
1138
|
-
return;
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
},
|
|
1142
|
-
flush(controller) {
|
|
1143
|
-
if (buffer.length > 0) {
|
|
1144
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
});
|
|
1148
|
-
}
|
|
1149
1437
|
function createDraft14Codec() {
|
|
1150
1438
|
return {
|
|
1151
1439
|
draft: "draft-ietf-moq-transport-14",
|
|
@@ -1215,4 +1503,4 @@ function createDraft14Codec() {
|
|
|
1215
1503
|
|
|
1216
1504
|
|
|
1217
1505
|
|
|
1218
|
-
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_SUBSCRIBE_ERROR = MSG_SUBSCRIBE_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_PUBLISH_NAMESPACE_OK = MSG_PUBLISH_NAMESPACE_OK; exports.MSG_PUBLISH_NAMESPACE_ERROR = MSG_PUBLISH_NAMESPACE_ERROR; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_TRACK_STATUS_OK = MSG_TRACK_STATUS_OK; exports.MSG_TRACK_STATUS_ERROR = MSG_TRACK_STATUS_ERROR; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_SUBSCRIBE_NAMESPACE_OK = MSG_SUBSCRIBE_NAMESPACE_OK; exports.MSG_SUBSCRIBE_NAMESPACE_ERROR = MSG_SUBSCRIBE_NAMESPACE_ERROR; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_FETCH_ERROR = MSG_FETCH_ERROR; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_PUBLISH_ERROR = MSG_PUBLISH_ERROR; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.PARAM_ROLE = PARAM_ROLE; exports.PARAM_PATH = PARAM_PATH; exports.PARAM_MAX_REQUEST_ID = PARAM_MAX_REQUEST_ID; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.
|
|
1506
|
+
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_SUBSCRIBE_ERROR = MSG_SUBSCRIBE_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_PUBLISH_NAMESPACE_OK = MSG_PUBLISH_NAMESPACE_OK; exports.MSG_PUBLISH_NAMESPACE_ERROR = MSG_PUBLISH_NAMESPACE_ERROR; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_TRACK_STATUS_OK = MSG_TRACK_STATUS_OK; exports.MSG_TRACK_STATUS_ERROR = MSG_TRACK_STATUS_ERROR; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_SUBSCRIBE_NAMESPACE_OK = MSG_SUBSCRIBE_NAMESPACE_OK; exports.MSG_SUBSCRIBE_NAMESPACE_ERROR = MSG_SUBSCRIBE_NAMESPACE_ERROR; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_FETCH_ERROR = MSG_FETCH_ERROR; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_PUBLISH_ERROR = MSG_PUBLISH_ERROR; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.PARAM_ROLE = PARAM_ROLE; exports.PARAM_PATH = PARAM_PATH; exports.PARAM_MAX_REQUEST_ID = PARAM_MAX_REQUEST_ID; 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.createDraft14Codec = createDraft14Codec;
|