@moqtap/codec 0.2.2 → 0.3.0
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/LICENSE +21 -21
- package/README.md +100 -99
- package/dist/{chunk-RZHAPEXO.js → chunk-2A57DRXV.js} +36 -10
- package/dist/{chunk-PJRA2TQ5.js → chunk-2UTVXWFF.js} +388 -254
- package/dist/{chunk-IV2H5CFI.cjs → chunk-3XKO6PCR.cjs} +461 -322
- package/dist/{chunk-RVJAGE4S.cjs → chunk-4BDEU3D4.cjs} +415 -304
- package/dist/{chunk-XUUCOLWU.cjs → chunk-4HBKHNU2.cjs} +374 -329
- package/dist/{chunk-4RIXXEII.js → chunk-4IVZZOY3.js} +451 -312
- package/dist/{chunk-ZSPO2GF2.cjs → chunk-5O764MBD.cjs} +1320 -842
- package/dist/chunk-7KBAWOBA.js +1212 -0
- package/dist/{chunk-JSQM2MG3.js → chunk-7QOPNSDF.js} +44 -12
- package/dist/{chunk-SYHW3FLI.cjs → chunk-7RE6KSIY.cjs} +28 -8
- package/dist/{chunk-YG5KJESI.js → chunk-AY6IAHUM.js} +28 -8
- package/dist/{chunk-EFM5T7OM.js → chunk-BLQDWOSG.js} +36 -10
- package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
- package/dist/{chunk-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
- package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
- package/dist/{chunk-IV2HRJVT.js → chunk-GCBFHZW6.js} +405 -294
- package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
- package/dist/chunk-HZHSO7EW.cjs +1212 -0
- package/dist/{chunk-BPNL5YFQ.cjs → chunk-IILNSDEQ.cjs} +74 -46
- package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
- package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
- package/dist/{chunk-FWISIR26.cjs → chunk-JL3NEW3O.cjs} +47 -4
- package/dist/{chunk-G7GI7LJA.js → chunk-LORZMJJB.js} +36 -10
- package/dist/{chunk-DUBCL3WF.cjs → chunk-LV5C6MEC.cjs} +36 -10
- package/dist/{chunk-ENURAVHI.cjs → chunk-MYXAD5JC.cjs} +44 -12
- package/dist/{chunk-FXZ2MYKJ.js → chunk-MZ7HUCGJ.js} +20 -12
- package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
- package/dist/{chunk-G26SJ6XS.cjs → chunk-OKG2HT25.cjs} +1193 -928
- package/dist/{chunk-IBVM4DMJ.cjs → chunk-PKEOQSSZ.cjs} +374 -329
- package/dist/{chunk-LH4NTURO.js → chunk-Q46ZURKX.js} +989 -602
- package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
- package/dist/{chunk-ST24APEO.js → chunk-RW4UG7CN.js} +751 -682
- package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
- package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
- package/dist/{chunk-K4OLITS2.cjs → chunk-SDWRXXOO.cjs} +401 -267
- package/dist/{chunk-CXDHOMHG.js → chunk-SHMA4PBY.js} +476 -431
- package/dist/{chunk-U2B3B42P.js → chunk-U3ZVLT5L.js} +1176 -540
- package/dist/{chunk-HSVYF6XX.cjs → chunk-UJU63EFY.cjs} +1524 -1137
- package/dist/{chunk-A27S7HW7.js → chunk-VOU7PNHI.js} +47 -4
- package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
- package/dist/chunk-XNWYLVGU.cjs +1854 -0
- package/dist/{chunk-NUX5BHWO.js → chunk-XS77RBY7.js} +1160 -895
- package/dist/{chunk-4YJANAXU.cjs → chunk-XZE5R57R.cjs} +829 -760
- package/dist/{chunk-NGVE2RZT.js → chunk-Y6KCSM3V.js} +476 -431
- package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
- package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
- package/dist/{chunk-MFAP7R6L.js → chunk-Z3VKP3PJ.js} +70 -42
- package/dist/{chunk-ZBKE2QRQ.js → chunk-Z6U26IRI.js} +1107 -629
- package/dist/codec-25u4_1HS.d.ts +35 -0
- package/dist/codec-3Ppy_5Gd.d.ts +23 -0
- package/dist/codec-BB0U8MF2.d.cts +34 -0
- package/dist/codec-BHHfBTnV.d.ts +34 -0
- package/dist/codec-BN6jk0Td.d.cts +30 -0
- package/dist/codec-BU0gaSZm.d.ts +29 -0
- package/dist/codec-C-Yk2RNa.d.ts +30 -0
- package/dist/codec-CFWQY9Lj.d.cts +18 -0
- package/dist/codec-COy4uuPO.d.cts +29 -0
- package/dist/codec-CewFCsEy.d.ts +18 -0
- package/dist/codec-Ck7ZwFF1.d.cts +35 -0
- package/dist/codec-D2QVSH9D.d.ts +30 -0
- package/dist/codec-DDUBJGn0.d.cts +23 -0
- package/dist/codec-DNfml-se.d.ts +27 -0
- package/dist/codec-DoOGjjDq.d.cts +29 -0
- package/dist/codec-J7ekOSMc.d.ts +29 -0
- package/dist/codec-R9TJCq-E.d.cts +31 -0
- package/dist/codec-ZwV-Njt6.d.ts +23 -0
- package/dist/codec-j819z_hL.d.cts +23 -0
- package/dist/codec-w8z2j_uo.d.cts +27 -0
- package/dist/codec-wtt6WF1K.d.ts +31 -0
- package/dist/codec-z6_2PSzi.d.cts +30 -0
- package/dist/draft10-session.cjs +2 -2
- package/dist/draft10-session.d.cts +6 -6
- package/dist/draft10-session.d.ts +6 -6
- package/dist/draft10-session.js +1 -1
- package/dist/draft10.cjs +8 -4
- package/dist/draft10.d.cts +23 -11
- package/dist/draft10.d.ts +23 -11
- package/dist/draft10.js +16 -12
- package/dist/draft11-session.cjs +2 -2
- package/dist/draft11-session.d.cts +6 -6
- package/dist/draft11-session.d.ts +6 -6
- package/dist/draft11-session.js +1 -1
- package/dist/draft11.cjs +8 -4
- package/dist/draft11.d.cts +21 -11
- package/dist/draft11.d.ts +21 -11
- package/dist/draft11.js +16 -12
- package/dist/draft12-session.cjs +2 -2
- package/dist/draft12-session.d.cts +6 -6
- package/dist/draft12-session.d.ts +6 -6
- package/dist/draft12-session.js +1 -1
- package/dist/draft12.cjs +8 -4
- package/dist/draft12.d.cts +23 -13
- package/dist/draft12.d.ts +23 -13
- package/dist/draft12.js +16 -12
- package/dist/draft13-session.cjs +2 -2
- package/dist/draft13-session.d.cts +6 -6
- package/dist/draft13-session.d.ts +6 -6
- package/dist/draft13-session.js +1 -1
- package/dist/draft13.cjs +8 -4
- package/dist/draft13.d.cts +23 -13
- package/dist/draft13.d.ts +23 -13
- package/dist/draft13.js +16 -12
- package/dist/draft14-session.cjs +2 -2
- package/dist/draft14-session.d.cts +6 -6
- package/dist/draft14-session.d.ts +6 -6
- package/dist/draft14-session.js +1 -1
- package/dist/draft14.cjs +14 -4
- package/dist/draft14.d.cts +67 -11
- package/dist/draft14.d.ts +67 -11
- package/dist/draft14.js +13 -3
- package/dist/draft15-session.cjs +2 -2
- package/dist/draft15-session.d.cts +6 -6
- package/dist/draft15-session.d.ts +6 -6
- package/dist/draft15-session.js +1 -1
- package/dist/draft15.cjs +8 -4
- package/dist/draft15.d.cts +56 -11
- package/dist/draft15.d.ts +56 -11
- package/dist/draft15.js +16 -12
- package/dist/draft16-session.cjs +2 -2
- package/dist/draft16-session.d.cts +6 -6
- package/dist/draft16-session.d.ts +6 -6
- package/dist/draft16-session.js +1 -1
- package/dist/draft16.cjs +8 -4
- package/dist/draft16.d.cts +45 -11
- package/dist/draft16.d.ts +45 -11
- package/dist/draft16.js +16 -12
- package/dist/draft17-session.cjs +2 -2
- package/dist/draft17-session.d.cts +7 -7
- package/dist/draft17-session.d.ts +7 -7
- package/dist/draft17-session.js +1 -1
- package/dist/draft17.cjs +8 -4
- package/dist/draft17.d.cts +21 -8
- package/dist/draft17.d.ts +21 -8
- package/dist/draft17.js +16 -12
- package/dist/draft7-session.cjs +3 -3
- package/dist/draft7-session.d.cts +6 -5
- package/dist/draft7-session.d.ts +6 -5
- package/dist/draft7-session.js +2 -2
- package/dist/draft7.cjs +83 -14
- package/dist/draft7.d.cts +59 -64
- package/dist/draft7.d.ts +59 -64
- package/dist/draft7.js +89 -20
- package/dist/draft8-session.cjs +2 -2
- package/dist/draft8-session.d.cts +6 -6
- package/dist/draft8-session.d.ts +6 -6
- package/dist/draft8-session.js +1 -1
- package/dist/draft8.cjs +8 -4
- package/dist/draft8.d.cts +23 -11
- package/dist/draft8.d.ts +23 -11
- package/dist/draft8.js +7 -3
- package/dist/draft9-session.cjs +2 -2
- package/dist/draft9-session.d.cts +6 -6
- package/dist/draft9-session.d.ts +6 -6
- package/dist/draft9-session.js +1 -1
- package/dist/draft9.cjs +8 -4
- package/dist/draft9.d.cts +23 -11
- package/dist/draft9.d.ts +23 -11
- package/dist/draft9.js +7 -3
- package/dist/index.cjs +52 -73
- package/dist/index.d.cts +41 -60
- package/dist/index.d.ts +55 -82
- package/dist/index.js +89 -93
- package/dist/{session-types-CJIFbTPd.d.ts → session-types-C7UONex5.d.cts} +28 -27
- package/dist/{session-types-Cbq8IGCP.d.cts → session-types-X-IYEGoG.d.ts} +28 -27
- package/dist/session.cjs +47 -14
- package/dist/session.d.cts +28 -9
- package/dist/session.d.ts +32 -9
- package/dist/session.js +59 -32
- package/dist/{types-4VxSL2Ho.d.ts → types--Q7_DcvP.d.cts} +49 -39
- package/dist/{types-4VxSL2Ho.d.cts → types--Q7_DcvP.d.ts} +49 -39
- package/dist/{types-Cw4WE9dh.d.ts → types-0IWbU9Z_.d.cts} +44 -36
- package/dist/{types-Cw4WE9dh.d.cts → types-0IWbU9Z_.d.ts} +44 -36
- package/dist/{types-D5gNQiDj.d.ts → types-B3g5G9KP.d.cts} +44 -36
- package/dist/{types-D5gNQiDj.d.cts → types-B3g5G9KP.d.ts} +44 -36
- package/dist/{types-B2afJZM-.d.cts → types-BFpFNM_m.d.cts} +60 -32
- package/dist/{types-B2afJZM-.d.ts → types-BFpFNM_m.d.ts} +60 -32
- package/dist/{types-ERexTpT8.d.ts → types-Br7fm2mf.d.cts} +51 -26
- package/dist/{types-ERexTpT8.d.cts → types-Br7fm2mf.d.ts} +51 -26
- package/dist/{types-Bg6QYNVt.d.cts → types-C2qKTRR_.d.cts} +55 -45
- package/dist/{types-Bg6QYNVt.d.ts → types-C2qKTRR_.d.ts} +55 -45
- package/dist/{types-BTFeKYCb.d.ts → types-DEaypVsD.d.cts} +133 -58
- package/dist/{types-BTFeKYCb.d.cts → types-DEaypVsD.d.ts} +133 -58
- package/dist/types-Dl4IaAHR.d.cts +282 -0
- package/dist/types-Dl4IaAHR.d.ts +282 -0
- package/dist/{types-C_1HrqBl.d.cts → types-DrQpTW1G.d.cts} +63 -50
- package/dist/{types-C_1HrqBl.d.ts → types-DrQpTW1G.d.ts} +63 -50
- package/dist/types-DuIO7cWK.d.cts +25 -0
- package/dist/types-DuIO7cWK.d.ts +25 -0
- package/dist/{types-DqCDFqgB.d.ts → types-DuxfOYiO.d.cts} +50 -31
- package/dist/{types-DqCDFqgB.d.cts → types-DuxfOYiO.d.ts} +50 -31
- package/dist/{types-r-CasCf1.d.cts → types-jV1yDDBA.d.cts} +43 -36
- package/dist/{types-r-CasCf1.d.ts → types-jV1yDDBA.d.ts} +43 -36
- package/package.json +15 -15
- package/src/core/buffer-reader.ts +69 -53
- package/src/core/buffer-writer.ts +55 -46
- package/src/core/errors.ts +1 -1
- package/src/core/hex.ts +21 -17
- package/src/core/session-types.ts +61 -59
- package/src/core/types.ts +18 -361
- package/src/drafts/draft07/codec.ts +1058 -933
- package/src/drafts/draft07/data-streams.ts +116 -116
- package/src/drafts/draft07/index.ts +124 -89
- package/src/drafts/draft07/messages.ts +76 -42
- package/src/drafts/draft07/rules.ts +107 -101
- package/src/drafts/draft07/session-fsm.ts +315 -287
- package/src/drafts/draft07/session.ts +8 -6
- package/src/drafts/draft07/types.ts +406 -72
- package/src/drafts/draft07/varint.ts +40 -12
- package/src/drafts/draft08/codec.ts +985 -944
- package/src/drafts/draft08/data-streams.ts +178 -174
- package/src/drafts/draft08/index.ts +10 -9
- package/src/drafts/draft08/messages.ts +59 -59
- package/src/drafts/draft08/rules.ts +73 -73
- package/src/drafts/draft08/session-fsm.ts +335 -303
- package/src/drafts/draft08/session.ts +6 -7
- package/src/drafts/draft08/types.ts +380 -384
- package/src/drafts/draft09/codec.ts +977 -936
- package/src/drafts/draft09/data-streams.ts +163 -159
- package/src/drafts/draft09/index.ts +10 -9
- package/src/drafts/draft09/messages.ts +59 -59
- package/src/drafts/draft09/rules.ts +73 -73
- package/src/drafts/draft09/session-fsm.ts +335 -303
- package/src/drafts/draft09/session.ts +6 -7
- package/src/drafts/draft09/types.ts +380 -384
- package/src/drafts/draft10/codec.ts +977 -936
- package/src/drafts/draft10/data-streams.ts +163 -159
- package/src/drafts/draft10/index.ts +10 -9
- package/src/drafts/draft10/messages.ts +59 -59
- package/src/drafts/draft10/rules.ts +73 -73
- package/src/drafts/draft10/session-fsm.ts +335 -303
- package/src/drafts/draft10/session.ts +6 -7
- package/src/drafts/draft10/types.ts +380 -384
- package/src/drafts/draft11/codec.ts +1054 -979
- package/src/drafts/draft11/data-streams.ts +189 -142
- package/src/drafts/draft11/index.ts +10 -9
- package/src/drafts/draft11/messages.ts +60 -59
- package/src/drafts/draft11/rules.ts +73 -73
- package/src/drafts/draft11/session-fsm.ts +359 -333
- package/src/drafts/draft11/session.ts +6 -7
- package/src/drafts/draft11/types.ts +385 -381
- package/src/drafts/draft12/codec.ts +1178 -1113
- package/src/drafts/draft12/data-streams.ts +192 -143
- package/src/drafts/draft12/index.ts +10 -9
- package/src/drafts/draft12/messages.ts +67 -66
- package/src/drafts/draft12/rules.ts +79 -79
- package/src/drafts/draft12/session-fsm.ts +384 -358
- package/src/drafts/draft12/session.ts +6 -7
- package/src/drafts/draft12/types.ts +424 -419
- package/src/drafts/draft13/codec.ts +1296 -1197
- package/src/drafts/draft13/data-streams.ts +194 -143
- package/src/drafts/draft13/index.ts +10 -9
- package/src/drafts/draft13/messages.ts +73 -68
- package/src/drafts/draft13/rules.ts +81 -81
- package/src/drafts/draft13/session-fsm.ts +392 -366
- package/src/drafts/draft13/session.ts +6 -7
- package/src/drafts/draft13/types.ts +447 -438
- package/src/drafts/draft14/codec.ts +1347 -1034
- package/src/drafts/draft14/data-streams.ts +429 -396
- package/src/drafts/draft14/index.ts +17 -9
- package/src/drafts/draft14/messages.ts +65 -65
- package/src/drafts/draft14/rules.ts +81 -81
- package/src/drafts/draft14/session-fsm.ts +415 -405
- package/src/drafts/draft14/session.ts +6 -7
- package/src/drafts/draft14/types.ts +451 -381
- package/src/drafts/draft15/codec.ts +1138 -969
- package/src/drafts/draft15/data-streams.ts +428 -364
- package/src/drafts/draft15/index.ts +10 -9
- package/src/drafts/draft15/messages.ts +54 -53
- package/src/drafts/draft15/rules.ts +67 -67
- package/src/drafts/draft15/session-fsm.ts +319 -299
- package/src/drafts/draft15/session.ts +6 -7
- package/src/drafts/draft15/types.ts +357 -339
- package/src/drafts/draft16/codec.ts +1242 -957
- package/src/drafts/draft16/data-streams.ts +433 -371
- package/src/drafts/draft16/index.ts +10 -9
- package/src/drafts/draft16/messages.ts +56 -55
- package/src/drafts/draft16/rules.ts +69 -69
- package/src/drafts/draft16/session-fsm.ts +319 -299
- package/src/drafts/draft16/session.ts +6 -7
- package/src/drafts/draft16/types.ts +386 -357
- package/src/drafts/draft17/codec.ts +1209 -962
- package/src/drafts/draft17/data-streams.ts +593 -366
- package/src/drafts/draft17/index.ts +9 -7
- package/src/drafts/draft17/messages.ts +43 -42
- package/src/drafts/draft17/rules.ts +58 -58
- package/src/drafts/draft17/session-fsm.ts +248 -216
- package/src/drafts/draft17/session.ts +5 -5
- package/src/drafts/draft17/types.ts +337 -313
- package/src/index.ts +85 -274
- package/src/session.ts +62 -23
- package/dist/chunk-7IVGHMKJ.cjs +0 -866
- package/dist/chunk-FUFTMAQD.cjs +0 -1218
- package/dist/chunk-TMNGRIPL.js +0 -866
- package/dist/codec-95k8CAu5.d.cts +0 -35
- package/dist/codec-AFuOxfsO.d.ts +0 -60
- package/dist/codec-B-UJ5Iow.d.cts +0 -75
- package/dist/codec-BC5jfvMb.d.ts +0 -35
- package/dist/codec-BECYPfY8.d.ts +0 -35
- package/dist/codec-BsPU1vNC.d.ts +0 -39
- package/dist/codec-BvpuF-6u.d.cts +0 -39
- package/dist/codec-C8jZI5Cx.d.cts +0 -39
- package/dist/codec-CAevkgf5.d.cts +0 -33
- package/dist/codec-CSUqCrRs.d.ts +0 -39
- package/dist/codec-C_HMXNK_.d.ts +0 -33
- package/dist/codec-CpuvYTSV.d.cts +0 -86
- package/dist/codec-D0x8-SCw.d.cts +0 -35
- 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 +0 -29
- 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 +0 -34
- 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 +0 -33
- 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
- package/dist/types-QNXoxC9Y.d.cts +0 -236
- package/dist/types-QNXoxC9Y.d.ts +0 -236
- package/src/drafts/draft07/announce-fsm.ts +0 -2
- package/src/drafts/draft07/parameters.ts +0 -12
- package/src/drafts/draft07/subscription-fsm.ts +0 -3
|
@@ -1,8 +1,307 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferReader,
|
|
3
3
|
BufferWriter,
|
|
4
|
-
DecodeError
|
|
5
|
-
|
|
4
|
+
DecodeError,
|
|
5
|
+
bytesToHex,
|
|
6
|
+
hexToBytes
|
|
7
|
+
} from "./chunk-VOU7PNHI.js";
|
|
8
|
+
|
|
9
|
+
// src/drafts/draft10/data-streams.ts
|
|
10
|
+
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
11
|
+
var DATAGRAM_TYPE = 0x01n;
|
|
12
|
+
var DATAGRAM_STATUS_TYPE = 0x02n;
|
|
13
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
14
|
+
function encodeSubgroupStream(stream) {
|
|
15
|
+
const w = new BufferWriter();
|
|
16
|
+
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
17
|
+
w.writeVarInt(stream.trackAlias);
|
|
18
|
+
w.writeVarInt(stream.groupId);
|
|
19
|
+
w.writeVarInt(stream.subgroupId);
|
|
20
|
+
w.writeUint8(stream.publisherPriority);
|
|
21
|
+
for (const obj of stream.objects) {
|
|
22
|
+
w.writeVarInt(obj.objectId);
|
|
23
|
+
w.writeVarInt(obj.extensionHeadersLength);
|
|
24
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
25
|
+
w.writeVarInt(obj.payloadLength);
|
|
26
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
27
|
+
w.writeVarInt(obj.status);
|
|
28
|
+
} else {
|
|
29
|
+
w.writeBytes(obj.payload);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return w.finish();
|
|
33
|
+
}
|
|
34
|
+
function encodeDatagram(dg) {
|
|
35
|
+
const w = new BufferWriter();
|
|
36
|
+
w.writeVarInt(DATAGRAM_TYPE);
|
|
37
|
+
w.writeVarInt(dg.trackAlias);
|
|
38
|
+
w.writeVarInt(dg.groupId);
|
|
39
|
+
w.writeVarInt(dg.objectId);
|
|
40
|
+
w.writeUint8(dg.publisherPriority);
|
|
41
|
+
w.writeVarInt(dg.extensionHeadersLength);
|
|
42
|
+
if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
|
|
43
|
+
w.writeBytes(dg.payload);
|
|
44
|
+
return w.finish();
|
|
45
|
+
}
|
|
46
|
+
function encodeDatagramStatus(dg) {
|
|
47
|
+
const w = new BufferWriter();
|
|
48
|
+
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
49
|
+
w.writeVarInt(dg.trackAlias);
|
|
50
|
+
w.writeVarInt(dg.groupId);
|
|
51
|
+
w.writeVarInt(dg.objectId);
|
|
52
|
+
w.writeUint8(dg.publisherPriority);
|
|
53
|
+
w.writeVarInt(dg.extensionHeadersLength);
|
|
54
|
+
if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
|
|
55
|
+
w.writeVarInt(dg.objectStatus);
|
|
56
|
+
return w.finish();
|
|
57
|
+
}
|
|
58
|
+
function encodeFetchStream(stream) {
|
|
59
|
+
const w = new BufferWriter();
|
|
60
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
61
|
+
w.writeVarInt(stream.subscribeId);
|
|
62
|
+
for (const obj of stream.objects) {
|
|
63
|
+
w.writeVarInt(obj.groupId);
|
|
64
|
+
w.writeVarInt(obj.subgroupId);
|
|
65
|
+
w.writeVarInt(obj.objectId);
|
|
66
|
+
w.writeUint8(obj.publisherPriority);
|
|
67
|
+
w.writeVarInt(obj.extensionHeadersLength);
|
|
68
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
69
|
+
w.writeVarInt(obj.payloadLength);
|
|
70
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
71
|
+
w.writeVarInt(obj.status);
|
|
72
|
+
} else {
|
|
73
|
+
w.writeBytes(obj.payload);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return w.finish();
|
|
77
|
+
}
|
|
78
|
+
function decodeSubgroupStream(bytes) {
|
|
79
|
+
try {
|
|
80
|
+
const r = new BufferReader(bytes);
|
|
81
|
+
const streamType = Number(r.readVarInt());
|
|
82
|
+
if (streamType !== 4) {
|
|
83
|
+
return {
|
|
84
|
+
ok: false,
|
|
85
|
+
error: new DecodeError(
|
|
86
|
+
"CONSTRAINT_VIOLATION",
|
|
87
|
+
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
88
|
+
0
|
|
89
|
+
)
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const trackAlias = r.readVarInt();
|
|
93
|
+
const groupId = r.readVarInt();
|
|
94
|
+
const subgroupId = r.readVarInt();
|
|
95
|
+
const publisherPriority = r.readUint8();
|
|
96
|
+
const objects = [];
|
|
97
|
+
while (r.remaining > 0) {
|
|
98
|
+
const byteOffset = r.offset;
|
|
99
|
+
const objectId = r.readVarInt();
|
|
100
|
+
const extensionHeadersLength = r.readVarInt();
|
|
101
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
102
|
+
const payloadLength = Number(r.readVarInt());
|
|
103
|
+
let payload;
|
|
104
|
+
let status;
|
|
105
|
+
let payloadByteOffset;
|
|
106
|
+
if (payloadLength === 0) {
|
|
107
|
+
status = r.readVarInt();
|
|
108
|
+
payloadByteOffset = r.offset;
|
|
109
|
+
payload = new Uint8Array(0);
|
|
110
|
+
} else {
|
|
111
|
+
payloadByteOffset = r.offset;
|
|
112
|
+
payload = r.readBytesView(payloadLength);
|
|
113
|
+
}
|
|
114
|
+
const obj = {
|
|
115
|
+
type: "object",
|
|
116
|
+
byteOffset,
|
|
117
|
+
payloadByteOffset,
|
|
118
|
+
objectId,
|
|
119
|
+
extensionHeadersLength,
|
|
120
|
+
extensionData,
|
|
121
|
+
payloadLength,
|
|
122
|
+
payload
|
|
123
|
+
};
|
|
124
|
+
if (status !== void 0) obj.status = status;
|
|
125
|
+
objects.push(obj);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
ok: true,
|
|
129
|
+
value: {
|
|
130
|
+
type: "subgroup",
|
|
131
|
+
streamTypeId: 4,
|
|
132
|
+
trackAlias,
|
|
133
|
+
groupId,
|
|
134
|
+
subgroupId,
|
|
135
|
+
publisherPriority,
|
|
136
|
+
objects
|
|
137
|
+
},
|
|
138
|
+
bytesRead: r.offset
|
|
139
|
+
};
|
|
140
|
+
} catch (e) {
|
|
141
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
142
|
+
throw e;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function decodeDatagram(bytes) {
|
|
146
|
+
try {
|
|
147
|
+
const r = new BufferReader(bytes);
|
|
148
|
+
const streamType = Number(r.readVarInt());
|
|
149
|
+
if (streamType !== 1) {
|
|
150
|
+
return {
|
|
151
|
+
ok: false,
|
|
152
|
+
error: new DecodeError(
|
|
153
|
+
"CONSTRAINT_VIOLATION",
|
|
154
|
+
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
155
|
+
0
|
|
156
|
+
)
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const trackAlias = r.readVarInt();
|
|
160
|
+
const groupId = r.readVarInt();
|
|
161
|
+
const objectId = r.readVarInt();
|
|
162
|
+
const publisherPriority = r.readUint8();
|
|
163
|
+
const extensionHeadersLength = r.readVarInt();
|
|
164
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
165
|
+
const payload = r.remaining > 0 ? r.readBytesView(r.remaining) : new Uint8Array(0);
|
|
166
|
+
return {
|
|
167
|
+
ok: true,
|
|
168
|
+
value: {
|
|
169
|
+
type: "datagram",
|
|
170
|
+
streamTypeId: 1,
|
|
171
|
+
trackAlias,
|
|
172
|
+
groupId,
|
|
173
|
+
objectId,
|
|
174
|
+
publisherPriority,
|
|
175
|
+
extensionHeadersLength,
|
|
176
|
+
extensionData,
|
|
177
|
+
payload
|
|
178
|
+
},
|
|
179
|
+
bytesRead: r.offset
|
|
180
|
+
};
|
|
181
|
+
} catch (e) {
|
|
182
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
183
|
+
throw e;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function decodeDatagramStatus(bytes) {
|
|
187
|
+
try {
|
|
188
|
+
const r = new BufferReader(bytes);
|
|
189
|
+
const streamType = Number(r.readVarInt());
|
|
190
|
+
if (streamType !== 2) {
|
|
191
|
+
return {
|
|
192
|
+
ok: false,
|
|
193
|
+
error: new DecodeError(
|
|
194
|
+
"CONSTRAINT_VIOLATION",
|
|
195
|
+
`Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
|
|
196
|
+
0
|
|
197
|
+
)
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
const trackAlias = r.readVarInt();
|
|
201
|
+
const groupId = r.readVarInt();
|
|
202
|
+
const objectId = r.readVarInt();
|
|
203
|
+
const publisherPriority = r.readUint8();
|
|
204
|
+
const extensionHeadersLength = r.readVarInt();
|
|
205
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
206
|
+
const objectStatus = r.readVarInt();
|
|
207
|
+
return {
|
|
208
|
+
ok: true,
|
|
209
|
+
value: {
|
|
210
|
+
type: "datagram_status",
|
|
211
|
+
streamTypeId: 2,
|
|
212
|
+
trackAlias,
|
|
213
|
+
groupId,
|
|
214
|
+
objectId,
|
|
215
|
+
publisherPriority,
|
|
216
|
+
extensionHeadersLength,
|
|
217
|
+
extensionData,
|
|
218
|
+
objectStatus
|
|
219
|
+
},
|
|
220
|
+
bytesRead: r.offset
|
|
221
|
+
};
|
|
222
|
+
} catch (e) {
|
|
223
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
224
|
+
throw e;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function decodeFetchStream(bytes) {
|
|
228
|
+
try {
|
|
229
|
+
const r = new BufferReader(bytes);
|
|
230
|
+
const streamType = r.readVarInt();
|
|
231
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
232
|
+
return {
|
|
233
|
+
ok: false,
|
|
234
|
+
error: new DecodeError(
|
|
235
|
+
"CONSTRAINT_VIOLATION",
|
|
236
|
+
`Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
|
|
237
|
+
0
|
|
238
|
+
)
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
const subscribeId = r.readVarInt();
|
|
242
|
+
const objects = [];
|
|
243
|
+
while (r.remaining > 0) {
|
|
244
|
+
const byteOffset = r.offset;
|
|
245
|
+
const groupId = r.readVarInt();
|
|
246
|
+
const subgroupId = r.readVarInt();
|
|
247
|
+
const objectId = r.readVarInt();
|
|
248
|
+
const publisherPriority = r.readUint8();
|
|
249
|
+
const extensionHeadersLength = r.readVarInt();
|
|
250
|
+
const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
|
|
251
|
+
const payloadLength = Number(r.readVarInt());
|
|
252
|
+
let payload;
|
|
253
|
+
let status;
|
|
254
|
+
let payloadByteOffset;
|
|
255
|
+
if (payloadLength === 0) {
|
|
256
|
+
status = r.readVarInt();
|
|
257
|
+
payloadByteOffset = r.offset;
|
|
258
|
+
payload = new Uint8Array(0);
|
|
259
|
+
} else {
|
|
260
|
+
payloadByteOffset = r.offset;
|
|
261
|
+
payload = r.readBytesView(payloadLength);
|
|
262
|
+
}
|
|
263
|
+
const obj = {
|
|
264
|
+
type: "object",
|
|
265
|
+
byteOffset,
|
|
266
|
+
payloadByteOffset,
|
|
267
|
+
groupId,
|
|
268
|
+
subgroupId,
|
|
269
|
+
objectId,
|
|
270
|
+
publisherPriority,
|
|
271
|
+
extensionHeadersLength,
|
|
272
|
+
extensionData,
|
|
273
|
+
payloadLength,
|
|
274
|
+
payload
|
|
275
|
+
};
|
|
276
|
+
if (status !== void 0) obj.status = status;
|
|
277
|
+
objects.push(obj);
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
ok: true,
|
|
281
|
+
value: { type: "fetch", subscribeId, objects },
|
|
282
|
+
bytesRead: r.offset
|
|
283
|
+
};
|
|
284
|
+
} catch (e) {
|
|
285
|
+
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
286
|
+
throw e;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function decodeDataStream(streamType, bytes) {
|
|
290
|
+
switch (streamType) {
|
|
291
|
+
case "subgroup":
|
|
292
|
+
return decodeSubgroupStream(bytes);
|
|
293
|
+
case "datagram":
|
|
294
|
+
return decodeDatagram(bytes);
|
|
295
|
+
case "datagram_status":
|
|
296
|
+
return decodeDatagramStatus(bytes);
|
|
297
|
+
case "fetch":
|
|
298
|
+
return decodeFetchStream(bytes);
|
|
299
|
+
default: {
|
|
300
|
+
const _ = streamType;
|
|
301
|
+
throw new Error(`Unknown: ${_}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
6
305
|
|
|
7
306
|
// src/drafts/draft10/messages.ts
|
|
8
307
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -69,20 +368,8 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
69
368
|
);
|
|
70
369
|
|
|
71
370
|
// src/drafts/draft10/codec.ts
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
for (let i = 0; i < bytes.byteLength; i++) {
|
|
75
|
-
hex += bytes[i].toString(16).padStart(2, "0");
|
|
76
|
-
}
|
|
77
|
-
return hex;
|
|
78
|
-
}
|
|
79
|
-
function hexToBytes(hex) {
|
|
80
|
-
const bytes = new Uint8Array(hex.length / 2);
|
|
81
|
-
for (let i = 0; i < hex.length; i += 2) {
|
|
82
|
-
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
83
|
-
}
|
|
84
|
-
return bytes;
|
|
85
|
-
}
|
|
371
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
372
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
86
373
|
function encodeSetupParams(params, w) {
|
|
87
374
|
let count = 0;
|
|
88
375
|
if (params.path !== void 0) count++;
|
|
@@ -91,7 +378,7 @@ function encodeSetupParams(params, w) {
|
|
|
91
378
|
w.writeVarInt(count);
|
|
92
379
|
if (params.path !== void 0) {
|
|
93
380
|
w.writeVarInt(SETUP_PARAM_PATH);
|
|
94
|
-
const encoded =
|
|
381
|
+
const encoded = textEncoder.encode(params.path);
|
|
95
382
|
w.writeVarInt(encoded.byteLength);
|
|
96
383
|
w.writeBytes(encoded);
|
|
97
384
|
}
|
|
@@ -121,14 +408,18 @@ function decodeSetupParams(r) {
|
|
|
121
408
|
const length = Number(r.readVarInt());
|
|
122
409
|
if (paramType === SETUP_PARAM_PATH) {
|
|
123
410
|
const bytes = r.readBytes(length);
|
|
124
|
-
result.path =
|
|
411
|
+
result.path = textDecoder.decode(bytes);
|
|
125
412
|
} else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
|
|
126
413
|
const blob = r.readBytes(length);
|
|
127
414
|
const tmpReader = new BufferReader(blob);
|
|
128
415
|
result.max_subscribe_id = tmpReader.readVarInt();
|
|
129
416
|
} else {
|
|
130
417
|
const bytes = r.readBytes(length);
|
|
131
|
-
unknown.push({
|
|
418
|
+
unknown.push({
|
|
419
|
+
id: `0x${paramType.toString(16)}`,
|
|
420
|
+
length,
|
|
421
|
+
raw_hex: bytesToHex(bytes)
|
|
422
|
+
});
|
|
132
423
|
}
|
|
133
424
|
}
|
|
134
425
|
if (unknown.length > 0) result.unknown = unknown;
|
|
@@ -142,7 +433,7 @@ function encodeParams(params, w) {
|
|
|
142
433
|
w.writeVarInt(count);
|
|
143
434
|
if (params.authorization_info !== void 0) {
|
|
144
435
|
w.writeVarInt(PARAM_AUTHORIZATION_INFO);
|
|
145
|
-
const encoded =
|
|
436
|
+
const encoded = textEncoder.encode(params.authorization_info);
|
|
146
437
|
w.writeVarInt(encoded.byteLength);
|
|
147
438
|
w.writeBytes(encoded);
|
|
148
439
|
}
|
|
@@ -180,7 +471,7 @@ function decodeParams(r) {
|
|
|
180
471
|
const length = Number(r.readVarInt());
|
|
181
472
|
if (paramType === PARAM_AUTHORIZATION_INFO) {
|
|
182
473
|
const bytes = r.readBytes(length);
|
|
183
|
-
result.authorization_info =
|
|
474
|
+
result.authorization_info = textDecoder.decode(bytes);
|
|
184
475
|
} else if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
185
476
|
const blob = r.readBytes(length);
|
|
186
477
|
const tmpReader = new BufferReader(blob);
|
|
@@ -191,7 +482,11 @@ function decodeParams(r) {
|
|
|
191
482
|
result.max_cache_duration = tmpReader.readVarInt();
|
|
192
483
|
} else {
|
|
193
484
|
const bytes = r.readBytes(length);
|
|
194
|
-
unknown.push({
|
|
485
|
+
unknown.push({
|
|
486
|
+
id: `0x${paramType.toString(16)}`,
|
|
487
|
+
length,
|
|
488
|
+
raw_hex: bytesToHex(bytes)
|
|
489
|
+
});
|
|
195
490
|
}
|
|
196
491
|
}
|
|
197
492
|
if (unknown.length > 0) result.unknown = unknown;
|
|
@@ -431,7 +726,13 @@ function decodeSubscribeErrorPayload(r) {
|
|
|
431
726
|
const error_code = r.readVarInt();
|
|
432
727
|
const reason_phrase = r.readString();
|
|
433
728
|
const track_alias = r.readVarInt();
|
|
434
|
-
return {
|
|
729
|
+
return {
|
|
730
|
+
type: "subscribe_error",
|
|
731
|
+
subscribe_id,
|
|
732
|
+
error_code,
|
|
733
|
+
reason_phrase,
|
|
734
|
+
track_alias
|
|
735
|
+
};
|
|
435
736
|
}
|
|
436
737
|
function decodeSubscribeUpdatePayload(r) {
|
|
437
738
|
const subscribe_id = r.readVarInt();
|
|
@@ -455,7 +756,13 @@ function decodeSubscribeDonePayload(r) {
|
|
|
455
756
|
const status_code = r.readVarInt();
|
|
456
757
|
const stream_count = r.readVarInt();
|
|
457
758
|
const reason_phrase = r.readString();
|
|
458
|
-
return {
|
|
759
|
+
return {
|
|
760
|
+
type: "subscribe_done",
|
|
761
|
+
subscribe_id,
|
|
762
|
+
status_code,
|
|
763
|
+
stream_count,
|
|
764
|
+
reason_phrase
|
|
765
|
+
};
|
|
459
766
|
}
|
|
460
767
|
function decodeUnsubscribePayload(r) {
|
|
461
768
|
const subscribe_id = r.readVarInt();
|
|
@@ -499,7 +806,12 @@ function decodeSubscribeAnnouncesErrorPayload(r) {
|
|
|
499
806
|
const track_namespace_prefix = r.readTuple();
|
|
500
807
|
const error_code = r.readVarInt();
|
|
501
808
|
const reason_phrase = r.readString();
|
|
502
|
-
return {
|
|
809
|
+
return {
|
|
810
|
+
type: "subscribe_announces_error",
|
|
811
|
+
track_namespace_prefix,
|
|
812
|
+
error_code,
|
|
813
|
+
reason_phrase
|
|
814
|
+
};
|
|
503
815
|
}
|
|
504
816
|
function decodeUnsubscribeAnnouncesPayload(r) {
|
|
505
817
|
const track_namespace_prefix = r.readTuple();
|
|
@@ -523,7 +835,14 @@ function decodeFetchPayload(r) {
|
|
|
523
835
|
const start_object = r.readVarInt();
|
|
524
836
|
const end_group = r.readVarInt();
|
|
525
837
|
const end_object = r.readVarInt();
|
|
526
|
-
standalone = {
|
|
838
|
+
standalone = {
|
|
839
|
+
track_namespace,
|
|
840
|
+
track_name,
|
|
841
|
+
start_group,
|
|
842
|
+
start_object,
|
|
843
|
+
end_group,
|
|
844
|
+
end_object
|
|
845
|
+
};
|
|
527
846
|
} else {
|
|
528
847
|
const joining_subscribe_id = r.readVarInt();
|
|
529
848
|
const preceding_group_offset = r.readVarInt();
|
|
@@ -596,442 +915,168 @@ function decodeMaxSubscribeIdPayload(r) {
|
|
|
596
915
|
const subscribe_id = r.readVarInt();
|
|
597
916
|
return { type: "max_subscribe_id", subscribe_id };
|
|
598
917
|
}
|
|
599
|
-
function decodeSubscribesBlockedPayload(r) {
|
|
600
|
-
const maximum_subscribe_id = r.readVarInt();
|
|
601
|
-
return { type: "subscribes_blocked", maximum_subscribe_id };
|
|
602
|
-
}
|
|
603
|
-
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
604
|
-
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
605
|
-
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
606
|
-
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
607
|
-
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
608
|
-
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
609
|
-
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
610
|
-
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
611
|
-
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
612
|
-
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
613
|
-
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
614
|
-
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
615
|
-
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
616
|
-
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
617
|
-
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
618
|
-
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
619
|
-
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
620
|
-
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
621
|
-
[MSG_FETCH, decodeFetchPayload],
|
|
622
|
-
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
623
|
-
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
624
|
-
[MSG_FETCH_CANCEL, decodeFetchCancelPayload],
|
|
625
|
-
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
626
|
-
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
627
|
-
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
628
|
-
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
629
|
-
[MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
|
|
630
|
-
]);
|
|
631
|
-
function encodeMessage(message) {
|
|
632
|
-
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
633
|
-
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
634
|
-
const payloadWriter = new BufferWriter();
|
|
635
|
-
encodePayload(message, payloadWriter);
|
|
636
|
-
const payload = payloadWriter.finish();
|
|
637
|
-
const writer = new BufferWriter();
|
|
638
|
-
writer.writeVarInt(typeId);
|
|
639
|
-
writer.writeVarInt(payload.byteLength);
|
|
640
|
-
writer.writeBytes(payload);
|
|
641
|
-
return writer.finish();
|
|
642
|
-
}
|
|
643
|
-
function encodePayload(msg, w) {
|
|
644
|
-
switch (msg.type) {
|
|
645
|
-
case "client_setup":
|
|
646
|
-
return encodeClientSetupPayload(msg, w);
|
|
647
|
-
case "server_setup":
|
|
648
|
-
return encodeServerSetupPayload(msg, w);
|
|
649
|
-
case "subscribe":
|
|
650
|
-
return encodeSubscribePayload(msg, w);
|
|
651
|
-
case "subscribe_ok":
|
|
652
|
-
return encodeSubscribeOkPayload(msg, w);
|
|
653
|
-
case "subscribe_error":
|
|
654
|
-
return encodeSubscribeErrorPayload(msg, w);
|
|
655
|
-
case "subscribe_update":
|
|
656
|
-
return encodeSubscribeUpdatePayload(msg, w);
|
|
657
|
-
case "subscribe_done":
|
|
658
|
-
return encodeSubscribeDonePayload(msg, w);
|
|
659
|
-
case "unsubscribe":
|
|
660
|
-
return encodeUnsubscribePayload(msg, w);
|
|
661
|
-
case "announce":
|
|
662
|
-
return encodeAnnouncePayload(msg, w);
|
|
663
|
-
case "announce_ok":
|
|
664
|
-
return encodeAnnounceOkPayload(msg, w);
|
|
665
|
-
case "announce_error":
|
|
666
|
-
return encodeAnnounceErrorPayload(msg, w);
|
|
667
|
-
case "unannounce":
|
|
668
|
-
return encodeUnannouncePayload(msg, w);
|
|
669
|
-
case "announce_cancel":
|
|
670
|
-
return encodeAnnounceCancelPayload(msg, w);
|
|
671
|
-
case "subscribe_announces":
|
|
672
|
-
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
673
|
-
case "subscribe_announces_ok":
|
|
674
|
-
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
675
|
-
case "subscribe_announces_error":
|
|
676
|
-
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
677
|
-
case "unsubscribe_announces":
|
|
678
|
-
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
679
|
-
case "fetch":
|
|
680
|
-
return encodeFetchPayload(msg, w);
|
|
681
|
-
case "fetch_ok":
|
|
682
|
-
return encodeFetchOkPayload(msg, w);
|
|
683
|
-
case "fetch_error":
|
|
684
|
-
return encodeFetchErrorPayload(msg, w);
|
|
685
|
-
case "fetch_cancel":
|
|
686
|
-
return encodeFetchCancelPayload(msg, w);
|
|
687
|
-
case "track_status_request":
|
|
688
|
-
return encodeTrackStatusRequestPayload(msg, w);
|
|
689
|
-
case "track_status":
|
|
690
|
-
return encodeTrackStatusPayload(msg, w);
|
|
691
|
-
case "goaway":
|
|
692
|
-
return encodeGoAwayPayload(msg, w);
|
|
693
|
-
case "max_subscribe_id":
|
|
694
|
-
return encodeMaxSubscribeIdPayload(msg, w);
|
|
695
|
-
case "subscribes_blocked":
|
|
696
|
-
return encodeSubscribesBlockedPayload(msg, w);
|
|
697
|
-
default: {
|
|
698
|
-
const _exhaustive = msg;
|
|
699
|
-
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
function decodeMessage(bytes) {
|
|
704
|
-
try {
|
|
705
|
-
const reader = new BufferReader(bytes);
|
|
706
|
-
const typeId = reader.readVarInt();
|
|
707
|
-
const payloadLength = Number(reader.readVarInt());
|
|
708
|
-
const payloadBytes = reader.readBytes(payloadLength);
|
|
709
|
-
const payloadReader = new BufferReader(payloadBytes);
|
|
710
|
-
const decoder = payloadDecoders.get(typeId);
|
|
711
|
-
if (!decoder) {
|
|
712
|
-
return {
|
|
713
|
-
ok: false,
|
|
714
|
-
error: new DecodeError(
|
|
715
|
-
"UNKNOWN_MESSAGE_TYPE",
|
|
716
|
-
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
717
|
-
0
|
|
718
|
-
)
|
|
719
|
-
};
|
|
720
|
-
}
|
|
721
|
-
const message = decoder(payloadReader);
|
|
722
|
-
return { ok: true, value: message, bytesRead: reader.offset };
|
|
723
|
-
} catch (e) {
|
|
724
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
725
|
-
throw e;
|
|
726
|
-
}
|
|
727
|
-
}
|
|
728
|
-
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
729
|
-
var DATAGRAM_TYPE = 0x01n;
|
|
730
|
-
var DATAGRAM_STATUS_TYPE = 0x02n;
|
|
731
|
-
var FETCH_STREAM_TYPE = 0x05n;
|
|
732
|
-
function encodeSubgroupStream(stream) {
|
|
733
|
-
const w = new BufferWriter();
|
|
734
|
-
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
735
|
-
w.writeVarInt(stream.trackAlias);
|
|
736
|
-
w.writeVarInt(stream.groupId);
|
|
737
|
-
w.writeVarInt(stream.subgroupId);
|
|
738
|
-
w.writeUint8(stream.publisherPriority);
|
|
739
|
-
for (const obj of stream.objects) {
|
|
740
|
-
w.writeVarInt(obj.objectId);
|
|
741
|
-
w.writeVarInt(0n);
|
|
742
|
-
w.writeVarInt(obj.payloadLength);
|
|
743
|
-
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
744
|
-
w.writeVarInt(obj.status);
|
|
745
|
-
} else {
|
|
746
|
-
w.writeBytes(obj.payload);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
return w.finish();
|
|
750
|
-
}
|
|
751
|
-
function encodeDatagram(dg) {
|
|
752
|
-
const w = new BufferWriter();
|
|
753
|
-
w.writeVarInt(DATAGRAM_TYPE);
|
|
754
|
-
w.writeVarInt(dg.trackAlias);
|
|
755
|
-
w.writeVarInt(dg.groupId);
|
|
756
|
-
w.writeVarInt(dg.objectId);
|
|
757
|
-
w.writeUint8(dg.publisherPriority);
|
|
758
|
-
w.writeVarInt(0n);
|
|
759
|
-
w.writeBytes(dg.payload);
|
|
760
|
-
return w.finish();
|
|
761
|
-
}
|
|
762
|
-
function encodeDatagramStatus(dg) {
|
|
763
|
-
const w = new BufferWriter();
|
|
764
|
-
w.writeVarInt(DATAGRAM_STATUS_TYPE);
|
|
765
|
-
w.writeVarInt(dg.trackAlias);
|
|
766
|
-
w.writeVarInt(dg.groupId);
|
|
767
|
-
w.writeVarInt(dg.objectId);
|
|
768
|
-
w.writeUint8(dg.publisherPriority);
|
|
769
|
-
w.writeVarInt(0n);
|
|
770
|
-
w.writeVarInt(dg.objectStatus);
|
|
771
|
-
return w.finish();
|
|
772
|
-
}
|
|
773
|
-
function encodeFetchStream(stream) {
|
|
774
|
-
const w = new BufferWriter();
|
|
775
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
776
|
-
w.writeVarInt(stream.subscribeId);
|
|
777
|
-
for (const obj of stream.objects) {
|
|
778
|
-
w.writeVarInt(obj.groupId);
|
|
779
|
-
w.writeVarInt(obj.subgroupId);
|
|
780
|
-
w.writeVarInt(obj.objectId);
|
|
781
|
-
w.writeUint8(obj.publisherPriority);
|
|
782
|
-
w.writeVarInt(0n);
|
|
783
|
-
w.writeVarInt(obj.payloadLength);
|
|
784
|
-
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
785
|
-
w.writeVarInt(obj.status);
|
|
786
|
-
} else {
|
|
787
|
-
w.writeBytes(obj.payload);
|
|
788
|
-
}
|
|
789
|
-
}
|
|
790
|
-
return w.finish();
|
|
791
|
-
}
|
|
792
|
-
function decodeSubgroupStream(bytes) {
|
|
793
|
-
try {
|
|
794
|
-
const r = new BufferReader(bytes);
|
|
795
|
-
const streamType = Number(r.readVarInt());
|
|
796
|
-
if (streamType !== 4) {
|
|
797
|
-
return {
|
|
798
|
-
ok: false,
|
|
799
|
-
error: new DecodeError(
|
|
800
|
-
"CONSTRAINT_VIOLATION",
|
|
801
|
-
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
802
|
-
0
|
|
803
|
-
)
|
|
804
|
-
};
|
|
805
|
-
}
|
|
806
|
-
const trackAlias = r.readVarInt();
|
|
807
|
-
const groupId = r.readVarInt();
|
|
808
|
-
const subgroupId = r.readVarInt();
|
|
809
|
-
const publisherPriority = r.readUint8();
|
|
810
|
-
const objects = [];
|
|
811
|
-
while (r.remaining > 0) {
|
|
812
|
-
const objectId = r.readVarInt();
|
|
813
|
-
const extensionHeadersLength = r.readVarInt();
|
|
814
|
-
if (extensionHeadersLength > 0n) {
|
|
815
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
816
|
-
}
|
|
817
|
-
const payloadLength = Number(r.readVarInt());
|
|
818
|
-
let payload;
|
|
819
|
-
let status;
|
|
820
|
-
if (payloadLength === 0) {
|
|
821
|
-
status = r.readVarInt();
|
|
822
|
-
payload = new Uint8Array(0);
|
|
823
|
-
} else {
|
|
824
|
-
payload = r.readBytes(payloadLength);
|
|
825
|
-
}
|
|
826
|
-
const obj = {
|
|
827
|
-
type: "object",
|
|
828
|
-
objectId,
|
|
829
|
-
extensionHeadersLength,
|
|
830
|
-
payloadLength,
|
|
831
|
-
payload
|
|
832
|
-
};
|
|
833
|
-
if (status !== void 0) obj.status = status;
|
|
834
|
-
objects.push(obj);
|
|
835
|
-
}
|
|
836
|
-
return {
|
|
837
|
-
ok: true,
|
|
838
|
-
value: {
|
|
839
|
-
type: "subgroup",
|
|
840
|
-
streamTypeId: 4,
|
|
841
|
-
trackAlias,
|
|
842
|
-
groupId,
|
|
843
|
-
subgroupId,
|
|
844
|
-
publisherPriority,
|
|
845
|
-
objects
|
|
846
|
-
},
|
|
847
|
-
bytesRead: r.offset
|
|
848
|
-
};
|
|
849
|
-
} catch (e) {
|
|
850
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
851
|
-
throw e;
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
function decodeDatagram(bytes) {
|
|
855
|
-
try {
|
|
856
|
-
const r = new BufferReader(bytes);
|
|
857
|
-
const streamType = Number(r.readVarInt());
|
|
858
|
-
if (streamType !== 1) {
|
|
859
|
-
return {
|
|
860
|
-
ok: false,
|
|
861
|
-
error: new DecodeError(
|
|
862
|
-
"CONSTRAINT_VIOLATION",
|
|
863
|
-
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
864
|
-
0
|
|
865
|
-
)
|
|
866
|
-
};
|
|
867
|
-
}
|
|
868
|
-
const trackAlias = r.readVarInt();
|
|
869
|
-
const groupId = r.readVarInt();
|
|
870
|
-
const objectId = r.readVarInt();
|
|
871
|
-
const publisherPriority = r.readUint8();
|
|
872
|
-
const extensionHeadersLength = r.readVarInt();
|
|
873
|
-
if (extensionHeadersLength > 0n) {
|
|
874
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
875
|
-
}
|
|
876
|
-
const payload = r.remaining > 0 ? r.readBytes(r.remaining) : new Uint8Array(0);
|
|
877
|
-
return {
|
|
878
|
-
ok: true,
|
|
879
|
-
value: {
|
|
880
|
-
type: "datagram",
|
|
881
|
-
streamTypeId: 1,
|
|
882
|
-
trackAlias,
|
|
883
|
-
groupId,
|
|
884
|
-
objectId,
|
|
885
|
-
publisherPriority,
|
|
886
|
-
extensionHeadersLength,
|
|
887
|
-
payload
|
|
888
|
-
},
|
|
889
|
-
bytesRead: r.offset
|
|
890
|
-
};
|
|
891
|
-
} catch (e) {
|
|
892
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
893
|
-
throw e;
|
|
894
|
-
}
|
|
918
|
+
function decodeSubscribesBlockedPayload(r) {
|
|
919
|
+
const maximum_subscribe_id = r.readVarInt();
|
|
920
|
+
return { type: "subscribes_blocked", maximum_subscribe_id };
|
|
895
921
|
}
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
922
|
+
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
923
|
+
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
924
|
+
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
925
|
+
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
926
|
+
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
927
|
+
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
928
|
+
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
929
|
+
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
930
|
+
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
931
|
+
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
932
|
+
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
933
|
+
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
934
|
+
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
935
|
+
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
936
|
+
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
937
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
938
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
939
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
940
|
+
[MSG_FETCH, decodeFetchPayload],
|
|
941
|
+
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
942
|
+
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
943
|
+
[MSG_FETCH_CANCEL, decodeFetchCancelPayload],
|
|
944
|
+
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
945
|
+
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
946
|
+
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
947
|
+
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
948
|
+
[MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
|
|
949
|
+
]);
|
|
950
|
+
function encodeMessage(message) {
|
|
951
|
+
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
952
|
+
if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
|
|
953
|
+
const payloadWriter = new BufferWriter();
|
|
954
|
+
encodePayload(message, payloadWriter);
|
|
955
|
+
const payload = payloadWriter.finishView();
|
|
956
|
+
const writer = new BufferWriter(payload.byteLength + 16);
|
|
957
|
+
writer.writeVarInt(typeId);
|
|
958
|
+
writer.writeVarInt(payload.byteLength);
|
|
959
|
+
writer.writeBytes(payload);
|
|
960
|
+
return writer.finish();
|
|
961
|
+
}
|
|
962
|
+
function encodePayload(msg, w) {
|
|
963
|
+
switch (msg.type) {
|
|
964
|
+
case "client_setup":
|
|
965
|
+
return encodeClientSetupPayload(msg, w);
|
|
966
|
+
case "server_setup":
|
|
967
|
+
return encodeServerSetupPayload(msg, w);
|
|
968
|
+
case "subscribe":
|
|
969
|
+
return encodeSubscribePayload(msg, w);
|
|
970
|
+
case "subscribe_ok":
|
|
971
|
+
return encodeSubscribeOkPayload(msg, w);
|
|
972
|
+
case "subscribe_error":
|
|
973
|
+
return encodeSubscribeErrorPayload(msg, w);
|
|
974
|
+
case "subscribe_update":
|
|
975
|
+
return encodeSubscribeUpdatePayload(msg, w);
|
|
976
|
+
case "subscribe_done":
|
|
977
|
+
return encodeSubscribeDonePayload(msg, w);
|
|
978
|
+
case "unsubscribe":
|
|
979
|
+
return encodeUnsubscribePayload(msg, w);
|
|
980
|
+
case "announce":
|
|
981
|
+
return encodeAnnouncePayload(msg, w);
|
|
982
|
+
case "announce_ok":
|
|
983
|
+
return encodeAnnounceOkPayload(msg, w);
|
|
984
|
+
case "announce_error":
|
|
985
|
+
return encodeAnnounceErrorPayload(msg, w);
|
|
986
|
+
case "unannounce":
|
|
987
|
+
return encodeUnannouncePayload(msg, w);
|
|
988
|
+
case "announce_cancel":
|
|
989
|
+
return encodeAnnounceCancelPayload(msg, w);
|
|
990
|
+
case "subscribe_announces":
|
|
991
|
+
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
992
|
+
case "subscribe_announces_ok":
|
|
993
|
+
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
994
|
+
case "subscribe_announces_error":
|
|
995
|
+
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
996
|
+
case "unsubscribe_announces":
|
|
997
|
+
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
998
|
+
case "fetch":
|
|
999
|
+
return encodeFetchPayload(msg, w);
|
|
1000
|
+
case "fetch_ok":
|
|
1001
|
+
return encodeFetchOkPayload(msg, w);
|
|
1002
|
+
case "fetch_error":
|
|
1003
|
+
return encodeFetchErrorPayload(msg, w);
|
|
1004
|
+
case "fetch_cancel":
|
|
1005
|
+
return encodeFetchCancelPayload(msg, w);
|
|
1006
|
+
case "track_status_request":
|
|
1007
|
+
return encodeTrackStatusRequestPayload(msg, w);
|
|
1008
|
+
case "track_status":
|
|
1009
|
+
return encodeTrackStatusPayload(msg, w);
|
|
1010
|
+
case "goaway":
|
|
1011
|
+
return encodeGoAwayPayload(msg, w);
|
|
1012
|
+
case "max_subscribe_id":
|
|
1013
|
+
return encodeMaxSubscribeIdPayload(msg, w);
|
|
1014
|
+
case "subscribes_blocked":
|
|
1015
|
+
return encodeSubscribesBlockedPayload(msg, w);
|
|
1016
|
+
default: {
|
|
1017
|
+
const _exhaustive = msg;
|
|
1018
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
917
1019
|
}
|
|
918
|
-
const objectStatus = r.readVarInt();
|
|
919
|
-
return {
|
|
920
|
-
ok: true,
|
|
921
|
-
value: {
|
|
922
|
-
type: "datagram_status",
|
|
923
|
-
streamTypeId: 2,
|
|
924
|
-
trackAlias,
|
|
925
|
-
groupId,
|
|
926
|
-
objectId,
|
|
927
|
-
publisherPriority,
|
|
928
|
-
extensionHeadersLength,
|
|
929
|
-
objectStatus
|
|
930
|
-
},
|
|
931
|
-
bytesRead: r.offset
|
|
932
|
-
};
|
|
933
|
-
} catch (e) {
|
|
934
|
-
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
935
|
-
throw e;
|
|
936
1020
|
}
|
|
937
1021
|
}
|
|
938
|
-
function
|
|
1022
|
+
function decodeMessage(bytes) {
|
|
939
1023
|
try {
|
|
940
|
-
const
|
|
941
|
-
const
|
|
942
|
-
|
|
1024
|
+
const reader = new BufferReader(bytes);
|
|
1025
|
+
const typeId = reader.readVarInt();
|
|
1026
|
+
const payloadLength = Number(reader.readVarInt());
|
|
1027
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1028
|
+
const payloadReader = new BufferReader(payloadBytes);
|
|
1029
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1030
|
+
if (!decoder) {
|
|
943
1031
|
return {
|
|
944
1032
|
ok: false,
|
|
945
1033
|
error: new DecodeError(
|
|
946
|
-
"
|
|
947
|
-
`
|
|
1034
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1035
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
948
1036
|
0
|
|
949
1037
|
)
|
|
950
1038
|
};
|
|
951
1039
|
}
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
while (r.remaining > 0) {
|
|
955
|
-
const groupId = r.readVarInt();
|
|
956
|
-
const subgroupId = r.readVarInt();
|
|
957
|
-
const objectId = r.readVarInt();
|
|
958
|
-
const publisherPriority = r.readUint8();
|
|
959
|
-
const extensionHeadersLength = r.readVarInt();
|
|
960
|
-
if (extensionHeadersLength > 0n) {
|
|
961
|
-
r.readBytes(Number(extensionHeadersLength));
|
|
962
|
-
}
|
|
963
|
-
const payloadLength = Number(r.readVarInt());
|
|
964
|
-
let payload;
|
|
965
|
-
let status;
|
|
966
|
-
if (payloadLength === 0) {
|
|
967
|
-
status = r.readVarInt();
|
|
968
|
-
payload = new Uint8Array(0);
|
|
969
|
-
} else {
|
|
970
|
-
payload = r.readBytes(payloadLength);
|
|
971
|
-
}
|
|
972
|
-
const obj = {
|
|
973
|
-
type: "object",
|
|
974
|
-
groupId,
|
|
975
|
-
subgroupId,
|
|
976
|
-
objectId,
|
|
977
|
-
publisherPriority,
|
|
978
|
-
extensionHeadersLength,
|
|
979
|
-
payloadLength,
|
|
980
|
-
payload
|
|
981
|
-
};
|
|
982
|
-
if (status !== void 0) obj.status = status;
|
|
983
|
-
objects.push(obj);
|
|
984
|
-
}
|
|
985
|
-
return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
|
|
1040
|
+
const message = decoder(payloadReader);
|
|
1041
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
986
1042
|
} catch (e) {
|
|
987
1043
|
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
988
1044
|
throw e;
|
|
989
1045
|
}
|
|
990
1046
|
}
|
|
991
|
-
function decodeDataStream(streamType, bytes) {
|
|
992
|
-
switch (streamType) {
|
|
993
|
-
case "subgroup":
|
|
994
|
-
return decodeSubgroupStream(bytes);
|
|
995
|
-
case "datagram":
|
|
996
|
-
return decodeDatagram(bytes);
|
|
997
|
-
case "datagram_status":
|
|
998
|
-
return decodeDatagramStatus(bytes);
|
|
999
|
-
case "fetch":
|
|
1000
|
-
return decodeFetchStream(bytes);
|
|
1001
|
-
default: {
|
|
1002
|
-
const _ = streamType;
|
|
1003
|
-
throw new Error(`Unknown: ${_}`);
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1006
|
-
}
|
|
1007
1047
|
function createStreamDecoder() {
|
|
1008
1048
|
let buffer = new Uint8Array(0);
|
|
1049
|
+
let offset = 0;
|
|
1009
1050
|
return new TransformStream({
|
|
1010
1051
|
transform(chunk, controller) {
|
|
1052
|
+
if (offset > 0) {
|
|
1053
|
+
buffer = buffer.subarray(offset);
|
|
1054
|
+
offset = 0;
|
|
1055
|
+
}
|
|
1011
1056
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1012
1057
|
newBuffer.set(buffer, 0);
|
|
1013
1058
|
newBuffer.set(chunk, buffer.length);
|
|
1014
1059
|
buffer = newBuffer;
|
|
1015
|
-
while (buffer.length
|
|
1016
|
-
const result = decodeMessage(buffer);
|
|
1060
|
+
while (offset < buffer.length) {
|
|
1061
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1017
1062
|
if (!result.ok) {
|
|
1018
1063
|
if (result.error.code === "UNEXPECTED_END") break;
|
|
1019
1064
|
controller.error(result.error);
|
|
1020
1065
|
return;
|
|
1021
1066
|
}
|
|
1022
1067
|
controller.enqueue(result.value);
|
|
1023
|
-
|
|
1068
|
+
offset += result.bytesRead;
|
|
1024
1069
|
}
|
|
1025
1070
|
},
|
|
1026
1071
|
flush(controller) {
|
|
1027
|
-
if (buffer.length
|
|
1072
|
+
if (offset < buffer.length)
|
|
1028
1073
|
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1029
1074
|
}
|
|
1030
1075
|
});
|
|
1031
1076
|
}
|
|
1032
1077
|
function createDraft10Codec() {
|
|
1033
1078
|
return {
|
|
1034
|
-
draft: "
|
|
1079
|
+
draft: "10",
|
|
1035
1080
|
encodeMessage,
|
|
1036
1081
|
decodeMessage,
|
|
1037
1082
|
encodeSubgroupStream,
|
|
@@ -1048,6 +1093,15 @@ function createDraft10Codec() {
|
|
|
1048
1093
|
}
|
|
1049
1094
|
|
|
1050
1095
|
export {
|
|
1096
|
+
encodeSubgroupStream,
|
|
1097
|
+
encodeDatagram,
|
|
1098
|
+
encodeDatagramStatus,
|
|
1099
|
+
encodeFetchStream,
|
|
1100
|
+
decodeSubgroupStream,
|
|
1101
|
+
decodeDatagram,
|
|
1102
|
+
decodeDatagramStatus,
|
|
1103
|
+
decodeFetchStream,
|
|
1104
|
+
decodeDataStream,
|
|
1051
1105
|
MSG_SUBSCRIBE_UPDATE,
|
|
1052
1106
|
MSG_SUBSCRIBE,
|
|
1053
1107
|
MSG_SUBSCRIBE_OK,
|
|
@@ -1083,15 +1137,6 @@ export {
|
|
|
1083
1137
|
MESSAGE_ID_MAP,
|
|
1084
1138
|
encodeMessage,
|
|
1085
1139
|
decodeMessage,
|
|
1086
|
-
encodeSubgroupStream,
|
|
1087
|
-
encodeDatagram,
|
|
1088
|
-
encodeDatagramStatus,
|
|
1089
|
-
encodeFetchStream,
|
|
1090
|
-
decodeSubgroupStream,
|
|
1091
|
-
decodeDatagram,
|
|
1092
|
-
decodeDatagramStatus,
|
|
1093
|
-
decodeFetchStream,
|
|
1094
|
-
decodeDataStream,
|
|
1095
1140
|
createStreamDecoder,
|
|
1096
1141
|
createDraft10Codec
|
|
1097
1142
|
};
|