@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
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkJL3NEW3Ocjs = require('./chunk-JL3NEW3O.cjs');
|
|
6
8
|
|
|
7
9
|
// src/drafts/draft15/messages.ts
|
|
8
10
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -30,6 +32,7 @@ var MSG_CLIENT_SETUP = 0x20n;
|
|
|
30
32
|
var MSG_SERVER_SETUP = 0x21n;
|
|
31
33
|
var SETUP_PARAM_PATH = 0x01n;
|
|
32
34
|
var SETUP_PARAM_MAX_REQUEST_ID = 0x02n;
|
|
35
|
+
var SETUP_PARAM_AUTHORIZATION_TOKEN = 0x03n;
|
|
33
36
|
var SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = 0x04n;
|
|
34
37
|
var SETUP_PARAM_AUTHORITY = 0x05n;
|
|
35
38
|
var SETUP_PARAM_MOQT_IMPLEMENTATION = 0x07n;
|
|
@@ -62,365 +65,1120 @@ var MESSAGE_ID_MAP = new Map(
|
|
|
62
65
|
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
63
66
|
);
|
|
64
67
|
|
|
65
|
-
// src/drafts/draft15/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return bytes;
|
|
79
|
-
}
|
|
80
|
-
function encodeSetupParams(params, writer) {
|
|
81
|
-
let count = 0;
|
|
82
|
-
if (params.path !== void 0) count++;
|
|
83
|
-
if (params.max_request_id !== void 0) count++;
|
|
84
|
-
if (params.max_auth_token_cache_size !== void 0) count++;
|
|
85
|
-
if (params.authority !== void 0) count++;
|
|
86
|
-
if (params.moqt_implementation !== void 0) count++;
|
|
87
|
-
if (params.unknown) count += params.unknown.length;
|
|
88
|
-
writer.writeVarInt(count);
|
|
89
|
-
if (params.path !== void 0) {
|
|
90
|
-
writer.writeVarInt(SETUP_PARAM_PATH);
|
|
91
|
-
const encoded = new TextEncoder().encode(params.path);
|
|
92
|
-
writer.writeVarInt(encoded.byteLength);
|
|
93
|
-
writer.writeBytes(encoded);
|
|
94
|
-
}
|
|
95
|
-
if (params.max_request_id !== void 0) {
|
|
96
|
-
writer.writeVarInt(SETUP_PARAM_MAX_REQUEST_ID);
|
|
97
|
-
writer.writeVarInt(params.max_request_id);
|
|
98
|
-
}
|
|
99
|
-
if (params.max_auth_token_cache_size !== void 0) {
|
|
100
|
-
writer.writeVarInt(SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE);
|
|
101
|
-
writer.writeVarInt(params.max_auth_token_cache_size);
|
|
102
|
-
}
|
|
103
|
-
if (params.authority !== void 0) {
|
|
104
|
-
writer.writeVarInt(SETUP_PARAM_AUTHORITY);
|
|
105
|
-
const encoded = new TextEncoder().encode(params.authority);
|
|
106
|
-
writer.writeVarInt(encoded.byteLength);
|
|
107
|
-
writer.writeBytes(encoded);
|
|
68
|
+
// src/drafts/draft15/data-streams.ts
|
|
69
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
70
|
+
function encodeSubgroupStream(stream) {
|
|
71
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
72
|
+
const streamType = stream.headerType;
|
|
73
|
+
w.writeVarInt(BigInt(streamType));
|
|
74
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
75
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
76
|
+
const hasPriority = streamType < 48;
|
|
77
|
+
w.writeVarInt(stream.trackAlias);
|
|
78
|
+
w.writeVarInt(stream.groupId);
|
|
79
|
+
if (hasSubgroupField) {
|
|
80
|
+
w.writeVarInt(stream.subgroupId);
|
|
108
81
|
}
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
const encoded = new TextEncoder().encode(params.moqt_implementation);
|
|
112
|
-
writer.writeVarInt(encoded.byteLength);
|
|
113
|
-
writer.writeBytes(encoded);
|
|
82
|
+
if (hasPriority) {
|
|
83
|
+
w.writeUint8(stream.publisherPriority);
|
|
114
84
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const value = tmpReader.readVarInt();
|
|
123
|
-
writer.writeVarInt(value);
|
|
124
|
-
} else {
|
|
125
|
-
const raw = hexToBytes(u.raw_hex);
|
|
126
|
-
writer.writeVarInt(raw.byteLength);
|
|
127
|
-
writer.writeBytes(raw);
|
|
128
|
-
}
|
|
85
|
+
let prevObjectId = -1n;
|
|
86
|
+
for (const obj of stream.objects) {
|
|
87
|
+
const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
88
|
+
w.writeVarInt(delta);
|
|
89
|
+
if (extensionsPresent) {
|
|
90
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
91
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
129
92
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const count = Number(reader.readVarInt());
|
|
134
|
-
const result = {};
|
|
135
|
-
const unknown = [];
|
|
136
|
-
for (let i = 0; i < count; i++) {
|
|
137
|
-
const paramType = reader.readVarInt();
|
|
138
|
-
if (paramType % 2n === 0n) {
|
|
139
|
-
const value = reader.readVarInt();
|
|
140
|
-
if (paramType === SETUP_PARAM_MAX_REQUEST_ID) {
|
|
141
|
-
result.max_request_id = value;
|
|
142
|
-
} else if (paramType === SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE) {
|
|
143
|
-
result.max_auth_token_cache_size = value;
|
|
144
|
-
} else {
|
|
145
|
-
const tmpWriter = new (0, _chunkFWISIR26cjs.BufferWriter)(16);
|
|
146
|
-
tmpWriter.writeVarInt(value);
|
|
147
|
-
const raw = tmpWriter.finish();
|
|
148
|
-
unknown.push({
|
|
149
|
-
id: `0x${paramType.toString(16)}`,
|
|
150
|
-
length: raw.byteLength,
|
|
151
|
-
raw_hex: bytesToHex(raw)
|
|
152
|
-
});
|
|
153
|
-
}
|
|
93
|
+
w.writeVarInt(obj.payloadLength);
|
|
94
|
+
if (obj.payloadLength === 0) {
|
|
95
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
154
96
|
} else {
|
|
155
|
-
|
|
156
|
-
const bytes = reader.readBytes(length);
|
|
157
|
-
if (paramType === SETUP_PARAM_PATH) {
|
|
158
|
-
result.path = new TextDecoder().decode(bytes);
|
|
159
|
-
} else if (paramType === SETUP_PARAM_AUTHORITY) {
|
|
160
|
-
result.authority = new TextDecoder().decode(bytes);
|
|
161
|
-
} else if (paramType === SETUP_PARAM_MOQT_IMPLEMENTATION) {
|
|
162
|
-
result.moqt_implementation = new TextDecoder().decode(bytes);
|
|
163
|
-
} else {
|
|
164
|
-
unknown.push({
|
|
165
|
-
id: `0x${paramType.toString(16)}`,
|
|
166
|
-
length,
|
|
167
|
-
raw_hex: bytesToHex(bytes)
|
|
168
|
-
});
|
|
169
|
-
}
|
|
97
|
+
w.writeBytes(obj.payload);
|
|
170
98
|
}
|
|
99
|
+
prevObjectId = obj.objectId;
|
|
171
100
|
}
|
|
172
|
-
|
|
173
|
-
result.unknown = unknown;
|
|
174
|
-
}
|
|
175
|
-
return result;
|
|
101
|
+
return w.finish();
|
|
176
102
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (
|
|
187
|
-
|
|
188
|
-
if (params.group_order !== void 0) count++;
|
|
189
|
-
writer.writeVarInt(count);
|
|
190
|
-
if (params.expires !== void 0) {
|
|
191
|
-
writer.writeVarInt(PARAM_EXPIRES);
|
|
192
|
-
writer.writeVarInt(params.expires);
|
|
103
|
+
function encodeDatagram(dg) {
|
|
104
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
105
|
+
const dgType = dg.datagramType;
|
|
106
|
+
w.writeVarInt(BigInt(dgType));
|
|
107
|
+
w.writeVarInt(dg.trackAlias);
|
|
108
|
+
w.writeVarInt(dg.groupId);
|
|
109
|
+
const extensionsPresent = (dgType & 1) !== 0;
|
|
110
|
+
const objectIdAbsent = (dgType & 4) !== 0;
|
|
111
|
+
const isStatus = (dgType & 32) !== 0;
|
|
112
|
+
if (!objectIdAbsent) {
|
|
113
|
+
w.writeVarInt(dg.objectId);
|
|
193
114
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
const raw = tmpW.finish();
|
|
200
|
-
writer.writeVarInt(raw.byteLength);
|
|
201
|
-
writer.writeBytes(raw);
|
|
115
|
+
w.writeUint8(dg.publisherPriority);
|
|
116
|
+
if (extensionsPresent) {
|
|
117
|
+
const extData = _nullishCoalesce(dg.extensionData, () => ( new Uint8Array(0)));
|
|
118
|
+
w.writeVarInt(BigInt(extData.length));
|
|
119
|
+
if (extData.length > 0) w.writeBytes(extData);
|
|
202
120
|
}
|
|
203
|
-
if (
|
|
204
|
-
|
|
205
|
-
|
|
121
|
+
if (isStatus) {
|
|
122
|
+
w.writeVarInt(_nullishCoalesce(dg.objectStatus, () => ( 0n)));
|
|
123
|
+
} else {
|
|
124
|
+
w.writeBytes(dg.payload);
|
|
206
125
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
126
|
+
return w.finish();
|
|
127
|
+
}
|
|
128
|
+
function encodeFetchStream(stream) {
|
|
129
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
130
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
131
|
+
w.writeVarInt(stream.requestId);
|
|
132
|
+
for (const obj of stream.objects) {
|
|
133
|
+
w.writeUint8(obj.serializationFlags);
|
|
134
|
+
const flags = obj.serializationFlags;
|
|
135
|
+
if (flags & 8) w.writeVarInt(obj.groupId);
|
|
136
|
+
const subgroupEncoding = flags & 3;
|
|
137
|
+
if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
|
|
138
|
+
if (flags & 4) w.writeVarInt(obj.objectId);
|
|
139
|
+
if (flags & 16) w.writeUint8(obj.publisherPriority);
|
|
140
|
+
if (flags & 32) {
|
|
141
|
+
w.writeVarInt(BigInt(obj.extensionData.length));
|
|
142
|
+
if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
|
|
215
143
|
}
|
|
216
|
-
|
|
217
|
-
|
|
144
|
+
w.writeVarInt(obj.payloadLength);
|
|
145
|
+
if (obj.payloadLength === 0) {
|
|
146
|
+
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
147
|
+
} else {
|
|
148
|
+
w.writeBytes(obj.payload);
|
|
218
149
|
}
|
|
219
|
-
const raw = tmpW.finish();
|
|
220
|
-
writer.writeVarInt(raw.byteLength);
|
|
221
|
-
writer.writeBytes(raw);
|
|
222
|
-
}
|
|
223
|
-
if (params.group_order !== void 0) {
|
|
224
|
-
writer.writeVarInt(PARAM_GROUP_ORDER);
|
|
225
|
-
writer.writeVarInt(params.group_order);
|
|
226
150
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
151
|
+
return w.finish();
|
|
152
|
+
}
|
|
153
|
+
function decodeSubgroupStream(bytes) {
|
|
154
|
+
try {
|
|
155
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
156
|
+
const streamType = Number(r.readVarInt());
|
|
157
|
+
if (!(streamType >= 16 && streamType <= 23 || streamType >= 48 && streamType <= 55)) {
|
|
158
|
+
return {
|
|
159
|
+
ok: false,
|
|
160
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
161
|
+
"CONSTRAINT_VIOLATION",
|
|
162
|
+
`Expected subgroup stream type 0x10-0x17/0x30-0x37, got 0x${streamType.toString(16)}`,
|
|
163
|
+
0
|
|
164
|
+
)
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
const extensionsPresent = (streamType & 1) !== 0;
|
|
168
|
+
const endOfGroup = (streamType & 2) !== 0;
|
|
169
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
170
|
+
const hasPriority = streamType < 48;
|
|
171
|
+
const trackAlias = r.readVarInt();
|
|
172
|
+
const groupId = r.readVarInt();
|
|
173
|
+
let subgroupId = 0n;
|
|
174
|
+
if (hasSubgroupField) {
|
|
175
|
+
subgroupId = r.readVarInt();
|
|
176
|
+
}
|
|
177
|
+
let publisherPriority = 128;
|
|
178
|
+
if (hasPriority) {
|
|
179
|
+
publisherPriority = r.readUint8();
|
|
180
|
+
}
|
|
181
|
+
const objects = [];
|
|
182
|
+
let prevObjectId = -1n;
|
|
183
|
+
let firstObject = true;
|
|
184
|
+
while (r.remaining > 0) {
|
|
185
|
+
const byteOffset = r.offset;
|
|
186
|
+
const delta = r.readVarInt();
|
|
187
|
+
let objectId;
|
|
188
|
+
if (firstObject) {
|
|
189
|
+
objectId = delta;
|
|
190
|
+
firstObject = false;
|
|
236
191
|
} else {
|
|
237
|
-
|
|
238
|
-
writer.writeVarInt(raw.byteLength);
|
|
239
|
-
writer.writeBytes(raw);
|
|
192
|
+
objectId = prevObjectId + 1n + delta;
|
|
240
193
|
}
|
|
194
|
+
let extensionData = new Uint8Array(0);
|
|
195
|
+
if (extensionsPresent) {
|
|
196
|
+
const extLen = Number(r.readVarInt());
|
|
197
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
198
|
+
}
|
|
199
|
+
const payloadLength = Number(r.readVarInt());
|
|
200
|
+
let payload;
|
|
201
|
+
let status;
|
|
202
|
+
let payloadByteOffset;
|
|
203
|
+
if (payloadLength === 0) {
|
|
204
|
+
status = r.readVarInt();
|
|
205
|
+
payloadByteOffset = r.offset;
|
|
206
|
+
payload = new Uint8Array(0);
|
|
207
|
+
} else {
|
|
208
|
+
payloadByteOffset = r.offset;
|
|
209
|
+
payload = r.readBytesView(payloadLength);
|
|
210
|
+
}
|
|
211
|
+
const obj = {
|
|
212
|
+
type: "object",
|
|
213
|
+
byteOffset,
|
|
214
|
+
payloadByteOffset,
|
|
215
|
+
objectId,
|
|
216
|
+
payloadLength,
|
|
217
|
+
extensionData,
|
|
218
|
+
payload
|
|
219
|
+
};
|
|
220
|
+
if (status !== void 0) obj.status = status;
|
|
221
|
+
objects.push(obj);
|
|
222
|
+
prevObjectId = objectId;
|
|
241
223
|
}
|
|
224
|
+
const result = {
|
|
225
|
+
type: "subgroup",
|
|
226
|
+
headerType: streamType,
|
|
227
|
+
trackAlias,
|
|
228
|
+
groupId,
|
|
229
|
+
subgroupId,
|
|
230
|
+
publisherPriority,
|
|
231
|
+
objects
|
|
232
|
+
};
|
|
233
|
+
if (endOfGroup) result.endOfGroup = true;
|
|
234
|
+
return {
|
|
235
|
+
ok: true,
|
|
236
|
+
value: result,
|
|
237
|
+
bytesRead: r.offset
|
|
238
|
+
};
|
|
239
|
+
} catch (e) {
|
|
240
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
241
|
+
throw e;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
function
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
if (filter_type === 3n || filter_type === 4n) {
|
|
270
|
-
filter.start_group = reader.readVarInt();
|
|
271
|
-
filter.start_object = reader.readVarInt();
|
|
272
|
-
}
|
|
273
|
-
if (filter_type === 4n) {
|
|
274
|
-
filter.end_group = reader.readVarInt();
|
|
275
|
-
}
|
|
276
|
-
const consumed = reader.offset - startOff;
|
|
277
|
-
if (consumed < length) reader.readBytes(length - consumed);
|
|
278
|
-
result.subscription_filter = filter;
|
|
279
|
-
} else if (paramType % 2n === 0n) {
|
|
280
|
-
const value = reader.readVarInt();
|
|
281
|
-
const tmpWriter = new (0, _chunkFWISIR26cjs.BufferWriter)(16);
|
|
282
|
-
tmpWriter.writeVarInt(value);
|
|
283
|
-
const raw = tmpWriter.finish();
|
|
284
|
-
unknown.push({
|
|
285
|
-
id: `0x${paramType.toString(16)}`,
|
|
286
|
-
length: raw.byteLength,
|
|
287
|
-
raw_hex: bytesToHex(raw)
|
|
288
|
-
});
|
|
244
|
+
function decodeDatagram(bytes) {
|
|
245
|
+
try {
|
|
246
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
247
|
+
const dgType = Number(r.readVarInt());
|
|
248
|
+
const extensionsPresent = (dgType & 1) !== 0;
|
|
249
|
+
const objectIdAbsent = (dgType & 4) !== 0;
|
|
250
|
+
const endOfGroup = (dgType & 2) !== 0;
|
|
251
|
+
const isStatus = (dgType & 32) !== 0;
|
|
252
|
+
const trackAlias = r.readVarInt();
|
|
253
|
+
const groupId = r.readVarInt();
|
|
254
|
+
let objectId = 0n;
|
|
255
|
+
if (!objectIdAbsent) {
|
|
256
|
+
objectId = r.readVarInt();
|
|
257
|
+
}
|
|
258
|
+
const publisherPriority = r.readUint8();
|
|
259
|
+
let extensionData;
|
|
260
|
+
if (extensionsPresent) {
|
|
261
|
+
const extLen = Number(r.readVarInt());
|
|
262
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
263
|
+
}
|
|
264
|
+
let objectStatus;
|
|
265
|
+
let payload;
|
|
266
|
+
if (isStatus) {
|
|
267
|
+
objectStatus = r.readVarInt();
|
|
268
|
+
payload = new Uint8Array(0);
|
|
289
269
|
} else {
|
|
290
|
-
|
|
291
|
-
const bytes = reader.readBytes(length);
|
|
292
|
-
unknown.push({
|
|
293
|
-
id: `0x${paramType.toString(16)}`,
|
|
294
|
-
length,
|
|
295
|
-
raw_hex: bytesToHex(bytes)
|
|
296
|
-
});
|
|
270
|
+
payload = r.readBytesView(r.remaining);
|
|
297
271
|
}
|
|
272
|
+
const payloadLength = payload.byteLength;
|
|
273
|
+
const result = {
|
|
274
|
+
type: "datagram",
|
|
275
|
+
datagramType: dgType,
|
|
276
|
+
trackAlias,
|
|
277
|
+
groupId,
|
|
278
|
+
objectId,
|
|
279
|
+
publisherPriority,
|
|
280
|
+
payloadLength,
|
|
281
|
+
payload
|
|
282
|
+
};
|
|
283
|
+
if (endOfGroup) result.endOfGroup = true;
|
|
284
|
+
if (objectStatus !== void 0)
|
|
285
|
+
result.objectStatus = objectStatus;
|
|
286
|
+
if (extensionData !== void 0)
|
|
287
|
+
result.extensionData = extensionData;
|
|
288
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
289
|
+
} catch (e) {
|
|
290
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
291
|
+
throw e;
|
|
298
292
|
}
|
|
299
|
-
if (unknown.length > 0) {
|
|
300
|
-
result.unknown = unknown;
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
303
|
-
}
|
|
304
|
-
function encodeClientSetupPayload(msg, w) {
|
|
305
|
-
encodeSetupParams(msg.parameters, w);
|
|
306
|
-
}
|
|
307
|
-
function encodeServerSetupPayload(msg, w) {
|
|
308
|
-
encodeSetupParams(msg.parameters, w);
|
|
309
|
-
}
|
|
310
|
-
function encodeSubscribePayload(msg, w) {
|
|
311
|
-
w.writeVarInt(msg.request_id);
|
|
312
|
-
w.writeTuple(msg.track_namespace);
|
|
313
|
-
w.writeString(msg.track_name);
|
|
314
|
-
encodeParams(msg.parameters, w);
|
|
315
|
-
}
|
|
316
|
-
function encodeSubscribeOkPayload(msg, w) {
|
|
317
|
-
w.writeVarInt(msg.request_id);
|
|
318
|
-
w.writeVarInt(msg.track_alias);
|
|
319
|
-
encodeParams(msg.parameters, w);
|
|
320
|
-
}
|
|
321
|
-
function encodeSubscribeUpdatePayload(msg, w) {
|
|
322
|
-
w.writeVarInt(msg.request_id);
|
|
323
|
-
w.writeVarInt(msg.subscription_request_id);
|
|
324
|
-
encodeParams(msg.parameters, w);
|
|
325
|
-
}
|
|
326
|
-
function encodeUnsubscribePayload(msg, w) {
|
|
327
|
-
w.writeVarInt(msg.request_id);
|
|
328
|
-
}
|
|
329
|
-
function encodePublishPayload(msg, w) {
|
|
330
|
-
w.writeVarInt(msg.request_id);
|
|
331
|
-
w.writeTuple(msg.track_namespace);
|
|
332
|
-
w.writeString(msg.track_name);
|
|
333
|
-
w.writeVarInt(msg.track_alias);
|
|
334
|
-
encodeParams(msg.parameters, w);
|
|
335
|
-
}
|
|
336
|
-
function encodePublishOkPayload(msg, w) {
|
|
337
|
-
w.writeVarInt(msg.request_id);
|
|
338
|
-
encodeParams(msg.parameters, w);
|
|
339
|
-
}
|
|
340
|
-
function encodePublishDonePayload(msg, w) {
|
|
341
|
-
w.writeVarInt(msg.request_id);
|
|
342
|
-
w.writeVarInt(msg.status_code);
|
|
343
|
-
w.writeVarInt(msg.stream_count);
|
|
344
|
-
w.writeString(msg.reason_phrase);
|
|
345
293
|
}
|
|
346
|
-
function
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
294
|
+
function decodeFetchStream(bytes) {
|
|
295
|
+
try {
|
|
296
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
297
|
+
const streamType = r.readVarInt();
|
|
298
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
299
|
+
return {
|
|
300
|
+
ok: false,
|
|
301
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
302
|
+
"CONSTRAINT_VIOLATION",
|
|
303
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
304
|
+
0
|
|
305
|
+
)
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
const requestId = r.readVarInt();
|
|
309
|
+
const objects = [];
|
|
310
|
+
let prevGroupId = 0n;
|
|
311
|
+
let prevSubgroupId = 0n;
|
|
312
|
+
let prevObjectId = 0n;
|
|
313
|
+
let prevPriority = 128;
|
|
314
|
+
let first = true;
|
|
315
|
+
while (r.remaining > 0) {
|
|
316
|
+
const byteOffset = r.offset;
|
|
317
|
+
const flags = r.readUint8();
|
|
318
|
+
const subgroupEncoding = flags & 3;
|
|
319
|
+
const objectIdPresent = (flags & 4) !== 0;
|
|
320
|
+
const groupIdPresent = (flags & 8) !== 0;
|
|
321
|
+
const priorityPresent = (flags & 16) !== 0;
|
|
322
|
+
const extensionsPresent = (flags & 32) !== 0;
|
|
323
|
+
if (flags & 192) {
|
|
324
|
+
return {
|
|
325
|
+
ok: false,
|
|
326
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
327
|
+
"CONSTRAINT_VIOLATION",
|
|
328
|
+
"Reserved bits set in fetch object flags",
|
|
329
|
+
r.offset
|
|
330
|
+
)
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
let groupId = prevGroupId;
|
|
334
|
+
if (groupIdPresent) {
|
|
335
|
+
groupId = r.readVarInt();
|
|
336
|
+
} else if (first) {
|
|
337
|
+
return {
|
|
338
|
+
ok: false,
|
|
339
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
340
|
+
"CONSTRAINT_VIOLATION",
|
|
341
|
+
"First fetch object must include groupId",
|
|
342
|
+
r.offset
|
|
343
|
+
)
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
let subgroupId;
|
|
347
|
+
if (subgroupEncoding === 0) {
|
|
348
|
+
subgroupId = 0n;
|
|
349
|
+
} else if (subgroupEncoding === 1) {
|
|
350
|
+
if (first) {
|
|
351
|
+
return {
|
|
352
|
+
ok: false,
|
|
353
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
354
|
+
"CONSTRAINT_VIOLATION",
|
|
355
|
+
"First fetch object cannot reference prior subgroupId",
|
|
356
|
+
r.offset
|
|
357
|
+
)
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
subgroupId = prevSubgroupId;
|
|
361
|
+
} else if (subgroupEncoding === 2) {
|
|
362
|
+
if (first) {
|
|
363
|
+
return {
|
|
364
|
+
ok: false,
|
|
365
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
366
|
+
"CONSTRAINT_VIOLATION",
|
|
367
|
+
"First fetch object cannot reference prior subgroupId",
|
|
368
|
+
r.offset
|
|
369
|
+
)
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
subgroupId = prevSubgroupId + 1n;
|
|
373
|
+
} else {
|
|
374
|
+
subgroupId = r.readVarInt();
|
|
375
|
+
}
|
|
376
|
+
let objectId = prevObjectId + 1n;
|
|
377
|
+
if (objectIdPresent) {
|
|
378
|
+
objectId = r.readVarInt();
|
|
379
|
+
} else if (first) {
|
|
380
|
+
return {
|
|
381
|
+
ok: false,
|
|
382
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
383
|
+
"CONSTRAINT_VIOLATION",
|
|
384
|
+
"First fetch object must include objectId",
|
|
385
|
+
r.offset
|
|
386
|
+
)
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
if (priorityPresent) {
|
|
390
|
+
prevPriority = r.readUint8();
|
|
391
|
+
}
|
|
392
|
+
let extensionData = new Uint8Array(0);
|
|
393
|
+
if (extensionsPresent) {
|
|
394
|
+
const extLen = Number(r.readVarInt());
|
|
395
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
396
|
+
}
|
|
397
|
+
const payloadLength = Number(r.readVarInt());
|
|
398
|
+
let payload;
|
|
399
|
+
let status;
|
|
400
|
+
let payloadByteOffset;
|
|
401
|
+
if (payloadLength > 0) {
|
|
402
|
+
payloadByteOffset = r.offset;
|
|
403
|
+
payload = r.readBytesView(payloadLength);
|
|
404
|
+
} else {
|
|
405
|
+
status = r.readVarInt();
|
|
406
|
+
payloadByteOffset = r.offset;
|
|
407
|
+
payload = new Uint8Array(0);
|
|
408
|
+
}
|
|
409
|
+
const obj = {
|
|
410
|
+
type: "object",
|
|
411
|
+
byteOffset,
|
|
412
|
+
payloadByteOffset,
|
|
413
|
+
serializationFlags: flags,
|
|
414
|
+
groupId,
|
|
415
|
+
subgroupId,
|
|
416
|
+
objectId,
|
|
417
|
+
publisherPriority: prevPriority,
|
|
418
|
+
payloadLength,
|
|
419
|
+
extensionData,
|
|
420
|
+
payload
|
|
421
|
+
};
|
|
422
|
+
if (status !== void 0) obj.status = status;
|
|
423
|
+
objects.push(obj);
|
|
424
|
+
prevGroupId = groupId;
|
|
425
|
+
prevSubgroupId = subgroupId;
|
|
426
|
+
prevObjectId = objectId;
|
|
427
|
+
first = false;
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
ok: true,
|
|
431
|
+
value: { type: "fetch", requestId, objects },
|
|
432
|
+
bytesRead: r.offset
|
|
433
|
+
};
|
|
434
|
+
} catch (e) {
|
|
435
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
436
|
+
throw e;
|
|
437
|
+
}
|
|
350
438
|
}
|
|
351
|
-
function
|
|
352
|
-
|
|
439
|
+
function decodeDataStream(streamType, bytes) {
|
|
440
|
+
switch (streamType) {
|
|
441
|
+
case "subgroup":
|
|
442
|
+
return decodeSubgroupStream(bytes);
|
|
443
|
+
case "datagram":
|
|
444
|
+
return decodeDatagram(bytes);
|
|
445
|
+
case "fetch":
|
|
446
|
+
return decodeFetchStream(bytes);
|
|
447
|
+
default: {
|
|
448
|
+
const _exhaustive = streamType;
|
|
449
|
+
throw new Error(`Unknown stream type: ${_exhaustive}`);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
353
452
|
}
|
|
354
|
-
function
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
453
|
+
function createSubgroupStreamDecoder() {
|
|
454
|
+
let buffer = new Uint8Array(0);
|
|
455
|
+
let offset = 0;
|
|
456
|
+
let headerEmitted = false;
|
|
457
|
+
let prevObjectId = -1n;
|
|
458
|
+
let firstObject = true;
|
|
459
|
+
let _subgroupIsFirstObjId = false;
|
|
460
|
+
let _extensionsPresent = false;
|
|
461
|
+
return new TransformStream({
|
|
462
|
+
transform(chunk, controller) {
|
|
463
|
+
if (offset > 0) {
|
|
464
|
+
buffer = buffer.subarray(offset);
|
|
465
|
+
offset = 0;
|
|
466
|
+
}
|
|
467
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
468
|
+
newBuffer.set(buffer, 0);
|
|
469
|
+
newBuffer.set(chunk, buffer.length);
|
|
470
|
+
buffer = newBuffer;
|
|
471
|
+
if (!headerEmitted) {
|
|
472
|
+
try {
|
|
473
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(buffer.subarray(offset));
|
|
474
|
+
const streamType = Number(r.readVarInt());
|
|
475
|
+
if (!(streamType >= 16 && streamType <= 23 || streamType >= 48 && streamType <= 55)) {
|
|
476
|
+
controller.error(
|
|
477
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
478
|
+
"CONSTRAINT_VIOLATION",
|
|
479
|
+
`Expected subgroup stream type, got 0x${streamType.toString(16)}`,
|
|
480
|
+
0
|
|
481
|
+
)
|
|
482
|
+
);
|
|
483
|
+
return;
|
|
484
|
+
}
|
|
485
|
+
_extensionsPresent = (streamType & 1) !== 0;
|
|
486
|
+
const hasSubgroupField = (streamType & 4) !== 0;
|
|
487
|
+
_subgroupIsFirstObjId = false;
|
|
488
|
+
const hasPriority = streamType < 48;
|
|
489
|
+
const trackAlias = r.readVarInt();
|
|
490
|
+
const groupId = r.readVarInt();
|
|
491
|
+
let subgroupId = 0n;
|
|
492
|
+
if (hasSubgroupField) {
|
|
493
|
+
subgroupId = r.readVarInt();
|
|
494
|
+
}
|
|
495
|
+
let publisherPriority = 128;
|
|
496
|
+
if (hasPriority) {
|
|
497
|
+
publisherPriority = r.readUint8();
|
|
498
|
+
}
|
|
499
|
+
controller.enqueue({
|
|
500
|
+
type: "subgroup_header",
|
|
501
|
+
trackAlias,
|
|
502
|
+
groupId,
|
|
503
|
+
subgroupId,
|
|
504
|
+
publisherPriority
|
|
505
|
+
});
|
|
506
|
+
headerEmitted = true;
|
|
507
|
+
offset += r.offset;
|
|
508
|
+
} catch (e) {
|
|
509
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
controller.error(e);
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
while (offset < buffer.length) {
|
|
517
|
+
try {
|
|
518
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(buffer.subarray(offset));
|
|
519
|
+
const byteOffset = r.offset;
|
|
520
|
+
const delta = r.readVarInt();
|
|
521
|
+
let objectId;
|
|
522
|
+
if (firstObject) {
|
|
523
|
+
objectId = delta;
|
|
524
|
+
firstObject = false;
|
|
525
|
+
} else {
|
|
526
|
+
objectId = prevObjectId + 1n + delta;
|
|
527
|
+
}
|
|
528
|
+
let extensionData = new Uint8Array(0);
|
|
529
|
+
if (_extensionsPresent) {
|
|
530
|
+
const extLen = Number(r.readVarInt());
|
|
531
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
532
|
+
}
|
|
533
|
+
const payloadLength = Number(r.readVarInt());
|
|
534
|
+
const payloadByteOffset = r.offset;
|
|
535
|
+
const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
|
|
536
|
+
controller.enqueue({
|
|
537
|
+
type: "object",
|
|
538
|
+
byteOffset,
|
|
539
|
+
payloadByteOffset,
|
|
540
|
+
objectId,
|
|
541
|
+
payloadLength,
|
|
542
|
+
extensionData,
|
|
543
|
+
payload
|
|
544
|
+
});
|
|
545
|
+
offset += r.offset;
|
|
546
|
+
prevObjectId = objectId;
|
|
547
|
+
} catch (e) {
|
|
548
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
549
|
+
break;
|
|
550
|
+
}
|
|
551
|
+
controller.error(e);
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
flush(controller) {
|
|
557
|
+
if (offset < buffer.length) {
|
|
558
|
+
controller.error(new (0, _chunkJL3NEW3Ocjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
});
|
|
358
562
|
}
|
|
359
|
-
function
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
563
|
+
function createFetchStreamDecoder() {
|
|
564
|
+
let buffer = new Uint8Array(0);
|
|
565
|
+
let offset = 0;
|
|
566
|
+
let headerEmitted = false;
|
|
567
|
+
return new TransformStream({
|
|
568
|
+
transform(chunk, controller) {
|
|
569
|
+
if (offset > 0) {
|
|
570
|
+
buffer = buffer.subarray(offset);
|
|
571
|
+
offset = 0;
|
|
572
|
+
}
|
|
573
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
574
|
+
newBuffer.set(buffer, 0);
|
|
575
|
+
newBuffer.set(chunk, buffer.length);
|
|
576
|
+
buffer = newBuffer;
|
|
577
|
+
if (!headerEmitted) {
|
|
578
|
+
try {
|
|
579
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(buffer.subarray(offset));
|
|
580
|
+
const streamType = r.readVarInt();
|
|
581
|
+
if (streamType !== FETCH_STREAM_TYPE) {
|
|
582
|
+
controller.error(
|
|
583
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
584
|
+
"CONSTRAINT_VIOLATION",
|
|
585
|
+
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
586
|
+
0
|
|
587
|
+
)
|
|
588
|
+
);
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
const requestId = r.readVarInt();
|
|
592
|
+
controller.enqueue({ type: "fetch_header", requestId });
|
|
593
|
+
headerEmitted = true;
|
|
594
|
+
offset += r.offset;
|
|
595
|
+
} catch (e) {
|
|
596
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
controller.error(e);
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
while (offset < buffer.length) {
|
|
604
|
+
try {
|
|
605
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(buffer.subarray(offset));
|
|
606
|
+
const flags = r.readUint8();
|
|
607
|
+
const objectIdPresent = (flags & 4) !== 0;
|
|
608
|
+
const groupIdPresent = (flags & 8) !== 0;
|
|
609
|
+
const priorityPresent = (flags & 16) !== 0;
|
|
610
|
+
const extensionsPresent = (flags & 32) !== 0;
|
|
611
|
+
const subgroupEncoding = flags & 3;
|
|
612
|
+
if (groupIdPresent) r.readVarInt();
|
|
613
|
+
if (subgroupEncoding === 3) r.readVarInt();
|
|
614
|
+
let objectId = 0n;
|
|
615
|
+
if (objectIdPresent) objectId = r.readVarInt();
|
|
616
|
+
if (priorityPresent) r.readUint8();
|
|
617
|
+
let extensionData = new Uint8Array(0);
|
|
618
|
+
if (extensionsPresent) {
|
|
619
|
+
const extLen = Number(r.readVarInt());
|
|
620
|
+
extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
|
|
621
|
+
}
|
|
622
|
+
const payloadLength = Number(r.readVarInt());
|
|
623
|
+
const payloadByteOffset = r.offset;
|
|
624
|
+
const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
|
|
625
|
+
controller.enqueue({
|
|
626
|
+
type: "object",
|
|
627
|
+
objectId,
|
|
628
|
+
payloadLength,
|
|
629
|
+
extensionData,
|
|
630
|
+
payload,
|
|
631
|
+
byteOffset: 0,
|
|
632
|
+
payloadByteOffset
|
|
633
|
+
});
|
|
634
|
+
offset += r.offset;
|
|
635
|
+
} catch (e) {
|
|
636
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
637
|
+
break;
|
|
638
|
+
}
|
|
639
|
+
controller.error(e);
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
flush(controller) {
|
|
645
|
+
if (offset < buffer.length) {
|
|
646
|
+
controller.error(new (0, _chunkJL3NEW3Ocjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
});
|
|
363
650
|
}
|
|
364
|
-
function
|
|
365
|
-
|
|
651
|
+
function createDataStreamDecoder() {
|
|
652
|
+
let buffer = new Uint8Array(0);
|
|
653
|
+
let offset = 0;
|
|
654
|
+
let inner = null;
|
|
655
|
+
const _innerWriter = null;
|
|
656
|
+
const _innerReader = null;
|
|
657
|
+
return new TransformStream({
|
|
658
|
+
transform(chunk, controller) {
|
|
659
|
+
if (offset > 0) {
|
|
660
|
+
buffer = buffer.subarray(offset);
|
|
661
|
+
offset = 0;
|
|
662
|
+
}
|
|
663
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
664
|
+
newBuffer.set(buffer, 0);
|
|
665
|
+
newBuffer.set(chunk, buffer.length);
|
|
666
|
+
buffer = newBuffer;
|
|
667
|
+
if (inner === null) {
|
|
668
|
+
if (offset >= buffer.length) return;
|
|
669
|
+
const firstByte = buffer[offset];
|
|
670
|
+
if (firstByte >= 16 && firstByte <= 23 || firstByte >= 48 && firstByte <= 55) {
|
|
671
|
+
const decoder = createSubgroupStreamDecoder();
|
|
672
|
+
inner = decoder;
|
|
673
|
+
} else if (firstByte === 5) {
|
|
674
|
+
const decoder = createFetchStreamDecoder();
|
|
675
|
+
inner = decoder;
|
|
676
|
+
} else {
|
|
677
|
+
controller.error(
|
|
678
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
679
|
+
"CONSTRAINT_VIOLATION",
|
|
680
|
+
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
681
|
+
0
|
|
682
|
+
)
|
|
683
|
+
);
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
},
|
|
688
|
+
flush(controller) {
|
|
689
|
+
if (offset >= buffer.length) return;
|
|
690
|
+
const view = buffer.subarray(offset);
|
|
691
|
+
const firstByte = view[0];
|
|
692
|
+
let result;
|
|
693
|
+
if (firstByte >= 16 && firstByte <= 23 || firstByte >= 48 && firstByte <= 55) {
|
|
694
|
+
result = decodeSubgroupStream(view);
|
|
695
|
+
} else if (firstByte === 5) {
|
|
696
|
+
result = decodeFetchStream(view);
|
|
697
|
+
} else {
|
|
698
|
+
controller.error(
|
|
699
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
700
|
+
"CONSTRAINT_VIOLATION",
|
|
701
|
+
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
702
|
+
0
|
|
703
|
+
)
|
|
704
|
+
);
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
if (!result.ok) {
|
|
708
|
+
controller.error(result.error);
|
|
709
|
+
return;
|
|
710
|
+
}
|
|
711
|
+
const stream = result.value;
|
|
712
|
+
if (stream.type === "subgroup") {
|
|
713
|
+
controller.enqueue({
|
|
714
|
+
type: "subgroup_header",
|
|
715
|
+
trackAlias: stream.trackAlias,
|
|
716
|
+
groupId: stream.groupId,
|
|
717
|
+
subgroupId: stream.subgroupId,
|
|
718
|
+
publisherPriority: stream.publisherPriority
|
|
719
|
+
});
|
|
720
|
+
for (const obj of stream.objects) {
|
|
721
|
+
controller.enqueue(obj);
|
|
722
|
+
}
|
|
723
|
+
} else if (stream.type === "fetch") {
|
|
724
|
+
controller.enqueue({
|
|
725
|
+
type: "fetch_header",
|
|
726
|
+
requestId: stream.requestId
|
|
727
|
+
});
|
|
728
|
+
for (const obj of stream.objects) {
|
|
729
|
+
controller.enqueue(obj);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
});
|
|
366
734
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
735
|
+
|
|
736
|
+
// src/drafts/draft15/codec.ts
|
|
737
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
738
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
739
|
+
function encodeSetupParams(params, writer) {
|
|
740
|
+
let count = 0;
|
|
741
|
+
if (params.path !== void 0) count++;
|
|
742
|
+
if (params.max_request_id !== void 0) count++;
|
|
743
|
+
if (params.authorization_token !== void 0) count++;
|
|
744
|
+
if (params.max_auth_token_cache_size !== void 0) count++;
|
|
745
|
+
if (params.authority !== void 0) count++;
|
|
746
|
+
if (params.moqt_implementation !== void 0) count++;
|
|
747
|
+
if (params.unknown) count += params.unknown.length;
|
|
748
|
+
writer.writeVarInt(count);
|
|
749
|
+
if (params.path !== void 0) {
|
|
750
|
+
writer.writeVarInt(SETUP_PARAM_PATH);
|
|
751
|
+
const encoded = textEncoder.encode(params.path);
|
|
752
|
+
writer.writeVarInt(encoded.byteLength);
|
|
753
|
+
writer.writeBytes(encoded);
|
|
754
|
+
}
|
|
755
|
+
if (params.max_request_id !== void 0) {
|
|
756
|
+
writer.writeVarInt(SETUP_PARAM_MAX_REQUEST_ID);
|
|
757
|
+
writer.writeVarInt(params.max_request_id);
|
|
758
|
+
}
|
|
759
|
+
if (params.authorization_token !== void 0) {
|
|
760
|
+
writer.writeVarInt(SETUP_PARAM_AUTHORIZATION_TOKEN);
|
|
761
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(64);
|
|
762
|
+
encodeAuthorizationToken(params.authorization_token, tmpW);
|
|
763
|
+
const raw = tmpW.finish();
|
|
764
|
+
writer.writeVarInt(raw.byteLength);
|
|
765
|
+
writer.writeBytes(raw);
|
|
766
|
+
}
|
|
767
|
+
if (params.max_auth_token_cache_size !== void 0) {
|
|
768
|
+
writer.writeVarInt(SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE);
|
|
769
|
+
writer.writeVarInt(params.max_auth_token_cache_size);
|
|
770
|
+
}
|
|
771
|
+
if (params.authority !== void 0) {
|
|
772
|
+
writer.writeVarInt(SETUP_PARAM_AUTHORITY);
|
|
773
|
+
const encoded = textEncoder.encode(params.authority);
|
|
774
|
+
writer.writeVarInt(encoded.byteLength);
|
|
775
|
+
writer.writeBytes(encoded);
|
|
776
|
+
}
|
|
777
|
+
if (params.moqt_implementation !== void 0) {
|
|
778
|
+
writer.writeVarInt(SETUP_PARAM_MOQT_IMPLEMENTATION);
|
|
779
|
+
const encoded = textEncoder.encode(params.moqt_implementation);
|
|
780
|
+
writer.writeVarInt(encoded.byteLength);
|
|
781
|
+
writer.writeBytes(encoded);
|
|
782
|
+
}
|
|
783
|
+
if (params.unknown) {
|
|
784
|
+
for (const u of params.unknown) {
|
|
785
|
+
const id = BigInt(u.id);
|
|
786
|
+
writer.writeVarInt(id);
|
|
787
|
+
if (id % 2n === 0n) {
|
|
788
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
789
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(raw);
|
|
790
|
+
const value = tmpReader.readVarInt();
|
|
791
|
+
writer.writeVarInt(value);
|
|
792
|
+
} else {
|
|
793
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
794
|
+
writer.writeVarInt(raw.byteLength);
|
|
795
|
+
writer.writeBytes(raw);
|
|
796
|
+
}
|
|
797
|
+
}
|
|
381
798
|
}
|
|
382
|
-
encodeParams(msg.parameters, w);
|
|
383
|
-
}
|
|
384
|
-
function encodeFetchOkPayload(msg, w) {
|
|
385
|
-
w.writeVarInt(msg.request_id);
|
|
386
|
-
w.writeUint8(msg.end_of_track);
|
|
387
|
-
w.writeVarInt(msg.end_group);
|
|
388
|
-
w.writeVarInt(msg.end_object);
|
|
389
|
-
encodeParams(msg.parameters, w);
|
|
390
|
-
}
|
|
391
|
-
function encodeFetchCancelPayload(msg, w) {
|
|
392
|
-
w.writeVarInt(msg.request_id);
|
|
393
799
|
}
|
|
394
|
-
function
|
|
800
|
+
function decodeSetupParams(reader) {
|
|
801
|
+
const count = Number(reader.readVarInt());
|
|
802
|
+
const result = {};
|
|
803
|
+
const unknown = [];
|
|
804
|
+
for (let i = 0; i < count; i++) {
|
|
805
|
+
const paramType = reader.readVarInt();
|
|
806
|
+
if (paramType % 2n === 0n) {
|
|
807
|
+
const value = reader.readVarInt();
|
|
808
|
+
if (paramType === SETUP_PARAM_MAX_REQUEST_ID) {
|
|
809
|
+
result.max_request_id = value;
|
|
810
|
+
} else if (paramType === SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE) {
|
|
811
|
+
result.max_auth_token_cache_size = value;
|
|
812
|
+
} else {
|
|
813
|
+
const tmpWriter = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
814
|
+
tmpWriter.writeVarInt(value);
|
|
815
|
+
const raw = tmpWriter.finish();
|
|
816
|
+
unknown.push({
|
|
817
|
+
id: `0x${paramType.toString(16)}`,
|
|
818
|
+
length: raw.byteLength,
|
|
819
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, raw)
|
|
820
|
+
});
|
|
821
|
+
}
|
|
822
|
+
} else {
|
|
823
|
+
const length = Number(reader.readVarInt());
|
|
824
|
+
const bytes = reader.readBytes(length);
|
|
825
|
+
if (paramType === SETUP_PARAM_PATH) {
|
|
826
|
+
result.path = textDecoder.decode(bytes);
|
|
827
|
+
} else if (paramType === SETUP_PARAM_AUTHORIZATION_TOKEN) {
|
|
828
|
+
result.authorization_token = decodeAuthorizationToken(new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes));
|
|
829
|
+
} else if (paramType === SETUP_PARAM_AUTHORITY) {
|
|
830
|
+
result.authority = textDecoder.decode(bytes);
|
|
831
|
+
} else if (paramType === SETUP_PARAM_MOQT_IMPLEMENTATION) {
|
|
832
|
+
result.moqt_implementation = textDecoder.decode(bytes);
|
|
833
|
+
} else {
|
|
834
|
+
unknown.push({
|
|
835
|
+
id: `0x${paramType.toString(16)}`,
|
|
836
|
+
length,
|
|
837
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, bytes)
|
|
838
|
+
});
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
if (unknown.length > 0) {
|
|
843
|
+
result.unknown = unknown;
|
|
844
|
+
}
|
|
845
|
+
return result;
|
|
846
|
+
}
|
|
847
|
+
function encodeAuthorizationToken(token, w) {
|
|
848
|
+
w.writeVarInt(token.alias_type);
|
|
849
|
+
const aliasType = Number(token.alias_type);
|
|
850
|
+
if (aliasType === 0 || aliasType === 1) {
|
|
851
|
+
w.writeVarInt(token.token_alias);
|
|
852
|
+
}
|
|
853
|
+
if (aliasType === 1 || aliasType === 3) {
|
|
854
|
+
w.writeVarInt(token.token_type);
|
|
855
|
+
const tokenBytes = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, token.token_value_hex);
|
|
856
|
+
w.writeBytes(tokenBytes);
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
function decodeAuthorizationToken(r) {
|
|
860
|
+
const alias_type = r.readVarInt();
|
|
861
|
+
const aliasType = Number(alias_type);
|
|
862
|
+
const result = { alias_type };
|
|
863
|
+
if (aliasType === 0 || aliasType === 1) {
|
|
864
|
+
result.token_alias = r.readVarInt();
|
|
865
|
+
}
|
|
866
|
+
if (aliasType === 1 || aliasType === 3) {
|
|
867
|
+
result.token_type = r.readVarInt();
|
|
868
|
+
const tokenBytes = r.readBytesView(r.remaining);
|
|
869
|
+
result.token_value_hex = _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, tokenBytes);
|
|
870
|
+
}
|
|
871
|
+
return result;
|
|
872
|
+
}
|
|
873
|
+
var PARAM_DELIVERY_TIMEOUT = 0x02n;
|
|
874
|
+
var PARAM_AUTHORIZATION_TOKEN = 0x03n;
|
|
875
|
+
var PARAM_MAX_CACHE_DURATION = 0x04n;
|
|
876
|
+
var PARAM_EXPIRES = 0x08n;
|
|
877
|
+
var PARAM_LARGEST_OBJECT = 0x09n;
|
|
878
|
+
var PARAM_PUBLISHER_PRIORITY = 0x0en;
|
|
879
|
+
var PARAM_FORWARD = 0x10n;
|
|
880
|
+
var PARAM_SUBSCRIBER_PRIORITY = 0x20n;
|
|
881
|
+
var PARAM_SUBSCRIPTION_FILTER = 0x21n;
|
|
882
|
+
var PARAM_GROUP_ORDER = 0x22n;
|
|
883
|
+
var PARAM_DYNAMIC_GROUPS = 0x30n;
|
|
884
|
+
var PARAM_NEW_GROUP_REQUEST = 0x32n;
|
|
885
|
+
function encodeParams(params, writer) {
|
|
886
|
+
let count = params.unknown ? params.unknown.length : 0;
|
|
887
|
+
if (params.delivery_timeout !== void 0) count++;
|
|
888
|
+
if (params.authorization_token !== void 0) count++;
|
|
889
|
+
if (params.max_cache_duration !== void 0) count++;
|
|
890
|
+
if (params.expires !== void 0) count++;
|
|
891
|
+
if (params.largest_object !== void 0) count++;
|
|
892
|
+
if (params.publisher_priority !== void 0) count++;
|
|
893
|
+
if (params.forward !== void 0) count++;
|
|
894
|
+
if (params.subscriber_priority !== void 0) count++;
|
|
895
|
+
if (params.subscription_filter !== void 0) count++;
|
|
896
|
+
if (params.group_order !== void 0) count++;
|
|
897
|
+
if (params.dynamic_groups !== void 0) count++;
|
|
898
|
+
if (params.new_group_request !== void 0) count++;
|
|
899
|
+
writer.writeVarInt(count);
|
|
900
|
+
if (params.delivery_timeout !== void 0) {
|
|
901
|
+
writer.writeVarInt(PARAM_DELIVERY_TIMEOUT);
|
|
902
|
+
writer.writeVarInt(params.delivery_timeout);
|
|
903
|
+
}
|
|
904
|
+
if (params.authorization_token !== void 0) {
|
|
905
|
+
writer.writeVarInt(PARAM_AUTHORIZATION_TOKEN);
|
|
906
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(64);
|
|
907
|
+
encodeAuthorizationToken(params.authorization_token, tmpW);
|
|
908
|
+
const raw = tmpW.finish();
|
|
909
|
+
writer.writeVarInt(raw.byteLength);
|
|
910
|
+
writer.writeBytes(raw);
|
|
911
|
+
}
|
|
912
|
+
if (params.max_cache_duration !== void 0) {
|
|
913
|
+
writer.writeVarInt(PARAM_MAX_CACHE_DURATION);
|
|
914
|
+
writer.writeVarInt(params.max_cache_duration);
|
|
915
|
+
}
|
|
916
|
+
if (params.expires !== void 0) {
|
|
917
|
+
writer.writeVarInt(PARAM_EXPIRES);
|
|
918
|
+
writer.writeVarInt(params.expires);
|
|
919
|
+
}
|
|
920
|
+
if (params.largest_object !== void 0) {
|
|
921
|
+
writer.writeVarInt(PARAM_LARGEST_OBJECT);
|
|
922
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
923
|
+
tmpW.writeVarInt(params.largest_object.group);
|
|
924
|
+
tmpW.writeVarInt(params.largest_object.object);
|
|
925
|
+
const raw = tmpW.finish();
|
|
926
|
+
writer.writeVarInt(raw.byteLength);
|
|
927
|
+
writer.writeBytes(raw);
|
|
928
|
+
}
|
|
929
|
+
if (params.publisher_priority !== void 0) {
|
|
930
|
+
writer.writeVarInt(PARAM_PUBLISHER_PRIORITY);
|
|
931
|
+
writer.writeVarInt(params.publisher_priority);
|
|
932
|
+
}
|
|
933
|
+
if (params.forward !== void 0) {
|
|
934
|
+
writer.writeVarInt(PARAM_FORWARD);
|
|
935
|
+
writer.writeVarInt(params.forward);
|
|
936
|
+
}
|
|
937
|
+
if (params.subscriber_priority !== void 0) {
|
|
938
|
+
writer.writeVarInt(PARAM_SUBSCRIBER_PRIORITY);
|
|
939
|
+
writer.writeVarInt(params.subscriber_priority);
|
|
940
|
+
}
|
|
941
|
+
if (params.subscription_filter !== void 0) {
|
|
942
|
+
writer.writeVarInt(PARAM_SUBSCRIPTION_FILTER);
|
|
943
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(32);
|
|
944
|
+
const f = params.subscription_filter;
|
|
945
|
+
tmpW.writeVarInt(f.filter_type);
|
|
946
|
+
if (f.filter_type === 3n || f.filter_type === 4n) {
|
|
947
|
+
tmpW.writeVarInt(f.start_group);
|
|
948
|
+
tmpW.writeVarInt(f.start_object);
|
|
949
|
+
}
|
|
950
|
+
if (f.filter_type === 4n) {
|
|
951
|
+
tmpW.writeVarInt(f.end_group);
|
|
952
|
+
}
|
|
953
|
+
const raw = tmpW.finish();
|
|
954
|
+
writer.writeVarInt(raw.byteLength);
|
|
955
|
+
writer.writeBytes(raw);
|
|
956
|
+
}
|
|
957
|
+
if (params.group_order !== void 0) {
|
|
958
|
+
writer.writeVarInt(PARAM_GROUP_ORDER);
|
|
959
|
+
writer.writeVarInt(params.group_order);
|
|
960
|
+
}
|
|
961
|
+
if (params.dynamic_groups !== void 0) {
|
|
962
|
+
writer.writeVarInt(PARAM_DYNAMIC_GROUPS);
|
|
963
|
+
writer.writeVarInt(params.dynamic_groups);
|
|
964
|
+
}
|
|
965
|
+
if (params.new_group_request !== void 0) {
|
|
966
|
+
writer.writeVarInt(PARAM_NEW_GROUP_REQUEST);
|
|
967
|
+
writer.writeVarInt(params.new_group_request);
|
|
968
|
+
}
|
|
969
|
+
if (params.unknown) {
|
|
970
|
+
for (const u of params.unknown) {
|
|
971
|
+
const id = BigInt(u.id);
|
|
972
|
+
writer.writeVarInt(id);
|
|
973
|
+
if (id % 2n === 0n) {
|
|
974
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
975
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(raw);
|
|
976
|
+
const value = tmpReader.readVarInt();
|
|
977
|
+
writer.writeVarInt(value);
|
|
978
|
+
} else {
|
|
979
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
980
|
+
writer.writeVarInt(raw.byteLength);
|
|
981
|
+
writer.writeBytes(raw);
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
function decodeParams(reader) {
|
|
987
|
+
const count = Number(reader.readVarInt());
|
|
988
|
+
const result = {};
|
|
989
|
+
const unknown = [];
|
|
990
|
+
for (let i = 0; i < count; i++) {
|
|
991
|
+
const paramType = reader.readVarInt();
|
|
992
|
+
if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
993
|
+
result.delivery_timeout = reader.readVarInt();
|
|
994
|
+
} else if (paramType === PARAM_AUTHORIZATION_TOKEN) {
|
|
995
|
+
const length = Number(reader.readVarInt());
|
|
996
|
+
const tokenBytes = reader.readBytes(length);
|
|
997
|
+
result.authorization_token = decodeAuthorizationToken(new (0, _chunkJL3NEW3Ocjs.BufferReader)(tokenBytes));
|
|
998
|
+
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
999
|
+
result.max_cache_duration = reader.readVarInt();
|
|
1000
|
+
} else if (paramType === PARAM_EXPIRES) {
|
|
1001
|
+
result.expires = reader.readVarInt();
|
|
1002
|
+
} else if (paramType === PARAM_PUBLISHER_PRIORITY) {
|
|
1003
|
+
result.publisher_priority = reader.readVarInt();
|
|
1004
|
+
} else if (paramType === PARAM_FORWARD) {
|
|
1005
|
+
result.forward = reader.readVarInt();
|
|
1006
|
+
} else if (paramType === PARAM_SUBSCRIBER_PRIORITY) {
|
|
1007
|
+
result.subscriber_priority = reader.readVarInt();
|
|
1008
|
+
} else if (paramType === PARAM_GROUP_ORDER) {
|
|
1009
|
+
result.group_order = reader.readVarInt();
|
|
1010
|
+
} else if (paramType === PARAM_DYNAMIC_GROUPS) {
|
|
1011
|
+
result.dynamic_groups = reader.readVarInt();
|
|
1012
|
+
} else if (paramType === PARAM_NEW_GROUP_REQUEST) {
|
|
1013
|
+
result.new_group_request = reader.readVarInt();
|
|
1014
|
+
} else if (paramType === PARAM_LARGEST_OBJECT) {
|
|
1015
|
+
const length = Number(reader.readVarInt());
|
|
1016
|
+
const startOff = reader.offset;
|
|
1017
|
+
const group = reader.readVarInt();
|
|
1018
|
+
const object = reader.readVarInt();
|
|
1019
|
+
const consumed = reader.offset - startOff;
|
|
1020
|
+
if (consumed < length) reader.readBytes(length - consumed);
|
|
1021
|
+
result.largest_object = { group, object };
|
|
1022
|
+
} else if (paramType === PARAM_SUBSCRIPTION_FILTER) {
|
|
1023
|
+
const length = Number(reader.readVarInt());
|
|
1024
|
+
const startOff = reader.offset;
|
|
1025
|
+
const filter_type = reader.readVarInt();
|
|
1026
|
+
const filter = { filter_type };
|
|
1027
|
+
if (filter_type === 3n || filter_type === 4n) {
|
|
1028
|
+
filter.start_group = reader.readVarInt();
|
|
1029
|
+
filter.start_object = reader.readVarInt();
|
|
1030
|
+
}
|
|
1031
|
+
if (filter_type === 4n) {
|
|
1032
|
+
filter.end_group = reader.readVarInt();
|
|
1033
|
+
}
|
|
1034
|
+
const consumed = reader.offset - startOff;
|
|
1035
|
+
if (consumed < length) reader.readBytes(length - consumed);
|
|
1036
|
+
result.subscription_filter = filter;
|
|
1037
|
+
} else if (paramType % 2n === 0n) {
|
|
1038
|
+
const value = reader.readVarInt();
|
|
1039
|
+
const tmpWriter = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
1040
|
+
tmpWriter.writeVarInt(value);
|
|
1041
|
+
const raw = tmpWriter.finish();
|
|
1042
|
+
unknown.push({
|
|
1043
|
+
id: `0x${paramType.toString(16)}`,
|
|
1044
|
+
length: raw.byteLength,
|
|
1045
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, raw)
|
|
1046
|
+
});
|
|
1047
|
+
} else {
|
|
1048
|
+
const length = Number(reader.readVarInt());
|
|
1049
|
+
const bytes = reader.readBytes(length);
|
|
1050
|
+
unknown.push({
|
|
1051
|
+
id: `0x${paramType.toString(16)}`,
|
|
1052
|
+
length,
|
|
1053
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, bytes)
|
|
1054
|
+
});
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
if (unknown.length > 0) {
|
|
1058
|
+
result.unknown = unknown;
|
|
1059
|
+
}
|
|
1060
|
+
return result;
|
|
1061
|
+
}
|
|
1062
|
+
function encodeClientSetupPayload(msg, w) {
|
|
1063
|
+
encodeSetupParams(msg.parameters, w);
|
|
1064
|
+
}
|
|
1065
|
+
function encodeServerSetupPayload(msg, w) {
|
|
1066
|
+
encodeSetupParams(msg.parameters, w);
|
|
1067
|
+
}
|
|
1068
|
+
function encodeSubscribePayload(msg, w) {
|
|
395
1069
|
w.writeVarInt(msg.request_id);
|
|
396
1070
|
w.writeTuple(msg.track_namespace);
|
|
397
1071
|
w.writeString(msg.track_name);
|
|
398
1072
|
encodeParams(msg.parameters, w);
|
|
399
1073
|
}
|
|
400
|
-
function
|
|
1074
|
+
function encodeSubscribeOkPayload(msg, w) {
|
|
401
1075
|
w.writeVarInt(msg.request_id);
|
|
1076
|
+
w.writeVarInt(msg.track_alias);
|
|
402
1077
|
encodeParams(msg.parameters, w);
|
|
403
1078
|
}
|
|
404
|
-
function
|
|
1079
|
+
function encodeSubscribeUpdatePayload(msg, w) {
|
|
405
1080
|
w.writeVarInt(msg.request_id);
|
|
406
|
-
w.writeVarInt(msg.
|
|
407
|
-
|
|
1081
|
+
w.writeVarInt(msg.subscription_request_id);
|
|
1082
|
+
encodeParams(msg.parameters, w);
|
|
408
1083
|
}
|
|
409
|
-
function
|
|
410
|
-
w.
|
|
1084
|
+
function encodeUnsubscribePayload(msg, w) {
|
|
1085
|
+
w.writeVarInt(msg.request_id);
|
|
411
1086
|
}
|
|
412
|
-
function
|
|
413
|
-
w.writeVarInt(msg.
|
|
1087
|
+
function encodePublishPayload(msg, w) {
|
|
1088
|
+
w.writeVarInt(msg.request_id);
|
|
1089
|
+
w.writeTuple(msg.track_namespace);
|
|
1090
|
+
w.writeString(msg.track_name);
|
|
1091
|
+
w.writeVarInt(msg.track_alias);
|
|
1092
|
+
encodeParams(msg.parameters, w);
|
|
414
1093
|
}
|
|
415
|
-
function
|
|
416
|
-
w.writeVarInt(msg.
|
|
1094
|
+
function encodePublishOkPayload(msg, w) {
|
|
1095
|
+
w.writeVarInt(msg.request_id);
|
|
1096
|
+
encodeParams(msg.parameters, w);
|
|
417
1097
|
}
|
|
418
|
-
function
|
|
419
|
-
|
|
420
|
-
|
|
1098
|
+
function encodePublishDonePayload(msg, w) {
|
|
1099
|
+
w.writeVarInt(msg.request_id);
|
|
1100
|
+
w.writeVarInt(msg.status_code);
|
|
1101
|
+
w.writeVarInt(msg.stream_count);
|
|
1102
|
+
w.writeString(msg.reason_phrase);
|
|
421
1103
|
}
|
|
422
|
-
function
|
|
423
|
-
|
|
1104
|
+
function encodePublishNamespacePayload(msg, w) {
|
|
1105
|
+
w.writeVarInt(msg.request_id);
|
|
1106
|
+
w.writeTuple(msg.track_namespace);
|
|
1107
|
+
encodeParams(msg.parameters, w);
|
|
1108
|
+
}
|
|
1109
|
+
function encodePublishNamespaceDonePayload(msg, w) {
|
|
1110
|
+
w.writeTuple(msg.track_namespace);
|
|
1111
|
+
}
|
|
1112
|
+
function encodePublishNamespaceCancelPayload(msg, w) {
|
|
1113
|
+
w.writeTuple(msg.track_namespace);
|
|
1114
|
+
w.writeVarInt(msg.error_code);
|
|
1115
|
+
w.writeString(msg.reason_phrase);
|
|
1116
|
+
}
|
|
1117
|
+
function encodeSubscribeNamespacePayload(msg, w) {
|
|
1118
|
+
w.writeVarInt(msg.request_id);
|
|
1119
|
+
w.writeTuple(msg.namespace_prefix);
|
|
1120
|
+
encodeParams(msg.parameters, w);
|
|
1121
|
+
}
|
|
1122
|
+
function encodeUnsubscribeNamespacePayload(msg, w) {
|
|
1123
|
+
w.writeVarInt(msg.request_id);
|
|
1124
|
+
}
|
|
1125
|
+
function encodeFetchPayload(msg, w) {
|
|
1126
|
+
w.writeVarInt(msg.request_id);
|
|
1127
|
+
w.writeVarInt(msg.fetch_type);
|
|
1128
|
+
const ft = Number(msg.fetch_type);
|
|
1129
|
+
if (ft === 1 && msg.standalone) {
|
|
1130
|
+
w.writeTuple(msg.standalone.track_namespace);
|
|
1131
|
+
w.writeString(msg.standalone.track_name);
|
|
1132
|
+
w.writeVarInt(msg.standalone.start_group);
|
|
1133
|
+
w.writeVarInt(msg.standalone.start_object);
|
|
1134
|
+
w.writeVarInt(msg.standalone.end_group);
|
|
1135
|
+
w.writeVarInt(msg.standalone.end_object);
|
|
1136
|
+
} else if ((ft === 2 || ft === 3) && msg.joining) {
|
|
1137
|
+
w.writeVarInt(msg.joining.joining_request_id);
|
|
1138
|
+
w.writeVarInt(msg.joining.joining_start);
|
|
1139
|
+
}
|
|
1140
|
+
encodeParams(msg.parameters, w);
|
|
1141
|
+
}
|
|
1142
|
+
function encodeFetchOkPayload(msg, w) {
|
|
1143
|
+
w.writeVarInt(msg.request_id);
|
|
1144
|
+
w.writeUint8(msg.end_of_track);
|
|
1145
|
+
w.writeVarInt(msg.end_group);
|
|
1146
|
+
w.writeVarInt(msg.end_object);
|
|
1147
|
+
encodeParams(msg.parameters, w);
|
|
1148
|
+
}
|
|
1149
|
+
function encodeFetchCancelPayload(msg, w) {
|
|
1150
|
+
w.writeVarInt(msg.request_id);
|
|
1151
|
+
}
|
|
1152
|
+
function encodeTrackStatusPayload(msg, w) {
|
|
1153
|
+
w.writeVarInt(msg.request_id);
|
|
1154
|
+
w.writeTuple(msg.track_namespace);
|
|
1155
|
+
w.writeString(msg.track_name);
|
|
1156
|
+
encodeParams(msg.parameters, w);
|
|
1157
|
+
}
|
|
1158
|
+
function encodeRequestOkPayload(msg, w) {
|
|
1159
|
+
w.writeVarInt(msg.request_id);
|
|
1160
|
+
encodeParams(msg.parameters, w);
|
|
1161
|
+
}
|
|
1162
|
+
function encodeRequestErrorPayload(msg, w) {
|
|
1163
|
+
w.writeVarInt(msg.request_id);
|
|
1164
|
+
w.writeVarInt(msg.error_code);
|
|
1165
|
+
w.writeString(msg.reason_phrase);
|
|
1166
|
+
}
|
|
1167
|
+
function encodeGoAwayPayload(msg, w) {
|
|
1168
|
+
w.writeString(msg.new_session_uri);
|
|
1169
|
+
}
|
|
1170
|
+
function encodeMaxRequestIdPayload(msg, w) {
|
|
1171
|
+
w.writeVarInt(msg.max_request_id);
|
|
1172
|
+
}
|
|
1173
|
+
function encodeRequestsBlockedPayload(msg, w) {
|
|
1174
|
+
w.writeVarInt(msg.maximum_request_id);
|
|
1175
|
+
}
|
|
1176
|
+
function decodeClientSetupPayload(r) {
|
|
1177
|
+
const parameters = decodeSetupParams(r);
|
|
1178
|
+
return { type: "client_setup", parameters };
|
|
1179
|
+
}
|
|
1180
|
+
function decodeServerSetupPayload(r) {
|
|
1181
|
+
const parameters = decodeSetupParams(r);
|
|
424
1182
|
return { type: "server_setup", parameters };
|
|
425
1183
|
}
|
|
426
1184
|
function decodeSubscribePayload(r) {
|
|
@@ -428,7 +1186,13 @@ function decodeSubscribePayload(r) {
|
|
|
428
1186
|
const track_namespace = r.readTuple();
|
|
429
1187
|
const track_name = r.readString();
|
|
430
1188
|
const parameters = decodeParams(r);
|
|
431
|
-
return {
|
|
1189
|
+
return {
|
|
1190
|
+
type: "subscribe",
|
|
1191
|
+
request_id,
|
|
1192
|
+
track_namespace,
|
|
1193
|
+
track_name,
|
|
1194
|
+
parameters
|
|
1195
|
+
};
|
|
432
1196
|
}
|
|
433
1197
|
function decodeSubscribeOkPayload(r) {
|
|
434
1198
|
const request_id = r.readVarInt();
|
|
@@ -440,7 +1204,12 @@ function decodeSubscribeUpdatePayload(r) {
|
|
|
440
1204
|
const request_id = r.readVarInt();
|
|
441
1205
|
const subscription_request_id = r.readVarInt();
|
|
442
1206
|
const parameters = decodeParams(r);
|
|
443
|
-
return {
|
|
1207
|
+
return {
|
|
1208
|
+
type: "subscribe_update",
|
|
1209
|
+
request_id,
|
|
1210
|
+
subscription_request_id,
|
|
1211
|
+
parameters
|
|
1212
|
+
};
|
|
444
1213
|
}
|
|
445
1214
|
function decodeUnsubscribePayload(r) {
|
|
446
1215
|
const request_id = r.readVarInt();
|
|
@@ -452,7 +1221,14 @@ function decodePublishPayload(r) {
|
|
|
452
1221
|
const track_name = r.readString();
|
|
453
1222
|
const track_alias = r.readVarInt();
|
|
454
1223
|
const parameters = decodeParams(r);
|
|
455
|
-
return {
|
|
1224
|
+
return {
|
|
1225
|
+
type: "publish",
|
|
1226
|
+
request_id,
|
|
1227
|
+
track_namespace,
|
|
1228
|
+
track_name,
|
|
1229
|
+
track_alias,
|
|
1230
|
+
parameters
|
|
1231
|
+
};
|
|
456
1232
|
}
|
|
457
1233
|
function decodePublishOkPayload(r) {
|
|
458
1234
|
const request_id = r.readVarInt();
|
|
@@ -464,7 +1240,13 @@ function decodePublishDonePayload(r) {
|
|
|
464
1240
|
const status_code = r.readVarInt();
|
|
465
1241
|
const stream_count = r.readVarInt();
|
|
466
1242
|
const reason_phrase = r.readString();
|
|
467
|
-
return {
|
|
1243
|
+
return {
|
|
1244
|
+
type: "publish_done",
|
|
1245
|
+
request_id,
|
|
1246
|
+
status_code,
|
|
1247
|
+
stream_count,
|
|
1248
|
+
reason_phrase
|
|
1249
|
+
};
|
|
468
1250
|
}
|
|
469
1251
|
function decodePublishNamespacePayload(r) {
|
|
470
1252
|
const request_id = r.readVarInt();
|
|
@@ -480,13 +1262,23 @@ function decodePublishNamespaceCancelPayload(r) {
|
|
|
480
1262
|
const track_namespace = r.readTuple();
|
|
481
1263
|
const error_code = r.readVarInt();
|
|
482
1264
|
const reason_phrase = r.readString();
|
|
483
|
-
return {
|
|
1265
|
+
return {
|
|
1266
|
+
type: "publish_namespace_cancel",
|
|
1267
|
+
track_namespace,
|
|
1268
|
+
error_code,
|
|
1269
|
+
reason_phrase
|
|
1270
|
+
};
|
|
484
1271
|
}
|
|
485
1272
|
function decodeSubscribeNamespacePayload(r) {
|
|
486
1273
|
const request_id = r.readVarInt();
|
|
487
1274
|
const namespace_prefix = r.readTuple();
|
|
488
1275
|
const parameters = decodeParams(r);
|
|
489
|
-
return {
|
|
1276
|
+
return {
|
|
1277
|
+
type: "subscribe_namespace",
|
|
1278
|
+
request_id,
|
|
1279
|
+
namespace_prefix,
|
|
1280
|
+
parameters
|
|
1281
|
+
};
|
|
490
1282
|
}
|
|
491
1283
|
function decodeUnsubscribeNamespacePayload(r) {
|
|
492
1284
|
const request_id = r.readVarInt();
|
|
@@ -497,7 +1289,7 @@ function decodeFetchPayload(r) {
|
|
|
497
1289
|
const fetch_type = r.readVarInt();
|
|
498
1290
|
const ft = Number(fetch_type);
|
|
499
1291
|
if (ft < 1 || ft > 3) {
|
|
500
|
-
throw new (0,
|
|
1292
|
+
throw new (0, _chunkJL3NEW3Ocjs.DecodeError)("CONSTRAINT_VIOLATION", `Invalid fetch_type: ${ft}`, r.offset);
|
|
501
1293
|
}
|
|
502
1294
|
let standalone;
|
|
503
1295
|
let joining;
|
|
@@ -508,7 +1300,14 @@ function decodeFetchPayload(r) {
|
|
|
508
1300
|
const start_object = r.readVarInt();
|
|
509
1301
|
const end_group = r.readVarInt();
|
|
510
1302
|
const end_object = r.readVarInt();
|
|
511
|
-
standalone = {
|
|
1303
|
+
standalone = {
|
|
1304
|
+
track_namespace,
|
|
1305
|
+
track_name,
|
|
1306
|
+
start_group,
|
|
1307
|
+
start_object,
|
|
1308
|
+
end_group,
|
|
1309
|
+
end_object
|
|
1310
|
+
};
|
|
512
1311
|
} else {
|
|
513
1312
|
const joining_request_id = r.readVarInt();
|
|
514
1313
|
const joining_start = r.readVarInt();
|
|
@@ -530,7 +1329,14 @@ function decodeFetchOkPayload(r) {
|
|
|
530
1329
|
const end_group = r.readVarInt();
|
|
531
1330
|
const end_object = r.readVarInt();
|
|
532
1331
|
const parameters = decodeParams(r);
|
|
533
|
-
return {
|
|
1332
|
+
return {
|
|
1333
|
+
type: "fetch_ok",
|
|
1334
|
+
request_id,
|
|
1335
|
+
end_of_track,
|
|
1336
|
+
end_group,
|
|
1337
|
+
end_object,
|
|
1338
|
+
parameters
|
|
1339
|
+
};
|
|
534
1340
|
}
|
|
535
1341
|
function decodeFetchCancelPayload(r) {
|
|
536
1342
|
const request_id = r.readVarInt();
|
|
@@ -541,7 +1347,13 @@ function decodeTrackStatusPayload(r) {
|
|
|
541
1347
|
const track_namespace = r.readTuple();
|
|
542
1348
|
const track_name = r.readString();
|
|
543
1349
|
const parameters = decodeParams(r);
|
|
544
|
-
return {
|
|
1350
|
+
return {
|
|
1351
|
+
type: "track_status",
|
|
1352
|
+
request_id,
|
|
1353
|
+
track_namespace,
|
|
1354
|
+
track_name,
|
|
1355
|
+
parameters
|
|
1356
|
+
};
|
|
545
1357
|
}
|
|
546
1358
|
function decodeRequestOkPayload(r) {
|
|
547
1359
|
const request_id = r.readVarInt();
|
|
@@ -596,13 +1408,13 @@ function encodeMessage(message) {
|
|
|
596
1408
|
if (typeId === void 0) {
|
|
597
1409
|
throw new Error(`Unknown message type: ${message.type}`);
|
|
598
1410
|
}
|
|
599
|
-
const payloadWriter = new (0,
|
|
1411
|
+
const payloadWriter = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
600
1412
|
encodePayload(message, payloadWriter);
|
|
601
|
-
const payload = payloadWriter.
|
|
1413
|
+
const payload = payloadWriter.finishView();
|
|
602
1414
|
if (payload.byteLength > 65535) {
|
|
603
1415
|
throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
|
|
604
1416
|
}
|
|
605
|
-
const writer = new (0,
|
|
1417
|
+
const writer = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(payload.byteLength + 16);
|
|
606
1418
|
writer.writeVarInt(typeId);
|
|
607
1419
|
writer.writeUint8(payload.byteLength >> 8 & 255);
|
|
608
1420
|
writer.writeUint8(payload.byteLength & 255);
|
|
@@ -647,374 +1459,66 @@ function encodePayload(msg, w) {
|
|
|
647
1459
|
return encodeFetchCancelPayload(msg, w);
|
|
648
1460
|
case "track_status":
|
|
649
1461
|
return encodeTrackStatusPayload(msg, w);
|
|
650
|
-
case "request_ok":
|
|
651
|
-
return encodeRequestOkPayload(msg, w);
|
|
652
|
-
case "request_error":
|
|
653
|
-
return encodeRequestErrorPayload(msg, w);
|
|
654
|
-
case "goaway":
|
|
655
|
-
return encodeGoAwayPayload(msg, w);
|
|
656
|
-
case "max_request_id":
|
|
657
|
-
return encodeMaxRequestIdPayload(msg, w);
|
|
658
|
-
case "requests_blocked":
|
|
659
|
-
return encodeRequestsBlockedPayload(msg, w);
|
|
660
|
-
default: {
|
|
661
|
-
const _exhaustive = msg;
|
|
662
|
-
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
}
|
|
666
|
-
function decodeMessage(bytes) {
|
|
667
|
-
try {
|
|
668
|
-
const reader = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
669
|
-
const typeId = reader.readVarInt();
|
|
670
|
-
const lenHi = reader.readUint8();
|
|
671
|
-
const lenLo = reader.readUint8();
|
|
672
|
-
const payloadLength = lenHi << 8 | lenLo;
|
|
673
|
-
const payloadBytes = reader.readBytes(payloadLength);
|
|
674
|
-
const payloadReader = new (0, _chunkFWISIR26cjs.BufferReader)(payloadBytes);
|
|
675
|
-
const decoder = payloadDecoders.get(typeId);
|
|
676
|
-
if (!decoder) {
|
|
677
|
-
return {
|
|
678
|
-
ok: false,
|
|
679
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
680
|
-
"UNKNOWN_MESSAGE_TYPE",
|
|
681
|
-
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
682
|
-
0
|
|
683
|
-
)
|
|
684
|
-
};
|
|
685
|
-
}
|
|
686
|
-
const message = decoder(payloadReader);
|
|
687
|
-
return { ok: true, value: message, bytesRead: reader.offset };
|
|
688
|
-
} catch (e) {
|
|
689
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) {
|
|
690
|
-
return { ok: false, error: e };
|
|
691
|
-
}
|
|
692
|
-
throw e;
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
var FETCH_STREAM_TYPE = 0x05n;
|
|
696
|
-
function encodeSubgroupStream(stream) {
|
|
697
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
698
|
-
const streamType = stream.headerType;
|
|
699
|
-
w.writeVarInt(BigInt(streamType));
|
|
700
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
701
|
-
const hasPriority = streamType < 48;
|
|
702
|
-
w.writeVarInt(stream.trackAlias);
|
|
703
|
-
w.writeVarInt(stream.groupId);
|
|
704
|
-
if (hasSubgroupField) {
|
|
705
|
-
w.writeVarInt(stream.subgroupId);
|
|
706
|
-
}
|
|
707
|
-
if (hasPriority) {
|
|
708
|
-
w.writeUint8(stream.publisherPriority);
|
|
709
|
-
}
|
|
710
|
-
let prevObjectId = -1n;
|
|
711
|
-
for (const obj of stream.objects) {
|
|
712
|
-
const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
|
|
713
|
-
w.writeVarInt(delta);
|
|
714
|
-
w.writeVarInt(obj.payloadLength);
|
|
715
|
-
if (obj.payloadLength === 0) {
|
|
716
|
-
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
717
|
-
} else {
|
|
718
|
-
w.writeBytes(obj.payload);
|
|
719
|
-
}
|
|
720
|
-
prevObjectId = obj.objectId;
|
|
721
|
-
}
|
|
722
|
-
return w.finish();
|
|
723
|
-
}
|
|
724
|
-
function encodeDatagram(dg) {
|
|
725
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
726
|
-
const dgType = dg.datagramType;
|
|
727
|
-
w.writeVarInt(BigInt(dgType));
|
|
728
|
-
w.writeVarInt(dg.trackAlias);
|
|
729
|
-
w.writeVarInt(dg.groupId);
|
|
730
|
-
const objectIdAbsent = (dgType & 4) !== 0;
|
|
731
|
-
const isStatus = (dgType & 32) !== 0;
|
|
732
|
-
if (!objectIdAbsent) {
|
|
733
|
-
w.writeVarInt(dg.objectId);
|
|
734
|
-
}
|
|
735
|
-
w.writeUint8(dg.publisherPriority);
|
|
736
|
-
if (isStatus) {
|
|
737
|
-
w.writeVarInt(_nullishCoalesce(dg.objectStatus, () => ( 0n)));
|
|
738
|
-
} else {
|
|
739
|
-
w.writeBytes(dg.payload);
|
|
740
|
-
}
|
|
741
|
-
return w.finish();
|
|
742
|
-
}
|
|
743
|
-
function encodeFetchStream(stream) {
|
|
744
|
-
const w = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
745
|
-
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
746
|
-
w.writeVarInt(stream.requestId);
|
|
747
|
-
for (const obj of stream.objects) {
|
|
748
|
-
w.writeUint8(obj.serializationFlags);
|
|
749
|
-
const flags = obj.serializationFlags;
|
|
750
|
-
if (flags & 8) w.writeVarInt(obj.groupId);
|
|
751
|
-
const subgroupEncoding = flags & 3;
|
|
752
|
-
if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
|
|
753
|
-
if (flags & 4) w.writeVarInt(obj.objectId);
|
|
754
|
-
if (flags & 16) w.writeUint8(obj.publisherPriority);
|
|
755
|
-
w.writeVarInt(obj.payloadLength);
|
|
756
|
-
if (obj.payloadLength === 0) {
|
|
757
|
-
w.writeVarInt(_nullishCoalesce(obj.status, () => ( 0n)));
|
|
758
|
-
} else {
|
|
759
|
-
w.writeBytes(obj.payload);
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
return w.finish();
|
|
763
|
-
}
|
|
764
|
-
function decodeSubgroupStream(bytes) {
|
|
765
|
-
try {
|
|
766
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
767
|
-
const streamType = Number(r.readVarInt());
|
|
768
|
-
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
|
|
769
|
-
return {
|
|
770
|
-
ok: false,
|
|
771
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
772
|
-
"CONSTRAINT_VIOLATION",
|
|
773
|
-
`Expected subgroup stream type 0x10-0x1D or 0x30-0x3D, got 0x${streamType.toString(16)}`,
|
|
774
|
-
0
|
|
775
|
-
)
|
|
776
|
-
};
|
|
777
|
-
}
|
|
778
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
779
|
-
const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
780
|
-
const hasPriority = streamType < 48;
|
|
781
|
-
const trackAlias = r.readVarInt();
|
|
782
|
-
const groupId = r.readVarInt();
|
|
783
|
-
let subgroupId = 0n;
|
|
784
|
-
if (hasSubgroupField) {
|
|
785
|
-
subgroupId = r.readVarInt();
|
|
786
|
-
}
|
|
787
|
-
let publisherPriority = 128;
|
|
788
|
-
if (hasPriority) {
|
|
789
|
-
publisherPriority = r.readUint8();
|
|
790
|
-
}
|
|
791
|
-
const objects = [];
|
|
792
|
-
let prevObjectId = -1n;
|
|
793
|
-
let firstObject = true;
|
|
794
|
-
while (r.remaining > 0) {
|
|
795
|
-
const delta = r.readVarInt();
|
|
796
|
-
let objectId;
|
|
797
|
-
if (firstObject) {
|
|
798
|
-
objectId = delta;
|
|
799
|
-
if (subgroupIsFirstObjId && firstObject) {
|
|
800
|
-
subgroupId = objectId;
|
|
801
|
-
}
|
|
802
|
-
firstObject = false;
|
|
803
|
-
} else {
|
|
804
|
-
objectId = prevObjectId + 1n + delta;
|
|
805
|
-
}
|
|
806
|
-
const payloadLength = Number(r.readVarInt());
|
|
807
|
-
let payload;
|
|
808
|
-
let status;
|
|
809
|
-
if (payloadLength === 0) {
|
|
810
|
-
status = r.readVarInt();
|
|
811
|
-
payload = new Uint8Array(0);
|
|
812
|
-
} else {
|
|
813
|
-
payload = r.readBytes(payloadLength);
|
|
814
|
-
}
|
|
815
|
-
const obj = { type: "object", objectId, payloadLength, payload };
|
|
816
|
-
if (status !== void 0) obj.status = status;
|
|
817
|
-
objects.push(obj);
|
|
818
|
-
prevObjectId = objectId;
|
|
819
|
-
}
|
|
820
|
-
return {
|
|
821
|
-
ok: true,
|
|
822
|
-
value: {
|
|
823
|
-
type: "subgroup",
|
|
824
|
-
headerType: streamType,
|
|
825
|
-
trackAlias,
|
|
826
|
-
groupId,
|
|
827
|
-
subgroupId,
|
|
828
|
-
publisherPriority,
|
|
829
|
-
objects
|
|
830
|
-
},
|
|
831
|
-
bytesRead: r.offset
|
|
832
|
-
};
|
|
833
|
-
} catch (e) {
|
|
834
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
835
|
-
throw e;
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
|
-
function decodeDatagram(bytes) {
|
|
839
|
-
try {
|
|
840
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
841
|
-
const dgType = Number(r.readVarInt());
|
|
842
|
-
const objectIdAbsent = (dgType & 4) !== 0;
|
|
843
|
-
const endOfGroup = (dgType & 2) !== 0;
|
|
844
|
-
const isStatus = (dgType & 32) !== 0;
|
|
845
|
-
const trackAlias = r.readVarInt();
|
|
846
|
-
const groupId = r.readVarInt();
|
|
847
|
-
let objectId = 0n;
|
|
848
|
-
if (!objectIdAbsent) {
|
|
849
|
-
objectId = r.readVarInt();
|
|
850
|
-
}
|
|
851
|
-
const publisherPriority = r.readUint8();
|
|
852
|
-
let objectStatus;
|
|
853
|
-
let payload;
|
|
854
|
-
if (isStatus) {
|
|
855
|
-
objectStatus = r.readVarInt();
|
|
856
|
-
payload = new Uint8Array(0);
|
|
857
|
-
} else {
|
|
858
|
-
payload = r.readBytes(r.remaining);
|
|
859
|
-
}
|
|
860
|
-
const payloadLength = payload.byteLength;
|
|
861
|
-
const result = {
|
|
862
|
-
type: "datagram",
|
|
863
|
-
datagramType: dgType,
|
|
864
|
-
trackAlias,
|
|
865
|
-
groupId,
|
|
866
|
-
objectId,
|
|
867
|
-
publisherPriority,
|
|
868
|
-
payloadLength,
|
|
869
|
-
payload
|
|
870
|
-
};
|
|
871
|
-
if (endOfGroup) result.endOfGroup = true;
|
|
872
|
-
if (objectStatus !== void 0)
|
|
873
|
-
result.objectStatus = objectStatus;
|
|
874
|
-
return { ok: true, value: result, bytesRead: r.offset };
|
|
875
|
-
} catch (e) {
|
|
876
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
877
|
-
throw e;
|
|
878
|
-
}
|
|
879
|
-
}
|
|
880
|
-
function decodeFetchStream(bytes) {
|
|
881
|
-
try {
|
|
882
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(bytes);
|
|
883
|
-
const streamType = r.readVarInt();
|
|
884
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
885
|
-
return {
|
|
886
|
-
ok: false,
|
|
887
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
888
|
-
"CONSTRAINT_VIOLATION",
|
|
889
|
-
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
890
|
-
0
|
|
891
|
-
)
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
const requestId = r.readVarInt();
|
|
895
|
-
const objects = [];
|
|
896
|
-
let prevGroupId = 0n;
|
|
897
|
-
let prevSubgroupId = 0n;
|
|
898
|
-
let prevObjectId = 0n;
|
|
899
|
-
let prevPriority = 128;
|
|
900
|
-
let first = true;
|
|
901
|
-
while (r.remaining > 0) {
|
|
902
|
-
const flags = r.readUint8();
|
|
903
|
-
const subgroupEncoding = flags & 3;
|
|
904
|
-
const objectIdPresent = (flags & 4) !== 0;
|
|
905
|
-
const groupIdPresent = (flags & 8) !== 0;
|
|
906
|
-
const priorityPresent = (flags & 16) !== 0;
|
|
907
|
-
const extensionsPresent = (flags & 32) !== 0;
|
|
908
|
-
if (flags & 192) {
|
|
909
|
-
return {
|
|
910
|
-
ok: false,
|
|
911
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
912
|
-
"CONSTRAINT_VIOLATION",
|
|
913
|
-
"Reserved bits set in fetch object flags",
|
|
914
|
-
r.offset
|
|
915
|
-
)
|
|
916
|
-
};
|
|
917
|
-
}
|
|
918
|
-
let groupId = prevGroupId;
|
|
919
|
-
if (groupIdPresent) {
|
|
920
|
-
groupId = r.readVarInt();
|
|
921
|
-
} else if (first) {
|
|
922
|
-
return {
|
|
923
|
-
ok: false,
|
|
924
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
925
|
-
"CONSTRAINT_VIOLATION",
|
|
926
|
-
"First fetch object must include groupId",
|
|
927
|
-
r.offset
|
|
928
|
-
)
|
|
929
|
-
};
|
|
930
|
-
}
|
|
931
|
-
let subgroupId = prevSubgroupId;
|
|
932
|
-
if (subgroupEncoding === 3) {
|
|
933
|
-
subgroupId = r.readVarInt();
|
|
934
|
-
} else if (subgroupEncoding === 0) {
|
|
935
|
-
}
|
|
936
|
-
let objectId = prevObjectId + 1n;
|
|
937
|
-
if (objectIdPresent) {
|
|
938
|
-
objectId = r.readVarInt();
|
|
939
|
-
} else if (first) {
|
|
940
|
-
return {
|
|
941
|
-
ok: false,
|
|
942
|
-
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
943
|
-
"CONSTRAINT_VIOLATION",
|
|
944
|
-
"First fetch object must include objectId",
|
|
945
|
-
r.offset
|
|
946
|
-
)
|
|
947
|
-
};
|
|
948
|
-
}
|
|
949
|
-
if (priorityPresent) {
|
|
950
|
-
prevPriority = r.readUint8();
|
|
951
|
-
}
|
|
952
|
-
if (extensionsPresent) {
|
|
953
|
-
const extLen = Number(r.readVarInt());
|
|
954
|
-
if (extLen > 0) {
|
|
955
|
-
r.readBytes(extLen);
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
const payloadLength = Number(r.readVarInt());
|
|
959
|
-
let payload;
|
|
960
|
-
let status;
|
|
961
|
-
if (payloadLength > 0) {
|
|
962
|
-
payload = r.readBytes(payloadLength);
|
|
963
|
-
} else {
|
|
964
|
-
status = r.readVarInt();
|
|
965
|
-
payload = new Uint8Array(0);
|
|
966
|
-
}
|
|
967
|
-
const obj = {
|
|
968
|
-
type: "object",
|
|
969
|
-
serializationFlags: flags,
|
|
970
|
-
groupId,
|
|
971
|
-
subgroupId,
|
|
972
|
-
objectId,
|
|
973
|
-
publisherPriority: prevPriority,
|
|
974
|
-
payloadLength,
|
|
975
|
-
payload
|
|
976
|
-
};
|
|
977
|
-
if (status !== void 0) obj.status = status;
|
|
978
|
-
objects.push(obj);
|
|
979
|
-
prevGroupId = groupId;
|
|
980
|
-
prevSubgroupId = subgroupId;
|
|
981
|
-
prevObjectId = objectId;
|
|
982
|
-
first = false;
|
|
1462
|
+
case "request_ok":
|
|
1463
|
+
return encodeRequestOkPayload(msg, w);
|
|
1464
|
+
case "request_error":
|
|
1465
|
+
return encodeRequestErrorPayload(msg, w);
|
|
1466
|
+
case "goaway":
|
|
1467
|
+
return encodeGoAwayPayload(msg, w);
|
|
1468
|
+
case "max_request_id":
|
|
1469
|
+
return encodeMaxRequestIdPayload(msg, w);
|
|
1470
|
+
case "requests_blocked":
|
|
1471
|
+
return encodeRequestsBlockedPayload(msg, w);
|
|
1472
|
+
default: {
|
|
1473
|
+
const _exhaustive = msg;
|
|
1474
|
+
throw new Error(`Unhandled message type: ${_exhaustive.type}`);
|
|
983
1475
|
}
|
|
984
|
-
return {
|
|
985
|
-
ok: true,
|
|
986
|
-
value: { type: "fetch", requestId, objects },
|
|
987
|
-
bytesRead: r.offset
|
|
988
|
-
};
|
|
989
|
-
} catch (e) {
|
|
990
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError) return { ok: false, error: e };
|
|
991
|
-
throw e;
|
|
992
1476
|
}
|
|
993
1477
|
}
|
|
994
|
-
function
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1478
|
+
function decodeMessage(bytes) {
|
|
1479
|
+
try {
|
|
1480
|
+
const reader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
1481
|
+
const typeId = reader.readVarInt();
|
|
1482
|
+
const lenHi = reader.readUint8();
|
|
1483
|
+
const lenLo = reader.readUint8();
|
|
1484
|
+
const payloadLength = lenHi << 8 | lenLo;
|
|
1485
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1486
|
+
const payloadReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(payloadBytes);
|
|
1487
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1488
|
+
if (!decoder) {
|
|
1489
|
+
return {
|
|
1490
|
+
ok: false,
|
|
1491
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
1492
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1493
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
1494
|
+
0
|
|
1495
|
+
)
|
|
1496
|
+
};
|
|
1497
|
+
}
|
|
1498
|
+
const message = decoder(payloadReader);
|
|
1499
|
+
return { ok: true, value: message, bytesRead: reader.offset };
|
|
1500
|
+
} catch (e) {
|
|
1501
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) {
|
|
1502
|
+
return { ok: false, error: e };
|
|
1005
1503
|
}
|
|
1504
|
+
throw e;
|
|
1006
1505
|
}
|
|
1007
1506
|
}
|
|
1008
1507
|
function createStreamDecoder() {
|
|
1009
1508
|
let buffer = new Uint8Array(0);
|
|
1509
|
+
let offset = 0;
|
|
1010
1510
|
return new TransformStream({
|
|
1011
1511
|
transform(chunk, controller) {
|
|
1512
|
+
if (offset > 0) {
|
|
1513
|
+
buffer = buffer.subarray(offset);
|
|
1514
|
+
offset = 0;
|
|
1515
|
+
}
|
|
1012
1516
|
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1013
1517
|
newBuffer.set(buffer, 0);
|
|
1014
1518
|
newBuffer.set(chunk, buffer.length);
|
|
1015
1519
|
buffer = newBuffer;
|
|
1016
|
-
while (buffer.length
|
|
1017
|
-
const result = decodeMessage(buffer);
|
|
1520
|
+
while (offset < buffer.length) {
|
|
1521
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1018
1522
|
if (!result.ok) {
|
|
1019
1523
|
if (result.error.code === "UNEXPECTED_END") {
|
|
1020
1524
|
break;
|
|
@@ -1023,260 +1527,21 @@ function createStreamDecoder() {
|
|
|
1023
1527
|
return;
|
|
1024
1528
|
}
|
|
1025
1529
|
controller.enqueue(result.value);
|
|
1026
|
-
|
|
1027
|
-
}
|
|
1028
|
-
},
|
|
1029
|
-
flush(controller) {
|
|
1030
|
-
if (buffer.length > 0) {
|
|
1031
|
-
controller.error(
|
|
1032
|
-
new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
1033
|
-
);
|
|
1034
|
-
}
|
|
1035
|
-
}
|
|
1036
|
-
});
|
|
1037
|
-
}
|
|
1038
|
-
function createSubgroupStreamDecoder() {
|
|
1039
|
-
let buffer = new Uint8Array(0);
|
|
1040
|
-
let headerEmitted = false;
|
|
1041
|
-
let prevObjectId = -1n;
|
|
1042
|
-
let firstObject = true;
|
|
1043
|
-
let _subgroupIsFirstObjId = false;
|
|
1044
|
-
return new TransformStream({
|
|
1045
|
-
transform(chunk, controller) {
|
|
1046
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1047
|
-
newBuffer.set(buffer, 0);
|
|
1048
|
-
newBuffer.set(chunk, buffer.length);
|
|
1049
|
-
buffer = newBuffer;
|
|
1050
|
-
if (!headerEmitted) {
|
|
1051
|
-
try {
|
|
1052
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1053
|
-
const streamType = Number(r.readVarInt());
|
|
1054
|
-
if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
|
|
1055
|
-
controller.error(
|
|
1056
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1057
|
-
"CONSTRAINT_VIOLATION",
|
|
1058
|
-
`Expected subgroup stream type, got 0x${streamType.toString(16)}`,
|
|
1059
|
-
0
|
|
1060
|
-
)
|
|
1061
|
-
);
|
|
1062
|
-
return;
|
|
1063
|
-
}
|
|
1064
|
-
const hasSubgroupField = (streamType & 4) !== 0;
|
|
1065
|
-
_subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
|
|
1066
|
-
const hasPriority = streamType < 48;
|
|
1067
|
-
const trackAlias = r.readVarInt();
|
|
1068
|
-
const groupId = r.readVarInt();
|
|
1069
|
-
let subgroupId = 0n;
|
|
1070
|
-
if (hasSubgroupField) {
|
|
1071
|
-
subgroupId = r.readVarInt();
|
|
1072
|
-
}
|
|
1073
|
-
let publisherPriority = 128;
|
|
1074
|
-
if (hasPriority) {
|
|
1075
|
-
publisherPriority = r.readUint8();
|
|
1076
|
-
}
|
|
1077
|
-
controller.enqueue({
|
|
1078
|
-
type: "subgroup_header",
|
|
1079
|
-
trackAlias,
|
|
1080
|
-
groupId,
|
|
1081
|
-
subgroupId,
|
|
1082
|
-
publisherPriority
|
|
1083
|
-
});
|
|
1084
|
-
headerEmitted = true;
|
|
1085
|
-
buffer = buffer.slice(r.offset);
|
|
1086
|
-
} catch (e) {
|
|
1087
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1088
|
-
return;
|
|
1089
|
-
}
|
|
1090
|
-
controller.error(e);
|
|
1091
|
-
return;
|
|
1092
|
-
}
|
|
1093
|
-
}
|
|
1094
|
-
while (buffer.length > 0) {
|
|
1095
|
-
try {
|
|
1096
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1097
|
-
const delta = r.readVarInt();
|
|
1098
|
-
let objectId;
|
|
1099
|
-
if (firstObject) {
|
|
1100
|
-
objectId = delta;
|
|
1101
|
-
firstObject = false;
|
|
1102
|
-
} else {
|
|
1103
|
-
objectId = prevObjectId + 1n + delta;
|
|
1104
|
-
}
|
|
1105
|
-
const payloadLength = Number(r.readVarInt());
|
|
1106
|
-
const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
|
|
1107
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1108
|
-
buffer = buffer.slice(r.offset);
|
|
1109
|
-
prevObjectId = objectId;
|
|
1110
|
-
} catch (e) {
|
|
1111
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1112
|
-
break;
|
|
1113
|
-
}
|
|
1114
|
-
controller.error(e);
|
|
1115
|
-
return;
|
|
1116
|
-
}
|
|
1117
|
-
}
|
|
1118
|
-
},
|
|
1119
|
-
flush(controller) {
|
|
1120
|
-
if (buffer.length > 0) {
|
|
1121
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1122
|
-
}
|
|
1123
|
-
}
|
|
1124
|
-
});
|
|
1125
|
-
}
|
|
1126
|
-
function createFetchStreamDecoder() {
|
|
1127
|
-
let buffer = new Uint8Array(0);
|
|
1128
|
-
let headerEmitted = false;
|
|
1129
|
-
return new TransformStream({
|
|
1130
|
-
transform(chunk, controller) {
|
|
1131
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1132
|
-
newBuffer.set(buffer, 0);
|
|
1133
|
-
newBuffer.set(chunk, buffer.length);
|
|
1134
|
-
buffer = newBuffer;
|
|
1135
|
-
if (!headerEmitted) {
|
|
1136
|
-
try {
|
|
1137
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1138
|
-
const streamType = r.readVarInt();
|
|
1139
|
-
if (streamType !== FETCH_STREAM_TYPE) {
|
|
1140
|
-
controller.error(
|
|
1141
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1142
|
-
"CONSTRAINT_VIOLATION",
|
|
1143
|
-
`Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
|
|
1144
|
-
0
|
|
1145
|
-
)
|
|
1146
|
-
);
|
|
1147
|
-
return;
|
|
1148
|
-
}
|
|
1149
|
-
const requestId = r.readVarInt();
|
|
1150
|
-
controller.enqueue({ type: "fetch_header", requestId });
|
|
1151
|
-
headerEmitted = true;
|
|
1152
|
-
buffer = buffer.slice(r.offset);
|
|
1153
|
-
} catch (e) {
|
|
1154
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1155
|
-
return;
|
|
1156
|
-
}
|
|
1157
|
-
controller.error(e);
|
|
1158
|
-
return;
|
|
1159
|
-
}
|
|
1160
|
-
}
|
|
1161
|
-
while (buffer.length > 0) {
|
|
1162
|
-
try {
|
|
1163
|
-
const r = new (0, _chunkFWISIR26cjs.BufferReader)(buffer);
|
|
1164
|
-
const flags = r.readUint8();
|
|
1165
|
-
const objectIdPresent = (flags & 4) !== 0;
|
|
1166
|
-
const groupIdPresent = (flags & 8) !== 0;
|
|
1167
|
-
const priorityPresent = (flags & 16) !== 0;
|
|
1168
|
-
const extensionsPresent = (flags & 32) !== 0;
|
|
1169
|
-
const subgroupEncoding = flags & 3;
|
|
1170
|
-
if (groupIdPresent) r.readVarInt();
|
|
1171
|
-
if (subgroupEncoding === 3) r.readVarInt();
|
|
1172
|
-
let objectId = 0n;
|
|
1173
|
-
if (objectIdPresent) objectId = r.readVarInt();
|
|
1174
|
-
if (priorityPresent) r.readUint8();
|
|
1175
|
-
if (extensionsPresent) {
|
|
1176
|
-
const extLen = Number(r.readVarInt());
|
|
1177
|
-
if (extLen > 0) r.readBytes(extLen);
|
|
1178
|
-
}
|
|
1179
|
-
const payloadLength = Number(r.readVarInt());
|
|
1180
|
-
const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
|
|
1181
|
-
controller.enqueue({ type: "object", objectId, payloadLength, payload });
|
|
1182
|
-
buffer = buffer.slice(r.offset);
|
|
1183
|
-
} catch (e) {
|
|
1184
|
-
if (e instanceof _chunkFWISIR26cjs.DecodeError && e.code === "UNEXPECTED_END") {
|
|
1185
|
-
break;
|
|
1186
|
-
}
|
|
1187
|
-
controller.error(e);
|
|
1188
|
-
return;
|
|
1189
|
-
}
|
|
1190
|
-
}
|
|
1191
|
-
},
|
|
1192
|
-
flush(controller) {
|
|
1193
|
-
if (buffer.length > 0) {
|
|
1194
|
-
controller.error(new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1195
|
-
}
|
|
1196
|
-
}
|
|
1197
|
-
});
|
|
1198
|
-
}
|
|
1199
|
-
function createDataStreamDecoder() {
|
|
1200
|
-
let buffer = new Uint8Array(0);
|
|
1201
|
-
let inner = null;
|
|
1202
|
-
const _innerWriter = null;
|
|
1203
|
-
const _innerReader = null;
|
|
1204
|
-
return new TransformStream({
|
|
1205
|
-
transform(chunk, controller) {
|
|
1206
|
-
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1207
|
-
newBuffer.set(buffer, 0);
|
|
1208
|
-
newBuffer.set(chunk, buffer.length);
|
|
1209
|
-
buffer = newBuffer;
|
|
1210
|
-
if (inner === null) {
|
|
1211
|
-
if (buffer.length === 0) return;
|
|
1212
|
-
const firstByte = buffer[0];
|
|
1213
|
-
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
1214
|
-
const decoder = createSubgroupStreamDecoder();
|
|
1215
|
-
inner = decoder;
|
|
1216
|
-
} else if (firstByte === 5) {
|
|
1217
|
-
const decoder = createFetchStreamDecoder();
|
|
1218
|
-
inner = decoder;
|
|
1219
|
-
} else {
|
|
1220
|
-
controller.error(
|
|
1221
|
-
new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
1222
|
-
"CONSTRAINT_VIOLATION",
|
|
1223
|
-
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
1224
|
-
0
|
|
1225
|
-
)
|
|
1226
|
-
);
|
|
1227
|
-
return;
|
|
1228
|
-
}
|
|
1530
|
+
offset += result.bytesRead;
|
|
1229
1531
|
}
|
|
1230
1532
|
},
|
|
1231
1533
|
flush(controller) {
|
|
1232
|
-
if (buffer.length
|
|
1233
|
-
const firstByte = buffer[0];
|
|
1234
|
-
let result;
|
|
1235
|
-
if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
|
|
1236
|
-
result = decodeSubgroupStream(buffer);
|
|
1237
|
-
} else if (firstByte === 5) {
|
|
1238
|
-
result = decodeFetchStream(buffer);
|
|
1239
|
-
} else {
|
|
1534
|
+
if (offset < buffer.length) {
|
|
1240
1535
|
controller.error(
|
|
1241
|
-
new (0,
|
|
1242
|
-
"CONSTRAINT_VIOLATION",
|
|
1243
|
-
`Unknown data stream type: 0x${firstByte.toString(16)}`,
|
|
1244
|
-
0
|
|
1245
|
-
)
|
|
1536
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
1246
1537
|
);
|
|
1247
|
-
return;
|
|
1248
|
-
}
|
|
1249
|
-
if (!result.ok) {
|
|
1250
|
-
controller.error(result.error);
|
|
1251
|
-
return;
|
|
1252
|
-
}
|
|
1253
|
-
const stream = result.value;
|
|
1254
|
-
if (stream.type === "subgroup") {
|
|
1255
|
-
controller.enqueue({
|
|
1256
|
-
type: "subgroup_header",
|
|
1257
|
-
trackAlias: stream.trackAlias,
|
|
1258
|
-
groupId: stream.groupId,
|
|
1259
|
-
subgroupId: stream.subgroupId,
|
|
1260
|
-
publisherPriority: stream.publisherPriority
|
|
1261
|
-
});
|
|
1262
|
-
for (const obj of stream.objects) {
|
|
1263
|
-
controller.enqueue(obj);
|
|
1264
|
-
}
|
|
1265
|
-
} else if (stream.type === "fetch") {
|
|
1266
|
-
controller.enqueue({
|
|
1267
|
-
type: "fetch_header",
|
|
1268
|
-
requestId: stream.requestId
|
|
1269
|
-
});
|
|
1270
|
-
for (const obj of stream.objects) {
|
|
1271
|
-
controller.enqueue(obj);
|
|
1272
|
-
}
|
|
1273
1538
|
}
|
|
1274
1539
|
}
|
|
1275
1540
|
});
|
|
1276
1541
|
}
|
|
1277
1542
|
function createDraft15Codec() {
|
|
1278
1543
|
return {
|
|
1279
|
-
draft: "
|
|
1544
|
+
draft: "15",
|
|
1280
1545
|
encodeMessage,
|
|
1281
1546
|
decodeMessage,
|
|
1282
1547
|
encodeSubgroupStream,
|
|
@@ -1338,4 +1603,4 @@ function createDraft15Codec() {
|
|
|
1338
1603
|
|
|
1339
1604
|
|
|
1340
1605
|
|
|
1341
|
-
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_REQUEST_ERROR = MSG_REQUEST_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_REQUEST_OK = MSG_REQUEST_OK; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_REQUEST_ID = SETUP_PARAM_MAX_REQUEST_ID; exports.SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE; exports.SETUP_PARAM_AUTHORITY = SETUP_PARAM_AUTHORITY; exports.SETUP_PARAM_MOQT_IMPLEMENTATION = SETUP_PARAM_MOQT_IMPLEMENTATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.
|
|
1606
|
+
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_REQUEST_ERROR = MSG_REQUEST_ERROR; exports.MSG_PUBLISH_NAMESPACE = MSG_PUBLISH_NAMESPACE; exports.MSG_REQUEST_OK = MSG_REQUEST_OK; exports.MSG_PUBLISH_NAMESPACE_DONE = MSG_PUBLISH_NAMESPACE_DONE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_PUBLISH_DONE = MSG_PUBLISH_DONE; exports.MSG_PUBLISH_NAMESPACE_CANCEL = MSG_PUBLISH_NAMESPACE_CANCEL; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_NAMESPACE = MSG_SUBSCRIBE_NAMESPACE; exports.MSG_UNSUBSCRIBE_NAMESPACE = MSG_UNSUBSCRIBE_NAMESPACE; exports.MSG_MAX_REQUEST_ID = MSG_MAX_REQUEST_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_REQUESTS_BLOCKED = MSG_REQUESTS_BLOCKED; exports.MSG_PUBLISH = MSG_PUBLISH; exports.MSG_PUBLISH_OK = MSG_PUBLISH_OK; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_REQUEST_ID = SETUP_PARAM_MAX_REQUEST_ID; exports.SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = SETUP_PARAM_MAX_AUTH_TOKEN_CACHE_SIZE; exports.SETUP_PARAM_AUTHORITY = SETUP_PARAM_AUTHORITY; exports.SETUP_PARAM_MOQT_IMPLEMENTATION = SETUP_PARAM_MOQT_IMPLEMENTATION; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.encodeSubgroupStream = encodeSubgroupStream; exports.encodeDatagram = encodeDatagram; exports.encodeFetchStream = encodeFetchStream; exports.decodeSubgroupStream = decodeSubgroupStream; exports.decodeDatagram = decodeDatagram; exports.decodeFetchStream = decodeFetchStream; exports.decodeDataStream = decodeDataStream; exports.createSubgroupStreamDecoder = createSubgroupStreamDecoder; exports.createFetchStreamDecoder = createFetchStreamDecoder; exports.createDataStreamDecoder = createDataStreamDecoder; exports.encodeMessage = encodeMessage; exports.decodeMessage = decodeMessage; exports.createStreamDecoder = createStreamDecoder; exports.createDraft15Codec = createDraft15Codec;
|