@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
|
+
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/draft10/messages.ts
|
|
8
12
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -68,147 +72,428 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
68
72
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
69
73
|
);
|
|
70
74
|
|
|
71
|
-
// src/drafts/draft10/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
// src/drafts/draft10/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.extensionHeadersLength);
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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.extensionHeadersLength);
|
|
108
|
+
if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
|
|
109
|
+
w.writeBytes(dg.payload);
|
|
110
|
+
return w.finish();
|
|
85
111
|
}
|
|
86
|
-
function
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
w.writeVarInt(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
}
|
|
112
|
+
function encodeDatagramStatus(dg) {
|
|
113
|
+
const w = new BufferWriter();
|
|
114
|
+
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
115
|
+
w.writeVarInt(dg.trackAlias);
|
|
116
|
+
w.writeVarInt(dg.groupId);
|
|
117
|
+
w.writeVarInt(dg.objectId);
|
|
118
|
+
w.writeUint8(dg.publisherPriority);
|
|
119
|
+
w.writeVarInt(dg.extensionHeadersLength);
|
|
120
|
+
if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
|
|
121
|
+
w.writeVarInt(dg.objectStatus);
|
|
122
|
+
return w.finish();
|
|
114
123
|
}
|
|
115
|
-
function
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
function encodeFetchStream(stream) {
|
|
125
|
+
const w = new BufferWriter();
|
|
126
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
127
|
+
w.writeVarInt(stream.subscribeId);
|
|
128
|
+
for (const obj of stream.objects) {
|
|
129
|
+
w.writeVarInt(obj.groupId);
|
|
130
|
+
w.writeVarInt(obj.subgroupId);
|
|
131
|
+
w.writeVarInt(obj.objectId);
|
|
132
|
+
w.writeUint8(obj.publisherPriority);
|
|
133
|
+
w.writeVarInt(obj.extensionHeadersLength);
|
|
134
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
135
|
+
w.writeVarInt(obj.payloadLength);
|
|
136
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
137
|
+
w.writeVarInt(obj.status);
|
|
129
138
|
} else {
|
|
130
|
-
|
|
131
|
-
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
139
|
+
w.writeBytes(obj.payload);
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
|
-
|
|
135
|
-
return result;
|
|
142
|
+
return w.finish();
|
|
136
143
|
}
|
|
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
|
-
|
|
144
|
+
function decodeSubgroupStream(bytes) {
|
|
145
|
+
try {
|
|
146
|
+
const r = new BufferReader(bytes);
|
|
147
|
+
const streamType = Number(r.readVarInt());
|
|
148
|
+
if (streamType !== 4) {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
error: new DecodeError(
|
|
152
|
+
"CONSTRAINT_VIOLATION",
|
|
153
|
+
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
154
|
+
0
|
|
155
|
+
)
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const trackAlias = r.readVarInt();
|
|
159
|
+
const groupId = r.readVarInt();
|
|
160
|
+
const subgroupId = r.readVarInt();
|
|
161
|
+
const publisherPriority = r.readUint8();
|
|
162
|
+
const objects = [];
|
|
163
|
+
while (r.remaining > 0) {
|
|
164
|
+
const byteOffset = r.offset;
|
|
165
|
+
const objectId = r.readVarInt();
|
|
166
|
+
const extensionHeadersLength = r.readVarInt();
|
|
167
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
168
|
+
const payloadLength = Number(r.readVarInt());
|
|
169
|
+
let payload;
|
|
170
|
+
let status;
|
|
171
|
+
let payloadByteOffset;
|
|
172
|
+
if (payloadLength === 0) {
|
|
173
|
+
status = r.readVarInt();
|
|
174
|
+
payloadByteOffset = r.offset;
|
|
175
|
+
payload = new Uint8Array(0);
|
|
176
|
+
} else {
|
|
177
|
+
payloadByteOffset = r.offset;
|
|
178
|
+
payload = r.readBytesView(payloadLength);
|
|
179
|
+
}
|
|
180
|
+
const obj = {
|
|
181
|
+
type: "object",
|
|
182
|
+
byteOffset,
|
|
183
|
+
payloadByteOffset,
|
|
184
|
+
objectId,
|
|
185
|
+
extensionHeadersLength,
|
|
186
|
+
extensionData,
|
|
187
|
+
payloadLength,
|
|
188
|
+
payload
|
|
189
|
+
};
|
|
190
|
+
if (status !== void 0) obj.status = status;
|
|
191
|
+
objects.push(obj);
|
|
171
192
|
}
|
|
193
|
+
return {
|
|
194
|
+
ok: true,
|
|
195
|
+
value: {
|
|
196
|
+
type: "subgroup",
|
|
197
|
+
streamTypeId: 4,
|
|
198
|
+
trackAlias,
|
|
199
|
+
groupId,
|
|
200
|
+
subgroupId,
|
|
201
|
+
publisherPriority,
|
|
202
|
+
objects
|
|
203
|
+
},
|
|
204
|
+
bytesRead: r.offset
|
|
205
|
+
};
|
|
206
|
+
} catch (e) {
|
|
207
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
208
|
+
throw e;
|
|
172
209
|
}
|
|
173
210
|
}
|
|
174
|
-
function
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
result.delivery_timeout = tmpReader.readVarInt();
|
|
188
|
-
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
189
|
-
const blob = r.readBytes(length);
|
|
190
|
-
const tmpReader = new BufferReader(blob);
|
|
191
|
-
result.max_cache_duration = tmpReader.readVarInt();
|
|
192
|
-
} else {
|
|
193
|
-
const bytes = r.readBytes(length);
|
|
194
|
-
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
211
|
+
function decodeDatagram(bytes) {
|
|
212
|
+
try {
|
|
213
|
+
const r = new BufferReader(bytes);
|
|
214
|
+
const streamType = Number(r.readVarInt());
|
|
215
|
+
if (streamType !== 1) {
|
|
216
|
+
return {
|
|
217
|
+
ok: false,
|
|
218
|
+
error: new DecodeError(
|
|
219
|
+
"CONSTRAINT_VIOLATION",
|
|
220
|
+
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
221
|
+
0
|
|
222
|
+
)
|
|
223
|
+
};
|
|
195
224
|
}
|
|
225
|
+
const trackAlias = r.readVarInt();
|
|
226
|
+
const groupId = r.readVarInt();
|
|
227
|
+
const objectId = r.readVarInt();
|
|
228
|
+
const publisherPriority = r.readUint8();
|
|
229
|
+
const extensionHeadersLength = r.readVarInt();
|
|
230
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
231
|
+
const payload = r.remaining > 0 ? r.readBytesView(r.remaining) : new Uint8Array(0);
|
|
232
|
+
return {
|
|
233
|
+
ok: true,
|
|
234
|
+
value: {
|
|
235
|
+
type: "datagram",
|
|
236
|
+
streamTypeId: 1,
|
|
237
|
+
trackAlias,
|
|
238
|
+
groupId,
|
|
239
|
+
objectId,
|
|
240
|
+
publisherPriority,
|
|
241
|
+
extensionHeadersLength,
|
|
242
|
+
extensionData,
|
|
243
|
+
payload
|
|
244
|
+
},
|
|
245
|
+
bytesRead: r.offset
|
|
246
|
+
};
|
|
247
|
+
} catch (e) {
|
|
248
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
249
|
+
throw e;
|
|
196
250
|
}
|
|
197
|
-
if (unknown.length > 0) result.unknown = unknown;
|
|
198
|
-
return result;
|
|
199
|
-
}
|
|
200
|
-
function encodeClientSetupPayload(msg, w) {
|
|
201
|
-
w.writeVarInt(msg.supported_versions.length);
|
|
202
|
-
for (const v of msg.supported_versions) w.writeVarInt(v);
|
|
203
|
-
encodeSetupParams(msg.parameters, w);
|
|
204
|
-
}
|
|
205
|
-
function encodeServerSetupPayload(msg, w) {
|
|
206
|
-
w.writeVarInt(msg.selected_version);
|
|
207
|
-
encodeSetupParams(msg.parameters, w);
|
|
208
251
|
}
|
|
209
|
-
function
|
|
210
|
-
|
|
211
|
-
|
|
252
|
+
function decodeDatagramStatus(bytes) {
|
|
253
|
+
try {
|
|
254
|
+
const r = new BufferReader(bytes);
|
|
255
|
+
const streamType = Number(r.readVarInt());
|
|
256
|
+
if (streamType !== 2) {
|
|
257
|
+
return {
|
|
258
|
+
ok: false,
|
|
259
|
+
error: new DecodeError(
|
|
260
|
+
"CONSTRAINT_VIOLATION",
|
|
261
|
+
`Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
|
|
262
|
+
0
|
|
263
|
+
)
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
const trackAlias = r.readVarInt();
|
|
267
|
+
const groupId = r.readVarInt();
|
|
268
|
+
const objectId = r.readVarInt();
|
|
269
|
+
const publisherPriority = r.readUint8();
|
|
270
|
+
const extensionHeadersLength = r.readVarInt();
|
|
271
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
272
|
+
const objectStatus = r.readVarInt();
|
|
273
|
+
return {
|
|
274
|
+
ok: true,
|
|
275
|
+
value: {
|
|
276
|
+
type: "datagram_status",
|
|
277
|
+
streamTypeId: 2,
|
|
278
|
+
trackAlias,
|
|
279
|
+
groupId,
|
|
280
|
+
objectId,
|
|
281
|
+
publisherPriority,
|
|
282
|
+
extensionHeadersLength,
|
|
283
|
+
extensionData,
|
|
284
|
+
objectStatus
|
|
285
|
+
},
|
|
286
|
+
bytesRead: r.offset
|
|
287
|
+
};
|
|
288
|
+
} catch (e) {
|
|
289
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
290
|
+
throw e;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
function decodeFetchStream(bytes) {
|
|
294
|
+
try {
|
|
295
|
+
const r = new BufferReader(bytes);
|
|
296
|
+
const streamType = r.readVarInt();
|
|
297
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
298
|
+
return {
|
|
299
|
+
ok: false,
|
|
300
|
+
error: new DecodeError(
|
|
301
|
+
"CONSTRAINT_VIOLATION",
|
|
302
|
+
`Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
|
|
303
|
+
0
|
|
304
|
+
)
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
const subscribeId = r.readVarInt();
|
|
308
|
+
const objects = [];
|
|
309
|
+
while (r.remaining > 0) {
|
|
310
|
+
const byteOffset = r.offset;
|
|
311
|
+
const groupId = r.readVarInt();
|
|
312
|
+
const subgroupId = r.readVarInt();
|
|
313
|
+
const objectId = r.readVarInt();
|
|
314
|
+
const publisherPriority = r.readUint8();
|
|
315
|
+
const extensionHeadersLength = r.readVarInt();
|
|
316
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
317
|
+
const payloadLength = Number(r.readVarInt());
|
|
318
|
+
let payload;
|
|
319
|
+
let status;
|
|
320
|
+
let payloadByteOffset;
|
|
321
|
+
if (payloadLength === 0) {
|
|
322
|
+
status = r.readVarInt();
|
|
323
|
+
payloadByteOffset = r.offset;
|
|
324
|
+
payload = new Uint8Array(0);
|
|
325
|
+
} else {
|
|
326
|
+
payloadByteOffset = r.offset;
|
|
327
|
+
payload = r.readBytesView(payloadLength);
|
|
328
|
+
}
|
|
329
|
+
const obj = {
|
|
330
|
+
type: "object",
|
|
331
|
+
byteOffset,
|
|
332
|
+
payloadByteOffset,
|
|
333
|
+
groupId,
|
|
334
|
+
subgroupId,
|
|
335
|
+
objectId,
|
|
336
|
+
publisherPriority,
|
|
337
|
+
extensionHeadersLength,
|
|
338
|
+
extensionData,
|
|
339
|
+
payloadLength,
|
|
340
|
+
payload
|
|
341
|
+
};
|
|
342
|
+
if (status !== void 0) obj.status = status;
|
|
343
|
+
objects.push(obj);
|
|
344
|
+
}
|
|
345
|
+
return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
|
|
346
|
+
} catch (e) {
|
|
347
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
348
|
+
throw e;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function decodeDataStream(streamType, bytes) {
|
|
352
|
+
switch (streamType) {
|
|
353
|
+
case "subgroup":
|
|
354
|
+
return decodeSubgroupStream(bytes);
|
|
355
|
+
case "datagram":
|
|
356
|
+
return decodeDatagram(bytes);
|
|
357
|
+
case "datagram_status":
|
|
358
|
+
return decodeDatagramStatus(bytes);
|
|
359
|
+
case "fetch":
|
|
360
|
+
return decodeFetchStream(bytes);
|
|
361
|
+
default: {
|
|
362
|
+
const _ = streamType;
|
|
363
|
+
throw new Error(`Unknown: ${_}`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// src/drafts/draft10/codec.ts
|
|
369
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
370
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
371
|
+
function encodeSetupParams(params, w) {
|
|
372
|
+
let count = 0;
|
|
373
|
+
if (params.path !== void 0) count++;
|
|
374
|
+
if (params.max_subscribe_id !== void 0) count++;
|
|
375
|
+
if (params.unknown) count += params.unknown.length;
|
|
376
|
+
w.writeVarInt(count);
|
|
377
|
+
if (params.path !== void 0) {
|
|
378
|
+
w.writeVarInt(SETUP_PARAM_PATH);
|
|
379
|
+
const encoded = textEncoder.encode(params.path);
|
|
380
|
+
w.writeVarInt(encoded.byteLength);
|
|
381
|
+
w.writeBytes(encoded);
|
|
382
|
+
}
|
|
383
|
+
if (params.max_subscribe_id !== void 0) {
|
|
384
|
+
w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
|
|
385
|
+
const tmpW = new BufferWriter(16);
|
|
386
|
+
tmpW.writeVarInt(params.max_subscribe_id);
|
|
387
|
+
const raw = tmpW.finish();
|
|
388
|
+
w.writeVarInt(raw.byteLength);
|
|
389
|
+
w.writeBytes(raw);
|
|
390
|
+
}
|
|
391
|
+
if (params.unknown) {
|
|
392
|
+
for (const u of params.unknown) {
|
|
393
|
+
w.writeVarInt(BigInt(u.id));
|
|
394
|
+
const raw = hexToBytes(u.raw_hex);
|
|
395
|
+
w.writeVarInt(raw.byteLength);
|
|
396
|
+
w.writeBytes(raw);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
function decodeSetupParams(r) {
|
|
401
|
+
const count = Number(r.readVarInt());
|
|
402
|
+
const result = {};
|
|
403
|
+
const unknown = [];
|
|
404
|
+
for (let i = 0; i < count; i++) {
|
|
405
|
+
const paramType = r.readVarInt();
|
|
406
|
+
const length = Number(r.readVarInt());
|
|
407
|
+
if (paramType === SETUP_PARAM_PATH) {
|
|
408
|
+
const bytes = r.readBytes(length);
|
|
409
|
+
result.path = textDecoder.decode(bytes);
|
|
410
|
+
} else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
|
|
411
|
+
const blob = r.readBytes(length);
|
|
412
|
+
const tmpReader = new BufferReader(blob);
|
|
413
|
+
result.max_subscribe_id = tmpReader.readVarInt();
|
|
414
|
+
} else {
|
|
415
|
+
const bytes = r.readBytes(length);
|
|
416
|
+
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
420
|
+
return result;
|
|
421
|
+
}
|
|
422
|
+
function encodeParams(params, w) {
|
|
423
|
+
let count = params.unknown ? params.unknown.length : 0;
|
|
424
|
+
if (params.authorization_info !== void 0) count++;
|
|
425
|
+
if (params.delivery_timeout !== void 0) count++;
|
|
426
|
+
if (params.max_cache_duration !== void 0) count++;
|
|
427
|
+
w.writeVarInt(count);
|
|
428
|
+
if (params.authorization_info !== void 0) {
|
|
429
|
+
w.writeVarInt(PARAM_AUTHORIZATION_INFO);
|
|
430
|
+
const encoded = textEncoder.encode(params.authorization_info);
|
|
431
|
+
w.writeVarInt(encoded.byteLength);
|
|
432
|
+
w.writeBytes(encoded);
|
|
433
|
+
}
|
|
434
|
+
if (params.delivery_timeout !== void 0) {
|
|
435
|
+
w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
|
|
436
|
+
const tmpW = new BufferWriter(16);
|
|
437
|
+
tmpW.writeVarInt(params.delivery_timeout);
|
|
438
|
+
const raw = tmpW.finish();
|
|
439
|
+
w.writeVarInt(raw.byteLength);
|
|
440
|
+
w.writeBytes(raw);
|
|
441
|
+
}
|
|
442
|
+
if (params.max_cache_duration !== void 0) {
|
|
443
|
+
w.writeVarInt(PARAM_MAX_CACHE_DURATION);
|
|
444
|
+
const tmpW = new BufferWriter(16);
|
|
445
|
+
tmpW.writeVarInt(params.max_cache_duration);
|
|
446
|
+
const raw = tmpW.finish();
|
|
447
|
+
w.writeVarInt(raw.byteLength);
|
|
448
|
+
w.writeBytes(raw);
|
|
449
|
+
}
|
|
450
|
+
if (params.unknown) {
|
|
451
|
+
for (const u of params.unknown) {
|
|
452
|
+
w.writeVarInt(BigInt(u.id));
|
|
453
|
+
const raw = hexToBytes(u.raw_hex);
|
|
454
|
+
w.writeVarInt(raw.byteLength);
|
|
455
|
+
w.writeBytes(raw);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
function decodeParams(r) {
|
|
460
|
+
const count = Number(r.readVarInt());
|
|
461
|
+
const result = {};
|
|
462
|
+
const unknown = [];
|
|
463
|
+
for (let i = 0; i < count; i++) {
|
|
464
|
+
const paramType = r.readVarInt();
|
|
465
|
+
const length = Number(r.readVarInt());
|
|
466
|
+
if (paramType === PARAM_AUTHORIZATION_INFO) {
|
|
467
|
+
const bytes = r.readBytes(length);
|
|
468
|
+
result.authorization_info = textDecoder.decode(bytes);
|
|
469
|
+
} else if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
470
|
+
const blob = r.readBytes(length);
|
|
471
|
+
const tmpReader = new BufferReader(blob);
|
|
472
|
+
result.delivery_timeout = tmpReader.readVarInt();
|
|
473
|
+
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
474
|
+
const blob = r.readBytes(length);
|
|
475
|
+
const tmpReader = new BufferReader(blob);
|
|
476
|
+
result.max_cache_duration = tmpReader.readVarInt();
|
|
477
|
+
} else {
|
|
478
|
+
const bytes = r.readBytes(length);
|
|
479
|
+
unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
483
|
+
return result;
|
|
484
|
+
}
|
|
485
|
+
function encodeClientSetupPayload(msg, w) {
|
|
486
|
+
w.writeVarInt(msg.supported_versions.length);
|
|
487
|
+
for (const v of msg.supported_versions) w.writeVarInt(v);
|
|
488
|
+
encodeSetupParams(msg.parameters, w);
|
|
489
|
+
}
|
|
490
|
+
function encodeServerSetupPayload(msg, w) {
|
|
491
|
+
w.writeVarInt(msg.selected_version);
|
|
492
|
+
encodeSetupParams(msg.parameters, w);
|
|
493
|
+
}
|
|
494
|
+
function encodeSubscribePayload(msg, w) {
|
|
495
|
+
w.writeVarInt(msg.subscribe_id);
|
|
496
|
+
w.writeVarInt(msg.track_alias);
|
|
212
497
|
w.writeTuple(msg.track_namespace);
|
|
213
498
|
w.writeString(msg.track_name);
|
|
214
499
|
w.writeUint8(msg.subscriber_priority);
|
|
@@ -582,449 +867,175 @@ function decodeTrackStatusPayload(r) {
|
|
|
582
867
|
return {
|
|
583
868
|
type: "track_status",
|
|
584
869
|
track_namespace,
|
|
585
|
-
track_name,
|
|
586
|
-
status_code,
|
|
587
|
-
last_group_id,
|
|
588
|
-
last_object_id
|
|
589
|
-
};
|
|
590
|
-
}
|
|
591
|
-
function decodeGoAwayPayload(r) {
|
|
592
|
-
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(0n);
|
|
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(0n);
|
|
759
|
-
w.writeBytes(dg.payload);
|
|
760
|
-
return w.finish();
|
|
761
|
-
}
|
|
762
|
-
function encodeDatagramStatus(dg) {
|
|
763
|
-
const w = new BufferWriter();
|
|
764
|
-
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
765
|
-
w.writeVarInt(dg.trackAlias);
|
|
766
|
-
w.writeVarInt(dg.groupId);
|
|
767
|
-
w.writeVarInt(dg.objectId);
|
|
768
|
-
w.writeUint8(dg.publisherPriority);
|
|
769
|
-
w.writeVarInt(0n);
|
|
770
|
-
w.writeVarInt(dg.objectStatus);
|
|
771
|
-
return w.finish();
|
|
772
|
-
}
|
|
773
|
-
function encodeFetchStream(stream) {
|
|
774
|
-
const w = new BufferWriter();
|
|
775
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
776
|
-
w.writeVarInt(stream.subscribeId);
|
|
777
|
-
for (const obj of stream.objects) {
|
|
778
|
-
w.writeVarInt(obj.groupId);
|
|
779
|
-
w.writeVarInt(obj.subgroupId);
|
|
780
|
-
w.writeVarInt(obj.objectId);
|
|
781
|
-
w.writeUint8(obj.publisherPriority);
|
|
782
|
-
w.writeVarInt(0n);
|
|
783
|
-
w.writeVarInt(obj.payloadLength);
|
|
784
|
-
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
785
|
-
w.writeVarInt(obj.status);
|
|
786
|
-
} else {
|
|
787
|
-
w.writeBytes(obj.payload);
|
|
788
|
-
}
|
|
789
|
-
}
|
|
790
|
-
return w.finish();
|
|
791
|
-
}
|
|
792
|
-
function decodeSubgroupStream(bytes) {
|
|
793
|
-
try {
|
|
794
|
-
const r = new BufferReader(bytes);
|
|
795
|
-
const streamType = Number(r.readVarInt());
|
|
796
|
-
if (streamType !== 4) {
|
|
797
|
-
return {
|
|
798
|
-
ok: false,
|
|
799
|
-
error: new DecodeError(
|
|
800
|
-
"CONSTRAINT_VIOLATION",
|
|
801
|
-
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
802
|
-
0
|
|
803
|
-
)
|
|
804
|
-
};
|
|
805
|
-
}
|
|
806
|
-
const trackAlias = r.readVarInt();
|
|
807
|
-
const groupId = r.readVarInt();
|
|
808
|
-
const subgroupId = r.readVarInt();
|
|
809
|
-
const publisherPriority = r.readUint8();
|
|
810
|
-
const objects = [];
|
|
811
|
-
while (r.remaining > 0) {
|
|
812
|
-
const objectId = r.readVarInt();
|
|
813
|
-
const extensionHeadersLength = r.readVarInt();
|
|
814
|
-
if (extensionHeadersLength > 0n) {
|
|
815
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
816
|
-
}
|
|
817
|
-
const payloadLength = Number(r.readVarInt());
|
|
818
|
-
let payload;
|
|
819
|
-
let status;
|
|
820
|
-
if (payloadLength === 0) {
|
|
821
|
-
status = r.readVarInt();
|
|
822
|
-
payload = new Uint8Array(0);
|
|
823
|
-
} else {
|
|
824
|
-
payload = r.readBytes(payloadLength);
|
|
825
|
-
}
|
|
826
|
-
const obj = {
|
|
827
|
-
type: "object",
|
|
828
|
-
objectId,
|
|
829
|
-
extensionHeadersLength,
|
|
830
|
-
payloadLength,
|
|
831
|
-
payload
|
|
832
|
-
};
|
|
833
|
-
if (status !== void 0) obj.status = status;
|
|
834
|
-
objects.push(obj);
|
|
835
|
-
}
|
|
836
|
-
return {
|
|
837
|
-
ok: true,
|
|
838
|
-
value: {
|
|
839
|
-
type: "subgroup",
|
|
840
|
-
streamTypeId: 4,
|
|
841
|
-
trackAlias,
|
|
842
|
-
groupId,
|
|
843
|
-
subgroupId,
|
|
844
|
-
publisherPriority,
|
|
845
|
-
objects
|
|
846
|
-
},
|
|
847
|
-
bytesRead: r.offset
|
|
848
|
-
};
|
|
849
|
-
} catch (e) {
|
|
850
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
851
|
-
throw e;
|
|
852
|
-
}
|
|
870
|
+
track_name,
|
|
871
|
+
status_code,
|
|
872
|
+
last_group_id,
|
|
873
|
+
last_object_id
|
|
874
|
+
};
|
|
853
875
|
}
|
|
854
|
-
function
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
const streamType = Number(r.readVarInt());
|
|
858
|
-
if (streamType !== 1) {
|
|
859
|
-
return {
|
|
860
|
-
ok: false,
|
|
861
|
-
error: new DecodeError(
|
|
862
|
-
"CONSTRAINT_VIOLATION",
|
|
863
|
-
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
864
|
-
0
|
|
865
|
-
)
|
|
866
|
-
};
|
|
867
|
-
}
|
|
868
|
-
const trackAlias = r.readVarInt();
|
|
869
|
-
const groupId = r.readVarInt();
|
|
870
|
-
const objectId = r.readVarInt();
|
|
871
|
-
const publisherPriority = r.readUint8();
|
|
872
|
-
const extensionHeadersLength = r.readVarInt();
|
|
873
|
-
if (extensionHeadersLength > 0n) {
|
|
874
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
875
|
-
}
|
|
876
|
-
const payload = r.remaining > 0 ? r.readBytes(r.remaining) : new Uint8Array(0);
|
|
877
|
-
return {
|
|
878
|
-
ok: true,
|
|
879
|
-
value: {
|
|
880
|
-
type: "datagram",
|
|
881
|
-
streamTypeId: 1,
|
|
882
|
-
trackAlias,
|
|
883
|
-
groupId,
|
|
884
|
-
objectId,
|
|
885
|
-
publisherPriority,
|
|
886
|
-
extensionHeadersLength,
|
|
887
|
-
payload
|
|
888
|
-
},
|
|
889
|
-
bytesRead: r.offset
|
|
890
|
-
};
|
|
891
|
-
} catch (e) {
|
|
892
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
893
|
-
throw e;
|
|
894
|
-
}
|
|
876
|
+
function decodeGoAwayPayload(r) {
|
|
877
|
+
const new_session_uri = r.readString();
|
|
878
|
+
return { type: "goaway", new_session_uri };
|
|
895
879
|
}
|
|
896
|
-
function
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
880
|
+
function decodeMaxSubscribeIdPayload(r) {
|
|
881
|
+
const subscribe_id = r.readVarInt();
|
|
882
|
+
return { type: "max_subscribe_id", subscribe_id };
|
|
883
|
+
}
|
|
884
|
+
function decodeSubscribesBlockedPayload(r) {
|
|
885
|
+
const maximum_subscribe_id = r.readVarInt();
|
|
886
|
+
return { type: "subscribes_blocked", maximum_subscribe_id };
|
|
887
|
+
}
|
|
888
|
+
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
889
|
+
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
890
|
+
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
891
|
+
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
892
|
+
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
893
|
+
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
894
|
+
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
895
|
+
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
896
|
+
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
897
|
+
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
898
|
+
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
899
|
+
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
900
|
+
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
901
|
+
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
902
|
+
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
903
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
904
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
905
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
906
|
+
[MSG_FETCH, decodeFetchPayload],
|
|
907
|
+
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
908
|
+
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
909
|
+
[MSG_FETCH_CANCEL, decodeFetchCancelPayload],
|
|
910
|
+
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
911
|
+
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
912
|
+
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
913
|
+
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
914
|
+
[MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
|
|
915
|
+
]);
|
|
916
|
+
function encodeMessage(message) {
|
|
917
|
+
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
918
|
+
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
919
|
+
const payloadWriter = new BufferWriter();
|
|
920
|
+
encodePayload(message, payloadWriter);
|
|
921
|
+
const payload = payloadWriter.finishView();
|
|
922
|
+
const writer = new BufferWriter(payload.byteLength + 16);
|
|
923
|
+
writer.writeVarInt(typeId);
|
|
924
|
+
writer.writeVarInt(payload.byteLength);
|
|
925
|
+
writer.writeBytes(payload);
|
|
926
|
+
return writer.finish();
|
|
927
|
+
}
|
|
928
|
+
function encodePayload(msg, w) {
|
|
929
|
+
switch (msg.type) {
|
|
930
|
+
case "client_setup":
|
|
931
|
+
return encodeClientSetupPayload(msg, w);
|
|
932
|
+
case "server_setup":
|
|
933
|
+
return encodeServerSetupPayload(msg, w);
|
|
934
|
+
case "subscribe":
|
|
935
|
+
return encodeSubscribePayload(msg, w);
|
|
936
|
+
case "subscribe_ok":
|
|
937
|
+
return encodeSubscribeOkPayload(msg, w);
|
|
938
|
+
case "subscribe_error":
|
|
939
|
+
return encodeSubscribeErrorPayload(msg, w);
|
|
940
|
+
case "subscribe_update":
|
|
941
|
+
return encodeSubscribeUpdatePayload(msg, w);
|
|
942
|
+
case "subscribe_done":
|
|
943
|
+
return encodeSubscribeDonePayload(msg, w);
|
|
944
|
+
case "unsubscribe":
|
|
945
|
+
return encodeUnsubscribePayload(msg, w);
|
|
946
|
+
case "announce":
|
|
947
|
+
return encodeAnnouncePayload(msg, w);
|
|
948
|
+
case "announce_ok":
|
|
949
|
+
return encodeAnnounceOkPayload(msg, w);
|
|
950
|
+
case "announce_error":
|
|
951
|
+
return encodeAnnounceErrorPayload(msg, w);
|
|
952
|
+
case "unannounce":
|
|
953
|
+
return encodeUnannouncePayload(msg, w);
|
|
954
|
+
case "announce_cancel":
|
|
955
|
+
return encodeAnnounceCancelPayload(msg, w);
|
|
956
|
+
case "subscribe_announces":
|
|
957
|
+
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
958
|
+
case "subscribe_announces_ok":
|
|
959
|
+
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
960
|
+
case "subscribe_announces_error":
|
|
961
|
+
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
962
|
+
case "unsubscribe_announces":
|
|
963
|
+
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
964
|
+
case "fetch":
|
|
965
|
+
return encodeFetchPayload(msg, w);
|
|
966
|
+
case "fetch_ok":
|
|
967
|
+
return encodeFetchOkPayload(msg, w);
|
|
968
|
+
case "fetch_error":
|
|
969
|
+
return encodeFetchErrorPayload(msg, w);
|
|
970
|
+
case "fetch_cancel":
|
|
971
|
+
return encodeFetchCancelPayload(msg, w);
|
|
972
|
+
case "track_status_request":
|
|
973
|
+
return encodeTrackStatusRequestPayload(msg, w);
|
|
974
|
+
case "track_status":
|
|
975
|
+
return encodeTrackStatusPayload(msg, w);
|
|
976
|
+
case "goaway":
|
|
977
|
+
return encodeGoAwayPayload(msg, w);
|
|
978
|
+
case "max_subscribe_id":
|
|
979
|
+
return encodeMaxSubscribeIdPayload(msg, w);
|
|
980
|
+
case "subscribes_blocked":
|
|
981
|
+
return encodeSubscribesBlockedPayload(msg, w);
|
|
982
|
+
default: {
|
|
983
|
+
const _exhaustive = msg;
|
|
984
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
917
985
|
}
|
|
918
|
-
const objectStatus = r.readVarInt();
|
|
919
|
-
return {
|
|
920
|
-
ok: true,
|
|
921
|
-
value: {
|
|
922
|
-
type: "datagram_status",
|
|
923
|
-
streamTypeId: 2,
|
|
924
|
-
trackAlias,
|
|
925
|
-
groupId,
|
|
926
|
-
objectId,
|
|
927
|
-
publisherPriority,
|
|
928
|
-
extensionHeadersLength,
|
|
929
|
-
objectStatus
|
|
930
|
-
},
|
|
931
|
-
bytesRead: r.offset
|
|
932
|
-
};
|
|
933
|
-
} catch (e) {
|
|
934
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
935
|
-
throw e;
|
|
936
986
|
}
|
|
937
987
|
}
|
|
938
|
-
function
|
|
988
|
+
function decodeMessage(bytes) {
|
|
939
989
|
try {
|
|
940
|
-
const
|
|
941
|
-
const
|
|
942
|
-
|
|
990
|
+
const reader = new BufferReader(bytes);
|
|
991
|
+
const typeId = reader.readVarInt();
|
|
992
|
+
const payloadLength = Number(reader.readVarInt());
|
|
993
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
994
|
+
const payloadReader = new BufferReader(payloadBytes);
|
|
995
|
+
const decoder = payloadDecoders.get(typeId);
|
|
996
|
+
if (!decoder) {
|
|
943
997
|
return {
|
|
944
998
|
ok: false,
|
|
945
999
|
error: new DecodeError(
|
|
946
|
-
"
|
|
947
|
-
`
|
|
1000
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1001
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
948
1002
|
0
|
|
949
1003
|
)
|
|
950
1004
|
};
|
|
951
1005
|
}
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
while (r.remaining > 0) {
|
|
955
|
-
const groupId = r.readVarInt();
|
|
956
|
-
const subgroupId = r.readVarInt();
|
|
957
|
-
const objectId = r.readVarInt();
|
|
958
|
-
const publisherPriority = r.readUint8();
|
|
959
|
-
const extensionHeadersLength = r.readVarInt();
|
|
960
|
-
if (extensionHeadersLength > 0n) {
|
|
961
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
962
|
-
}
|
|
963
|
-
const payloadLength = Number(r.readVarInt());
|
|
964
|
-
let payload;
|
|
965
|
-
let status;
|
|
966
|
-
if (payloadLength === 0) {
|
|
967
|
-
status = r.readVarInt();
|
|
968
|
-
payload = new Uint8Array(0);
|
|
969
|
-
} else {
|
|
970
|
-
payload = r.readBytes(payloadLength);
|
|
971
|
-
}
|
|
972
|
-
const obj = {
|
|
973
|
-
type: "object",
|
|
974
|
-
groupId,
|
|
975
|
-
subgroupId,
|
|
976
|
-
objectId,
|
|
977
|
-
publisherPriority,
|
|
978
|
-
extensionHeadersLength,
|
|
979
|
-
payloadLength,
|
|
980
|
-
payload
|
|
981
|
-
};
|
|
982
|
-
if (status !== void 0) obj.status = status;
|
|
983
|
-
objects.push(obj);
|
|
984
|
-
}
|
|
985
|
-
return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
|
|
1006
|
+
const message = decoder(payloadReader);
|
|
1007
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
986
1008
|
} catch (e) {
|
|
987
1009
|
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
988
1010
|
throw e;
|
|
989
1011
|
}
|
|
990
1012
|
}
|
|
991
|
-
function decodeDataStream(streamType, bytes) {
|
|
992
|
-
switch (streamType) {
|
|
993
|
-
case "subgroup":
|
|
994
|
-
return decodeSubgroupStream(bytes);
|
|
995
|
-
case "datagram":
|
|
996
|
-
return decodeDatagram(bytes);
|
|
997
|
-
case "datagram_status":
|
|
998
|
-
return decodeDatagramStatus(bytes);
|
|
999
|
-
case "fetch":
|
|
1000
|
-
return decodeFetchStream(bytes);
|
|
1001
|
-
default: {
|
|
1002
|
-
const _ = streamType;
|
|
1003
|
-
throw new Error(`Unknown: ${_}`);
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1006
|
-
}
|
|
1007
1013
|
function createStreamDecoder() {
|
|
1008
1014
|
let buffer = new Uint8Array(0);
|
|
1015
|
+
let offset = 0;
|
|
1009
1016
|
return new TransformStream({
|
|
1010
1017
|
transform(chunk, controller) {
|
|
1018
|
+
if (offset > 0) {
|
|
1019
|
+
buffer = buffer.subarray(offset);
|
|
1020
|
+
offset = 0;
|
|
1021
|
+
}
|
|
1011
1022
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1012
1023
|
newBuffer.set(buffer, 0);
|
|
1013
1024
|
newBuffer.set(chunk, buffer.length);
|
|
1014
1025
|
buffer = newBuffer;
|
|
1015
|
-
while (buffer.length
|
|
1016
|
-
const result = decodeMessage(buffer);
|
|
1026
|
+
while (offset < buffer.length) {
|
|
1027
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1017
1028
|
if (!result.ok) {
|
|
1018
1029
|
if (result.error.code === "UNEXPECTED_END") break;
|
|
1019
1030
|
controller.error(result.error);
|
|
1020
1031
|
return;
|
|
1021
1032
|
}
|
|
1022
1033
|
controller.enqueue(result.value);
|
|
1023
|
-
|
|
1034
|
+
offset += result.bytesRead;
|
|
1024
1035
|
}
|
|
1025
1036
|
},
|
|
1026
1037
|
flush(controller) {
|
|
1027
|
-
if (buffer.length
|
|
1038
|
+
if (offset < buffer.length)
|
|
1028
1039
|
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1029
1040
|
}
|
|
1030
1041
|
});
|
|
@@ -1081,8 +1092,6 @@ export {
|
|
|
1081
1092
|
PARAM_MAX_CACHE_DURATION,
|
|
1082
1093
|
MESSAGE_TYPE_MAP,
|
|
1083
1094
|
MESSAGE_ID_MAP,
|
|
1084
|
-
encodeMessage,
|
|
1085
|
-
decodeMessage,
|
|
1086
1095
|
encodeSubgroupStream,
|
|
1087
1096
|
encodeDatagram,
|
|
1088
1097
|
encodeDatagramStatus,
|
|
@@ -1092,6 +1101,8 @@ export {
|
|
|
1092
1101
|
decodeDatagramStatus,
|
|
1093
1102
|
decodeFetchStream,
|
|
1094
1103
|
decodeDataStream,
|
|
1104
|
+
encodeMessage,
|
|
1105
|
+
decodeMessage,
|
|
1095
1106
|
createStreamDecoder,
|
|
1096
1107
|
createDraft10Codec
|
|
1097
1108
|
};
|