@moqtap/codec 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-LH4NTURO.js → chunk-2GODRVT5.js} +699 -589
- package/dist/{chunk-4RIXXEII.js → chunk-2ZT6CVSE.js} +274 -242
- package/dist/{chunk-XUUCOLWU.cjs → chunk-4N4INRE7.cjs} +332 -321
- package/dist/{chunk-PJRA2TQ5.js → chunk-73MWUKSJ.js} +274 -228
- package/dist/{chunk-NGVE2RZT.js → chunk-77MNXX3M.js} +549 -538
- package/dist/{chunk-A27S7HW7.js → chunk-7L43FE6P.js} +24 -3
- package/dist/{chunk-RVJAGE4S.cjs → chunk-ACQ4CUJP.cjs} +297 -265
- package/dist/{chunk-IBVM4DMJ.cjs → chunk-BGWGVINJ.cjs} +332 -321
- package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
- package/dist/{chunk-CXDHOMHG.js → chunk-CEH7ESNC.js} +549 -538
- package/dist/{chunk-ZBKE2QRQ.js → chunk-E6P74GDT.js} +686 -599
- package/dist/{chunk-FUFTMAQD.cjs → chunk-FPISPJ5N.cjs} +785 -497
- package/dist/{chunk-7IVGHMKJ.cjs → chunk-FZDIEHQL.cjs} +300 -124
- package/dist/{chunk-ZSPO2GF2.cjs → chunk-GLBQDG4L.cjs} +971 -884
- package/dist/chunk-HDWJ2GDE.js +24 -0
- package/dist/{chunk-4YJANAXU.cjs → chunk-JGG7CMSZ.cjs} +469 -434
- package/dist/{chunk-IV2H5CFI.cjs → chunk-JTVCOMBI.cjs} +298 -266
- package/dist/chunk-KNDYS3DK.cjs +24 -0
- package/dist/{chunk-BPNL5YFQ.cjs → chunk-KZCYQ7ED.cjs} +5 -5
- package/dist/{chunk-U2B3B42P.js → chunk-MC7W6PMI.js} +709 -421
- package/dist/{chunk-MFAP7R6L.js → chunk-MRJWLGYH.js} +1 -1
- package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
- package/dist/{chunk-TMNGRIPL.js → chunk-N2KBF5Q2.js} +285 -109
- package/dist/{chunk-IV2HRJVT.js → chunk-PZBPH2D7.js} +274 -242
- package/dist/{chunk-FWISIR26.cjs → chunk-RUPCJTC3.cjs} +24 -3
- package/dist/{chunk-G26SJ6XS.cjs → chunk-S74DWJE2.cjs} +1001 -925
- package/dist/{chunk-NUX5BHWO.js → chunk-U3IPZYPX.js} +1113 -1037
- package/dist/{chunk-HSVYF6XX.cjs → chunk-VJUUZ4W2.cjs} +1106 -996
- package/dist/{chunk-ST24APEO.js → chunk-XSNX2IUJ.js} +574 -539
- package/dist/{chunk-K4OLITS2.cjs → chunk-YIG2C3LF.cjs} +295 -249
- package/dist/{drafts/draft15/codec.d.ts → codec-B2cH-f5V.d.cts} +11 -10
- package/dist/codec-B5K73Bdj.d.ts +30 -0
- package/dist/{codec-C_HMXNK_.d.ts → codec-BFeliJFc.d.ts} +4 -10
- package/dist/codec-BUMjz0J4.d.cts +30 -0
- package/dist/{codec-D0x8-SCw.d.cts → codec-Bap882Fh.d.cts} +3 -9
- package/dist/codec-BdVMRMOI.d.ts +34 -0
- package/dist/codec-Bq-tLtfP.d.ts +30 -0
- package/dist/codec-BwFgpeQu.d.ts +23 -0
- package/dist/{codec-95k8CAu5.d.cts → codec-C4n1PS09.d.cts} +3 -9
- package/dist/{codec-BECYPfY8.d.ts → codec-CPlK3Pi5.d.ts} +3 -9
- package/dist/{drafts/draft08/codec.d.ts → codec-CPvPq0sb.d.cts} +11 -9
- package/dist/codec-DNUIgLqc.d.cts +23 -0
- package/dist/codec-DRcsBCsb.d.ts +23 -0
- package/dist/{codec-CAevkgf5.d.cts → codec-DY4QH364.d.cts} +4 -10
- package/dist/codec-DZhZSIii.d.cts +30 -0
- package/dist/{drafts/draft14/codec.d.ts → codec-FvGCxIhr.d.ts} +11 -10
- package/dist/codec-HgBgHkFI.d.cts +23 -0
- package/dist/codec-KXHvXZVb.d.cts +35 -0
- package/dist/{codec-BC5jfvMb.d.ts → codec-R8GrCPt2.d.ts} +3 -9
- package/dist/{codec-BsPU1vNC.d.ts → codec-SKBeHQk7.d.ts} +3 -11
- package/dist/draft10-session.d.cts +1 -1
- package/dist/draft10-session.d.ts +1 -1
- package/dist/draft10.cjs +4 -3
- package/dist/draft10.d.cts +15 -5
- package/dist/draft10.d.ts +15 -5
- package/dist/draft10.js +3 -2
- package/dist/draft11-session.d.cts +1 -1
- package/dist/draft11-session.d.ts +1 -1
- package/dist/draft11.cjs +4 -3
- package/dist/draft11.d.cts +13 -5
- package/dist/draft11.d.ts +13 -5
- package/dist/draft11.js +3 -2
- package/dist/draft12-session.d.cts +1 -1
- package/dist/draft12-session.d.ts +1 -1
- package/dist/draft12.cjs +4 -3
- package/dist/draft12.d.cts +13 -5
- package/dist/draft12.d.ts +13 -5
- package/dist/draft12.js +3 -2
- package/dist/draft13-session.d.cts +1 -1
- package/dist/draft13-session.d.ts +1 -1
- package/dist/draft13.cjs +4 -3
- package/dist/draft13.d.cts +13 -5
- package/dist/draft13.d.ts +13 -5
- package/dist/draft13.js +3 -2
- package/dist/draft14-session.d.cts +1 -1
- package/dist/draft14-session.d.ts +1 -1
- package/dist/draft14.cjs +4 -3
- package/dist/draft14.d.cts +59 -5
- package/dist/draft14.d.ts +59 -5
- package/dist/draft14.js +3 -2
- package/dist/draft15-session.d.cts +1 -1
- package/dist/draft15-session.d.ts +1 -1
- package/dist/draft15.cjs +4 -3
- package/dist/draft15.d.cts +48 -5
- package/dist/draft15.d.ts +48 -5
- package/dist/draft15.js +3 -2
- package/dist/draft16-session.d.cts +1 -1
- package/dist/draft16-session.d.ts +1 -1
- package/dist/draft16.cjs +4 -3
- package/dist/draft16.d.cts +37 -5
- package/dist/draft16.d.ts +37 -5
- package/dist/draft16.js +3 -2
- package/dist/draft17-session.d.cts +1 -1
- package/dist/draft17-session.d.ts +1 -1
- package/dist/draft17.cjs +4 -3
- package/dist/draft17.d.cts +16 -5
- package/dist/draft17.d.ts +16 -5
- package/dist/draft17.js +3 -2
- package/dist/draft7-session.cjs +3 -3
- package/dist/draft7-session.js +2 -2
- package/dist/draft7.cjs +18 -6
- package/dist/draft7.d.cts +84 -8
- package/dist/draft7.d.ts +84 -8
- package/dist/draft7.js +15 -3
- package/dist/draft8-session.d.cts +1 -1
- package/dist/draft8-session.d.ts +1 -1
- package/dist/draft8.cjs +4 -3
- package/dist/draft8.d.cts +15 -5
- package/dist/draft8.d.ts +15 -5
- package/dist/draft8.js +3 -2
- package/dist/draft9-session.d.cts +1 -1
- package/dist/draft9-session.d.ts +1 -1
- package/dist/draft9.cjs +4 -3
- package/dist/draft9.d.cts +15 -5
- package/dist/draft9.d.ts +15 -5
- package/dist/draft9.js +3 -2
- package/dist/index.cjs +25 -24
- package/dist/index.d.cts +20 -20
- package/dist/index.d.ts +38 -46
- package/dist/index.js +111 -93
- package/dist/session.cjs +3 -3
- package/dist/session.d.ts +8 -4
- package/dist/session.js +26 -32
- package/dist/{types-ERexTpT8.d.cts → types-8gUGeMgs.d.cts} +4 -1
- package/dist/{types-ERexTpT8.d.ts → types-8gUGeMgs.d.ts} +4 -1
- package/dist/{types-Cw4WE9dh.d.ts → types-B0FT5Qs2.d.cts} +9 -1
- package/dist/{types-Cw4WE9dh.d.cts → types-B0FT5Qs2.d.ts} +9 -1
- package/dist/{types-DqCDFqgB.d.cts → types-B9A2g05r.d.cts} +4 -1
- package/dist/{types-DqCDFqgB.d.ts → types-B9A2g05r.d.ts} +4 -1
- package/dist/{types-Bg6QYNVt.d.cts → types-BeAVNU-F.d.cts} +7 -2
- package/dist/{types-Bg6QYNVt.d.ts → types-BeAVNU-F.d.ts} +7 -2
- package/dist/{types-C_1HrqBl.d.ts → types-CDa7F5ct.d.cts} +7 -2
- package/dist/{types-C_1HrqBl.d.cts → types-CDa7F5ct.d.ts} +7 -2
- package/dist/{types-r-CasCf1.d.cts → types-D1dI_oTX.d.cts} +8 -1
- package/dist/{types-r-CasCf1.d.ts → types-D1dI_oTX.d.ts} +8 -1
- package/dist/{types-BTFeKYCb.d.ts → types-DKpsfD3i.d.cts} +19 -4
- package/dist/{types-BTFeKYCb.d.cts → types-DKpsfD3i.d.ts} +19 -4
- package/dist/{types-4VxSL2Ho.d.ts → types-DxSFvL2b.d.cts} +7 -1
- package/dist/{types-4VxSL2Ho.d.cts → types-DxSFvL2b.d.ts} +7 -1
- package/dist/{types-B2afJZM-.d.ts → types-Pme7sua0.d.cts} +4 -1
- package/dist/{types-B2afJZM-.d.cts → types-Pme7sua0.d.ts} +4 -1
- package/dist/{types-D5gNQiDj.d.ts → types-gQsr0AAA.d.cts} +9 -1
- package/dist/{types-D5gNQiDj.d.cts → types-gQsr0AAA.d.ts} +9 -1
- package/package.json +2 -2
- package/src/core/buffer-reader.ts +130 -114
- package/src/core/buffer-writer.ts +100 -91
- package/src/core/hex.ts +7 -3
- package/src/drafts/draft07/codec.ts +14 -9
- package/src/drafts/draft07/data-streams.ts +240 -240
- package/src/drafts/draft07/varint.ts +51 -23
- package/src/drafts/draft08/codec.ts +19 -10
- package/src/drafts/draft08/data-streams.ts +359 -359
- package/src/drafts/draft09/codec.ts +19 -10
- package/src/drafts/draft09/data-streams.ts +332 -332
- package/src/drafts/draft10/codec.ts +19 -10
- package/src/drafts/draft10/data-streams.ts +332 -332
- package/src/drafts/draft11/codec.ts +33 -14
- package/src/drafts/draft11/data-streams.ts +269 -269
- package/src/drafts/draft12/codec.ts +27 -31
- package/src/drafts/draft12/data-streams.ts +275 -275
- package/src/drafts/draft13/codec.ts +27 -31
- package/src/drafts/draft13/data-streams.ts +275 -275
- package/src/drafts/draft14/codec.ts +19 -10
- package/src/drafts/draft14/data-streams.ts +813 -798
- package/src/drafts/draft15/codec.ts +21 -12
- package/src/drafts/draft15/data-streams.ts +794 -778
- package/src/drafts/draft16/codec.ts +21 -12
- package/src/drafts/draft16/data-streams.ts +789 -773
- package/src/drafts/draft17/codec.ts +21 -12
- package/src/drafts/draft17/data-streams.ts +758 -742
- package/dist/codec-AFuOxfsO.d.ts +0 -60
- package/dist/codec-B-UJ5Iow.d.cts +0 -75
- package/dist/codec-BvpuF-6u.d.cts +0 -39
- package/dist/codec-C8jZI5Cx.d.cts +0 -39
- package/dist/codec-CSUqCrRs.d.ts +0 -39
- package/dist/codec-CpuvYTSV.d.cts +0 -86
- package/dist/codec-D7ARhpG1.d.ts +0 -75
- package/dist/codec-DNAUGshO.d.cts +0 -60
- package/dist/codec-DPx_QNn0.d.ts +0 -31
- package/dist/codec-DRhCx_hw.d.ts +0 -86
- package/dist/codec-Db7YPe3l.d.ts +0 -31
- package/dist/codec-axkJpb7D.d.cts +0 -31
- package/dist/codec-ujAbFaep.d.cts +0 -31
- package/dist/core/buffer-reader.d.ts +0 -15
- package/dist/core/buffer-reader.d.ts.map +0 -1
- package/dist/core/buffer-reader.js +0 -98
- package/dist/core/buffer-reader.js.map +0 -1
- package/dist/core/buffer-writer.d.ts +0 -16
- package/dist/core/buffer-writer.d.ts.map +0 -1
- package/dist/core/buffer-writer.js +0 -86
- package/dist/core/buffer-writer.js.map +0 -1
- package/dist/core/errors.d.ts +0 -2
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -2
- package/dist/core/errors.js.map +0 -1
- package/dist/core/hex.d.ts +0 -5
- package/dist/core/hex.d.ts.map +0 -1
- package/dist/core/hex.js +0 -17
- package/dist/core/hex.js.map +0 -1
- package/dist/core/session-types.d.ts +0 -99
- package/dist/core/session-types.d.ts.map +0 -1
- package/dist/core/session-types.js +0 -2
- package/dist/core/session-types.js.map +0 -1
- package/dist/core/types.d.ts +0 -235
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -11
- package/dist/core/types.js.map +0 -1
- package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
- package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/announce-fsm.js +0 -2
- package/dist/drafts/draft07/announce-fsm.js.map +0 -1
- package/dist/drafts/draft07/codec.d.ts +0 -17
- package/dist/drafts/draft07/codec.d.ts.map +0 -1
- package/dist/drafts/draft07/codec.js +0 -722
- package/dist/drafts/draft07/codec.js.map +0 -1
- package/dist/drafts/draft07/data-streams.d.ts +0 -9
- package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft07/data-streams.js +0 -228
- package/dist/drafts/draft07/data-streams.js.map +0 -1
- package/dist/drafts/draft07/index.d.ts +0 -14
- package/dist/drafts/draft07/index.d.ts.map +0 -1
- package/dist/drafts/draft07/index.js +0 -18
- package/dist/drafts/draft07/index.js.map +0 -1
- package/dist/drafts/draft07/messages.d.ts +0 -32
- package/dist/drafts/draft07/messages.d.ts.map +0 -1
- package/dist/drafts/draft07/messages.js +0 -42
- package/dist/drafts/draft07/messages.js.map +0 -1
- package/dist/drafts/draft07/parameters.d.ts +0 -4
- package/dist/drafts/draft07/parameters.d.ts.map +0 -1
- package/dist/drafts/draft07/parameters.js +0 -10
- package/dist/drafts/draft07/parameters.js.map +0 -1
- package/dist/drafts/draft07/rules.d.ts +0 -8
- package/dist/drafts/draft07/rules.d.ts.map +0 -1
- package/dist/drafts/draft07/rules.js +0 -95
- package/dist/drafts/draft07/rules.js.map +0 -1
- package/dist/drafts/draft07/session-fsm.d.ts +0 -38
- package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/session-fsm.js +0 -354
- package/dist/drafts/draft07/session-fsm.js.map +0 -1
- package/dist/drafts/draft07/session.d.ts +0 -4
- package/dist/drafts/draft07/session.d.ts.map +0 -1
- package/dist/drafts/draft07/session.js +0 -5
- package/dist/drafts/draft07/session.js.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
- package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
- package/dist/drafts/draft07/subscription-fsm.js +0 -2
- package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
- package/dist/drafts/draft07/types.d.ts +0 -61
- package/dist/drafts/draft07/types.d.ts.map +0 -1
- package/dist/drafts/draft07/types.js +0 -4
- package/dist/drafts/draft07/types.js.map +0 -1
- package/dist/drafts/draft07/varint.d.ts +0 -4
- package/dist/drafts/draft07/varint.d.ts.map +0 -1
- package/dist/drafts/draft07/varint.js +0 -22
- package/dist/drafts/draft07/varint.js.map +0 -1
- package/dist/drafts/draft08/codec.d.ts.map +0 -1
- package/dist/drafts/draft08/codec.js +0 -729
- package/dist/drafts/draft08/codec.js.map +0 -1
- package/dist/drafts/draft08/data-streams.d.ts +0 -12
- package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft08/data-streams.js +0 -345
- package/dist/drafts/draft08/data-streams.js.map +0 -1
- package/dist/drafts/draft08/index.d.ts +0 -9
- package/dist/drafts/draft08/index.d.ts.map +0 -1
- package/dist/drafts/draft08/index.js +0 -7
- package/dist/drafts/draft08/index.js.map +0 -1
- package/dist/drafts/draft08/messages.d.ts +0 -34
- package/dist/drafts/draft08/messages.d.ts.map +0 -1
- package/dist/drafts/draft08/messages.js +0 -66
- package/dist/drafts/draft08/messages.js.map +0 -1
- package/dist/drafts/draft08/rules.d.ts +0 -8
- package/dist/drafts/draft08/rules.d.ts.map +0 -1
- package/dist/drafts/draft08/rules.js +0 -83
- package/dist/drafts/draft08/rules.js.map +0 -1
- package/dist/drafts/draft08/session-fsm.d.ts +0 -47
- package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft08/session-fsm.js +0 -483
- package/dist/drafts/draft08/session-fsm.js.map +0 -1
- package/dist/drafts/draft08/session.d.ts +0 -5
- package/dist/drafts/draft08/session.d.ts.map +0 -1
- package/dist/drafts/draft08/session.js +0 -5
- package/dist/drafts/draft08/session.js.map +0 -1
- package/dist/drafts/draft08/types.d.ts +0 -268
- package/dist/drafts/draft08/types.d.ts.map +0 -1
- package/dist/drafts/draft08/types.js +0 -4
- package/dist/drafts/draft08/types.js.map +0 -1
- package/dist/drafts/draft09/codec.d.ts +0 -21
- package/dist/drafts/draft09/codec.d.ts.map +0 -1
- package/dist/drafts/draft09/codec.js +0 -721
- package/dist/drafts/draft09/codec.js.map +0 -1
- package/dist/drafts/draft09/data-streams.d.ts +0 -12
- package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft09/data-streams.js +0 -307
- package/dist/drafts/draft09/data-streams.js.map +0 -1
- package/dist/drafts/draft09/index.d.ts +0 -9
- package/dist/drafts/draft09/index.d.ts.map +0 -1
- package/dist/drafts/draft09/index.js +0 -7
- package/dist/drafts/draft09/index.js.map +0 -1
- package/dist/drafts/draft09/messages.d.ts +0 -34
- package/dist/drafts/draft09/messages.d.ts.map +0 -1
- package/dist/drafts/draft09/messages.js +0 -66
- package/dist/drafts/draft09/messages.js.map +0 -1
- package/dist/drafts/draft09/rules.d.ts +0 -8
- package/dist/drafts/draft09/rules.d.ts.map +0 -1
- package/dist/drafts/draft09/rules.js +0 -83
- package/dist/drafts/draft09/rules.js.map +0 -1
- package/dist/drafts/draft09/session-fsm.d.ts +0 -47
- package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft09/session-fsm.js +0 -483
- package/dist/drafts/draft09/session-fsm.js.map +0 -1
- package/dist/drafts/draft09/session.d.ts +0 -5
- package/dist/drafts/draft09/session.d.ts.map +0 -1
- package/dist/drafts/draft09/session.js +0 -5
- package/dist/drafts/draft09/session.js.map +0 -1
- package/dist/drafts/draft09/types.d.ts +0 -268
- package/dist/drafts/draft09/types.d.ts.map +0 -1
- package/dist/drafts/draft09/types.js +0 -4
- package/dist/drafts/draft09/types.js.map +0 -1
- package/dist/drafts/draft10/codec.d.ts +0 -21
- package/dist/drafts/draft10/codec.d.ts.map +0 -1
- package/dist/drafts/draft10/codec.js +0 -721
- package/dist/drafts/draft10/codec.js.map +0 -1
- package/dist/drafts/draft10/data-streams.d.ts +0 -12
- package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft10/data-streams.js +0 -307
- package/dist/drafts/draft10/data-streams.js.map +0 -1
- package/dist/drafts/draft10/index.d.ts +0 -9
- package/dist/drafts/draft10/index.d.ts.map +0 -1
- package/dist/drafts/draft10/index.js +0 -7
- package/dist/drafts/draft10/index.js.map +0 -1
- package/dist/drafts/draft10/messages.d.ts +0 -34
- package/dist/drafts/draft10/messages.d.ts.map +0 -1
- package/dist/drafts/draft10/messages.js +0 -66
- package/dist/drafts/draft10/messages.js.map +0 -1
- package/dist/drafts/draft10/rules.d.ts +0 -8
- package/dist/drafts/draft10/rules.d.ts.map +0 -1
- package/dist/drafts/draft10/rules.js +0 -83
- package/dist/drafts/draft10/rules.js.map +0 -1
- package/dist/drafts/draft10/session-fsm.d.ts +0 -47
- package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft10/session-fsm.js +0 -483
- package/dist/drafts/draft10/session-fsm.js.map +0 -1
- package/dist/drafts/draft10/session.d.ts +0 -5
- package/dist/drafts/draft10/session.d.ts.map +0 -1
- package/dist/drafts/draft10/session.js +0 -5
- package/dist/drafts/draft10/session.js.map +0 -1
- package/dist/drafts/draft10/types.d.ts +0 -268
- package/dist/drafts/draft10/types.d.ts.map +0 -1
- package/dist/drafts/draft10/types.js +0 -4
- package/dist/drafts/draft10/types.js.map +0 -1
- package/dist/drafts/draft11/codec.d.ts +0 -25
- package/dist/drafts/draft11/codec.d.ts.map +0 -1
- package/dist/drafts/draft11/codec.js +0 -775
- package/dist/drafts/draft11/codec.js.map +0 -1
- package/dist/drafts/draft11/data-streams.d.ts +0 -10
- package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft11/data-streams.js +0 -253
- package/dist/drafts/draft11/data-streams.js.map +0 -1
- package/dist/drafts/draft11/index.d.ts +0 -9
- package/dist/drafts/draft11/index.d.ts.map +0 -1
- package/dist/drafts/draft11/index.js +0 -7
- package/dist/drafts/draft11/index.js.map +0 -1
- package/dist/drafts/draft11/messages.d.ts +0 -33
- package/dist/drafts/draft11/messages.d.ts.map +0 -1
- package/dist/drafts/draft11/messages.js +0 -65
- package/dist/drafts/draft11/messages.js.map +0 -1
- package/dist/drafts/draft11/rules.d.ts +0 -8
- package/dist/drafts/draft11/rules.d.ts.map +0 -1
- package/dist/drafts/draft11/rules.js +0 -88
- package/dist/drafts/draft11/rules.js.map +0 -1
- package/dist/drafts/draft11/session-fsm.d.ts +0 -52
- package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft11/session-fsm.js +0 -530
- package/dist/drafts/draft11/session-fsm.js.map +0 -1
- package/dist/drafts/draft11/session.d.ts +0 -5
- package/dist/drafts/draft11/session.d.ts.map +0 -1
- package/dist/drafts/draft11/session.js +0 -5
- package/dist/drafts/draft11/session.js.map +0 -1
- package/dist/drafts/draft11/types.d.ts +0 -266
- package/dist/drafts/draft11/types.d.ts.map +0 -1
- package/dist/drafts/draft11/types.js +0 -4
- package/dist/drafts/draft11/types.js.map +0 -1
- package/dist/drafts/draft12/codec.d.ts +0 -27
- package/dist/drafts/draft12/codec.d.ts.map +0 -1
- package/dist/drafts/draft12/codec.js +0 -918
- package/dist/drafts/draft12/codec.js.map +0 -1
- package/dist/drafts/draft12/data-streams.d.ts +0 -10
- package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft12/data-streams.js +0 -254
- package/dist/drafts/draft12/data-streams.js.map +0 -1
- package/dist/drafts/draft12/index.d.ts +0 -9
- package/dist/drafts/draft12/index.d.ts.map +0 -1
- package/dist/drafts/draft12/index.js +0 -7
- package/dist/drafts/draft12/index.js.map +0 -1
- package/dist/drafts/draft12/messages.d.ts +0 -37
- package/dist/drafts/draft12/messages.d.ts.map +0 -1
- package/dist/drafts/draft12/messages.js +0 -77
- package/dist/drafts/draft12/messages.js.map +0 -1
- package/dist/drafts/draft12/rules.d.ts +0 -8
- package/dist/drafts/draft12/rules.d.ts.map +0 -1
- package/dist/drafts/draft12/rules.js +0 -94
- package/dist/drafts/draft12/rules.js.map +0 -1
- package/dist/drafts/draft12/session-fsm.d.ts +0 -55
- package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft12/session-fsm.js +0 -569
- package/dist/drafts/draft12/session-fsm.js.map +0 -1
- package/dist/drafts/draft12/session.d.ts +0 -5
- package/dist/drafts/draft12/session.d.ts.map +0 -1
- package/dist/drafts/draft12/session.js +0 -5
- package/dist/drafts/draft12/session.js.map +0 -1
- package/dist/drafts/draft12/types.d.ts +0 -294
- package/dist/drafts/draft12/types.d.ts.map +0 -1
- package/dist/drafts/draft12/types.js +0 -4
- package/dist/drafts/draft12/types.js.map +0 -1
- package/dist/drafts/draft13/codec.d.ts +0 -27
- package/dist/drafts/draft13/codec.d.ts.map +0 -1
- package/dist/drafts/draft13/codec.js +0 -1000
- package/dist/drafts/draft13/codec.js.map +0 -1
- package/dist/drafts/draft13/data-streams.d.ts +0 -10
- package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft13/data-streams.js +0 -254
- package/dist/drafts/draft13/data-streams.js.map +0 -1
- package/dist/drafts/draft13/index.d.ts +0 -9
- package/dist/drafts/draft13/index.d.ts.map +0 -1
- package/dist/drafts/draft13/index.js +0 -7
- package/dist/drafts/draft13/index.js.map +0 -1
- package/dist/drafts/draft13/messages.d.ts +0 -38
- package/dist/drafts/draft13/messages.d.ts.map +0 -1
- package/dist/drafts/draft13/messages.js +0 -79
- package/dist/drafts/draft13/messages.js.map +0 -1
- package/dist/drafts/draft13/rules.d.ts +0 -8
- package/dist/drafts/draft13/rules.d.ts.map +0 -1
- package/dist/drafts/draft13/rules.js +0 -96
- package/dist/drafts/draft13/rules.js.map +0 -1
- package/dist/drafts/draft13/session-fsm.d.ts +0 -56
- package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft13/session-fsm.js +0 -581
- package/dist/drafts/draft13/session-fsm.js.map +0 -1
- package/dist/drafts/draft13/session.d.ts +0 -5
- package/dist/drafts/draft13/session.d.ts.map +0 -1
- package/dist/drafts/draft13/session.js +0 -5
- package/dist/drafts/draft13/session.js.map +0 -1
- package/dist/drafts/draft13/types.d.ts +0 -310
- package/dist/drafts/draft13/types.d.ts.map +0 -1
- package/dist/drafts/draft13/types.js +0 -4
- package/dist/drafts/draft13/types.js.map +0 -1
- package/dist/drafts/draft14/codec.d.ts.map +0 -1
- package/dist/drafts/draft14/codec.js +0 -752
- package/dist/drafts/draft14/codec.js.map +0 -1
- package/dist/drafts/draft14/data-streams.d.ts +0 -56
- package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft14/data-streams.js +0 -729
- package/dist/drafts/draft14/data-streams.js.map +0 -1
- package/dist/drafts/draft14/index.d.ts +0 -9
- package/dist/drafts/draft14/index.d.ts.map +0 -1
- package/dist/drafts/draft14/index.js +0 -7
- package/dist/drafts/draft14/index.js.map +0 -1
- package/dist/drafts/draft14/messages.d.ts +0 -36
- package/dist/drafts/draft14/messages.d.ts.map +0 -1
- package/dist/drafts/draft14/messages.js +0 -71
- package/dist/drafts/draft14/messages.js.map +0 -1
- package/dist/drafts/draft14/rules.d.ts +0 -8
- package/dist/drafts/draft14/rules.d.ts.map +0 -1
- package/dist/drafts/draft14/rules.js +0 -101
- package/dist/drafts/draft14/rules.js.map +0 -1
- package/dist/drafts/draft14/session-fsm.d.ts +0 -58
- package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft14/session-fsm.js +0 -648
- package/dist/drafts/draft14/session-fsm.js.map +0 -1
- package/dist/drafts/draft14/session.d.ts +0 -5
- package/dist/drafts/draft14/session.d.ts.map +0 -1
- package/dist/drafts/draft14/session.js +0 -5
- package/dist/drafts/draft14/session.js.map +0 -1
- package/dist/drafts/draft14/types.d.ts +0 -263
- package/dist/drafts/draft14/types.d.ts.map +0 -1
- package/dist/drafts/draft14/types.js +0 -4
- package/dist/drafts/draft14/types.js.map +0 -1
- package/dist/drafts/draft15/codec.d.ts.map +0 -1
- package/dist/drafts/draft15/codec.js +0 -742
- package/dist/drafts/draft15/codec.js.map +0 -1
- package/dist/drafts/draft15/data-streams.d.ts +0 -45
- package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft15/data-streams.js +0 -675
- package/dist/drafts/draft15/data-streams.js.map +0 -1
- package/dist/drafts/draft15/index.d.ts +0 -9
- package/dist/drafts/draft15/index.d.ts.map +0 -1
- package/dist/drafts/draft15/index.js +0 -7
- package/dist/drafts/draft15/index.js.map +0 -1
- package/dist/drafts/draft15/messages.d.ts +0 -31
- package/dist/drafts/draft15/messages.d.ts.map +0 -1
- package/dist/drafts/draft15/messages.js +0 -59
- package/dist/drafts/draft15/messages.js.map +0 -1
- package/dist/drafts/draft15/rules.d.ts +0 -8
- package/dist/drafts/draft15/rules.d.ts.map +0 -1
- package/dist/drafts/draft15/rules.js +0 -83
- package/dist/drafts/draft15/rules.js.map +0 -1
- package/dist/drafts/draft15/session-fsm.d.ts +0 -48
- package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft15/session-fsm.js +0 -479
- package/dist/drafts/draft15/session-fsm.js.map +0 -1
- package/dist/drafts/draft15/session.d.ts +0 -5
- package/dist/drafts/draft15/session.d.ts.map +0 -1
- package/dist/drafts/draft15/session.js +0 -5
- package/dist/drafts/draft15/session.js.map +0 -1
- package/dist/drafts/draft15/types.d.ts +0 -232
- package/dist/drafts/draft15/types.d.ts.map +0 -1
- package/dist/drafts/draft15/types.js +0 -4
- package/dist/drafts/draft15/types.js.map +0 -1
- package/dist/drafts/draft16/codec.d.ts +0 -29
- package/dist/drafts/draft16/codec.d.ts.map +0 -1
- package/dist/drafts/draft16/codec.js +0 -747
- package/dist/drafts/draft16/codec.js.map +0 -1
- package/dist/drafts/draft16/data-streams.d.ts +0 -34
- package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft16/data-streams.js +0 -667
- package/dist/drafts/draft16/data-streams.js.map +0 -1
- package/dist/drafts/draft16/index.d.ts +0 -9
- package/dist/drafts/draft16/index.d.ts.map +0 -1
- package/dist/drafts/draft16/index.js +0 -7
- package/dist/drafts/draft16/index.js.map +0 -1
- package/dist/drafts/draft16/messages.d.ts +0 -32
- package/dist/drafts/draft16/messages.d.ts.map +0 -1
- package/dist/drafts/draft16/messages.js +0 -62
- package/dist/drafts/draft16/messages.js.map +0 -1
- package/dist/drafts/draft16/rules.d.ts +0 -8
- package/dist/drafts/draft16/rules.d.ts.map +0 -1
- package/dist/drafts/draft16/rules.js +0 -84
- package/dist/drafts/draft16/rules.js.map +0 -1
- package/dist/drafts/draft16/session-fsm.d.ts +0 -48
- package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft16/session-fsm.js +0 -474
- package/dist/drafts/draft16/session-fsm.js.map +0 -1
- package/dist/drafts/draft16/session.d.ts +0 -5
- package/dist/drafts/draft16/session.d.ts.map +0 -1
- package/dist/drafts/draft16/session.js +0 -5
- package/dist/drafts/draft16/session.js.map +0 -1
- package/dist/drafts/draft16/types.d.ts +0 -238
- package/dist/drafts/draft16/types.d.ts.map +0 -1
- package/dist/drafts/draft16/types.js +0 -4
- package/dist/drafts/draft16/types.js.map +0 -1
- package/dist/drafts/draft17/codec.d.ts +0 -29
- package/dist/drafts/draft17/codec.d.ts.map +0 -1
- package/dist/drafts/draft17/codec.js +0 -799
- package/dist/drafts/draft17/codec.js.map +0 -1
- package/dist/drafts/draft17/data-streams.d.ts +0 -13
- package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
- package/dist/drafts/draft17/data-streams.js +0 -633
- package/dist/drafts/draft17/data-streams.js.map +0 -1
- package/dist/drafts/draft17/index.d.ts +0 -8
- package/dist/drafts/draft17/index.d.ts.map +0 -1
- package/dist/drafts/draft17/index.js +0 -6
- package/dist/drafts/draft17/index.js.map +0 -1
- package/dist/drafts/draft17/messages.d.ts +0 -25
- package/dist/drafts/draft17/messages.d.ts.map +0 -1
- package/dist/drafts/draft17/messages.js +0 -48
- package/dist/drafts/draft17/messages.js.map +0 -1
- package/dist/drafts/draft17/rules.d.ts +0 -8
- package/dist/drafts/draft17/rules.d.ts.map +0 -1
- package/dist/drafts/draft17/rules.js +0 -71
- package/dist/drafts/draft17/rules.js.map +0 -1
- package/dist/drafts/draft17/session-fsm.d.ts +0 -45
- package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
- package/dist/drafts/draft17/session-fsm.js +0 -328
- package/dist/drafts/draft17/session-fsm.js.map +0 -1
- package/dist/drafts/draft17/session.d.ts +0 -5
- package/dist/drafts/draft17/session.d.ts.map +0 -1
- package/dist/drafts/draft17/session.js +0 -6
- package/dist/drafts/draft17/session.js.map +0 -1
- package/dist/drafts/draft17/types.d.ts +0 -219
- package/dist/drafts/draft17/types.d.ts.map +0 -1
- package/dist/drafts/draft17/types.js +0 -3
- package/dist/drafts/draft17/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
|
@@ -1,729 +0,0 @@
|
|
|
1
|
-
import { BufferReader } from "../../core/buffer-reader.js";
|
|
2
|
-
import { BufferWriter } from "../../core/buffer-writer.js";
|
|
3
|
-
import { DecodeError } from "../../core/types.js";
|
|
4
|
-
// ─── Data Stream Constants ────────────────────────────────────────────────────
|
|
5
|
-
const FETCH_STREAM_TYPE = 0x05n;
|
|
6
|
-
// Valid subgroup stream types: 0x10-0x1D (12 types)
|
|
7
|
-
// Bit 0: extensions present
|
|
8
|
-
// Bit 1: subgroup-id mode (0=zero or first-object-id, with bit 2)
|
|
9
|
-
// Bit 2: subgroup-id field present (when set, explicit subgroup ID)
|
|
10
|
-
// Bit 3: end-of-group
|
|
11
|
-
function isValidSubgroupType(t) {
|
|
12
|
-
// 12 defined types: 0x10-0x15, 0x18-0x1D
|
|
13
|
-
return (t >= 0x10 && t <= 0x15) || (t >= 0x18 && t <= 0x1d);
|
|
14
|
-
}
|
|
15
|
-
// ─── Data Stream Encoding/Decoding ─────────────────────────────────────────────
|
|
16
|
-
/**
|
|
17
|
-
* Compute the subgroup stream type byte from header properties.
|
|
18
|
-
*/
|
|
19
|
-
function computeSubgroupType(opts) {
|
|
20
|
-
let t = 0x10;
|
|
21
|
-
if (opts.extensionsPresent)
|
|
22
|
-
t |= 0x01;
|
|
23
|
-
if (opts.subgroupIsFirstObjId)
|
|
24
|
-
t |= 0x02;
|
|
25
|
-
if (opts.hasSubgroupField)
|
|
26
|
-
t |= 0x04;
|
|
27
|
-
if (opts.endOfGroup)
|
|
28
|
-
t |= 0x08;
|
|
29
|
-
return t;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Encode a subgroup stream header + objects.
|
|
33
|
-
* Uses delta-encoded Object IDs per draft-14 §10.4.2.
|
|
34
|
-
*/
|
|
35
|
-
export function encodeSubgroupStream(stream) {
|
|
36
|
-
const w = new BufferWriter();
|
|
37
|
-
w.writeVarInt(BigInt(stream.headerType));
|
|
38
|
-
w.writeVarInt(stream.trackAlias);
|
|
39
|
-
w.writeVarInt(stream.groupId);
|
|
40
|
-
const hasSubgroupField = (stream.headerType & 0x04) !== 0;
|
|
41
|
-
const extensionsPresent = (stream.headerType & 0x01) !== 0;
|
|
42
|
-
if (hasSubgroupField) {
|
|
43
|
-
w.writeVarInt(stream.subgroupId);
|
|
44
|
-
}
|
|
45
|
-
w.writeUint8(stream.publisherPriority);
|
|
46
|
-
let prevObjectId = -1n;
|
|
47
|
-
let first = true;
|
|
48
|
-
for (const obj of stream.objects) {
|
|
49
|
-
// Delta encoding: first object delta IS the object ID,
|
|
50
|
-
// subsequent deltas: objectId - prevObjectId - 1
|
|
51
|
-
const delta = first ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
52
|
-
w.writeVarInt(delta);
|
|
53
|
-
first = false;
|
|
54
|
-
prevObjectId = obj.objectId;
|
|
55
|
-
// Extension headers
|
|
56
|
-
if (extensionsPresent) {
|
|
57
|
-
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
58
|
-
if (obj.extensionData.length > 0)
|
|
59
|
-
w.writeBytes(obj.extensionData);
|
|
60
|
-
}
|
|
61
|
-
if (obj.payloadLength === 0) {
|
|
62
|
-
w.writeVarInt(0);
|
|
63
|
-
w.writeVarInt(obj.status ?? 0n);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
w.writeVarInt(obj.payloadLength);
|
|
67
|
-
w.writeBytes(obj.payload);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return w.finish();
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Encode a datagram object.
|
|
74
|
-
* Draft-14 datagram types: 0x00-0x07, 0x20-0x21.
|
|
75
|
-
*/
|
|
76
|
-
export function encodeDatagram(dg) {
|
|
77
|
-
const w = new BufferWriter();
|
|
78
|
-
w.writeVarInt(BigInt(dg.datagramType));
|
|
79
|
-
w.writeVarInt(dg.trackAlias);
|
|
80
|
-
w.writeVarInt(dg.groupId);
|
|
81
|
-
const objectIdPresent = (dg.datagramType & 0x04) === 0;
|
|
82
|
-
const isStatus = dg.datagramType >= 0x20;
|
|
83
|
-
const extensionsPresent = (dg.datagramType & 0x01) !== 0;
|
|
84
|
-
if (objectIdPresent) {
|
|
85
|
-
w.writeVarInt(dg.objectId);
|
|
86
|
-
}
|
|
87
|
-
w.writeUint8(dg.publisherPriority);
|
|
88
|
-
if (extensionsPresent) {
|
|
89
|
-
w.writeVarInt(0); // extension headers length = 0
|
|
90
|
-
}
|
|
91
|
-
if (isStatus) {
|
|
92
|
-
w.writeVarInt(dg.objectStatus ?? 0n);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
w.writeBytes(dg.payload);
|
|
96
|
-
}
|
|
97
|
-
return w.finish();
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Encode a fetch stream header + objects.
|
|
101
|
-
* Draft-14 fetch: type 0x05, then per-object: GroupID, SubgroupID, ObjectID,
|
|
102
|
-
* PublisherPriority(8), ExtensionHeadersLength, [Extensions], PayloadLength,
|
|
103
|
-
* [ObjectStatus], Payload.
|
|
104
|
-
*/
|
|
105
|
-
export function encodeFetchStream(stream) {
|
|
106
|
-
const w = new BufferWriter();
|
|
107
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
108
|
-
w.writeVarInt(stream.requestId);
|
|
109
|
-
for (const obj of stream.objects) {
|
|
110
|
-
w.writeVarInt(obj.groupId);
|
|
111
|
-
w.writeVarInt(obj.subgroupId);
|
|
112
|
-
w.writeVarInt(obj.objectId);
|
|
113
|
-
w.writeUint8(obj.publisherPriority);
|
|
114
|
-
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
115
|
-
if (obj.extensionData.length > 0)
|
|
116
|
-
w.writeBytes(obj.extensionData);
|
|
117
|
-
if (obj.payloadLength === 0) {
|
|
118
|
-
w.writeVarInt(0);
|
|
119
|
-
w.writeVarInt(obj.status ?? 0n);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
w.writeVarInt(obj.payloadLength);
|
|
123
|
-
w.writeBytes(obj.payload);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return w.finish();
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Decode a subgroup data stream from raw bytes.
|
|
130
|
-
* Accepts types 0x10-0x15 and 0x18-0x1D. Delta-decodes Object IDs.
|
|
131
|
-
*/
|
|
132
|
-
export function decodeSubgroupStream(bytes) {
|
|
133
|
-
try {
|
|
134
|
-
const r = new BufferReader(bytes);
|
|
135
|
-
const streamType = Number(r.readVarInt());
|
|
136
|
-
if (!isValidSubgroupType(streamType)) {
|
|
137
|
-
return {
|
|
138
|
-
ok: false,
|
|
139
|
-
error: new DecodeError("CONSTRAINT_VIOLATION", `Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`, 0),
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
// Decode type flags
|
|
143
|
-
const extensionsPresent = (streamType & 0x01) !== 0;
|
|
144
|
-
const hasSubgroupField = (streamType & 0x04) !== 0;
|
|
145
|
-
const subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField;
|
|
146
|
-
const trackAlias = r.readVarInt();
|
|
147
|
-
const groupId = r.readVarInt();
|
|
148
|
-
let subgroupId = 0n;
|
|
149
|
-
if (hasSubgroupField) {
|
|
150
|
-
subgroupId = r.readVarInt();
|
|
151
|
-
}
|
|
152
|
-
const publisherPriority = r.readUint8();
|
|
153
|
-
const objects = [];
|
|
154
|
-
let prevObjectId = -1n;
|
|
155
|
-
let firstObject = true;
|
|
156
|
-
while (r.remaining > 0) {
|
|
157
|
-
const byteOffset = r.offset;
|
|
158
|
-
const delta = r.readVarInt();
|
|
159
|
-
let objectId;
|
|
160
|
-
if (firstObject) {
|
|
161
|
-
objectId = delta;
|
|
162
|
-
if (subgroupIsFirstObjId) {
|
|
163
|
-
subgroupId = objectId;
|
|
164
|
-
}
|
|
165
|
-
firstObject = false;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
objectId = prevObjectId + 1n + delta;
|
|
169
|
-
}
|
|
170
|
-
// Read extension headers if type indicates they're present
|
|
171
|
-
let extensionData = new Uint8Array(0);
|
|
172
|
-
if (extensionsPresent) {
|
|
173
|
-
const extLen = Number(r.readVarInt());
|
|
174
|
-
extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
175
|
-
}
|
|
176
|
-
const payloadLength = Number(r.readVarInt());
|
|
177
|
-
let payload;
|
|
178
|
-
let status;
|
|
179
|
-
let payloadByteOffset;
|
|
180
|
-
if (payloadLength === 0) {
|
|
181
|
-
status = r.readVarInt();
|
|
182
|
-
payloadByteOffset = r.offset;
|
|
183
|
-
payload = new Uint8Array(0);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
payloadByteOffset = r.offset;
|
|
187
|
-
payload = r.readBytes(payloadLength);
|
|
188
|
-
}
|
|
189
|
-
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
190
|
-
if (status !== undefined)
|
|
191
|
-
obj.status = status;
|
|
192
|
-
objects.push(obj);
|
|
193
|
-
prevObjectId = objectId;
|
|
194
|
-
}
|
|
195
|
-
return {
|
|
196
|
-
ok: true,
|
|
197
|
-
value: {
|
|
198
|
-
type: "subgroup",
|
|
199
|
-
headerType: streamType,
|
|
200
|
-
trackAlias,
|
|
201
|
-
groupId,
|
|
202
|
-
subgroupId,
|
|
203
|
-
publisherPriority,
|
|
204
|
-
objects,
|
|
205
|
-
},
|
|
206
|
-
bytesRead: r.offset,
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
catch (e) {
|
|
210
|
-
if (e instanceof DecodeError)
|
|
211
|
-
return { ok: false, error: e };
|
|
212
|
-
throw e;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Decode a datagram object from raw bytes.
|
|
217
|
-
* Accepts types 0x00-0x07 and 0x20-0x21.
|
|
218
|
-
*/
|
|
219
|
-
export function decodeDatagram(bytes) {
|
|
220
|
-
try {
|
|
221
|
-
const r = new BufferReader(bytes);
|
|
222
|
-
const dgType = Number(r.readVarInt());
|
|
223
|
-
// Validate datagram type
|
|
224
|
-
const validDatagram = (dgType >= 0x00 && dgType <= 0x07) || dgType === 0x20 || dgType === 0x21;
|
|
225
|
-
if (!validDatagram) {
|
|
226
|
-
return {
|
|
227
|
-
ok: false,
|
|
228
|
-
error: new DecodeError("CONSTRAINT_VIOLATION", `Expected datagram type 0x00-0x07 or 0x20-0x21, got 0x${dgType.toString(16)}`, 0),
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
const objectIdPresent = (dgType & 0x04) === 0;
|
|
232
|
-
const endOfGroup = (dgType & 0x02) !== 0;
|
|
233
|
-
const extensionsPresent = (dgType & 0x01) !== 0;
|
|
234
|
-
const isStatus = dgType >= 0x20;
|
|
235
|
-
const trackAlias = r.readVarInt();
|
|
236
|
-
const groupId = r.readVarInt();
|
|
237
|
-
let objectId = 0n;
|
|
238
|
-
if (objectIdPresent) {
|
|
239
|
-
objectId = r.readVarInt();
|
|
240
|
-
}
|
|
241
|
-
const publisherPriority = r.readUint8();
|
|
242
|
-
if (extensionsPresent) {
|
|
243
|
-
const extLen = Number(r.readVarInt());
|
|
244
|
-
if (extLen > 0) {
|
|
245
|
-
r.readBytes(extLen); // skip extension data
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
let objectStatus;
|
|
249
|
-
let payload;
|
|
250
|
-
if (isStatus) {
|
|
251
|
-
objectStatus = r.readVarInt();
|
|
252
|
-
payload = new Uint8Array(0);
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
payload = r.readBytes(r.remaining);
|
|
256
|
-
}
|
|
257
|
-
const payloadLength = payload.byteLength;
|
|
258
|
-
const result = {
|
|
259
|
-
type: "datagram",
|
|
260
|
-
datagramType: dgType,
|
|
261
|
-
trackAlias,
|
|
262
|
-
groupId,
|
|
263
|
-
objectId,
|
|
264
|
-
publisherPriority,
|
|
265
|
-
payloadLength,
|
|
266
|
-
payload,
|
|
267
|
-
};
|
|
268
|
-
if (endOfGroup)
|
|
269
|
-
result.endOfGroup = true;
|
|
270
|
-
if (objectStatus !== undefined)
|
|
271
|
-
result.objectStatus = objectStatus;
|
|
272
|
-
return { ok: true, value: result, bytesRead: r.offset };
|
|
273
|
-
}
|
|
274
|
-
catch (e) {
|
|
275
|
-
if (e instanceof DecodeError)
|
|
276
|
-
return { ok: false, error: e };
|
|
277
|
-
throw e;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Decode a fetch data stream from raw bytes.
|
|
282
|
-
* Draft-14 fetch: type 0x05, per-object has all fields (no serialization flags).
|
|
283
|
-
*/
|
|
284
|
-
export function decodeFetchStream(bytes) {
|
|
285
|
-
try {
|
|
286
|
-
const r = new BufferReader(bytes);
|
|
287
|
-
const streamType = r.readVarInt();
|
|
288
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
289
|
-
return {
|
|
290
|
-
ok: false,
|
|
291
|
-
error: new DecodeError("CONSTRAINT_VIOLATION", `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`, 0),
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
const requestId = r.readVarInt();
|
|
295
|
-
const objects = [];
|
|
296
|
-
while (r.remaining > 0) {
|
|
297
|
-
const byteOffset = r.offset;
|
|
298
|
-
const groupId = r.readVarInt();
|
|
299
|
-
const subgroupId = r.readVarInt();
|
|
300
|
-
const objectId = r.readVarInt();
|
|
301
|
-
const publisherPriority = r.readUint8();
|
|
302
|
-
// Extension headers
|
|
303
|
-
const extLen = Number(r.readVarInt());
|
|
304
|
-
const extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
305
|
-
const payloadLength = Number(r.readVarInt());
|
|
306
|
-
let payload;
|
|
307
|
-
let status;
|
|
308
|
-
let payloadByteOffset;
|
|
309
|
-
if (payloadLength === 0) {
|
|
310
|
-
status = r.readVarInt();
|
|
311
|
-
payloadByteOffset = r.offset;
|
|
312
|
-
payload = new Uint8Array(0);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
payloadByteOffset = r.offset;
|
|
316
|
-
payload = r.readBytes(payloadLength);
|
|
317
|
-
}
|
|
318
|
-
const obj = {
|
|
319
|
-
type: "object",
|
|
320
|
-
byteOffset,
|
|
321
|
-
payloadByteOffset,
|
|
322
|
-
groupId,
|
|
323
|
-
subgroupId,
|
|
324
|
-
objectId,
|
|
325
|
-
publisherPriority,
|
|
326
|
-
payloadLength,
|
|
327
|
-
payload,
|
|
328
|
-
extensionData,
|
|
329
|
-
};
|
|
330
|
-
if (status !== undefined)
|
|
331
|
-
obj.status = status;
|
|
332
|
-
objects.push(obj);
|
|
333
|
-
}
|
|
334
|
-
return {
|
|
335
|
-
ok: true,
|
|
336
|
-
value: { type: "fetch", requestId, objects },
|
|
337
|
-
bytesRead: r.offset,
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
|
-
catch (e) {
|
|
341
|
-
if (e instanceof DecodeError)
|
|
342
|
-
return { ok: false, error: e };
|
|
343
|
-
throw e;
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Decode a data stream, dispatching by stream type.
|
|
348
|
-
*/
|
|
349
|
-
export function decodeDataStream(streamType, bytes) {
|
|
350
|
-
switch (streamType) {
|
|
351
|
-
case "subgroup":
|
|
352
|
-
return decodeSubgroupStream(bytes);
|
|
353
|
-
case "datagram":
|
|
354
|
-
return decodeDatagram(bytes);
|
|
355
|
-
case "fetch":
|
|
356
|
-
return decodeFetchStream(bytes);
|
|
357
|
-
default: {
|
|
358
|
-
const _exhaustive = streamType;
|
|
359
|
-
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
// ─── Data Stream Decoders ──────────────────────────────────────────────────────
|
|
364
|
-
/**
|
|
365
|
-
* Create a TransformStream that decodes a subgroup data stream.
|
|
366
|
-
* First emits a SubgroupStreamHeader, then emits ObjectPayload events.
|
|
367
|
-
* Accepts types 0x10-0x1D. Delta-decodes Object IDs.
|
|
368
|
-
*/
|
|
369
|
-
export function createSubgroupStreamDecoder() {
|
|
370
|
-
let buffer = new Uint8Array(0);
|
|
371
|
-
let headerEmitted = false;
|
|
372
|
-
let extensionsPresent = false;
|
|
373
|
-
let prevObjectId = -1n;
|
|
374
|
-
let firstObject = true;
|
|
375
|
-
return new TransformStream({
|
|
376
|
-
transform(chunk, controller) {
|
|
377
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
378
|
-
newBuffer.set(buffer, 0);
|
|
379
|
-
newBuffer.set(chunk, buffer.length);
|
|
380
|
-
buffer = newBuffer;
|
|
381
|
-
if (!headerEmitted) {
|
|
382
|
-
try {
|
|
383
|
-
const r = new BufferReader(buffer);
|
|
384
|
-
const streamType = Number(r.readVarInt());
|
|
385
|
-
if (!isValidSubgroupType(streamType)) {
|
|
386
|
-
controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`, 0));
|
|
387
|
-
return;
|
|
388
|
-
}
|
|
389
|
-
extensionsPresent = (streamType & 0x01) !== 0;
|
|
390
|
-
const hasSubgroupField = (streamType & 0x04) !== 0;
|
|
391
|
-
const trackAlias = r.readVarInt();
|
|
392
|
-
const groupId = r.readVarInt();
|
|
393
|
-
let subgroupId = 0n;
|
|
394
|
-
if (hasSubgroupField) {
|
|
395
|
-
subgroupId = r.readVarInt();
|
|
396
|
-
}
|
|
397
|
-
const publisherPriority = r.readUint8();
|
|
398
|
-
controller.enqueue({
|
|
399
|
-
type: "subgroup_header",
|
|
400
|
-
headerType: streamType,
|
|
401
|
-
trackAlias,
|
|
402
|
-
groupId,
|
|
403
|
-
subgroupId,
|
|
404
|
-
publisherPriority,
|
|
405
|
-
});
|
|
406
|
-
headerEmitted = true;
|
|
407
|
-
buffer = buffer.slice(r.offset);
|
|
408
|
-
}
|
|
409
|
-
catch (e) {
|
|
410
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
controller.error(e);
|
|
414
|
-
return;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
while (buffer.length > 0) {
|
|
418
|
-
try {
|
|
419
|
-
const r = new BufferReader(buffer);
|
|
420
|
-
const byteOffset = r.offset;
|
|
421
|
-
const delta = r.readVarInt();
|
|
422
|
-
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
423
|
-
firstObject = false;
|
|
424
|
-
let extensionData = new Uint8Array(0);
|
|
425
|
-
if (extensionsPresent) {
|
|
426
|
-
const extLen = Number(r.readVarInt());
|
|
427
|
-
extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
428
|
-
}
|
|
429
|
-
const payloadLength = Number(r.readVarInt());
|
|
430
|
-
let payload;
|
|
431
|
-
let status;
|
|
432
|
-
let payloadByteOffset;
|
|
433
|
-
if (payloadLength === 0) {
|
|
434
|
-
status = r.readVarInt();
|
|
435
|
-
payloadByteOffset = r.offset;
|
|
436
|
-
payload = new Uint8Array(0);
|
|
437
|
-
}
|
|
438
|
-
else {
|
|
439
|
-
payloadByteOffset = r.offset;
|
|
440
|
-
payload = r.readBytes(payloadLength);
|
|
441
|
-
}
|
|
442
|
-
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
443
|
-
if (status !== undefined)
|
|
444
|
-
obj.status = status;
|
|
445
|
-
controller.enqueue(obj);
|
|
446
|
-
prevObjectId = objectId;
|
|
447
|
-
buffer = buffer.slice(r.offset);
|
|
448
|
-
}
|
|
449
|
-
catch (e) {
|
|
450
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
451
|
-
break;
|
|
452
|
-
}
|
|
453
|
-
controller.error(e);
|
|
454
|
-
return;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
flush(controller) {
|
|
459
|
-
if (buffer.length > 0) {
|
|
460
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
461
|
-
}
|
|
462
|
-
},
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
/**
|
|
466
|
-
* Create a TransformStream that decodes a fetch data stream.
|
|
467
|
-
* First emits a FetchStreamHeader, then emits FetchObjectPayload events.
|
|
468
|
-
* Draft-14 fetch: type 0x05, per-object has all fields.
|
|
469
|
-
*/
|
|
470
|
-
export function createFetchStreamDecoder() {
|
|
471
|
-
let buffer = new Uint8Array(0);
|
|
472
|
-
let headerEmitted = false;
|
|
473
|
-
return new TransformStream({
|
|
474
|
-
transform(chunk, controller) {
|
|
475
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
476
|
-
newBuffer.set(buffer, 0);
|
|
477
|
-
newBuffer.set(chunk, buffer.length);
|
|
478
|
-
buffer = newBuffer;
|
|
479
|
-
if (!headerEmitted) {
|
|
480
|
-
try {
|
|
481
|
-
const r = new BufferReader(buffer);
|
|
482
|
-
const streamType = r.readVarInt();
|
|
483
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
484
|
-
controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`, 0));
|
|
485
|
-
return;
|
|
486
|
-
}
|
|
487
|
-
const requestId = r.readVarInt();
|
|
488
|
-
controller.enqueue({ type: "fetch_header", requestId });
|
|
489
|
-
headerEmitted = true;
|
|
490
|
-
buffer = buffer.slice(r.offset);
|
|
491
|
-
}
|
|
492
|
-
catch (e) {
|
|
493
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
494
|
-
return;
|
|
495
|
-
}
|
|
496
|
-
controller.error(e);
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
while (buffer.length > 0) {
|
|
501
|
-
try {
|
|
502
|
-
const r = new BufferReader(buffer);
|
|
503
|
-
const byteOffset = r.offset;
|
|
504
|
-
const groupId = r.readVarInt();
|
|
505
|
-
const subgroupId = r.readVarInt();
|
|
506
|
-
const objectId = r.readVarInt();
|
|
507
|
-
const publisherPriority = r.readUint8();
|
|
508
|
-
const extLen = Number(r.readVarInt());
|
|
509
|
-
const extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
510
|
-
const payloadLength = Number(r.readVarInt());
|
|
511
|
-
let payload;
|
|
512
|
-
let status;
|
|
513
|
-
let payloadByteOffset;
|
|
514
|
-
if (payloadLength === 0) {
|
|
515
|
-
status = r.readVarInt();
|
|
516
|
-
payloadByteOffset = r.offset;
|
|
517
|
-
payload = new Uint8Array(0);
|
|
518
|
-
}
|
|
519
|
-
else {
|
|
520
|
-
payloadByteOffset = r.offset;
|
|
521
|
-
payload = r.readBytes(payloadLength);
|
|
522
|
-
}
|
|
523
|
-
const obj = {
|
|
524
|
-
type: "object",
|
|
525
|
-
byteOffset,
|
|
526
|
-
payloadByteOffset,
|
|
527
|
-
groupId,
|
|
528
|
-
subgroupId,
|
|
529
|
-
objectId,
|
|
530
|
-
publisherPriority,
|
|
531
|
-
payloadLength,
|
|
532
|
-
payload,
|
|
533
|
-
extensionData,
|
|
534
|
-
};
|
|
535
|
-
if (status !== undefined)
|
|
536
|
-
obj.status = status;
|
|
537
|
-
controller.enqueue(obj);
|
|
538
|
-
buffer = buffer.slice(r.offset);
|
|
539
|
-
}
|
|
540
|
-
catch (e) {
|
|
541
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
542
|
-
break;
|
|
543
|
-
}
|
|
544
|
-
controller.error(e);
|
|
545
|
-
return;
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
},
|
|
549
|
-
flush(controller) {
|
|
550
|
-
if (buffer.length > 0) {
|
|
551
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
552
|
-
}
|
|
553
|
-
},
|
|
554
|
-
});
|
|
555
|
-
}
|
|
556
|
-
/**
|
|
557
|
-
* Create a unified auto-detecting data stream decoder.
|
|
558
|
-
* Reads the stream type varint: 0x10-0x1D = subgroup, 0x05 = fetch.
|
|
559
|
-
*/
|
|
560
|
-
export function createDataStreamDecoder() {
|
|
561
|
-
let buffer = new Uint8Array(0);
|
|
562
|
-
let detectedType = null;
|
|
563
|
-
let headerEmitted = false;
|
|
564
|
-
let extensionsPresent = false;
|
|
565
|
-
let prevObjectId = -1n;
|
|
566
|
-
let firstObject = true;
|
|
567
|
-
return new TransformStream({
|
|
568
|
-
transform(chunk, controller) {
|
|
569
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
570
|
-
newBuffer.set(buffer, 0);
|
|
571
|
-
newBuffer.set(chunk, buffer.length);
|
|
572
|
-
buffer = newBuffer;
|
|
573
|
-
if (detectedType === null) {
|
|
574
|
-
try {
|
|
575
|
-
const r = new BufferReader(buffer);
|
|
576
|
-
const streamType = Number(r.readVarInt());
|
|
577
|
-
if (isValidSubgroupType(streamType)) {
|
|
578
|
-
detectedType = "subgroup";
|
|
579
|
-
}
|
|
580
|
-
else if (streamType === 0x05) {
|
|
581
|
-
detectedType = "fetch";
|
|
582
|
-
}
|
|
583
|
-
else {
|
|
584
|
-
controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Unknown data stream type: 0x${streamType.toString(16)}`, 0));
|
|
585
|
-
return;
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
catch (e) {
|
|
589
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
|
|
590
|
-
return;
|
|
591
|
-
}
|
|
592
|
-
controller.error(e);
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
if (detectedType === "subgroup") {
|
|
597
|
-
if (!headerEmitted) {
|
|
598
|
-
try {
|
|
599
|
-
const r = new BufferReader(buffer);
|
|
600
|
-
const streamType = Number(r.readVarInt());
|
|
601
|
-
extensionsPresent = (streamType & 0x01) !== 0;
|
|
602
|
-
const hasSubgroupField = (streamType & 0x04) !== 0;
|
|
603
|
-
const trackAlias = r.readVarInt();
|
|
604
|
-
const groupId = r.readVarInt();
|
|
605
|
-
let subgroupId = 0n;
|
|
606
|
-
if (hasSubgroupField)
|
|
607
|
-
subgroupId = r.readVarInt();
|
|
608
|
-
const publisherPriority = r.readUint8();
|
|
609
|
-
controller.enqueue({
|
|
610
|
-
type: "subgroup_header",
|
|
611
|
-
headerType: streamType,
|
|
612
|
-
trackAlias,
|
|
613
|
-
groupId,
|
|
614
|
-
subgroupId,
|
|
615
|
-
publisherPriority,
|
|
616
|
-
});
|
|
617
|
-
headerEmitted = true;
|
|
618
|
-
buffer = buffer.slice(r.offset);
|
|
619
|
-
}
|
|
620
|
-
catch (e) {
|
|
621
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END")
|
|
622
|
-
return;
|
|
623
|
-
controller.error(e);
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
while (buffer.length > 0) {
|
|
628
|
-
try {
|
|
629
|
-
const r = new BufferReader(buffer);
|
|
630
|
-
const byteOffset = r.offset;
|
|
631
|
-
const delta = r.readVarInt();
|
|
632
|
-
const objectId = firstObject ? delta : prevObjectId + 1n + delta;
|
|
633
|
-
firstObject = false;
|
|
634
|
-
let extensionData = new Uint8Array(0);
|
|
635
|
-
if (extensionsPresent) {
|
|
636
|
-
const extLen = Number(r.readVarInt());
|
|
637
|
-
extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
638
|
-
}
|
|
639
|
-
const payloadLength = Number(r.readVarInt());
|
|
640
|
-
let payload;
|
|
641
|
-
let status;
|
|
642
|
-
let payloadByteOffset;
|
|
643
|
-
if (payloadLength === 0) {
|
|
644
|
-
status = r.readVarInt();
|
|
645
|
-
payloadByteOffset = r.offset;
|
|
646
|
-
payload = new Uint8Array(0);
|
|
647
|
-
}
|
|
648
|
-
else {
|
|
649
|
-
payloadByteOffset = r.offset;
|
|
650
|
-
payload = r.readBytes(payloadLength);
|
|
651
|
-
}
|
|
652
|
-
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
653
|
-
if (status !== undefined)
|
|
654
|
-
obj.status = status;
|
|
655
|
-
controller.enqueue(obj);
|
|
656
|
-
prevObjectId = objectId;
|
|
657
|
-
buffer = buffer.slice(r.offset);
|
|
658
|
-
}
|
|
659
|
-
catch (e) {
|
|
660
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END")
|
|
661
|
-
break;
|
|
662
|
-
controller.error(e);
|
|
663
|
-
return;
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
else {
|
|
668
|
-
if (!headerEmitted) {
|
|
669
|
-
try {
|
|
670
|
-
const r = new BufferReader(buffer);
|
|
671
|
-
r.readVarInt(); // stream type (0x05)
|
|
672
|
-
const requestId = r.readVarInt();
|
|
673
|
-
controller.enqueue({ type: "fetch_header", requestId });
|
|
674
|
-
headerEmitted = true;
|
|
675
|
-
buffer = buffer.slice(r.offset);
|
|
676
|
-
}
|
|
677
|
-
catch (e) {
|
|
678
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END")
|
|
679
|
-
return;
|
|
680
|
-
controller.error(e);
|
|
681
|
-
return;
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
while (buffer.length > 0) {
|
|
685
|
-
try {
|
|
686
|
-
const r = new BufferReader(buffer);
|
|
687
|
-
const byteOffset = r.offset;
|
|
688
|
-
const groupId = r.readVarInt();
|
|
689
|
-
const subgroupId = r.readVarInt();
|
|
690
|
-
const objectId = r.readVarInt();
|
|
691
|
-
const publisherPriority = r.readUint8();
|
|
692
|
-
const extLen = Number(r.readVarInt());
|
|
693
|
-
const extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
|
|
694
|
-
const payloadLength = Number(r.readVarInt());
|
|
695
|
-
let payload;
|
|
696
|
-
let status;
|
|
697
|
-
let payloadByteOffset;
|
|
698
|
-
if (payloadLength === 0) {
|
|
699
|
-
status = r.readVarInt();
|
|
700
|
-
payloadByteOffset = r.offset;
|
|
701
|
-
payload = new Uint8Array(0);
|
|
702
|
-
}
|
|
703
|
-
else {
|
|
704
|
-
payloadByteOffset = r.offset;
|
|
705
|
-
payload = r.readBytes(payloadLength);
|
|
706
|
-
}
|
|
707
|
-
const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
|
|
708
|
-
if (status !== undefined)
|
|
709
|
-
obj.status = status;
|
|
710
|
-
controller.enqueue(obj);
|
|
711
|
-
buffer = buffer.slice(r.offset);
|
|
712
|
-
}
|
|
713
|
-
catch (e) {
|
|
714
|
-
if (e instanceof DecodeError && e.code === "UNEXPECTED_END")
|
|
715
|
-
break;
|
|
716
|
-
controller.error(e);
|
|
717
|
-
return;
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
},
|
|
722
|
-
flush(controller) {
|
|
723
|
-
if (buffer.length > 0) {
|
|
724
|
-
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
725
|
-
}
|
|
726
|
-
},
|
|
727
|
-
});
|
|
728
|
-
}
|
|
729
|
-
//# sourceMappingURL=data-streams.js.map
|