@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
|
+
import {
|
|
2
|
+
bytesToHex,
|
|
3
|
+
hexToBytes
|
|
4
|
+
} from "./chunk-HDWJ2GDE.js";
|
|
1
5
|
import {
|
|
2
6
|
BufferReader,
|
|
3
7
|
BufferWriter,
|
|
4
8
|
DecodeError
|
|
5
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7L43FE6P.js";
|
|
6
10
|
|
|
7
11
|
// src/drafts/draft08/messages.ts
|
|
8
12
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -68,144 +72,461 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
68
72
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
69
73
|
);
|
|
70
74
|
|
|
71
|
-
// src/drafts/draft08/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
// src/drafts/draft08/data-streams.ts
|
|
76
|
+
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
77
|
+
var DATAGRAM_TYPE = 0x01n;
|
|
78
|
+
var DATAGRAM_STATUS_TYPE = 0x02n;
|
|
79
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
80
|
+
function encodeSubgroupStream(stream) {
|
|
81
|
+
const w = new BufferWriter();
|
|
82
|
+
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
83
|
+
w.writeVarInt(stream.trackAlias);
|
|
84
|
+
w.writeVarInt(stream.groupId);
|
|
85
|
+
w.writeVarInt(stream.subgroupId);
|
|
86
|
+
w.writeUint8(stream.publisherPriority);
|
|
87
|
+
for (const obj of stream.objects) {
|
|
88
|
+
w.writeVarInt(obj.objectId);
|
|
89
|
+
w.writeVarInt(obj.extensionCount);
|
|
90
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
91
|
+
w.writeVarInt(obj.payloadLength);
|
|
92
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
93
|
+
w.writeVarInt(obj.status);
|
|
94
|
+
} else {
|
|
95
|
+
w.writeBytes(obj.payload);
|
|
96
|
+
}
|
|
76
97
|
}
|
|
77
|
-
return
|
|
98
|
+
return w.finish();
|
|
78
99
|
}
|
|
79
|
-
function
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
function encodeDatagram(dg) {
|
|
101
|
+
const w = new BufferWriter();
|
|
102
|
+
w.writeVarInt(DATAGRAM_TYPE);
|
|
103
|
+
w.writeVarInt(dg.trackAlias);
|
|
104
|
+
w.writeVarInt(dg.groupId);
|
|
105
|
+
w.writeVarInt(dg.objectId);
|
|
106
|
+
w.writeUint8(dg.publisherPriority);
|
|
107
|
+
w.writeVarInt(dg.extensionCount);
|
|
108
|
+
if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
|
|
109
|
+
w.writeVarInt(dg.payloadLength);
|
|
110
|
+
if (dg.payloadLength === 0 && dg.objectStatus !== void 0) {
|
|
111
|
+
w.writeVarInt(dg.objectStatus);
|
|
112
|
+
} else {
|
|
113
|
+
w.writeBytes(dg.payload);
|
|
83
114
|
}
|
|
84
|
-
return
|
|
115
|
+
return w.finish();
|
|
85
116
|
}
|
|
86
|
-
function
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
w.writeVarInt(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
w.writeVarInt(encoded.byteLength);
|
|
96
|
-
w.writeBytes(encoded);
|
|
97
|
-
}
|
|
98
|
-
if (params.max_subscribe_id !== void 0) {
|
|
99
|
-
w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
|
|
100
|
-
const tmpW = new BufferWriter(16);
|
|
101
|
-
tmpW.writeVarInt(params.max_subscribe_id);
|
|
102
|
-
const raw = tmpW.finish();
|
|
103
|
-
w.writeVarInt(raw.byteLength);
|
|
104
|
-
w.writeBytes(raw);
|
|
105
|
-
}
|
|
106
|
-
if (params.unknown) {
|
|
107
|
-
for (const u of params.unknown) {
|
|
108
|
-
w.writeVarInt(BigInt(u.id));
|
|
109
|
-
const raw = hexToBytes(u.raw_hex);
|
|
110
|
-
w.writeVarInt(raw.byteLength);
|
|
111
|
-
w.writeBytes(raw);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
117
|
+
function encodeDatagramStatus(dg) {
|
|
118
|
+
const w = new BufferWriter();
|
|
119
|
+
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
120
|
+
w.writeVarInt(dg.trackAlias);
|
|
121
|
+
w.writeVarInt(dg.groupId);
|
|
122
|
+
w.writeVarInt(dg.objectId);
|
|
123
|
+
w.writeUint8(dg.publisherPriority);
|
|
124
|
+
w.writeVarInt(dg.objectStatus);
|
|
125
|
+
return w.finish();
|
|
114
126
|
}
|
|
115
|
-
function
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
function encodeFetchStream(stream) {
|
|
128
|
+
const w = new BufferWriter();
|
|
129
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
130
|
+
w.writeVarInt(stream.subscribeId);
|
|
131
|
+
for (const obj of stream.objects) {
|
|
132
|
+
w.writeVarInt(obj.groupId);
|
|
133
|
+
w.writeVarInt(obj.subgroupId);
|
|
134
|
+
w.writeVarInt(obj.objectId);
|
|
135
|
+
w.writeUint8(obj.publisherPriority);
|
|
136
|
+
w.writeVarInt(obj.extensionCount);
|
|
137
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
138
|
+
w.writeVarInt(obj.payloadLength);
|
|
139
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
140
|
+
w.writeVarInt(obj.status);
|
|
129
141
|
} else {
|
|
130
|
-
|
|
131
|
-
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
142
|
+
w.writeBytes(obj.payload);
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
|
-
|
|
135
|
-
return result;
|
|
145
|
+
return w.finish();
|
|
136
146
|
}
|
|
137
|
-
function
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
147
|
+
function decodeSubgroupStream(bytes) {
|
|
148
|
+
try {
|
|
149
|
+
const r = new BufferReader(bytes);
|
|
150
|
+
const streamType = Number(r.readVarInt());
|
|
151
|
+
if (streamType !== 4) {
|
|
152
|
+
return {
|
|
153
|
+
ok: false,
|
|
154
|
+
error: new DecodeError(
|
|
155
|
+
"CONSTRAINT_VIOLATION",
|
|
156
|
+
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
157
|
+
0
|
|
158
|
+
)
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
const trackAlias = r.readVarInt();
|
|
162
|
+
const groupId = r.readVarInt();
|
|
163
|
+
const subgroupId = r.readVarInt();
|
|
164
|
+
const publisherPriority = r.readUint8();
|
|
165
|
+
const objects = [];
|
|
166
|
+
while (r.remaining > 0) {
|
|
167
|
+
const byteOffset = r.offset;
|
|
168
|
+
const objectId = r.readVarInt();
|
|
169
|
+
const extensionCount = Number(r.readVarInt());
|
|
170
|
+
const extStart = r.offset;
|
|
171
|
+
for (let i = 0; i < extensionCount; i++) {
|
|
172
|
+
const extType = Number(r.readVarInt());
|
|
173
|
+
if (extType % 2 === 0) {
|
|
174
|
+
r.readVarInt();
|
|
175
|
+
} else {
|
|
176
|
+
const extLen = Number(r.readVarInt());
|
|
177
|
+
if (extLen > 0) r.readBytesView(extLen);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const extensionData = r.buffer.slice(extStart, r.offset);
|
|
181
|
+
const payloadLength = Number(r.readVarInt());
|
|
182
|
+
let payload;
|
|
183
|
+
let status;
|
|
184
|
+
let payloadByteOffset;
|
|
185
|
+
if (payloadLength === 0) {
|
|
186
|
+
status = r.readVarInt();
|
|
187
|
+
payloadByteOffset = r.offset;
|
|
188
|
+
payload = new Uint8Array(0);
|
|
189
|
+
} else {
|
|
190
|
+
payloadByteOffset = r.offset;
|
|
191
|
+
payload = r.readBytesView(payloadLength);
|
|
192
|
+
}
|
|
193
|
+
const obj = {
|
|
194
|
+
type: "object",
|
|
195
|
+
byteOffset,
|
|
196
|
+
payloadByteOffset,
|
|
197
|
+
objectId,
|
|
198
|
+
extensionCount: BigInt(extensionCount),
|
|
199
|
+
extensionData,
|
|
200
|
+
payloadLength,
|
|
201
|
+
payload
|
|
202
|
+
};
|
|
203
|
+
if (status !== void 0) obj.status = status;
|
|
204
|
+
objects.push(obj);
|
|
171
205
|
}
|
|
206
|
+
return {
|
|
207
|
+
ok: true,
|
|
208
|
+
value: {
|
|
209
|
+
type: "subgroup",
|
|
210
|
+
streamTypeId: 4,
|
|
211
|
+
trackAlias,
|
|
212
|
+
groupId,
|
|
213
|
+
subgroupId,
|
|
214
|
+
publisherPriority,
|
|
215
|
+
objects
|
|
216
|
+
},
|
|
217
|
+
bytesRead: r.offset
|
|
218
|
+
};
|
|
219
|
+
} catch (e) {
|
|
220
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
221
|
+
throw e;
|
|
172
222
|
}
|
|
173
223
|
}
|
|
174
|
-
function
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
224
|
+
function decodeDatagram(bytes) {
|
|
225
|
+
try {
|
|
226
|
+
const r = new BufferReader(bytes);
|
|
227
|
+
const streamType = Number(r.readVarInt());
|
|
228
|
+
if (streamType !== 1) {
|
|
229
|
+
return {
|
|
230
|
+
ok: false,
|
|
231
|
+
error: new DecodeError(
|
|
232
|
+
"CONSTRAINT_VIOLATION",
|
|
233
|
+
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
234
|
+
0
|
|
235
|
+
)
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const trackAlias = r.readVarInt();
|
|
239
|
+
const groupId = r.readVarInt();
|
|
240
|
+
const objectId = r.readVarInt();
|
|
241
|
+
const publisherPriority = r.readUint8();
|
|
242
|
+
const extensionCount = Number(r.readVarInt());
|
|
243
|
+
const extStart = r.offset;
|
|
244
|
+
for (let i = 0; i < extensionCount; i++) {
|
|
245
|
+
const extType = Number(r.readVarInt());
|
|
246
|
+
if (extType % 2 === 0) {
|
|
247
|
+
r.readVarInt();
|
|
248
|
+
} else {
|
|
249
|
+
const extLen = Number(r.readVarInt());
|
|
250
|
+
if (extLen > 0) r.readBytesView(extLen);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
const extensionData = r.buffer.slice(extStart, r.offset);
|
|
254
|
+
const payloadLength = Number(r.readVarInt());
|
|
255
|
+
let objectStatus;
|
|
256
|
+
let payload;
|
|
257
|
+
if (payloadLength === 0) {
|
|
258
|
+
objectStatus = r.readVarInt();
|
|
259
|
+
payload = new Uint8Array(0);
|
|
192
260
|
} else {
|
|
193
|
-
|
|
194
|
-
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
261
|
+
payload = r.readBytesView(payloadLength);
|
|
195
262
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}
|
|
263
|
+
const result = {
|
|
264
|
+
type: "datagram",
|
|
265
|
+
streamTypeId: 1,
|
|
266
|
+
trackAlias,
|
|
267
|
+
groupId,
|
|
268
|
+
objectId,
|
|
269
|
+
publisherPriority,
|
|
270
|
+
extensionCount: BigInt(extensionCount),
|
|
271
|
+
extensionData,
|
|
272
|
+
objectStatus: objectStatus ?? 0n,
|
|
273
|
+
payloadLength,
|
|
274
|
+
payload
|
|
275
|
+
};
|
|
276
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
277
|
+
} catch (e) {
|
|
278
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
279
|
+
throw e;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
function decodeDatagramStatus(bytes) {
|
|
283
|
+
try {
|
|
284
|
+
const r = new BufferReader(bytes);
|
|
285
|
+
const streamType = Number(r.readVarInt());
|
|
286
|
+
if (streamType !== 2) {
|
|
287
|
+
return {
|
|
288
|
+
ok: false,
|
|
289
|
+
error: new DecodeError(
|
|
290
|
+
"CONSTRAINT_VIOLATION",
|
|
291
|
+
`Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
|
|
292
|
+
0
|
|
293
|
+
)
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
const trackAlias = r.readVarInt();
|
|
297
|
+
const groupId = r.readVarInt();
|
|
298
|
+
const objectId = r.readVarInt();
|
|
299
|
+
const publisherPriority = r.readUint8();
|
|
300
|
+
const objectStatus = r.readVarInt();
|
|
301
|
+
return {
|
|
302
|
+
ok: true,
|
|
303
|
+
value: {
|
|
304
|
+
type: "datagram_status",
|
|
305
|
+
streamTypeId: 2,
|
|
306
|
+
trackAlias,
|
|
307
|
+
groupId,
|
|
308
|
+
objectId,
|
|
309
|
+
publisherPriority,
|
|
310
|
+
objectStatus
|
|
311
|
+
},
|
|
312
|
+
bytesRead: r.offset
|
|
313
|
+
};
|
|
314
|
+
} catch (e) {
|
|
315
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
316
|
+
throw e;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
function decodeFetchStream(bytes) {
|
|
320
|
+
try {
|
|
321
|
+
const r = new BufferReader(bytes);
|
|
322
|
+
const streamType = r.readVarInt();
|
|
323
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
324
|
+
return {
|
|
325
|
+
ok: false,
|
|
326
|
+
error: new DecodeError(
|
|
327
|
+
"CONSTRAINT_VIOLATION",
|
|
328
|
+
`Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
|
|
329
|
+
0
|
|
330
|
+
)
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
const subscribeId = r.readVarInt();
|
|
334
|
+
const objects = [];
|
|
335
|
+
while (r.remaining > 0) {
|
|
336
|
+
const byteOffset = r.offset;
|
|
337
|
+
const groupId = r.readVarInt();
|
|
338
|
+
const subgroupId = r.readVarInt();
|
|
339
|
+
const objectId = r.readVarInt();
|
|
340
|
+
const publisherPriority = r.readUint8();
|
|
341
|
+
const extensionCount = Number(r.readVarInt());
|
|
342
|
+
const extStart = r.offset;
|
|
343
|
+
for (let i = 0; i < extensionCount; i++) {
|
|
344
|
+
const extType = Number(r.readVarInt());
|
|
345
|
+
if (extType % 2 === 0) {
|
|
346
|
+
r.readVarInt();
|
|
347
|
+
} else {
|
|
348
|
+
const extLen = Number(r.readVarInt());
|
|
349
|
+
if (extLen > 0) r.readBytesView(extLen);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
const extensionData = r.buffer.slice(extStart, r.offset);
|
|
353
|
+
const payloadLength = Number(r.readVarInt());
|
|
354
|
+
let payload;
|
|
355
|
+
let status;
|
|
356
|
+
let payloadByteOffset;
|
|
357
|
+
if (payloadLength === 0) {
|
|
358
|
+
status = r.readVarInt();
|
|
359
|
+
payloadByteOffset = r.offset;
|
|
360
|
+
payload = new Uint8Array(0);
|
|
361
|
+
} else {
|
|
362
|
+
payloadByteOffset = r.offset;
|
|
363
|
+
payload = r.readBytesView(payloadLength);
|
|
364
|
+
}
|
|
365
|
+
const obj = {
|
|
366
|
+
type: "object",
|
|
367
|
+
byteOffset,
|
|
368
|
+
payloadByteOffset,
|
|
369
|
+
groupId,
|
|
370
|
+
subgroupId,
|
|
371
|
+
objectId,
|
|
372
|
+
publisherPriority,
|
|
373
|
+
extensionCount: BigInt(extensionCount),
|
|
374
|
+
extensionData,
|
|
375
|
+
payloadLength,
|
|
376
|
+
payload
|
|
377
|
+
};
|
|
378
|
+
if (status !== void 0) obj.status = status;
|
|
379
|
+
objects.push(obj);
|
|
380
|
+
}
|
|
381
|
+
return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
|
|
382
|
+
} catch (e) {
|
|
383
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
384
|
+
throw e;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
function decodeDataStream(streamType, bytes) {
|
|
388
|
+
switch (streamType) {
|
|
389
|
+
case "subgroup":
|
|
390
|
+
return decodeSubgroupStream(bytes);
|
|
391
|
+
case "datagram":
|
|
392
|
+
return decodeDatagram(bytes);
|
|
393
|
+
case "datagram_status":
|
|
394
|
+
return decodeDatagramStatus(bytes);
|
|
395
|
+
case "fetch":
|
|
396
|
+
return decodeFetchStream(bytes);
|
|
397
|
+
default: {
|
|
398
|
+
const _ = streamType;
|
|
399
|
+
throw new Error(`Unknown: ${_}`);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// src/drafts/draft08/codec.ts
|
|
405
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
406
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
407
|
+
function encodeSetupParams(params, w) {
|
|
408
|
+
let count = 0;
|
|
409
|
+
if (params.path !== void 0) count++;
|
|
410
|
+
if (params.max_subscribe_id !== void 0) count++;
|
|
411
|
+
if (params.unknown) count += params.unknown.length;
|
|
412
|
+
w.writeVarInt(count);
|
|
413
|
+
if (params.path !== void 0) {
|
|
414
|
+
w.writeVarInt(SETUP_PARAM_PATH);
|
|
415
|
+
const encoded = textEncoder.encode(params.path);
|
|
416
|
+
w.writeVarInt(encoded.byteLength);
|
|
417
|
+
w.writeBytes(encoded);
|
|
418
|
+
}
|
|
419
|
+
if (params.max_subscribe_id !== void 0) {
|
|
420
|
+
w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
|
|
421
|
+
const tmpW = new BufferWriter(16);
|
|
422
|
+
tmpW.writeVarInt(params.max_subscribe_id);
|
|
423
|
+
const raw = tmpW.finish();
|
|
424
|
+
w.writeVarInt(raw.byteLength);
|
|
425
|
+
w.writeBytes(raw);
|
|
426
|
+
}
|
|
427
|
+
if (params.unknown) {
|
|
428
|
+
for (const u of params.unknown) {
|
|
429
|
+
w.writeVarInt(BigInt(u.id));
|
|
430
|
+
const raw = hexToBytes(u.raw_hex);
|
|
431
|
+
w.writeVarInt(raw.byteLength);
|
|
432
|
+
w.writeBytes(raw);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function decodeSetupParams(r) {
|
|
437
|
+
const count = Number(r.readVarInt());
|
|
438
|
+
const result = {};
|
|
439
|
+
const unknown = [];
|
|
440
|
+
for (let i = 0; i < count; i++) {
|
|
441
|
+
const paramType = r.readVarInt();
|
|
442
|
+
const length = Number(r.readVarInt());
|
|
443
|
+
if (paramType === SETUP_PARAM_PATH) {
|
|
444
|
+
const bytes = r.readBytes(length);
|
|
445
|
+
result.path = textDecoder.decode(bytes);
|
|
446
|
+
} else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
|
|
447
|
+
const blob = r.readBytes(length);
|
|
448
|
+
const tmpReader = new BufferReader(blob);
|
|
449
|
+
result.max_subscribe_id = tmpReader.readVarInt();
|
|
450
|
+
} else {
|
|
451
|
+
const bytes = r.readBytes(length);
|
|
452
|
+
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
456
|
+
return result;
|
|
457
|
+
}
|
|
458
|
+
function encodeParams(params, w) {
|
|
459
|
+
let count = params.unknown ? params.unknown.length : 0;
|
|
460
|
+
if (params.authorization_info !== void 0) count++;
|
|
461
|
+
if (params.delivery_timeout !== void 0) count++;
|
|
462
|
+
if (params.max_cache_duration !== void 0) count++;
|
|
463
|
+
w.writeVarInt(count);
|
|
464
|
+
if (params.authorization_info !== void 0) {
|
|
465
|
+
w.writeVarInt(PARAM_AUTHORIZATION_INFO);
|
|
466
|
+
const encoded = textEncoder.encode(params.authorization_info);
|
|
467
|
+
w.writeVarInt(encoded.byteLength);
|
|
468
|
+
w.writeBytes(encoded);
|
|
469
|
+
}
|
|
470
|
+
if (params.delivery_timeout !== void 0) {
|
|
471
|
+
w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
|
|
472
|
+
const tmpW = new BufferWriter(16);
|
|
473
|
+
tmpW.writeVarInt(params.delivery_timeout);
|
|
474
|
+
const raw = tmpW.finish();
|
|
475
|
+
w.writeVarInt(raw.byteLength);
|
|
476
|
+
w.writeBytes(raw);
|
|
477
|
+
}
|
|
478
|
+
if (params.max_cache_duration !== void 0) {
|
|
479
|
+
w.writeVarInt(PARAM_MAX_CACHE_DURATION);
|
|
480
|
+
const tmpW = new BufferWriter(16);
|
|
481
|
+
tmpW.writeVarInt(params.max_cache_duration);
|
|
482
|
+
const raw = tmpW.finish();
|
|
483
|
+
w.writeVarInt(raw.byteLength);
|
|
484
|
+
w.writeBytes(raw);
|
|
485
|
+
}
|
|
486
|
+
if (params.unknown) {
|
|
487
|
+
for (const u of params.unknown) {
|
|
488
|
+
w.writeVarInt(BigInt(u.id));
|
|
489
|
+
const raw = hexToBytes(u.raw_hex);
|
|
490
|
+
w.writeVarInt(raw.byteLength);
|
|
491
|
+
w.writeBytes(raw);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
function decodeParams(r) {
|
|
496
|
+
const count = Number(r.readVarInt());
|
|
497
|
+
const result = {};
|
|
498
|
+
const unknown = [];
|
|
499
|
+
for (let i = 0; i < count; i++) {
|
|
500
|
+
const paramType = r.readVarInt();
|
|
501
|
+
const length = Number(r.readVarInt());
|
|
502
|
+
if (paramType === PARAM_AUTHORIZATION_INFO) {
|
|
503
|
+
const bytes = r.readBytes(length);
|
|
504
|
+
result.authorization_info = textDecoder.decode(bytes);
|
|
505
|
+
} else if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
506
|
+
const blob = r.readBytes(length);
|
|
507
|
+
const tmpReader = new BufferReader(blob);
|
|
508
|
+
result.delivery_timeout = tmpReader.readVarInt();
|
|
509
|
+
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
510
|
+
const blob = r.readBytes(length);
|
|
511
|
+
const tmpReader = new BufferReader(blob);
|
|
512
|
+
result.max_cache_duration = tmpReader.readVarInt();
|
|
513
|
+
} else {
|
|
514
|
+
const bytes = r.readBytes(length);
|
|
515
|
+
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
519
|
+
return result;
|
|
520
|
+
}
|
|
521
|
+
function encodeClientSetupPayload(msg, w) {
|
|
522
|
+
w.writeVarInt(msg.supported_versions.length);
|
|
523
|
+
for (const v of msg.supported_versions) w.writeVarInt(v);
|
|
524
|
+
encodeSetupParams(msg.parameters, w);
|
|
525
|
+
}
|
|
526
|
+
function encodeServerSetupPayload(msg, w) {
|
|
527
|
+
w.writeVarInt(msg.selected_version);
|
|
528
|
+
encodeSetupParams(msg.parameters, w);
|
|
529
|
+
}
|
|
209
530
|
function encodeSubscribePayload(msg, w) {
|
|
210
531
|
w.writeVarInt(msg.subscribe_id);
|
|
211
532
|
w.writeVarInt(msg.track_alias);
|
|
@@ -590,453 +911,167 @@ function decodeTrackStatusPayload(r) {
|
|
|
590
911
|
}
|
|
591
912
|
function decodeGoAwayPayload(r) {
|
|
592
913
|
const new_session_uri = r.readString();
|
|
593
|
-
return { type: "goaway", new_session_uri };
|
|
594
|
-
}
|
|
595
|
-
function decodeMaxSubscribeIdPayload(r) {
|
|
596
|
-
const subscribe_id = r.readVarInt();
|
|
597
|
-
return { type: "max_subscribe_id", subscribe_id };
|
|
598
|
-
}
|
|
599
|
-
function decodeSubscribesBlockedPayload(r) {
|
|
600
|
-
const maximum_subscribe_id = r.readVarInt();
|
|
601
|
-
return { type: "subscribes_blocked", maximum_subscribe_id };
|
|
602
|
-
}
|
|
603
|
-
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
604
|
-
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
605
|
-
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
606
|
-
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
607
|
-
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
608
|
-
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
609
|
-
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
610
|
-
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
611
|
-
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
612
|
-
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
613
|
-
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
614
|
-
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
615
|
-
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
616
|
-
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
617
|
-
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
618
|
-
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
619
|
-
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
620
|
-
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
621
|
-
[MSG_FETCH, decodeFetchPayload],
|
|
622
|
-
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
623
|
-
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
624
|
-
[MSG_FETCH_CANCEL, decodeFetchCancelPayload],
|
|
625
|
-
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
626
|
-
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
627
|
-
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
628
|
-
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
629
|
-
[MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
|
|
630
|
-
]);
|
|
631
|
-
function encodeMessage(message) {
|
|
632
|
-
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
633
|
-
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
634
|
-
const payloadWriter = new BufferWriter();
|
|
635
|
-
encodePayload(message, payloadWriter);
|
|
636
|
-
const payload = payloadWriter.finish();
|
|
637
|
-
const writer = new BufferWriter();
|
|
638
|
-
writer.writeVarInt(typeId);
|
|
639
|
-
writer.writeVarInt(payload.byteLength);
|
|
640
|
-
writer.writeBytes(payload);
|
|
641
|
-
return writer.finish();
|
|
642
|
-
}
|
|
643
|
-
function encodePayload(msg, w) {
|
|
644
|
-
switch (msg.type) {
|
|
645
|
-
case "client_setup":
|
|
646
|
-
return encodeClientSetupPayload(msg, w);
|
|
647
|
-
case "server_setup":
|
|
648
|
-
return encodeServerSetupPayload(msg, w);
|
|
649
|
-
case "subscribe":
|
|
650
|
-
return encodeSubscribePayload(msg, w);
|
|
651
|
-
case "subscribe_ok":
|
|
652
|
-
return encodeSubscribeOkPayload(msg, w);
|
|
653
|
-
case "subscribe_error":
|
|
654
|
-
return encodeSubscribeErrorPayload(msg, w);
|
|
655
|
-
case "subscribe_update":
|
|
656
|
-
return encodeSubscribeUpdatePayload(msg, w);
|
|
657
|
-
case "subscribe_done":
|
|
658
|
-
return encodeSubscribeDonePayload(msg, w);
|
|
659
|
-
case "unsubscribe":
|
|
660
|
-
return encodeUnsubscribePayload(msg, w);
|
|
661
|
-
case "announce":
|
|
662
|
-
return encodeAnnouncePayload(msg, w);
|
|
663
|
-
case "announce_ok":
|
|
664
|
-
return encodeAnnounceOkPayload(msg, w);
|
|
665
|
-
case "announce_error":
|
|
666
|
-
return encodeAnnounceErrorPayload(msg, w);
|
|
667
|
-
case "unannounce":
|
|
668
|
-
return encodeUnannouncePayload(msg, w);
|
|
669
|
-
case "announce_cancel":
|
|
670
|
-
return encodeAnnounceCancelPayload(msg, w);
|
|
671
|
-
case "subscribe_announces":
|
|
672
|
-
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
673
|
-
case "subscribe_announces_ok":
|
|
674
|
-
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
675
|
-
case "subscribe_announces_error":
|
|
676
|
-
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
677
|
-
case "unsubscribe_announces":
|
|
678
|
-
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
679
|
-
case "fetch":
|
|
680
|
-
return encodeFetchPayload(msg, w);
|
|
681
|
-
case "fetch_ok":
|
|
682
|
-
return encodeFetchOkPayload(msg, w);
|
|
683
|
-
case "fetch_error":
|
|
684
|
-
return encodeFetchErrorPayload(msg, w);
|
|
685
|
-
case "fetch_cancel":
|
|
686
|
-
return encodeFetchCancelPayload(msg, w);
|
|
687
|
-
case "track_status_request":
|
|
688
|
-
return encodeTrackStatusRequestPayload(msg, w);
|
|
689
|
-
case "track_status":
|
|
690
|
-
return encodeTrackStatusPayload(msg, w);
|
|
691
|
-
case "goaway":
|
|
692
|
-
return encodeGoAwayPayload(msg, w);
|
|
693
|
-
case "max_subscribe_id":
|
|
694
|
-
return encodeMaxSubscribeIdPayload(msg, w);
|
|
695
|
-
case "subscribes_blocked":
|
|
696
|
-
return encodeSubscribesBlockedPayload(msg, w);
|
|
697
|
-
default: {
|
|
698
|
-
const _exhaustive = msg;
|
|
699
|
-
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
function decodeMessage(bytes) {
|
|
704
|
-
try {
|
|
705
|
-
const reader = new BufferReader(bytes);
|
|
706
|
-
const typeId = reader.readVarInt();
|
|
707
|
-
const payloadLength = Number(reader.readVarInt());
|
|
708
|
-
const payloadBytes = reader.readBytes(payloadLength);
|
|
709
|
-
const payloadReader = new BufferReader(payloadBytes);
|
|
710
|
-
const decoder = payloadDecoders.get(typeId);
|
|
711
|
-
if (!decoder) {
|
|
712
|
-
return {
|
|
713
|
-
ok: false,
|
|
714
|
-
error: new DecodeError(
|
|
715
|
-
"UNKNOWN_MESSAGE_TYPE",
|
|
716
|
-
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
717
|
-
0
|
|
718
|
-
)
|
|
719
|
-
};
|
|
720
|
-
}
|
|
721
|
-
const message = decoder(payloadReader);
|
|
722
|
-
return { ok: true, value: message, bytesRead: reader.offset };
|
|
723
|
-
} catch (e) {
|
|
724
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
725
|
-
throw e;
|
|
726
|
-
}
|
|
727
|
-
}
|
|
728
|
-
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
729
|
-
var DATAGRAM_TYPE = 0x01n;
|
|
730
|
-
var DATAGRAM_STATUS_TYPE = 0x02n;
|
|
731
|
-
var FETCH_STREAM_TYPE = 0x05n;
|
|
732
|
-
function encodeSubgroupStream(stream) {
|
|
733
|
-
const w = new BufferWriter();
|
|
734
|
-
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
735
|
-
w.writeVarInt(stream.trackAlias);
|
|
736
|
-
w.writeVarInt(stream.groupId);
|
|
737
|
-
w.writeVarInt(stream.subgroupId);
|
|
738
|
-
w.writeUint8(stream.publisherPriority);
|
|
739
|
-
for (const obj of stream.objects) {
|
|
740
|
-
w.writeVarInt(obj.objectId);
|
|
741
|
-
w.writeVarInt(0);
|
|
742
|
-
w.writeVarInt(obj.payloadLength);
|
|
743
|
-
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
744
|
-
w.writeVarInt(obj.status);
|
|
745
|
-
} else {
|
|
746
|
-
w.writeBytes(obj.payload);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
return w.finish();
|
|
750
|
-
}
|
|
751
|
-
function encodeDatagram(dg) {
|
|
752
|
-
const w = new BufferWriter();
|
|
753
|
-
w.writeVarInt(DATAGRAM_TYPE);
|
|
754
|
-
w.writeVarInt(dg.trackAlias);
|
|
755
|
-
w.writeVarInt(dg.groupId);
|
|
756
|
-
w.writeVarInt(dg.objectId);
|
|
757
|
-
w.writeUint8(dg.publisherPriority);
|
|
758
|
-
w.writeVarInt(0);
|
|
759
|
-
w.writeVarInt(dg.payloadLength);
|
|
760
|
-
if (dg.payloadLength === 0 && dg.objectStatus !== void 0) {
|
|
761
|
-
w.writeVarInt(dg.objectStatus);
|
|
762
|
-
} else {
|
|
763
|
-
w.writeBytes(dg.payload);
|
|
764
|
-
}
|
|
765
|
-
return w.finish();
|
|
766
|
-
}
|
|
767
|
-
function encodeDatagramStatus(dg) {
|
|
768
|
-
const w = new BufferWriter();
|
|
769
|
-
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
770
|
-
w.writeVarInt(dg.trackAlias);
|
|
771
|
-
w.writeVarInt(dg.groupId);
|
|
772
|
-
w.writeVarInt(dg.objectId);
|
|
773
|
-
w.writeUint8(dg.publisherPriority);
|
|
774
|
-
w.writeVarInt(dg.objectStatus);
|
|
775
|
-
return w.finish();
|
|
776
|
-
}
|
|
777
|
-
function encodeFetchStream(stream) {
|
|
778
|
-
const w = new BufferWriter();
|
|
779
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
780
|
-
w.writeVarInt(stream.subscribeId);
|
|
781
|
-
for (const obj of stream.objects) {
|
|
782
|
-
w.writeVarInt(obj.groupId);
|
|
783
|
-
w.writeVarInt(obj.subgroupId);
|
|
784
|
-
w.writeVarInt(obj.objectId);
|
|
785
|
-
w.writeUint8(obj.publisherPriority);
|
|
786
|
-
w.writeVarInt(0);
|
|
787
|
-
w.writeVarInt(obj.payloadLength);
|
|
788
|
-
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
789
|
-
w.writeVarInt(obj.status);
|
|
790
|
-
} else {
|
|
791
|
-
w.writeBytes(obj.payload);
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
return w.finish();
|
|
795
|
-
}
|
|
796
|
-
function decodeSubgroupStream(bytes) {
|
|
797
|
-
try {
|
|
798
|
-
const r = new BufferReader(bytes);
|
|
799
|
-
const streamType = Number(r.readVarInt());
|
|
800
|
-
if (streamType !== 4) {
|
|
801
|
-
return {
|
|
802
|
-
ok: false,
|
|
803
|
-
error: new DecodeError(
|
|
804
|
-
"CONSTRAINT_VIOLATION",
|
|
805
|
-
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
806
|
-
0
|
|
807
|
-
)
|
|
808
|
-
};
|
|
809
|
-
}
|
|
810
|
-
const trackAlias = r.readVarInt();
|
|
811
|
-
const groupId = r.readVarInt();
|
|
812
|
-
const subgroupId = r.readVarInt();
|
|
813
|
-
const publisherPriority = r.readUint8();
|
|
814
|
-
const objects = [];
|
|
815
|
-
while (r.remaining > 0) {
|
|
816
|
-
const objectId = r.readVarInt();
|
|
817
|
-
const extensionCount = Number(r.readVarInt());
|
|
818
|
-
for (let i = 0; i < extensionCount; i++) {
|
|
819
|
-
r.readVarInt();
|
|
820
|
-
const extLen = Number(r.readVarInt());
|
|
821
|
-
r.readBytes(extLen);
|
|
822
|
-
}
|
|
823
|
-
const payloadLength = Number(r.readVarInt());
|
|
824
|
-
let payload;
|
|
825
|
-
let status;
|
|
826
|
-
if (payloadLength === 0) {
|
|
827
|
-
status = r.readVarInt();
|
|
828
|
-
payload = new Uint8Array(0);
|
|
829
|
-
} else {
|
|
830
|
-
payload = r.readBytes(payloadLength);
|
|
831
|
-
}
|
|
832
|
-
const obj = {
|
|
833
|
-
type: "object",
|
|
834
|
-
objectId,
|
|
835
|
-
extensionCount: BigInt(extensionCount),
|
|
836
|
-
payloadLength,
|
|
837
|
-
payload
|
|
838
|
-
};
|
|
839
|
-
if (status !== void 0) obj.status = status;
|
|
840
|
-
objects.push(obj);
|
|
841
|
-
}
|
|
842
|
-
return {
|
|
843
|
-
ok: true,
|
|
844
|
-
value: {
|
|
845
|
-
type: "subgroup",
|
|
846
|
-
streamTypeId: 4,
|
|
847
|
-
trackAlias,
|
|
848
|
-
groupId,
|
|
849
|
-
subgroupId,
|
|
850
|
-
publisherPriority,
|
|
851
|
-
objects
|
|
852
|
-
},
|
|
853
|
-
bytesRead: r.offset
|
|
854
|
-
};
|
|
855
|
-
} catch (e) {
|
|
856
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
857
|
-
throw e;
|
|
858
|
-
}
|
|
914
|
+
return { type: "goaway", new_session_uri };
|
|
859
915
|
}
|
|
860
|
-
function
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
const streamType = Number(r.readVarInt());
|
|
864
|
-
if (streamType !== 1) {
|
|
865
|
-
return {
|
|
866
|
-
ok: false,
|
|
867
|
-
error: new DecodeError(
|
|
868
|
-
"CONSTRAINT_VIOLATION",
|
|
869
|
-
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
870
|
-
0
|
|
871
|
-
)
|
|
872
|
-
};
|
|
873
|
-
}
|
|
874
|
-
const trackAlias = r.readVarInt();
|
|
875
|
-
const groupId = r.readVarInt();
|
|
876
|
-
const objectId = r.readVarInt();
|
|
877
|
-
const publisherPriority = r.readUint8();
|
|
878
|
-
const extensionCount = Number(r.readVarInt());
|
|
879
|
-
for (let i = 0; i < extensionCount; i++) {
|
|
880
|
-
r.readVarInt();
|
|
881
|
-
const extLen = Number(r.readVarInt());
|
|
882
|
-
r.readBytes(extLen);
|
|
883
|
-
}
|
|
884
|
-
const payloadLength = Number(r.readVarInt());
|
|
885
|
-
let objectStatus;
|
|
886
|
-
let payload;
|
|
887
|
-
if (payloadLength === 0) {
|
|
888
|
-
objectStatus = r.readVarInt();
|
|
889
|
-
payload = new Uint8Array(0);
|
|
890
|
-
} else {
|
|
891
|
-
payload = r.readBytes(payloadLength);
|
|
892
|
-
}
|
|
893
|
-
const result = {
|
|
894
|
-
type: "datagram",
|
|
895
|
-
streamTypeId: 1,
|
|
896
|
-
trackAlias,
|
|
897
|
-
groupId,
|
|
898
|
-
objectId,
|
|
899
|
-
publisherPriority,
|
|
900
|
-
extensionCount: BigInt(extensionCount),
|
|
901
|
-
objectStatus: objectStatus ?? 0n,
|
|
902
|
-
payloadLength,
|
|
903
|
-
payload
|
|
904
|
-
};
|
|
905
|
-
return { ok: true, value: result, bytesRead: r.offset };
|
|
906
|
-
} catch (e) {
|
|
907
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
908
|
-
throw e;
|
|
909
|
-
}
|
|
916
|
+
function decodeMaxSubscribeIdPayload(r) {
|
|
917
|
+
const subscribe_id = r.readVarInt();
|
|
918
|
+
return { type: "max_subscribe_id", subscribe_id };
|
|
910
919
|
}
|
|
911
|
-
function
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
920
|
+
function decodeSubscribesBlockedPayload(r) {
|
|
921
|
+
const maximum_subscribe_id = r.readVarInt();
|
|
922
|
+
return { type: "subscribes_blocked", maximum_subscribe_id };
|
|
923
|
+
}
|
|
924
|
+
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
925
|
+
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
926
|
+
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
927
|
+
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
928
|
+
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
929
|
+
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
930
|
+
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
931
|
+
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
932
|
+
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
933
|
+
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
934
|
+
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
935
|
+
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
936
|
+
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
937
|
+
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
938
|
+
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
939
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
940
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
941
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
942
|
+
[MSG_FETCH, decodeFetchPayload],
|
|
943
|
+
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
944
|
+
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
945
|
+
[MSG_FETCH_CANCEL, decodeFetchCancelPayload],
|
|
946
|
+
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
947
|
+
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
948
|
+
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
949
|
+
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
950
|
+
[MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
|
|
951
|
+
]);
|
|
952
|
+
function encodeMessage(message) {
|
|
953
|
+
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
954
|
+
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
955
|
+
const payloadWriter = new BufferWriter();
|
|
956
|
+
encodePayload(message, payloadWriter);
|
|
957
|
+
const payload = payloadWriter.finishView();
|
|
958
|
+
const writer = new BufferWriter(payload.byteLength + 16);
|
|
959
|
+
writer.writeVarInt(typeId);
|
|
960
|
+
writer.writeVarInt(payload.byteLength);
|
|
961
|
+
writer.writeBytes(payload);
|
|
962
|
+
return writer.finish();
|
|
963
|
+
}
|
|
964
|
+
function encodePayload(msg, w) {
|
|
965
|
+
switch (msg.type) {
|
|
966
|
+
case "client_setup":
|
|
967
|
+
return encodeClientSetupPayload(msg, w);
|
|
968
|
+
case "server_setup":
|
|
969
|
+
return encodeServerSetupPayload(msg, w);
|
|
970
|
+
case "subscribe":
|
|
971
|
+
return encodeSubscribePayload(msg, w);
|
|
972
|
+
case "subscribe_ok":
|
|
973
|
+
return encodeSubscribeOkPayload(msg, w);
|
|
974
|
+
case "subscribe_error":
|
|
975
|
+
return encodeSubscribeErrorPayload(msg, w);
|
|
976
|
+
case "subscribe_update":
|
|
977
|
+
return encodeSubscribeUpdatePayload(msg, w);
|
|
978
|
+
case "subscribe_done":
|
|
979
|
+
return encodeSubscribeDonePayload(msg, w);
|
|
980
|
+
case "unsubscribe":
|
|
981
|
+
return encodeUnsubscribePayload(msg, w);
|
|
982
|
+
case "announce":
|
|
983
|
+
return encodeAnnouncePayload(msg, w);
|
|
984
|
+
case "announce_ok":
|
|
985
|
+
return encodeAnnounceOkPayload(msg, w);
|
|
986
|
+
case "announce_error":
|
|
987
|
+
return encodeAnnounceErrorPayload(msg, w);
|
|
988
|
+
case "unannounce":
|
|
989
|
+
return encodeUnannouncePayload(msg, w);
|
|
990
|
+
case "announce_cancel":
|
|
991
|
+
return encodeAnnounceCancelPayload(msg, w);
|
|
992
|
+
case "subscribe_announces":
|
|
993
|
+
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
994
|
+
case "subscribe_announces_ok":
|
|
995
|
+
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
996
|
+
case "subscribe_announces_error":
|
|
997
|
+
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
998
|
+
case "unsubscribe_announces":
|
|
999
|
+
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
1000
|
+
case "fetch":
|
|
1001
|
+
return encodeFetchPayload(msg, w);
|
|
1002
|
+
case "fetch_ok":
|
|
1003
|
+
return encodeFetchOkPayload(msg, w);
|
|
1004
|
+
case "fetch_error":
|
|
1005
|
+
return encodeFetchErrorPayload(msg, w);
|
|
1006
|
+
case "fetch_cancel":
|
|
1007
|
+
return encodeFetchCancelPayload(msg, w);
|
|
1008
|
+
case "track_status_request":
|
|
1009
|
+
return encodeTrackStatusRequestPayload(msg, w);
|
|
1010
|
+
case "track_status":
|
|
1011
|
+
return encodeTrackStatusPayload(msg, w);
|
|
1012
|
+
case "goaway":
|
|
1013
|
+
return encodeGoAwayPayload(msg, w);
|
|
1014
|
+
case "max_subscribe_id":
|
|
1015
|
+
return encodeMaxSubscribeIdPayload(msg, w);
|
|
1016
|
+
case "subscribes_blocked":
|
|
1017
|
+
return encodeSubscribesBlockedPayload(msg, w);
|
|
1018
|
+
default: {
|
|
1019
|
+
const _exhaustive = msg;
|
|
1020
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
924
1021
|
}
|
|
925
|
-
const trackAlias = r.readVarInt();
|
|
926
|
-
const groupId = r.readVarInt();
|
|
927
|
-
const objectId = r.readVarInt();
|
|
928
|
-
const publisherPriority = r.readUint8();
|
|
929
|
-
const objectStatus = r.readVarInt();
|
|
930
|
-
return {
|
|
931
|
-
ok: true,
|
|
932
|
-
value: {
|
|
933
|
-
type: "datagram_status",
|
|
934
|
-
streamTypeId: 2,
|
|
935
|
-
trackAlias,
|
|
936
|
-
groupId,
|
|
937
|
-
objectId,
|
|
938
|
-
publisherPriority,
|
|
939
|
-
objectStatus
|
|
940
|
-
},
|
|
941
|
-
bytesRead: r.offset
|
|
942
|
-
};
|
|
943
|
-
} catch (e) {
|
|
944
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
945
|
-
throw e;
|
|
946
1022
|
}
|
|
947
1023
|
}
|
|
948
|
-
function
|
|
1024
|
+
function decodeMessage(bytes) {
|
|
949
1025
|
try {
|
|
950
|
-
const
|
|
951
|
-
const
|
|
952
|
-
|
|
1026
|
+
const reader = new BufferReader(bytes);
|
|
1027
|
+
const typeId = reader.readVarInt();
|
|
1028
|
+
const payloadLength = Number(reader.readVarInt());
|
|
1029
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1030
|
+
const payloadReader = new BufferReader(payloadBytes);
|
|
1031
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1032
|
+
if (!decoder) {
|
|
953
1033
|
return {
|
|
954
1034
|
ok: false,
|
|
955
1035
|
error: new DecodeError(
|
|
956
|
-
"
|
|
957
|
-
`
|
|
1036
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1037
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
958
1038
|
0
|
|
959
1039
|
)
|
|
960
1040
|
};
|
|
961
1041
|
}
|
|
962
|
-
const
|
|
963
|
-
|
|
964
|
-
while (r.remaining > 0) {
|
|
965
|
-
const groupId = r.readVarInt();
|
|
966
|
-
const subgroupId = r.readVarInt();
|
|
967
|
-
const objectId = r.readVarInt();
|
|
968
|
-
const publisherPriority = r.readUint8();
|
|
969
|
-
const extensionCount = Number(r.readVarInt());
|
|
970
|
-
for (let i = 0; i < extensionCount; i++) {
|
|
971
|
-
r.readVarInt();
|
|
972
|
-
const extLen = Number(r.readVarInt());
|
|
973
|
-
r.readBytes(extLen);
|
|
974
|
-
}
|
|
975
|
-
const payloadLength = Number(r.readVarInt());
|
|
976
|
-
let payload;
|
|
977
|
-
let status;
|
|
978
|
-
if (payloadLength === 0) {
|
|
979
|
-
status = r.readVarInt();
|
|
980
|
-
payload = new Uint8Array(0);
|
|
981
|
-
} else {
|
|
982
|
-
payload = r.readBytes(payloadLength);
|
|
983
|
-
}
|
|
984
|
-
const obj = {
|
|
985
|
-
type: "object",
|
|
986
|
-
groupId,
|
|
987
|
-
subgroupId,
|
|
988
|
-
objectId,
|
|
989
|
-
publisherPriority,
|
|
990
|
-
extensionCount: BigInt(extensionCount),
|
|
991
|
-
payloadLength,
|
|
992
|
-
payload
|
|
993
|
-
};
|
|
994
|
-
if (status !== void 0) obj.status = status;
|
|
995
|
-
objects.push(obj);
|
|
996
|
-
}
|
|
997
|
-
return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
|
|
1042
|
+
const message = decoder(payloadReader);
|
|
1043
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
998
1044
|
} catch (e) {
|
|
999
1045
|
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
1000
1046
|
throw e;
|
|
1001
1047
|
}
|
|
1002
1048
|
}
|
|
1003
|
-
function decodeDataStream(streamType, bytes) {
|
|
1004
|
-
switch (streamType) {
|
|
1005
|
-
case "subgroup":
|
|
1006
|
-
return decodeSubgroupStream(bytes);
|
|
1007
|
-
case "datagram":
|
|
1008
|
-
return decodeDatagram(bytes);
|
|
1009
|
-
case "datagram_status":
|
|
1010
|
-
return decodeDatagramStatus(bytes);
|
|
1011
|
-
case "fetch":
|
|
1012
|
-
return decodeFetchStream(bytes);
|
|
1013
|
-
default: {
|
|
1014
|
-
const _ = streamType;
|
|
1015
|
-
throw new Error(`Unknown: ${_}`);
|
|
1016
|
-
}
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
1049
|
function createStreamDecoder() {
|
|
1020
1050
|
let buffer = new Uint8Array(0);
|
|
1051
|
+
let offset = 0;
|
|
1021
1052
|
return new TransformStream({
|
|
1022
1053
|
transform(chunk, controller) {
|
|
1054
|
+
if (offset > 0) {
|
|
1055
|
+
buffer = buffer.subarray(offset);
|
|
1056
|
+
offset = 0;
|
|
1057
|
+
}
|
|
1023
1058
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1024
1059
|
newBuffer.set(buffer, 0);
|
|
1025
1060
|
newBuffer.set(chunk, buffer.length);
|
|
1026
1061
|
buffer = newBuffer;
|
|
1027
|
-
while (buffer.length
|
|
1028
|
-
const result = decodeMessage(buffer);
|
|
1062
|
+
while (offset < buffer.length) {
|
|
1063
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1029
1064
|
if (!result.ok) {
|
|
1030
1065
|
if (result.error.code === "UNEXPECTED_END") break;
|
|
1031
1066
|
controller.error(result.error);
|
|
1032
1067
|
return;
|
|
1033
1068
|
}
|
|
1034
1069
|
controller.enqueue(result.value);
|
|
1035
|
-
|
|
1070
|
+
offset += result.bytesRead;
|
|
1036
1071
|
}
|
|
1037
1072
|
},
|
|
1038
1073
|
flush(controller) {
|
|
1039
|
-
if (buffer.length
|
|
1074
|
+
if (offset < buffer.length)
|
|
1040
1075
|
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1041
1076
|
}
|
|
1042
1077
|
});
|
|
@@ -1093,8 +1128,6 @@ export {
|
|
|
1093
1128
|
PARAM_MAX_CACHE_DURATION,
|
|
1094
1129
|
MESSAGE_TYPE_MAP,
|
|
1095
1130
|
MESSAGE_ID_MAP,
|
|
1096
|
-
encodeMessage,
|
|
1097
|
-
decodeMessage,
|
|
1098
1131
|
encodeSubgroupStream,
|
|
1099
1132
|
encodeDatagram,
|
|
1100
1133
|
encodeDatagramStatus,
|
|
@@ -1104,6 +1137,8 @@ export {
|
|
|
1104
1137
|
decodeDatagramStatus,
|
|
1105
1138
|
decodeFetchStream,
|
|
1106
1139
|
decodeDataStream,
|
|
1140
|
+
encodeMessage,
|
|
1141
|
+
decodeMessage,
|
|
1107
1142
|
createStreamDecoder,
|
|
1108
1143
|
createDraft08Codec
|
|
1109
1144
|
};
|