@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/draft14/messages.ts
|
|
8
12
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -74,21 +78,666 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
74
78
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
75
79
|
);
|
|
76
80
|
|
|
77
|
-
// src/drafts/draft14/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
// src/drafts/draft14/data-streams.ts
|
|
82
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
83
|
+
function isValidSubgroupType(t) {
|
|
84
|
+
return t >= 16 && t <= 21 || t >= 24 && t <= 29;
|
|
85
|
+
}
|
|
86
|
+
function encodeSubgroupStream(stream) {
|
|
87
|
+
const w = new BufferWriter();
|
|
88
|
+
w.writeVarInt(BigInt(stream.headerType));
|
|
89
|
+
w.writeVarInt(stream.trackAlias);
|
|
90
|
+
w.writeVarInt(stream.groupId);
|
|
91
|
+
const hasSubgroupField = (stream.headerType & 4) !== 0;
|
|
92
|
+
const extensionsPresent = (stream.headerType & 1) !== 0;
|
|
93
|
+
if (hasSubgroupField) {
|
|
94
|
+
w.writeVarInt(stream.subgroupId);
|
|
95
|
+
}
|
|
96
|
+
w.writeUint8(stream.publisherPriority);
|
|
97
|
+
let prevObjectId = -1n;
|
|
98
|
+
let first = true;
|
|
99
|
+
for (const obj of stream.objects) {
|
|
100
|
+
const delta = first ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
101
|
+
w.writeVarInt(delta);
|
|
102
|
+
first = false;
|
|
103
|
+
prevObjectId = obj.objectId;
|
|
104
|
+
if (extensionsPresent) {
|
|
105
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
106
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
107
|
+
}
|
|
108
|
+
if (obj.payloadLength === 0) {
|
|
109
|
+
w.writeVarInt(0);
|
|
110
|
+
w.writeVarInt(obj.status ?? 0n);
|
|
111
|
+
} else {
|
|
112
|
+
w.writeVarInt(obj.payloadLength);
|
|
113
|
+
w.writeBytes(obj.payload);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return w.finish();
|
|
117
|
+
}
|
|
118
|
+
function encodeDatagram(dg) {
|
|
119
|
+
const w = new BufferWriter();
|
|
120
|
+
w.writeVarInt(BigInt(dg.datagramType));
|
|
121
|
+
w.writeVarInt(dg.trackAlias);
|
|
122
|
+
w.writeVarInt(dg.groupId);
|
|
123
|
+
const objectIdPresent = (dg.datagramType & 4) === 0;
|
|
124
|
+
const isStatus = dg.datagramType >= 32;
|
|
125
|
+
const extensionsPresent = (dg.datagramType & 1) !== 0;
|
|
126
|
+
if (objectIdPresent) {
|
|
127
|
+
w.writeVarInt(dg.objectId);
|
|
128
|
+
}
|
|
129
|
+
w.writeUint8(dg.publisherPriority);
|
|
130
|
+
if (extensionsPresent) {
|
|
131
|
+
w.writeVarInt(0);
|
|
132
|
+
}
|
|
133
|
+
if (isStatus) {
|
|
134
|
+
w.writeVarInt(dg.objectStatus ?? 0n);
|
|
135
|
+
} else {
|
|
136
|
+
w.writeBytes(dg.payload);
|
|
137
|
+
}
|
|
138
|
+
return w.finish();
|
|
139
|
+
}
|
|
140
|
+
function encodeFetchStream(stream) {
|
|
141
|
+
const w = new BufferWriter();
|
|
142
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
143
|
+
w.writeVarInt(stream.requestId);
|
|
144
|
+
for (const obj of stream.objects) {
|
|
145
|
+
w.writeVarInt(obj.groupId);
|
|
146
|
+
w.writeVarInt(obj.subgroupId);
|
|
147
|
+
w.writeVarInt(obj.objectId);
|
|
148
|
+
w.writeUint8(obj.publisherPriority);
|
|
149
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
150
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
151
|
+
if (obj.payloadLength === 0) {
|
|
152
|
+
w.writeVarInt(0);
|
|
153
|
+
w.writeVarInt(obj.status ?? 0n);
|
|
154
|
+
} else {
|
|
155
|
+
w.writeVarInt(obj.payloadLength);
|
|
156
|
+
w.writeBytes(obj.payload);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return w.finish();
|
|
160
|
+
}
|
|
161
|
+
function decodeSubgroupStream(bytes) {
|
|
162
|
+
try {
|
|
163
|
+
const r = new BufferReader(bytes);
|
|
164
|
+
const streamType = Number(r.readVarInt());
|
|
165
|
+
if (!isValidSubgroupType(streamType)) {
|
|
166
|
+
return {
|
|
167
|
+
ok: false,
|
|
168
|
+
error: new DecodeError(
|
|
169
|
+
"CONSTRAINT_VIOLATION",
|
|
170
|
+
`Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
|
|
171
|
+
0
|
|
172
|
+
)
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
176
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
177
|
+
const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
178
|
+
const trackAlias = r.readVarInt();
|
|
179
|
+
const groupId = r.readVarInt();
|
|
180
|
+
let subgroupId = 0n;
|
|
181
|
+
if (hasSubgroupField) {
|
|
182
|
+
subgroupId = r.readVarInt();
|
|
183
|
+
}
|
|
184
|
+
const publisherPriority = r.readUint8();
|
|
185
|
+
const objects = [];
|
|
186
|
+
let prevObjectId = -1n;
|
|
187
|
+
let firstObject = true;
|
|
188
|
+
while (r.remaining > 0) {
|
|
189
|
+
const byteOffset = r.offset;
|
|
190
|
+
const delta = r.readVarInt();
|
|
191
|
+
let objectId;
|
|
192
|
+
if (firstObject) {
|
|
193
|
+
objectId = delta;
|
|
194
|
+
if (subgroupIsFirstObjId) {
|
|
195
|
+
subgroupId = objectId;
|
|
196
|
+
}
|
|
197
|
+
firstObject = false;
|
|
198
|
+
} else {
|
|
199
|
+
objectId = prevObjectId + 1n + delta;
|
|
200
|
+
}
|
|
201
|
+
let extensionData = new Uint8Array(0);
|
|
202
|
+
if (extensionsPresent) {
|
|
203
|
+
const extLen = Number(r.readVarInt());
|
|
204
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
205
|
+
}
|
|
206
|
+
const payloadLength = Number(r.readVarInt());
|
|
207
|
+
let payload;
|
|
208
|
+
let status;
|
|
209
|
+
let payloadByteOffset;
|
|
210
|
+
if (payloadLength === 0) {
|
|
211
|
+
status = r.readVarInt();
|
|
212
|
+
payloadByteOffset = r.offset;
|
|
213
|
+
payload = new Uint8Array(0);
|
|
214
|
+
} else {
|
|
215
|
+
payloadByteOffset = r.offset;
|
|
216
|
+
payload = r.readBytesView(payloadLength);
|
|
217
|
+
}
|
|
218
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
219
|
+
if (status !== void 0) obj.status = status;
|
|
220
|
+
objects.push(obj);
|
|
221
|
+
prevObjectId = objectId;
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
ok: true,
|
|
225
|
+
value: {
|
|
226
|
+
type: "subgroup",
|
|
227
|
+
headerType: streamType,
|
|
228
|
+
trackAlias,
|
|
229
|
+
groupId,
|
|
230
|
+
subgroupId,
|
|
231
|
+
publisherPriority,
|
|
232
|
+
objects
|
|
233
|
+
},
|
|
234
|
+
bytesRead: r.offset
|
|
235
|
+
};
|
|
236
|
+
} catch (e) {
|
|
237
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
238
|
+
throw e;
|
|
82
239
|
}
|
|
83
|
-
return hex;
|
|
84
240
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
241
|
+
function decodeDatagram(bytes) {
|
|
242
|
+
try {
|
|
243
|
+
const r = new BufferReader(bytes);
|
|
244
|
+
const dgType = Number(r.readVarInt());
|
|
245
|
+
const validDatagram = dgType >= 0 && dgType <= 7 || dgType === 32 || dgType === 33;
|
|
246
|
+
if (!validDatagram) {
|
|
247
|
+
return {
|
|
248
|
+
ok: false,
|
|
249
|
+
error: new DecodeError(
|
|
250
|
+
"CONSTRAINT_VIOLATION",
|
|
251
|
+
`Expected datagram type 0x00-0x07 or 0x20-0x21, got 0x${dgType.toString(16)}`,
|
|
252
|
+
0
|
|
253
|
+
)
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
const objectIdPresent = (dgType & 4) === 0;
|
|
257
|
+
const endOfGroup = (dgType & 2) !== 0;
|
|
258
|
+
const extensionsPresent = (dgType & 1) !== 0;
|
|
259
|
+
const isStatus = dgType >= 32;
|
|
260
|
+
const trackAlias = r.readVarInt();
|
|
261
|
+
const groupId = r.readVarInt();
|
|
262
|
+
let objectId = 0n;
|
|
263
|
+
if (objectIdPresent) {
|
|
264
|
+
objectId = r.readVarInt();
|
|
265
|
+
}
|
|
266
|
+
const publisherPriority = r.readUint8();
|
|
267
|
+
if (extensionsPresent) {
|
|
268
|
+
const extLen = Number(r.readVarInt());
|
|
269
|
+
if (extLen > 0) {
|
|
270
|
+
r.readBytesView(extLen);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
let objectStatus;
|
|
274
|
+
let payload;
|
|
275
|
+
if (isStatus) {
|
|
276
|
+
objectStatus = r.readVarInt();
|
|
277
|
+
payload = new Uint8Array(0);
|
|
278
|
+
} else {
|
|
279
|
+
payload = r.readBytesView(r.remaining);
|
|
280
|
+
}
|
|
281
|
+
const payloadLength = payload.byteLength;
|
|
282
|
+
const result = {
|
|
283
|
+
type: "datagram",
|
|
284
|
+
datagramType: dgType,
|
|
285
|
+
trackAlias,
|
|
286
|
+
groupId,
|
|
287
|
+
objectId,
|
|
288
|
+
publisherPriority,
|
|
289
|
+
payloadLength,
|
|
290
|
+
payload
|
|
291
|
+
};
|
|
292
|
+
if (endOfGroup) result.endOfGroup = true;
|
|
293
|
+
if (objectStatus !== void 0)
|
|
294
|
+
result.objectStatus = objectStatus;
|
|
295
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
296
|
+
} catch (e) {
|
|
297
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
298
|
+
throw e;
|
|
89
299
|
}
|
|
90
|
-
return bytes;
|
|
91
300
|
}
|
|
301
|
+
function decodeFetchStream(bytes) {
|
|
302
|
+
try {
|
|
303
|
+
const r = new BufferReader(bytes);
|
|
304
|
+
const streamType = r.readVarInt();
|
|
305
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
306
|
+
return {
|
|
307
|
+
ok: false,
|
|
308
|
+
error: new DecodeError(
|
|
309
|
+
"CONSTRAINT_VIOLATION",
|
|
310
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
311
|
+
0
|
|
312
|
+
)
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
const requestId = r.readVarInt();
|
|
316
|
+
const objects = [];
|
|
317
|
+
while (r.remaining > 0) {
|
|
318
|
+
const byteOffset = r.offset;
|
|
319
|
+
const groupId = r.readVarInt();
|
|
320
|
+
const subgroupId = r.readVarInt();
|
|
321
|
+
const objectId = r.readVarInt();
|
|
322
|
+
const publisherPriority = r.readUint8();
|
|
323
|
+
const extLen = Number(r.readVarInt());
|
|
324
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
325
|
+
const payloadLength = Number(r.readVarInt());
|
|
326
|
+
let payload;
|
|
327
|
+
let status;
|
|
328
|
+
let payloadByteOffset;
|
|
329
|
+
if (payloadLength === 0) {
|
|
330
|
+
status = r.readVarInt();
|
|
331
|
+
payloadByteOffset = r.offset;
|
|
332
|
+
payload = new Uint8Array(0);
|
|
333
|
+
} else {
|
|
334
|
+
payloadByteOffset = r.offset;
|
|
335
|
+
payload = r.readBytesView(payloadLength);
|
|
336
|
+
}
|
|
337
|
+
const obj = {
|
|
338
|
+
type: "object",
|
|
339
|
+
byteOffset,
|
|
340
|
+
payloadByteOffset,
|
|
341
|
+
groupId,
|
|
342
|
+
subgroupId,
|
|
343
|
+
objectId,
|
|
344
|
+
publisherPriority,
|
|
345
|
+
payloadLength,
|
|
346
|
+
payload,
|
|
347
|
+
extensionData
|
|
348
|
+
};
|
|
349
|
+
if (status !== void 0) obj.status = status;
|
|
350
|
+
objects.push(obj);
|
|
351
|
+
}
|
|
352
|
+
return {
|
|
353
|
+
ok: true,
|
|
354
|
+
value: { type: "fetch", requestId, objects },
|
|
355
|
+
bytesRead: r.offset
|
|
356
|
+
};
|
|
357
|
+
} catch (e) {
|
|
358
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
359
|
+
throw e;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function decodeDataStream(streamType, bytes) {
|
|
363
|
+
switch (streamType) {
|
|
364
|
+
case "subgroup":
|
|
365
|
+
return decodeSubgroupStream(bytes);
|
|
366
|
+
case "datagram":
|
|
367
|
+
return decodeDatagram(bytes);
|
|
368
|
+
case "fetch":
|
|
369
|
+
return decodeFetchStream(bytes);
|
|
370
|
+
default: {
|
|
371
|
+
const _exhaustive = streamType;
|
|
372
|
+
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
function createSubgroupStreamDecoder() {
|
|
377
|
+
let buffer = new Uint8Array(0);
|
|
378
|
+
let offset = 0;
|
|
379
|
+
let headerEmitted = false;
|
|
380
|
+
let extensionsPresent = false;
|
|
381
|
+
let prevObjectId = -1n;
|
|
382
|
+
let firstObject = true;
|
|
383
|
+
return new TransformStream({
|
|
384
|
+
transform(chunk, controller) {
|
|
385
|
+
if (offset > 0) {
|
|
386
|
+
buffer = buffer.subarray(offset);
|
|
387
|
+
offset = 0;
|
|
388
|
+
}
|
|
389
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
390
|
+
newBuffer.set(buffer, 0);
|
|
391
|
+
newBuffer.set(chunk, buffer.length);
|
|
392
|
+
buffer = newBuffer;
|
|
393
|
+
if (!headerEmitted) {
|
|
394
|
+
try {
|
|
395
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
396
|
+
const streamType = Number(r.readVarInt());
|
|
397
|
+
if (!isValidSubgroupType(streamType)) {
|
|
398
|
+
controller.error(
|
|
399
|
+
new DecodeError(
|
|
400
|
+
"CONSTRAINT_VIOLATION",
|
|
401
|
+
`Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
|
|
402
|
+
0
|
|
403
|
+
)
|
|
404
|
+
);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
extensionsPresent = (streamType & 1) !== 0;
|
|
408
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
409
|
+
const trackAlias = r.readVarInt();
|
|
410
|
+
const groupId = r.readVarInt();
|
|
411
|
+
let subgroupId = 0n;
|
|
412
|
+
if (hasSubgroupField) {
|
|
413
|
+
subgroupId = r.readVarInt();
|
|
414
|
+
}
|
|
415
|
+
const publisherPriority = r.readUint8();
|
|
416
|
+
controller.enqueue({
|
|
417
|
+
type: "subgroup_header",
|
|
418
|
+
headerType: streamType,
|
|
419
|
+
trackAlias,
|
|
420
|
+
groupId,
|
|
421
|
+
subgroupId,
|
|
422
|
+
publisherPriority
|
|
423
|
+
});
|
|
424
|
+
headerEmitted = true;
|
|
425
|
+
offset += r.offset;
|
|
426
|
+
} catch (e) {
|
|
427
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
controller.error(e);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
while (offset < buffer.length) {
|
|
435
|
+
try {
|
|
436
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
437
|
+
const byteOffset = r.offset;
|
|
438
|
+
const delta = r.readVarInt();
|
|
439
|
+
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
440
|
+
firstObject = false;
|
|
441
|
+
let extensionData = new Uint8Array(0);
|
|
442
|
+
if (extensionsPresent) {
|
|
443
|
+
const extLen = Number(r.readVarInt());
|
|
444
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
445
|
+
}
|
|
446
|
+
const payloadLength = Number(r.readVarInt());
|
|
447
|
+
let payload;
|
|
448
|
+
let status;
|
|
449
|
+
let payloadByteOffset;
|
|
450
|
+
if (payloadLength === 0) {
|
|
451
|
+
status = r.readVarInt();
|
|
452
|
+
payloadByteOffset = r.offset;
|
|
453
|
+
payload = new Uint8Array(0);
|
|
454
|
+
} else {
|
|
455
|
+
payloadByteOffset = r.offset;
|
|
456
|
+
payload = r.readBytesView(payloadLength);
|
|
457
|
+
}
|
|
458
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
459
|
+
if (status !== void 0) obj.status = status;
|
|
460
|
+
controller.enqueue(obj);
|
|
461
|
+
prevObjectId = objectId;
|
|
462
|
+
offset += r.offset;
|
|
463
|
+
} catch (e) {
|
|
464
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
controller.error(e);
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
flush(controller) {
|
|
473
|
+
if (offset < buffer.length) {
|
|
474
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
function createFetchStreamDecoder() {
|
|
480
|
+
let buffer = new Uint8Array(0);
|
|
481
|
+
let offset = 0;
|
|
482
|
+
let headerEmitted = false;
|
|
483
|
+
return new TransformStream({
|
|
484
|
+
transform(chunk, controller) {
|
|
485
|
+
if (offset > 0) {
|
|
486
|
+
buffer = buffer.subarray(offset);
|
|
487
|
+
offset = 0;
|
|
488
|
+
}
|
|
489
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
490
|
+
newBuffer.set(buffer, 0);
|
|
491
|
+
newBuffer.set(chunk, buffer.length);
|
|
492
|
+
buffer = newBuffer;
|
|
493
|
+
if (!headerEmitted) {
|
|
494
|
+
try {
|
|
495
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
496
|
+
const streamType = r.readVarInt();
|
|
497
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
498
|
+
controller.error(
|
|
499
|
+
new DecodeError(
|
|
500
|
+
"CONSTRAINT_VIOLATION",
|
|
501
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
502
|
+
0
|
|
503
|
+
)
|
|
504
|
+
);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
const requestId = r.readVarInt();
|
|
508
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
509
|
+
headerEmitted = true;
|
|
510
|
+
offset += r.offset;
|
|
511
|
+
} catch (e) {
|
|
512
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
controller.error(e);
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
while (offset < buffer.length) {
|
|
520
|
+
try {
|
|
521
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
522
|
+
const byteOffset = r.offset;
|
|
523
|
+
const groupId = r.readVarInt();
|
|
524
|
+
const subgroupId = r.readVarInt();
|
|
525
|
+
const objectId = r.readVarInt();
|
|
526
|
+
const publisherPriority = r.readUint8();
|
|
527
|
+
const extLen = Number(r.readVarInt());
|
|
528
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
529
|
+
const payloadLength = Number(r.readVarInt());
|
|
530
|
+
let payload;
|
|
531
|
+
let status;
|
|
532
|
+
let payloadByteOffset;
|
|
533
|
+
if (payloadLength === 0) {
|
|
534
|
+
status = r.readVarInt();
|
|
535
|
+
payloadByteOffset = r.offset;
|
|
536
|
+
payload = new Uint8Array(0);
|
|
537
|
+
} else {
|
|
538
|
+
payloadByteOffset = r.offset;
|
|
539
|
+
payload = r.readBytesView(payloadLength);
|
|
540
|
+
}
|
|
541
|
+
const obj = {
|
|
542
|
+
type: "object",
|
|
543
|
+
byteOffset,
|
|
544
|
+
payloadByteOffset,
|
|
545
|
+
groupId,
|
|
546
|
+
subgroupId,
|
|
547
|
+
objectId,
|
|
548
|
+
publisherPriority,
|
|
549
|
+
payloadLength,
|
|
550
|
+
payload,
|
|
551
|
+
extensionData
|
|
552
|
+
};
|
|
553
|
+
if (status !== void 0) obj.status = status;
|
|
554
|
+
controller.enqueue(obj);
|
|
555
|
+
offset += r.offset;
|
|
556
|
+
} catch (e) {
|
|
557
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
558
|
+
break;
|
|
559
|
+
}
|
|
560
|
+
controller.error(e);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
flush(controller) {
|
|
566
|
+
if (offset < buffer.length) {
|
|
567
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
function createDataStreamDecoder() {
|
|
573
|
+
let buffer = new Uint8Array(0);
|
|
574
|
+
let offset = 0;
|
|
575
|
+
let detectedType = null;
|
|
576
|
+
let headerEmitted = false;
|
|
577
|
+
let extensionsPresent = false;
|
|
578
|
+
let prevObjectId = -1n;
|
|
579
|
+
let firstObject = true;
|
|
580
|
+
return new TransformStream({
|
|
581
|
+
transform(chunk, controller) {
|
|
582
|
+
if (offset > 0) {
|
|
583
|
+
buffer = buffer.subarray(offset);
|
|
584
|
+
offset = 0;
|
|
585
|
+
}
|
|
586
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
587
|
+
newBuffer.set(buffer, 0);
|
|
588
|
+
newBuffer.set(chunk, buffer.length);
|
|
589
|
+
buffer = newBuffer;
|
|
590
|
+
if (detectedType === null) {
|
|
591
|
+
try {
|
|
592
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
593
|
+
const streamType = Number(r.readVarInt());
|
|
594
|
+
if (isValidSubgroupType(streamType)) {
|
|
595
|
+
detectedType = "subgroup";
|
|
596
|
+
} else if (streamType === 5) {
|
|
597
|
+
detectedType = "fetch";
|
|
598
|
+
} else {
|
|
599
|
+
controller.error(
|
|
600
|
+
new DecodeError(
|
|
601
|
+
"CONSTRAINT_VIOLATION",
|
|
602
|
+
`Unknown data stream type: 0x${streamType.toString(16)}`,
|
|
603
|
+
0
|
|
604
|
+
)
|
|
605
|
+
);
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
} catch (e) {
|
|
609
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
controller.error(e);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
if (detectedType === "subgroup") {
|
|
617
|
+
if (!headerEmitted) {
|
|
618
|
+
try {
|
|
619
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
620
|
+
const streamType = Number(r.readVarInt());
|
|
621
|
+
extensionsPresent = (streamType & 1) !== 0;
|
|
622
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
623
|
+
const trackAlias = r.readVarInt();
|
|
624
|
+
const groupId = r.readVarInt();
|
|
625
|
+
let subgroupId = 0n;
|
|
626
|
+
if (hasSubgroupField) subgroupId = r.readVarInt();
|
|
627
|
+
const publisherPriority = r.readUint8();
|
|
628
|
+
controller.enqueue({
|
|
629
|
+
type: "subgroup_header",
|
|
630
|
+
headerType: streamType,
|
|
631
|
+
trackAlias,
|
|
632
|
+
groupId,
|
|
633
|
+
subgroupId,
|
|
634
|
+
publisherPriority
|
|
635
|
+
});
|
|
636
|
+
headerEmitted = true;
|
|
637
|
+
offset += r.offset;
|
|
638
|
+
} catch (e) {
|
|
639
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") return;
|
|
640
|
+
controller.error(e);
|
|
641
|
+
return;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
while (offset < buffer.length) {
|
|
645
|
+
try {
|
|
646
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
647
|
+
const byteOffset = r.offset;
|
|
648
|
+
const delta = r.readVarInt();
|
|
649
|
+
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
650
|
+
firstObject = false;
|
|
651
|
+
let extensionData = new Uint8Array(0);
|
|
652
|
+
if (extensionsPresent) {
|
|
653
|
+
const extLen = Number(r.readVarInt());
|
|
654
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
655
|
+
}
|
|
656
|
+
const payloadLength = Number(r.readVarInt());
|
|
657
|
+
let payload;
|
|
658
|
+
let status;
|
|
659
|
+
let payloadByteOffset;
|
|
660
|
+
if (payloadLength === 0) {
|
|
661
|
+
status = r.readVarInt();
|
|
662
|
+
payloadByteOffset = r.offset;
|
|
663
|
+
payload = new Uint8Array(0);
|
|
664
|
+
} else {
|
|
665
|
+
payloadByteOffset = r.offset;
|
|
666
|
+
payload = r.readBytesView(payloadLength);
|
|
667
|
+
}
|
|
668
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
669
|
+
if (status !== void 0)
|
|
670
|
+
obj.status = status;
|
|
671
|
+
controller.enqueue(obj);
|
|
672
|
+
prevObjectId = objectId;
|
|
673
|
+
offset += r.offset;
|
|
674
|
+
} catch (e) {
|
|
675
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") break;
|
|
676
|
+
controller.error(e);
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
} else {
|
|
681
|
+
if (!headerEmitted) {
|
|
682
|
+
try {
|
|
683
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
684
|
+
r.readVarInt();
|
|
685
|
+
const requestId = r.readVarInt();
|
|
686
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
687
|
+
headerEmitted = true;
|
|
688
|
+
offset += r.offset;
|
|
689
|
+
} catch (e) {
|
|
690
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") return;
|
|
691
|
+
controller.error(e);
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
while (offset < buffer.length) {
|
|
696
|
+
try {
|
|
697
|
+
const r = new BufferReader(buffer.subarray(offset));
|
|
698
|
+
const byteOffset = r.offset;
|
|
699
|
+
const groupId = r.readVarInt();
|
|
700
|
+
const subgroupId = r.readVarInt();
|
|
701
|
+
const objectId = r.readVarInt();
|
|
702
|
+
const publisherPriority = r.readUint8();
|
|
703
|
+
const extLen = Number(r.readVarInt());
|
|
704
|
+
const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
705
|
+
const payloadLength = Number(r.readVarInt());
|
|
706
|
+
let payload;
|
|
707
|
+
let status;
|
|
708
|
+
let payloadByteOffset;
|
|
709
|
+
if (payloadLength === 0) {
|
|
710
|
+
status = r.readVarInt();
|
|
711
|
+
payloadByteOffset = r.offset;
|
|
712
|
+
payload = new Uint8Array(0);
|
|
713
|
+
} else {
|
|
714
|
+
payloadByteOffset = r.offset;
|
|
715
|
+
payload = r.readBytesView(payloadLength);
|
|
716
|
+
}
|
|
717
|
+
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
718
|
+
if (status !== void 0)
|
|
719
|
+
obj.status = status;
|
|
720
|
+
controller.enqueue(obj);
|
|
721
|
+
offset += r.offset;
|
|
722
|
+
} catch (e) {
|
|
723
|
+
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") break;
|
|
724
|
+
controller.error(e);
|
|
725
|
+
return;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
flush(controller) {
|
|
731
|
+
if (offset < buffer.length) {
|
|
732
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// src/drafts/draft14/codec.ts
|
|
739
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
740
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
92
741
|
function encodeParams(params, writer) {
|
|
93
742
|
let count = 0;
|
|
94
743
|
if (params.role !== void 0) count++;
|
|
@@ -102,7 +751,7 @@ function encodeParams(params, writer) {
|
|
|
102
751
|
}
|
|
103
752
|
if (params.path !== void 0) {
|
|
104
753
|
writer.writeVarInt(PARAM_PATH);
|
|
105
|
-
const encoded =
|
|
754
|
+
const encoded = textEncoder.encode(params.path);
|
|
106
755
|
writer.writeVarInt(encoded.byteLength);
|
|
107
756
|
writer.writeBytes(encoded);
|
|
108
757
|
}
|
|
@@ -146,7 +795,7 @@ function decodeParams(reader) {
|
|
|
146
795
|
const length = Number(reader.readVarInt());
|
|
147
796
|
const bytes = reader.readBytes(length);
|
|
148
797
|
if (paramType === PARAM_PATH) {
|
|
149
|
-
result.path =
|
|
798
|
+
result.path = textDecoder.decode(bytes);
|
|
150
799
|
} else {
|
|
151
800
|
unknown.push({
|
|
152
801
|
id: `0x${paramType.toString(16)}`,
|
|
@@ -642,11 +1291,11 @@ function encodeMessage(message) {
|
|
|
642
1291
|
}
|
|
643
1292
|
const payloadWriter = new BufferWriter();
|
|
644
1293
|
encodePayload(message, payloadWriter);
|
|
645
|
-
const payload = payloadWriter.
|
|
1294
|
+
const payload = payloadWriter.finishView();
|
|
646
1295
|
if (payload.byteLength > 65535) {
|
|
647
1296
|
throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
|
|
648
1297
|
}
|
|
649
|
-
const writer = new BufferWriter();
|
|
1298
|
+
const writer = new BufferWriter(payload.byteLength + 16);
|
|
650
1299
|
writer.writeVarInt(typeId);
|
|
651
1300
|
writer.writeUint8(payload.byteLength >> 8 & 255);
|
|
652
1301
|
writer.writeUint8(payload.byteLength & 255);
|
|
@@ -704,195 +1353,67 @@ function encodePayload(msg, w) {
|
|
|
704
1353
|
case "fetch_cancel":
|
|
705
1354
|
return encodeFetchCancelPayload(msg, w);
|
|
706
1355
|
case "track_status":
|
|
707
|
-
return encodeTrackStatusPayload(msg, w);
|
|
708
|
-
case "track_status_ok":
|
|
709
|
-
return encodeTrackStatusOkPayload(msg, w);
|
|
710
|
-
case "track_status_error":
|
|
711
|
-
return encodeTrackStatusErrorPayload(msg, w);
|
|
712
|
-
case "goaway":
|
|
713
|
-
return encodeGoAwayPayload(msg, w);
|
|
714
|
-
case "max_request_id":
|
|
715
|
-
return encodeMaxRequestIdPayload(msg, w);
|
|
716
|
-
case "requests_blocked":
|
|
717
|
-
return encodeRequestsBlockedPayload(msg, w);
|
|
718
|
-
default: {
|
|
719
|
-
const _exhaustive = msg;
|
|
720
|
-
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
function decodeMessage(bytes) {
|
|
725
|
-
try {
|
|
726
|
-
const reader = new BufferReader(bytes);
|
|
727
|
-
const typeId = reader.readVarInt();
|
|
728
|
-
const lenHi = reader.readUint8();
|
|
729
|
-
const lenLo = reader.readUint8();
|
|
730
|
-
const payloadLength = lenHi << 8 | lenLo;
|
|
731
|
-
const payloadBytes = reader.readBytes(payloadLength);
|
|
732
|
-
const payloadReader = new BufferReader(payloadBytes);
|
|
733
|
-
const decoder = payloadDecoders.get(typeId);
|
|
734
|
-
if (!decoder) {
|
|
735
|
-
return {
|
|
736
|
-
ok: false,
|
|
737
|
-
error: new DecodeError(
|
|
738
|
-
"UNKNOWN_MESSAGE_TYPE",
|
|
739
|
-
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
740
|
-
0
|
|
741
|
-
)
|
|
742
|
-
};
|
|
743
|
-
}
|
|
744
|
-
const message = decoder(payloadReader);
|
|
745
|
-
return { ok: true, value: message, bytesRead: reader.offset };
|
|
746
|
-
} catch (e) {
|
|
747
|
-
if (e instanceof DecodeError) {
|
|
748
|
-
return { ok: false, error: e };
|
|
749
|
-
}
|
|
750
|
-
throw e;
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
function encodeSubgroupStream(stream) {
|
|
754
|
-
const w = new BufferWriter();
|
|
755
|
-
w.writeVarInt(0n);
|
|
756
|
-
w.writeVarInt(stream.trackAlias);
|
|
757
|
-
w.writeVarInt(stream.groupId);
|
|
758
|
-
w.writeVarInt(stream.subgroupId);
|
|
759
|
-
w.writeUint8(stream.publisherPriority);
|
|
760
|
-
for (const obj of stream.objects) {
|
|
761
|
-
w.writeVarInt(obj.objectId);
|
|
762
|
-
w.writeVarInt(obj.payloadLength);
|
|
763
|
-
w.writeBytes(obj.payload);
|
|
764
|
-
}
|
|
765
|
-
return w.finish();
|
|
766
|
-
}
|
|
767
|
-
function encodeDatagram(dg) {
|
|
768
|
-
const w = new BufferWriter();
|
|
769
|
-
w.writeVarInt(dg.trackAlias);
|
|
770
|
-
w.writeVarInt(dg.groupId);
|
|
771
|
-
w.writeVarInt(dg.objectId);
|
|
772
|
-
w.writeVarInt(dg.payloadLength);
|
|
773
|
-
w.writeBytes(dg.payload);
|
|
774
|
-
return w.finish();
|
|
775
|
-
}
|
|
776
|
-
function encodeFetchStream(stream) {
|
|
777
|
-
const w = new BufferWriter();
|
|
778
|
-
w.writeVarInt(2n);
|
|
779
|
-
w.writeVarInt(stream.subscribeRequestId);
|
|
780
|
-
for (const obj of stream.objects) {
|
|
781
|
-
w.writeVarInt(obj.objectId);
|
|
782
|
-
w.writeVarInt(obj.payloadLength);
|
|
783
|
-
w.writeBytes(obj.payload);
|
|
784
|
-
}
|
|
785
|
-
return w.finish();
|
|
786
|
-
}
|
|
787
|
-
function decodeSubgroupStream(bytes) {
|
|
788
|
-
try {
|
|
789
|
-
const r = new BufferReader(bytes);
|
|
790
|
-
const streamType = r.readVarInt();
|
|
791
|
-
if (streamType !== 0n) {
|
|
792
|
-
return {
|
|
793
|
-
ok: false,
|
|
794
|
-
error: new DecodeError(
|
|
795
|
-
"CONSTRAINT_VIOLATION",
|
|
796
|
-
`Expected subgroup stream type 0, got ${streamType}`,
|
|
797
|
-
0
|
|
798
|
-
)
|
|
799
|
-
};
|
|
800
|
-
}
|
|
801
|
-
const trackAlias = r.readVarInt();
|
|
802
|
-
const groupId = r.readVarInt();
|
|
803
|
-
const subgroupId = r.readVarInt();
|
|
804
|
-
const publisherPriority = r.readUint8();
|
|
805
|
-
const objects = [];
|
|
806
|
-
while (r.remaining > 0) {
|
|
807
|
-
const objectId = r.readVarInt();
|
|
808
|
-
const payloadLength = Number(r.readVarInt());
|
|
809
|
-
const payload = r.readBytes(payloadLength);
|
|
810
|
-
objects.push({ type: "object", objectId, payloadLength, payload });
|
|
811
|
-
}
|
|
812
|
-
return {
|
|
813
|
-
ok: true,
|
|
814
|
-
value: { type: "subgroup", trackAlias, groupId, subgroupId, publisherPriority, objects },
|
|
815
|
-
bytesRead: r.offset
|
|
816
|
-
};
|
|
817
|
-
} catch (e) {
|
|
818
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
819
|
-
throw e;
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
function decodeDatagram(bytes) {
|
|
823
|
-
try {
|
|
824
|
-
const r = new BufferReader(bytes);
|
|
825
|
-
const trackAlias = r.readVarInt();
|
|
826
|
-
const groupId = r.readVarInt();
|
|
827
|
-
const objectId = r.readVarInt();
|
|
828
|
-
const payloadLength = Number(r.readVarInt());
|
|
829
|
-
const payload = r.readBytes(payloadLength);
|
|
830
|
-
return {
|
|
831
|
-
ok: true,
|
|
832
|
-
value: { type: "datagram", trackAlias, groupId, objectId, payloadLength, payload },
|
|
833
|
-
bytesRead: r.offset
|
|
834
|
-
};
|
|
835
|
-
} catch (e) {
|
|
836
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
837
|
-
throw e;
|
|
1356
|
+
return encodeTrackStatusPayload(msg, w);
|
|
1357
|
+
case "track_status_ok":
|
|
1358
|
+
return encodeTrackStatusOkPayload(msg, w);
|
|
1359
|
+
case "track_status_error":
|
|
1360
|
+
return encodeTrackStatusErrorPayload(msg, w);
|
|
1361
|
+
case "goaway":
|
|
1362
|
+
return encodeGoAwayPayload(msg, w);
|
|
1363
|
+
case "max_request_id":
|
|
1364
|
+
return encodeMaxRequestIdPayload(msg, w);
|
|
1365
|
+
case "requests_blocked":
|
|
1366
|
+
return encodeRequestsBlockedPayload(msg, w);
|
|
1367
|
+
default: {
|
|
1368
|
+
const _exhaustive = msg;
|
|
1369
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
1370
|
+
}
|
|
838
1371
|
}
|
|
839
1372
|
}
|
|
840
|
-
function
|
|
1373
|
+
function decodeMessage(bytes) {
|
|
841
1374
|
try {
|
|
842
|
-
const
|
|
843
|
-
const
|
|
844
|
-
|
|
1375
|
+
const reader = new BufferReader(bytes);
|
|
1376
|
+
const typeId = reader.readVarInt();
|
|
1377
|
+
const lenHi = reader.readUint8();
|
|
1378
|
+
const lenLo = reader.readUint8();
|
|
1379
|
+
const payloadLength = lenHi << 8 | lenLo;
|
|
1380
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1381
|
+
const payloadReader = new BufferReader(payloadBytes);
|
|
1382
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1383
|
+
if (!decoder) {
|
|
845
1384
|
return {
|
|
846
1385
|
ok: false,
|
|
847
1386
|
error: new DecodeError(
|
|
848
|
-
"
|
|
849
|
-
`
|
|
1387
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1388
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
850
1389
|
0
|
|
851
1390
|
)
|
|
852
1391
|
};
|
|
853
1392
|
}
|
|
854
|
-
const
|
|
855
|
-
|
|
856
|
-
while (r.remaining > 0) {
|
|
857
|
-
const objectId = r.readVarInt();
|
|
858
|
-
const payloadLength = Number(r.readVarInt());
|
|
859
|
-
const payload = r.readBytes(payloadLength);
|
|
860
|
-
objects.push({ type: "object", objectId, payloadLength, payload });
|
|
861
|
-
}
|
|
862
|
-
return {
|
|
863
|
-
ok: true,
|
|
864
|
-
value: { type: "fetch", subscribeRequestId, objects },
|
|
865
|
-
bytesRead: r.offset
|
|
866
|
-
};
|
|
1393
|
+
const message = decoder(payloadReader);
|
|
1394
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
867
1395
|
} catch (e) {
|
|
868
|
-
if (e instanceof DecodeError)
|
|
869
|
-
|
|
870
|
-
}
|
|
871
|
-
}
|
|
872
|
-
function decodeDataStream(streamType, bytes) {
|
|
873
|
-
switch (streamType) {
|
|
874
|
-
case "subgroup":
|
|
875
|
-
return decodeSubgroupStream(bytes);
|
|
876
|
-
case "datagram":
|
|
877
|
-
return decodeDatagram(bytes);
|
|
878
|
-
case "fetch":
|
|
879
|
-
return decodeFetchStream(bytes);
|
|
880
|
-
default: {
|
|
881
|
-
const _exhaustive = streamType;
|
|
882
|
-
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
1396
|
+
if (e instanceof DecodeError) {
|
|
1397
|
+
return { ok: false, error: e };
|
|
883
1398
|
}
|
|
1399
|
+
throw e;
|
|
884
1400
|
}
|
|
885
1401
|
}
|
|
886
1402
|
function createStreamDecoder() {
|
|
887
1403
|
let buffer = new Uint8Array(0);
|
|
1404
|
+
let offset = 0;
|
|
888
1405
|
return new TransformStream({
|
|
889
1406
|
transform(chunk, controller) {
|
|
1407
|
+
if (offset > 0) {
|
|
1408
|
+
buffer = buffer.subarray(offset);
|
|
1409
|
+
offset = 0;
|
|
1410
|
+
}
|
|
890
1411
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
891
1412
|
newBuffer.set(buffer, 0);
|
|
892
1413
|
newBuffer.set(chunk, buffer.length);
|
|
893
1414
|
buffer = newBuffer;
|
|
894
|
-
while (buffer.length
|
|
895
|
-
const result = decodeMessage(buffer);
|
|
1415
|
+
while (offset < buffer.length) {
|
|
1416
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
896
1417
|
if (!result.ok) {
|
|
897
1418
|
if (result.error.code === "UNEXPECTED_END") {
|
|
898
1419
|
break;
|
|
@@ -901,11 +1422,11 @@ function createStreamDecoder() {
|
|
|
901
1422
|
return;
|
|
902
1423
|
}
|
|
903
1424
|
controller.enqueue(result.value);
|
|
904
|
-
|
|
1425
|
+
offset += result.bytesRead;
|
|
905
1426
|
}
|
|
906
1427
|
},
|
|
907
1428
|
flush(controller) {
|
|
908
|
-
if (buffer.length
|
|
1429
|
+
if (offset < buffer.length) {
|
|
909
1430
|
controller.error(
|
|
910
1431
|
new DecodeError("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
911
1432
|
);
|
|
@@ -913,239 +1434,6 @@ function createStreamDecoder() {
|
|
|
913
1434
|
}
|
|
914
1435
|
});
|
|
915
1436
|
}
|
|
916
|
-
function createSubgroupStreamDecoder() {
|
|
917
|
-
let buffer = new Uint8Array(0);
|
|
918
|
-
let headerEmitted = false;
|
|
919
|
-
return new TransformStream({
|
|
920
|
-
transform(chunk, controller) {
|
|
921
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
922
|
-
newBuffer.set(buffer, 0);
|
|
923
|
-
newBuffer.set(chunk, buffer.length);
|
|
924
|
-
buffer = newBuffer;
|
|
925
|
-
if (!headerEmitted) {
|
|
926
|
-
try {
|
|
927
|
-
const r = new BufferReader(buffer);
|
|
928
|
-
const streamType = r.readVarInt();
|
|
929
|
-
if (streamType !== 0n) {
|
|
930
|
-
controller.error(
|
|
931
|
-
new DecodeError(
|
|
932
|
-
"CONSTRAINT_VIOLATION",
|
|
933
|
-
`Expected subgroup stream type 0, got ${streamType}`,
|
|
934
|
-
0
|
|
935
|
-
)
|
|
936
|
-
);
|
|
937
|
-
return;
|
|
938
|
-
}
|
|
939
|
-
const trackAlias = r.readVarInt();
|
|
940
|
-
const groupId = r.readVarInt();
|
|
941
|
-
const subgroupId = r.readVarInt();
|
|
942
|
-
const publisherPriority = r.readUint8();
|
|
943
|
-
controller.enqueue({
|
|
944
|
-
type: "subgroup_header",
|
|
945
|
-
trackAlias,
|
|
946
|
-
groupId,
|
|
947
|
-
subgroupId,
|
|
948
|
-
publisherPriority
|
|
949
|
-
});
|
|
950
|
-
headerEmitted = true;
|
|
951
|
-
buffer = buffer.slice(r.offset);
|
|
952
|
-
} catch (e) {
|
|
953
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
954
|
-
return;
|
|
955
|
-
}
|
|
956
|
-
controller.error(e);
|
|
957
|
-
return;
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
|
-
while (buffer.length > 0) {
|
|
961
|
-
try {
|
|
962
|
-
const r = new BufferReader(buffer);
|
|
963
|
-
const objectId = r.readVarInt();
|
|
964
|
-
const payloadLength = Number(r.readVarInt());
|
|
965
|
-
const payload = r.readBytes(payloadLength);
|
|
966
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
967
|
-
buffer = buffer.slice(r.offset);
|
|
968
|
-
} catch (e) {
|
|
969
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
970
|
-
break;
|
|
971
|
-
}
|
|
972
|
-
controller.error(e);
|
|
973
|
-
return;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
},
|
|
977
|
-
flush(controller) {
|
|
978
|
-
if (buffer.length > 0) {
|
|
979
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
});
|
|
983
|
-
}
|
|
984
|
-
function createFetchStreamDecoder() {
|
|
985
|
-
let buffer = new Uint8Array(0);
|
|
986
|
-
let headerEmitted = false;
|
|
987
|
-
return new TransformStream({
|
|
988
|
-
transform(chunk, controller) {
|
|
989
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
990
|
-
newBuffer.set(buffer, 0);
|
|
991
|
-
newBuffer.set(chunk, buffer.length);
|
|
992
|
-
buffer = newBuffer;
|
|
993
|
-
if (!headerEmitted) {
|
|
994
|
-
try {
|
|
995
|
-
const r = new BufferReader(buffer);
|
|
996
|
-
const streamType = r.readVarInt();
|
|
997
|
-
if (streamType !== 2n) {
|
|
998
|
-
controller.error(
|
|
999
|
-
new DecodeError(
|
|
1000
|
-
"CONSTRAINT_VIOLATION",
|
|
1001
|
-
`Expected fetch stream type 2, got ${streamType}`,
|
|
1002
|
-
0
|
|
1003
|
-
)
|
|
1004
|
-
);
|
|
1005
|
-
return;
|
|
1006
|
-
}
|
|
1007
|
-
const subscribeRequestId = r.readVarInt();
|
|
1008
|
-
controller.enqueue({
|
|
1009
|
-
type: "fetch_header",
|
|
1010
|
-
subscribeRequestId
|
|
1011
|
-
});
|
|
1012
|
-
headerEmitted = true;
|
|
1013
|
-
buffer = buffer.slice(r.offset);
|
|
1014
|
-
} catch (e) {
|
|
1015
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1016
|
-
return;
|
|
1017
|
-
}
|
|
1018
|
-
controller.error(e);
|
|
1019
|
-
return;
|
|
1020
|
-
}
|
|
1021
|
-
}
|
|
1022
|
-
while (buffer.length > 0) {
|
|
1023
|
-
try {
|
|
1024
|
-
const r = new BufferReader(buffer);
|
|
1025
|
-
const objectId = r.readVarInt();
|
|
1026
|
-
const payloadLength = Number(r.readVarInt());
|
|
1027
|
-
const payload = r.readBytes(payloadLength);
|
|
1028
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1029
|
-
buffer = buffer.slice(r.offset);
|
|
1030
|
-
} catch (e) {
|
|
1031
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1032
|
-
break;
|
|
1033
|
-
}
|
|
1034
|
-
controller.error(e);
|
|
1035
|
-
return;
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
},
|
|
1039
|
-
flush(controller) {
|
|
1040
|
-
if (buffer.length > 0) {
|
|
1041
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1042
|
-
}
|
|
1043
|
-
}
|
|
1044
|
-
});
|
|
1045
|
-
}
|
|
1046
|
-
function createDataStreamDecoder() {
|
|
1047
|
-
let buffer = new Uint8Array(0);
|
|
1048
|
-
let detectedType = null;
|
|
1049
|
-
let headerEmitted = false;
|
|
1050
|
-
return new TransformStream({
|
|
1051
|
-
transform(chunk, controller) {
|
|
1052
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1053
|
-
newBuffer.set(buffer, 0);
|
|
1054
|
-
newBuffer.set(chunk, buffer.length);
|
|
1055
|
-
buffer = newBuffer;
|
|
1056
|
-
if (detectedType === null) {
|
|
1057
|
-
try {
|
|
1058
|
-
const r = new BufferReader(buffer);
|
|
1059
|
-
const streamType = r.readVarInt();
|
|
1060
|
-
if (streamType === 0n) {
|
|
1061
|
-
detectedType = "subgroup";
|
|
1062
|
-
} else if (streamType === 2n) {
|
|
1063
|
-
detectedType = "fetch";
|
|
1064
|
-
} else {
|
|
1065
|
-
controller.error(
|
|
1066
|
-
new DecodeError("CONSTRAINT_VIOLATION", `Unknown data stream type: ${streamType}`, 0)
|
|
1067
|
-
);
|
|
1068
|
-
return;
|
|
1069
|
-
}
|
|
1070
|
-
} catch (e) {
|
|
1071
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1072
|
-
return;
|
|
1073
|
-
}
|
|
1074
|
-
controller.error(e);
|
|
1075
|
-
return;
|
|
1076
|
-
}
|
|
1077
|
-
}
|
|
1078
|
-
if (detectedType === "subgroup") {
|
|
1079
|
-
if (!headerEmitted) {
|
|
1080
|
-
try {
|
|
1081
|
-
const r = new BufferReader(buffer);
|
|
1082
|
-
r.readVarInt();
|
|
1083
|
-
const trackAlias = r.readVarInt();
|
|
1084
|
-
const groupId = r.readVarInt();
|
|
1085
|
-
const subgroupId = r.readVarInt();
|
|
1086
|
-
const publisherPriority = r.readUint8();
|
|
1087
|
-
controller.enqueue({
|
|
1088
|
-
type: "subgroup_header",
|
|
1089
|
-
trackAlias,
|
|
1090
|
-
groupId,
|
|
1091
|
-
subgroupId,
|
|
1092
|
-
publisherPriority
|
|
1093
|
-
});
|
|
1094
|
-
headerEmitted = true;
|
|
1095
|
-
buffer = buffer.slice(r.offset);
|
|
1096
|
-
} catch (e) {
|
|
1097
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1098
|
-
return;
|
|
1099
|
-
}
|
|
1100
|
-
controller.error(e);
|
|
1101
|
-
return;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
} else {
|
|
1105
|
-
if (!headerEmitted) {
|
|
1106
|
-
try {
|
|
1107
|
-
const r = new BufferReader(buffer);
|
|
1108
|
-
r.readVarInt();
|
|
1109
|
-
const subscribeRequestId = r.readVarInt();
|
|
1110
|
-
controller.enqueue({
|
|
1111
|
-
type: "fetch_header",
|
|
1112
|
-
subscribeRequestId
|
|
1113
|
-
});
|
|
1114
|
-
headerEmitted = true;
|
|
1115
|
-
buffer = buffer.slice(r.offset);
|
|
1116
|
-
} catch (e) {
|
|
1117
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1118
|
-
return;
|
|
1119
|
-
}
|
|
1120
|
-
controller.error(e);
|
|
1121
|
-
return;
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
}
|
|
1125
|
-
while (buffer.length > 0) {
|
|
1126
|
-
try {
|
|
1127
|
-
const r = new BufferReader(buffer);
|
|
1128
|
-
const objectId = r.readVarInt();
|
|
1129
|
-
const payloadLength = Number(r.readVarInt());
|
|
1130
|
-
const payload = r.readBytes(payloadLength);
|
|
1131
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1132
|
-
buffer = buffer.slice(r.offset);
|
|
1133
|
-
} catch (e) {
|
|
1134
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
1135
|
-
break;
|
|
1136
|
-
}
|
|
1137
|
-
controller.error(e);
|
|
1138
|
-
return;
|
|
1139
|
-
}
|
|
1140
|
-
}
|
|
1141
|
-
},
|
|
1142
|
-
flush(controller) {
|
|
1143
|
-
if (buffer.length > 0) {
|
|
1144
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
});
|
|
1148
|
-
}
|
|
1149
1437
|
function createDraft14Codec() {
|
|
1150
1438
|
return {
|
|
1151
1439
|
draft: "draft-ietf-moq-transport-14",
|
|
@@ -1201,8 +1489,6 @@ export {
|
|
|
1201
1489
|
PARAM_MAX_REQUEST_ID,
|
|
1202
1490
|
MESSAGE_TYPE_MAP,
|
|
1203
1491
|
MESSAGE_ID_MAP,
|
|
1204
|
-
encodeMessage,
|
|
1205
|
-
decodeMessage,
|
|
1206
1492
|
encodeSubgroupStream,
|
|
1207
1493
|
encodeDatagram,
|
|
1208
1494
|
encodeFetchStream,
|
|
@@ -1210,9 +1496,11 @@ export {
|
|
|
1210
1496
|
decodeDatagram,
|
|
1211
1497
|
decodeFetchStream,
|
|
1212
1498
|
decodeDataStream,
|
|
1213
|
-
createStreamDecoder,
|
|
1214
1499
|
createSubgroupStreamDecoder,
|
|
1215
1500
|
createFetchStreamDecoder,
|
|
1216
1501
|
createDataStreamDecoder,
|
|
1502
|
+
encodeMessage,
|
|
1503
|
+
decodeMessage,
|
|
1504
|
+
createStreamDecoder,
|
|
1217
1505
|
createDraft14Codec
|
|
1218
1506
|
};
|