@moqtap/codec 0.2.3 → 0.4.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-73MWUKSJ.js → chunk-2UTVXWFF.js} +190 -102
- package/dist/{chunk-JTVCOMBI.cjs → chunk-3XKO6PCR.cjs} +290 -183
- package/dist/{chunk-ACQ4CUJP.cjs → chunk-4BDEU3D4.cjs} +237 -158
- package/dist/{chunk-4N4INRE7.cjs → chunk-4HBKHNU2.cjs} +144 -110
- package/dist/{chunk-2ZT6CVSE.js → chunk-4IVZZOY3.js} +269 -162
- package/dist/{chunk-GLBQDG4L.cjs → chunk-5O764MBD.cjs} +508 -117
- 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-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
- package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
- package/dist/{chunk-PZBPH2D7.js → chunk-GCBFHZW6.js} +216 -137
- package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
- package/dist/chunk-HZHSO7EW.cjs +1212 -0
- package/dist/{chunk-KZCYQ7ED.cjs → chunk-IILNSDEQ.cjs} +69 -41
- package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
- package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
- package/dist/{chunk-RUPCJTC3.cjs → chunk-JL3NEW3O.cjs} +23 -1
- 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-S74DWJE2.cjs → chunk-OKG2HT25.cjs} +277 -88
- package/dist/{chunk-BGWGVINJ.cjs → chunk-PKEOQSSZ.cjs} +144 -110
- package/dist/{chunk-2GODRVT5.js → chunk-Q46ZURKX.js} +325 -48
- package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
- package/dist/{chunk-XSNX2IUJ.js → chunk-RW4UG7CN.js} +121 -87
- package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
- package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
- package/dist/{chunk-YIG2C3LF.cjs → chunk-SDWRXXOO.cjs} +214 -126
- package/dist/{chunk-CEH7ESNC.js → chunk-SHMA4PBY.js} +121 -87
- package/dist/{chunk-MC7W6PMI.js → chunk-U3ZVLT5L.js} +483 -135
- package/dist/{chunk-VJUUZ4W2.cjs → chunk-UJU63EFY.cjs} +374 -97
- package/dist/{chunk-7L43FE6P.js → chunk-VOU7PNHI.js} +23 -1
- package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
- package/dist/{chunk-FPISPJ5N.cjs → chunk-XNWYLVGU.cjs} +529 -181
- package/dist/{chunk-U3IPZYPX.js → chunk-XS77RBY7.js} +228 -39
- package/dist/{chunk-JGG7CMSZ.cjs → chunk-XZE5R57R.cjs} +144 -110
- package/dist/{chunk-77MNXX3M.js → chunk-Y6KCSM3V.js} +121 -87
- package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
- package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
- package/dist/{chunk-MRJWLGYH.js → chunk-Z3VKP3PJ.js} +69 -41
- package/dist/{chunk-E6P74GDT.js → chunk-Z6U26IRI.js} +464 -73
- package/dist/{codec-FvGCxIhr.d.ts → codec-25u4_1HS.d.ts} +4 -4
- package/dist/{codec-DRcsBCsb.d.ts → codec-3Ppy_5Gd.d.ts} +4 -4
- package/dist/{codec-BdVMRMOI.d.ts → codec-BB0U8MF2.d.cts} +4 -4
- package/dist/{codec-B2cH-f5V.d.cts → codec-BHHfBTnV.d.ts} +4 -4
- package/dist/{codec-B5K73Bdj.d.ts → codec-BN6jk0Td.d.cts} +4 -4
- package/dist/{codec-R8GrCPt2.d.ts → codec-BU0gaSZm.d.ts} +4 -4
- package/dist/{codec-Bq-tLtfP.d.ts → codec-C-Yk2RNa.d.ts} +4 -4
- package/dist/codec-CFWQY9Lj.d.cts +18 -0
- package/dist/{codec-CPlK3Pi5.d.ts → codec-COy4uuPO.d.cts} +4 -4
- package/dist/codec-CewFCsEy.d.ts +18 -0
- package/dist/{codec-KXHvXZVb.d.cts → codec-Ck7ZwFF1.d.cts} +4 -4
- package/dist/{codec-DZhZSIii.d.cts → codec-D2QVSH9D.d.ts} +4 -4
- package/dist/{codec-BwFgpeQu.d.ts → codec-DDUBJGn0.d.cts} +4 -4
- package/dist/{codec-BFeliJFc.d.ts → codec-DNfml-se.d.ts} +4 -4
- package/dist/{codec-C4n1PS09.d.cts → codec-DoOGjjDq.d.cts} +4 -4
- package/dist/{codec-Bap882Fh.d.cts → codec-J7ekOSMc.d.ts} +4 -4
- package/dist/{codec-SKBeHQk7.d.ts → codec-R9TJCq-E.d.cts} +4 -4
- package/dist/{codec-DNUIgLqc.d.cts → codec-ZwV-Njt6.d.ts} +4 -4
- package/dist/{codec-HgBgHkFI.d.cts → codec-j819z_hL.d.cts} +4 -4
- package/dist/{codec-DY4QH364.d.cts → codec-w8z2j_uo.d.cts} +4 -4
- package/dist/{codec-CPvPq0sb.d.cts → codec-wtt6WF1K.d.ts} +4 -4
- package/dist/{codec-BUMjz0J4.d.cts → codec-z6_2PSzi.d.cts} +4 -4
- package/dist/{draft7-session.cjs → draft07-session.cjs} +2 -2
- package/dist/draft07-session.d.cts +8 -0
- package/dist/draft07-session.d.ts +8 -0
- package/dist/{draft7-session.js → draft07-session.js} +1 -1
- package/dist/draft07.cjs +129 -0
- package/dist/draft07.d.cts +67 -0
- package/dist/draft07.d.ts +67 -0
- package/dist/draft07.js +129 -0
- package/dist/draft08-session.cjs +6 -0
- package/dist/draft08-session.d.cts +8 -0
- package/dist/draft08-session.d.ts +8 -0
- package/dist/{draft8-session.js → draft08-session.js} +1 -1
- package/dist/draft08.cjs +119 -0
- package/dist/{draft8.d.cts → draft08.d.cts} +15 -13
- package/dist/{draft8.d.ts → draft08.d.ts} +15 -13
- package/dist/{draft8.js → draft08.js} +7 -4
- package/dist/draft09-session.cjs +6 -0
- package/dist/draft09-session.d.cts +8 -0
- package/dist/draft09-session.d.ts +8 -0
- package/dist/{draft9-session.js → draft09-session.js} +1 -1
- package/dist/draft09.cjs +119 -0
- package/dist/{draft9.d.cts → draft09.d.cts} +15 -13
- package/dist/{draft9.d.ts → draft09.d.ts} +15 -13
- package/dist/{draft9.js → draft09.js} +7 -4
- 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 -5
- package/dist/draft10.d.cts +14 -12
- package/dist/draft10.d.ts +14 -12
- package/dist/draft10.js +16 -13
- 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 -5
- package/dist/draft11.d.cts +14 -12
- package/dist/draft11.d.ts +14 -12
- package/dist/draft11.js +16 -13
- 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 -5
- package/dist/draft12.d.cts +16 -14
- package/dist/draft12.d.ts +16 -14
- package/dist/draft12.js +16 -13
- 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 -5
- package/dist/draft13.d.cts +16 -14
- package/dist/draft13.d.ts +16 -14
- package/dist/draft13.js +16 -13
- 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 -5
- package/dist/draft14.d.cts +14 -12
- package/dist/draft14.d.ts +14 -12
- package/dist/draft14.js +13 -4
- 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 -5
- package/dist/draft15.d.cts +14 -12
- package/dist/draft15.d.ts +14 -12
- package/dist/draft15.js +16 -13
- 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 -5
- package/dist/draft16.d.cts +14 -12
- package/dist/draft16.d.ts +14 -12
- package/dist/draft16.js +16 -13
- 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 -5
- package/dist/draft17.d.cts +11 -9
- package/dist/draft17.d.ts +11 -9
- package/dist/draft17.js +16 -13
- package/dist/index.cjs +52 -74
- package/dist/index.d.cts +41 -60
- package/dist/index.d.ts +41 -60
- package/dist/index.js +40 -62
- 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 +46 -13
- package/dist/session.d.cts +29 -11
- package/dist/session.d.ts +29 -11
- package/dist/session.js +46 -13
- package/dist/{types-DxSFvL2b.d.cts → types--Q7_DcvP.d.cts} +43 -39
- package/dist/{types-DxSFvL2b.d.ts → types--Q7_DcvP.d.ts} +43 -39
- package/dist/{types-B0FT5Qs2.d.cts → types-0IWbU9Z_.d.cts} +36 -36
- package/dist/{types-B0FT5Qs2.d.ts → types-0IWbU9Z_.d.ts} +36 -36
- package/dist/{types-gQsr0AAA.d.cts → types-B3g5G9KP.d.cts} +36 -36
- package/dist/{types-gQsr0AAA.d.ts → types-B3g5G9KP.d.ts} +36 -36
- package/dist/{types-Pme7sua0.d.cts → types-BFpFNM_m.d.cts} +57 -32
- package/dist/{types-Pme7sua0.d.ts → types-BFpFNM_m.d.ts} +57 -32
- package/dist/{types-8gUGeMgs.d.cts → types-Br7fm2mf.d.cts} +48 -26
- package/dist/{types-8gUGeMgs.d.ts → types-Br7fm2mf.d.ts} +48 -26
- package/dist/{types-BeAVNU-F.d.cts → types-C2qKTRR_.d.cts} +50 -45
- package/dist/{types-BeAVNU-F.d.ts → types-C2qKTRR_.d.ts} +50 -45
- package/dist/{types-DKpsfD3i.d.cts → types-DEaypVsD.d.cts} +115 -55
- package/dist/{types-DKpsfD3i.d.ts → types-DEaypVsD.d.ts} +115 -55
- package/dist/types-Dl4IaAHR.d.cts +282 -0
- package/dist/types-Dl4IaAHR.d.ts +282 -0
- package/dist/{types-CDa7F5ct.d.cts → types-DrQpTW1G.d.cts} +58 -50
- package/dist/{types-CDa7F5ct.d.ts → types-DrQpTW1G.d.ts} +58 -50
- package/dist/types-DuIO7cWK.d.cts +25 -0
- package/dist/types-DuIO7cWK.d.ts +25 -0
- package/dist/{types-B9A2g05r.d.cts → types-DuxfOYiO.d.cts} +47 -31
- package/dist/{types-B9A2g05r.d.ts → types-DuxfOYiO.d.ts} +47 -31
- package/dist/{types-D1dI_oTX.d.cts → types-jV1yDDBA.d.cts} +36 -36
- package/dist/{types-D1dI_oTX.d.ts → types-jV1yDDBA.d.ts} +36 -36
- package/package.json +192 -192
- package/src/core/buffer-reader.ts +130 -130
- package/src/core/buffer-writer.ts +100 -100
- package/src/core/errors.ts +1 -1
- package/src/core/hex.ts +21 -21
- package/src/core/session-types.ts +61 -59
- package/src/core/types.ts +18 -361
- package/src/drafts/draft07/codec.ts +1058 -938
- package/src/drafts/draft07/data-streams.ts +240 -240
- 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 +51 -51
- package/src/drafts/draft08/codec.ts +985 -953
- package/src/drafts/draft08/data-streams.ts +363 -359
- 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 -945
- package/src/drafts/draft09/data-streams.ts +336 -332
- 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 -945
- package/src/drafts/draft10/data-streams.ts +336 -332
- 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 -988
- package/src/drafts/draft11/data-streams.ts +316 -269
- 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 -1122
- package/src/drafts/draft12/data-streams.ts +324 -275
- 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 -1206
- package/src/drafts/draft13/data-streams.ts +326 -275
- 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 -1043
- package/src/drafts/draft14/data-streams.ts +831 -813
- 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 -978
- package/src/drafts/draft15/data-streams.ts +842 -794
- 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 -966
- package/src/drafts/draft16/data-streams.ts +835 -789
- 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 -971
- package/src/drafts/draft17/data-streams.ts +969 -758
- 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 +63 -25
- package/dist/chunk-FZDIEHQL.cjs +0 -1042
- package/dist/chunk-HDWJ2GDE.js +0 -24
- package/dist/chunk-KNDYS3DK.cjs +0 -24
- package/dist/chunk-N2KBF5Q2.js +0 -1042
- package/dist/draft7-session.d.cts +0 -7
- package/dist/draft7-session.d.ts +0 -7
- package/dist/draft7.cjs +0 -72
- package/dist/draft7.d.cts +0 -148
- package/dist/draft7.d.ts +0 -148
- package/dist/draft7.js +0 -72
- package/dist/draft8-session.cjs +0 -6
- package/dist/draft8-session.d.cts +0 -8
- package/dist/draft8-session.d.ts +0 -8
- package/dist/draft8.cjs +0 -116
- package/dist/draft9-session.cjs +0 -6
- package/dist/draft9-session.d.cts +0 -8
- package/dist/draft9-session.d.ts +0 -8
- package/dist/draft9.cjs +0 -116
- 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
|
@@ -0,0 +1,1212 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkJL3NEW3Ocjs = require('./chunk-JL3NEW3O.cjs');
|
|
8
|
+
|
|
9
|
+
// src/drafts/draft07/messages.ts
|
|
10
|
+
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
11
|
+
var MSG_SUBSCRIBE = 0x03n;
|
|
12
|
+
var MSG_SUBSCRIBE_OK = 0x04n;
|
|
13
|
+
var MSG_SUBSCRIBE_ERROR = 0x05n;
|
|
14
|
+
var MSG_ANNOUNCE = 0x06n;
|
|
15
|
+
var MSG_ANNOUNCE_OK = 0x07n;
|
|
16
|
+
var MSG_ANNOUNCE_ERROR = 0x08n;
|
|
17
|
+
var MSG_UNANNOUNCE = 0x09n;
|
|
18
|
+
var MSG_UNSUBSCRIBE = 0x0an;
|
|
19
|
+
var MSG_SUBSCRIBE_DONE = 0x0bn;
|
|
20
|
+
var MSG_ANNOUNCE_CANCEL = 0x0cn;
|
|
21
|
+
var MSG_TRACK_STATUS_REQUEST = 0x0dn;
|
|
22
|
+
var MSG_TRACK_STATUS = 0x0en;
|
|
23
|
+
var MSG_GOAWAY = 0x10n;
|
|
24
|
+
var MSG_SUBSCRIBE_ANNOUNCES = 0x11n;
|
|
25
|
+
var MSG_SUBSCRIBE_ANNOUNCES_OK = 0x12n;
|
|
26
|
+
var MSG_SUBSCRIBE_ANNOUNCES_ERROR = 0x13n;
|
|
27
|
+
var MSG_UNSUBSCRIBE_ANNOUNCES = 0x14n;
|
|
28
|
+
var MSG_MAX_SUBSCRIBE_ID = 0x15n;
|
|
29
|
+
var MSG_FETCH = 0x16n;
|
|
30
|
+
var MSG_FETCH_CANCEL = 0x17n;
|
|
31
|
+
var MSG_FETCH_OK = 0x18n;
|
|
32
|
+
var MSG_FETCH_ERROR = 0x19n;
|
|
33
|
+
var MSG_CLIENT_SETUP = 0x40n;
|
|
34
|
+
var MSG_SERVER_SETUP = 0x41n;
|
|
35
|
+
var SETUP_PARAM_ROLE = 0x00n;
|
|
36
|
+
var SETUP_PARAM_PATH = 0x01n;
|
|
37
|
+
var SETUP_PARAM_MAX_SUBSCRIBE_ID = 0x02n;
|
|
38
|
+
var PARAM_AUTHORIZATION_INFO = 0x02n;
|
|
39
|
+
var PARAM_DELIVERY_TIMEOUT = 0x03n;
|
|
40
|
+
var PARAM_MAX_CACHE_DURATION = 0x04n;
|
|
41
|
+
var MSG_OBJECT_DATAGRAM = 0x01n;
|
|
42
|
+
var MSG_STREAM_HEADER_SUBGROUP = 0x04n;
|
|
43
|
+
var MSG_FETCH_HEADER = 0x05n;
|
|
44
|
+
var MESSAGE_TYPE_MAP = /* @__PURE__ */ new Map([
|
|
45
|
+
[MSG_CLIENT_SETUP, "client_setup"],
|
|
46
|
+
[MSG_SERVER_SETUP, "server_setup"],
|
|
47
|
+
[MSG_SUBSCRIBE, "subscribe"],
|
|
48
|
+
[MSG_SUBSCRIBE_OK, "subscribe_ok"],
|
|
49
|
+
[MSG_SUBSCRIBE_ERROR, "subscribe_error"],
|
|
50
|
+
[MSG_SUBSCRIBE_UPDATE, "subscribe_update"],
|
|
51
|
+
[MSG_SUBSCRIBE_DONE, "subscribe_done"],
|
|
52
|
+
[MSG_UNSUBSCRIBE, "unsubscribe"],
|
|
53
|
+
[MSG_ANNOUNCE, "announce"],
|
|
54
|
+
[MSG_ANNOUNCE_OK, "announce_ok"],
|
|
55
|
+
[MSG_ANNOUNCE_ERROR, "announce_error"],
|
|
56
|
+
[MSG_UNANNOUNCE, "unannounce"],
|
|
57
|
+
[MSG_ANNOUNCE_CANCEL, "announce_cancel"],
|
|
58
|
+
[MSG_SUBSCRIBE_ANNOUNCES, "subscribe_announces"],
|
|
59
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, "subscribe_announces_ok"],
|
|
60
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, "subscribe_announces_error"],
|
|
61
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, "unsubscribe_announces"],
|
|
62
|
+
[MSG_FETCH, "fetch"],
|
|
63
|
+
[MSG_FETCH_OK, "fetch_ok"],
|
|
64
|
+
[MSG_FETCH_ERROR, "fetch_error"],
|
|
65
|
+
[MSG_FETCH_CANCEL, "fetch_cancel"],
|
|
66
|
+
[MSG_TRACK_STATUS_REQUEST, "track_status_request"],
|
|
67
|
+
[MSG_TRACK_STATUS, "track_status"],
|
|
68
|
+
[MSG_GOAWAY, "goaway"],
|
|
69
|
+
[MSG_MAX_SUBSCRIBE_ID, "max_subscribe_id"]
|
|
70
|
+
]);
|
|
71
|
+
var MESSAGE_ID_MAP = new Map(
|
|
72
|
+
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
// src/drafts/draft07/varint.ts
|
|
76
|
+
function encodeVarInt(value) {
|
|
77
|
+
const v = BigInt(value);
|
|
78
|
+
if (v < 0n) throw new Error("VarInt value must be non-negative");
|
|
79
|
+
if (v < 0x40n) {
|
|
80
|
+
const buf = new Uint8Array(1);
|
|
81
|
+
buf[0] = Number(v);
|
|
82
|
+
return buf;
|
|
83
|
+
}
|
|
84
|
+
if (v < 0x4000n) {
|
|
85
|
+
const buf = new Uint8Array(2);
|
|
86
|
+
const n = Number(v) | 16384;
|
|
87
|
+
buf[0] = n >> 8;
|
|
88
|
+
buf[1] = n & 255;
|
|
89
|
+
return buf;
|
|
90
|
+
}
|
|
91
|
+
if (v < 0x40000000n) {
|
|
92
|
+
const buf = new Uint8Array(4);
|
|
93
|
+
const n = Number(v) | 2147483648;
|
|
94
|
+
buf[0] = n >>> 24 & 255;
|
|
95
|
+
buf[1] = n >>> 16 & 255;
|
|
96
|
+
buf[2] = n >>> 8 & 255;
|
|
97
|
+
buf[3] = n & 255;
|
|
98
|
+
return buf;
|
|
99
|
+
}
|
|
100
|
+
if (v < 0x4000000000000000n) {
|
|
101
|
+
const buf = new Uint8Array(8);
|
|
102
|
+
const tagged = v | 0xc000000000000000n;
|
|
103
|
+
const view = new DataView(buf.buffer);
|
|
104
|
+
view.setBigUint64(0, tagged);
|
|
105
|
+
return buf;
|
|
106
|
+
}
|
|
107
|
+
throw new Error("VarInt value exceeds 62-bit range");
|
|
108
|
+
}
|
|
109
|
+
function decodeVarInt(bytes, offset = 0) {
|
|
110
|
+
try {
|
|
111
|
+
const reader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes, offset);
|
|
112
|
+
const value = reader.readVarInt();
|
|
113
|
+
return { ok: true, value, bytesRead: reader.offset - offset };
|
|
114
|
+
} catch (e) {
|
|
115
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) {
|
|
116
|
+
return { ok: false, error: e };
|
|
117
|
+
}
|
|
118
|
+
throw e;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// src/drafts/draft07/data-streams.ts
|
|
123
|
+
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
124
|
+
var FETCH_STREAM_TYPE = 0x05n;
|
|
125
|
+
var DATAGRAM_TYPE = 0x01n;
|
|
126
|
+
function encodeSubgroupStream(stream) {
|
|
127
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
128
|
+
w.writeVarInt(SUBGROUP_STREAM_TYPE);
|
|
129
|
+
w.writeVarInt(stream.trackAlias);
|
|
130
|
+
w.writeVarInt(stream.groupId);
|
|
131
|
+
w.writeVarInt(stream.subgroupId);
|
|
132
|
+
w.writeUint8(stream.publisherPriority);
|
|
133
|
+
for (const obj of stream.objects) {
|
|
134
|
+
w.writeVarInt(obj.objectId);
|
|
135
|
+
w.writeVarInt(obj.payloadLength);
|
|
136
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
137
|
+
w.writeVarInt(obj.status);
|
|
138
|
+
} else {
|
|
139
|
+
w.writeBytes(obj.payload);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return w.finish();
|
|
143
|
+
}
|
|
144
|
+
function encodeDatagram(dg) {
|
|
145
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
146
|
+
w.writeVarInt(DATAGRAM_TYPE);
|
|
147
|
+
w.writeVarInt(dg.trackAlias);
|
|
148
|
+
w.writeVarInt(dg.groupId);
|
|
149
|
+
w.writeVarInt(dg.objectId);
|
|
150
|
+
w.writeUint8(dg.publisherPriority);
|
|
151
|
+
w.writeVarInt(dg.payloadLength);
|
|
152
|
+
if (dg.payloadLength === 0 && dg.status !== void 0) {
|
|
153
|
+
w.writeVarInt(dg.status);
|
|
154
|
+
} else {
|
|
155
|
+
w.writeBytes(dg.payload);
|
|
156
|
+
}
|
|
157
|
+
return w.finish();
|
|
158
|
+
}
|
|
159
|
+
function encodeFetchStream(stream) {
|
|
160
|
+
const w = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
161
|
+
w.writeVarInt(FETCH_STREAM_TYPE);
|
|
162
|
+
w.writeVarInt(stream.subscribeId);
|
|
163
|
+
for (const obj of stream.objects) {
|
|
164
|
+
w.writeVarInt(obj.groupId);
|
|
165
|
+
w.writeVarInt(obj.subgroupId);
|
|
166
|
+
w.writeVarInt(obj.objectId);
|
|
167
|
+
w.writeUint8(obj.publisherPriority);
|
|
168
|
+
w.writeVarInt(obj.payloadLength);
|
|
169
|
+
if (obj.payloadLength === 0 && obj.status !== void 0) {
|
|
170
|
+
w.writeVarInt(obj.status);
|
|
171
|
+
} else {
|
|
172
|
+
w.writeBytes(obj.payload);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return w.finish();
|
|
176
|
+
}
|
|
177
|
+
function decodeSubgroupStream(bytes) {
|
|
178
|
+
try {
|
|
179
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
180
|
+
const streamType = Number(r.readVarInt());
|
|
181
|
+
if (streamType !== 4) {
|
|
182
|
+
return {
|
|
183
|
+
ok: false,
|
|
184
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
185
|
+
"CONSTRAINT_VIOLATION",
|
|
186
|
+
`Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
|
|
187
|
+
0
|
|
188
|
+
)
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const trackAlias = r.readVarInt();
|
|
192
|
+
const groupId = r.readVarInt();
|
|
193
|
+
const subgroupId = r.readVarInt();
|
|
194
|
+
const publisherPriority = r.readUint8();
|
|
195
|
+
const objects = [];
|
|
196
|
+
while (r.remaining > 0) {
|
|
197
|
+
const byteOffset = r.offset;
|
|
198
|
+
const objectId = r.readVarInt();
|
|
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
|
+
objectId,
|
|
214
|
+
payloadLength,
|
|
215
|
+
payload,
|
|
216
|
+
byteOffset,
|
|
217
|
+
payloadByteOffset
|
|
218
|
+
};
|
|
219
|
+
if (status !== void 0) obj.status = status;
|
|
220
|
+
objects.push(obj);
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
ok: true,
|
|
224
|
+
value: {
|
|
225
|
+
type: "subgroup",
|
|
226
|
+
streamTypeId: 4,
|
|
227
|
+
trackAlias,
|
|
228
|
+
groupId,
|
|
229
|
+
subgroupId,
|
|
230
|
+
publisherPriority,
|
|
231
|
+
objects
|
|
232
|
+
},
|
|
233
|
+
bytesRead: r.offset
|
|
234
|
+
};
|
|
235
|
+
} catch (e) {
|
|
236
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
237
|
+
throw e;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function decodeDatagram(bytes) {
|
|
241
|
+
try {
|
|
242
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
243
|
+
const streamType = Number(r.readVarInt());
|
|
244
|
+
if (streamType !== 1) {
|
|
245
|
+
return {
|
|
246
|
+
ok: false,
|
|
247
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
248
|
+
"CONSTRAINT_VIOLATION",
|
|
249
|
+
`Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
|
|
250
|
+
0
|
|
251
|
+
)
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
const trackAlias = r.readVarInt();
|
|
255
|
+
const groupId = r.readVarInt();
|
|
256
|
+
const objectId = r.readVarInt();
|
|
257
|
+
const publisherPriority = r.readUint8();
|
|
258
|
+
const payloadLength = Number(r.readVarInt());
|
|
259
|
+
let status;
|
|
260
|
+
let payload;
|
|
261
|
+
if (payloadLength === 0) {
|
|
262
|
+
status = r.readVarInt();
|
|
263
|
+
payload = new Uint8Array(0);
|
|
264
|
+
} else {
|
|
265
|
+
payload = r.readBytesView(payloadLength);
|
|
266
|
+
}
|
|
267
|
+
const result = {
|
|
268
|
+
type: "datagram",
|
|
269
|
+
streamTypeId: 1,
|
|
270
|
+
trackAlias,
|
|
271
|
+
groupId,
|
|
272
|
+
objectId,
|
|
273
|
+
publisherPriority,
|
|
274
|
+
payloadLength,
|
|
275
|
+
payload
|
|
276
|
+
};
|
|
277
|
+
if (status !== void 0) result.status = status;
|
|
278
|
+
return { ok: true, value: result, bytesRead: r.offset };
|
|
279
|
+
} catch (e) {
|
|
280
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
281
|
+
throw e;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function decodeFetchStream(bytes) {
|
|
285
|
+
try {
|
|
286
|
+
const r = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes);
|
|
287
|
+
const streamType = Number(r.readVarInt());
|
|
288
|
+
if (streamType !== 5) {
|
|
289
|
+
return {
|
|
290
|
+
ok: false,
|
|
291
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
292
|
+
"CONSTRAINT_VIOLATION",
|
|
293
|
+
`Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
|
|
294
|
+
0
|
|
295
|
+
)
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const subscribeId = r.readVarInt();
|
|
299
|
+
const objects = [];
|
|
300
|
+
while (r.remaining > 0) {
|
|
301
|
+
const byteOffset = r.offset;
|
|
302
|
+
const groupId = r.readVarInt();
|
|
303
|
+
const subgroupId = r.readVarInt();
|
|
304
|
+
const objectId = r.readVarInt();
|
|
305
|
+
const publisherPriority = r.readUint8();
|
|
306
|
+
const payloadLength = Number(r.readVarInt());
|
|
307
|
+
let payload;
|
|
308
|
+
let status;
|
|
309
|
+
let payloadByteOffset;
|
|
310
|
+
if (payloadLength === 0) {
|
|
311
|
+
status = r.readVarInt();
|
|
312
|
+
payloadByteOffset = r.offset;
|
|
313
|
+
payload = new Uint8Array(0);
|
|
314
|
+
} else {
|
|
315
|
+
payloadByteOffset = r.offset;
|
|
316
|
+
payload = r.readBytesView(payloadLength);
|
|
317
|
+
}
|
|
318
|
+
const obj = {
|
|
319
|
+
type: "object",
|
|
320
|
+
groupId,
|
|
321
|
+
subgroupId,
|
|
322
|
+
objectId,
|
|
323
|
+
publisherPriority,
|
|
324
|
+
payloadLength,
|
|
325
|
+
payload,
|
|
326
|
+
byteOffset,
|
|
327
|
+
payloadByteOffset
|
|
328
|
+
};
|
|
329
|
+
if (status !== void 0) obj.status = status;
|
|
330
|
+
objects.push(obj);
|
|
331
|
+
}
|
|
332
|
+
return {
|
|
333
|
+
ok: true,
|
|
334
|
+
value: { type: "fetch", subscribeId, objects },
|
|
335
|
+
bytesRead: r.offset
|
|
336
|
+
};
|
|
337
|
+
} catch (e) {
|
|
338
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) return { ok: false, error: e };
|
|
339
|
+
throw e;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// src/drafts/draft07/codec.ts
|
|
344
|
+
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
345
|
+
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
346
|
+
var DATA_STREAM_TYPE_IDS = /* @__PURE__ */ new Set([MSG_OBJECT_DATAGRAM]);
|
|
347
|
+
function encodeSetupParams(params, w) {
|
|
348
|
+
let count = 0;
|
|
349
|
+
if (params.role !== void 0) count++;
|
|
350
|
+
if (params.path !== void 0) count++;
|
|
351
|
+
if (params.max_subscribe_id !== void 0) count++;
|
|
352
|
+
if (params.unknown) count += params.unknown.length;
|
|
353
|
+
w.writeVarInt(count);
|
|
354
|
+
if (params.role !== void 0) {
|
|
355
|
+
w.writeVarInt(SETUP_PARAM_ROLE);
|
|
356
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
357
|
+
tmpW.writeVarInt(params.role);
|
|
358
|
+
const raw = tmpW.finish();
|
|
359
|
+
w.writeVarInt(raw.byteLength);
|
|
360
|
+
w.writeBytes(raw);
|
|
361
|
+
}
|
|
362
|
+
if (params.path !== void 0) {
|
|
363
|
+
w.writeVarInt(SETUP_PARAM_PATH);
|
|
364
|
+
const encoded = textEncoder.encode(params.path);
|
|
365
|
+
w.writeVarInt(encoded.byteLength);
|
|
366
|
+
w.writeBytes(encoded);
|
|
367
|
+
}
|
|
368
|
+
if (params.max_subscribe_id !== void 0) {
|
|
369
|
+
w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
|
|
370
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
371
|
+
tmpW.writeVarInt(params.max_subscribe_id);
|
|
372
|
+
const raw = tmpW.finish();
|
|
373
|
+
w.writeVarInt(raw.byteLength);
|
|
374
|
+
w.writeBytes(raw);
|
|
375
|
+
}
|
|
376
|
+
if (params.unknown) {
|
|
377
|
+
for (const u of params.unknown) {
|
|
378
|
+
w.writeVarInt(BigInt(u.id));
|
|
379
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
380
|
+
w.writeVarInt(raw.byteLength);
|
|
381
|
+
w.writeBytes(raw);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
function decodeSetupParams(r) {
|
|
386
|
+
const count = Number(r.readVarInt());
|
|
387
|
+
const result = {};
|
|
388
|
+
const unknown = [];
|
|
389
|
+
for (let i = 0; i < count; i++) {
|
|
390
|
+
const paramType = r.readVarInt();
|
|
391
|
+
const length = Number(r.readVarInt());
|
|
392
|
+
if (paramType === SETUP_PARAM_ROLE) {
|
|
393
|
+
const blob = r.readBytes(length);
|
|
394
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(blob);
|
|
395
|
+
result.role = tmpReader.readVarInt();
|
|
396
|
+
} else if (paramType === SETUP_PARAM_PATH) {
|
|
397
|
+
const bytes = r.readBytes(length);
|
|
398
|
+
result.path = textDecoder.decode(bytes);
|
|
399
|
+
} else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
|
|
400
|
+
const blob = r.readBytes(length);
|
|
401
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(blob);
|
|
402
|
+
result.max_subscribe_id = tmpReader.readVarInt();
|
|
403
|
+
} else {
|
|
404
|
+
const bytes = r.readBytes(length);
|
|
405
|
+
unknown.push({
|
|
406
|
+
id: `0x${paramType.toString(16)}`,
|
|
407
|
+
length,
|
|
408
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, bytes)
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
413
|
+
return result;
|
|
414
|
+
}
|
|
415
|
+
function encodeParams(params, w) {
|
|
416
|
+
let count = params.unknown ? params.unknown.length : 0;
|
|
417
|
+
if (params.authorization_info !== void 0) count++;
|
|
418
|
+
if (params.delivery_timeout !== void 0) count++;
|
|
419
|
+
if (params.max_cache_duration !== void 0) count++;
|
|
420
|
+
w.writeVarInt(count);
|
|
421
|
+
if (params.authorization_info !== void 0) {
|
|
422
|
+
w.writeVarInt(PARAM_AUTHORIZATION_INFO);
|
|
423
|
+
const encoded = textEncoder.encode(params.authorization_info);
|
|
424
|
+
w.writeVarInt(encoded.byteLength);
|
|
425
|
+
w.writeBytes(encoded);
|
|
426
|
+
}
|
|
427
|
+
if (params.delivery_timeout !== void 0) {
|
|
428
|
+
w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
|
|
429
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
430
|
+
tmpW.writeVarInt(params.delivery_timeout);
|
|
431
|
+
const raw = tmpW.finish();
|
|
432
|
+
w.writeVarInt(raw.byteLength);
|
|
433
|
+
w.writeBytes(raw);
|
|
434
|
+
}
|
|
435
|
+
if (params.max_cache_duration !== void 0) {
|
|
436
|
+
w.writeVarInt(PARAM_MAX_CACHE_DURATION);
|
|
437
|
+
const tmpW = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(16);
|
|
438
|
+
tmpW.writeVarInt(params.max_cache_duration);
|
|
439
|
+
const raw = tmpW.finish();
|
|
440
|
+
w.writeVarInt(raw.byteLength);
|
|
441
|
+
w.writeBytes(raw);
|
|
442
|
+
}
|
|
443
|
+
if (params.unknown) {
|
|
444
|
+
for (const u of params.unknown) {
|
|
445
|
+
w.writeVarInt(BigInt(u.id));
|
|
446
|
+
const raw = _chunkJL3NEW3Ocjs.hexToBytes.call(void 0, u.raw_hex);
|
|
447
|
+
w.writeVarInt(raw.byteLength);
|
|
448
|
+
w.writeBytes(raw);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
function decodeParams(r) {
|
|
453
|
+
const count = Number(r.readVarInt());
|
|
454
|
+
const result = {};
|
|
455
|
+
const unknown = [];
|
|
456
|
+
for (let i = 0; i < count; i++) {
|
|
457
|
+
const paramType = r.readVarInt();
|
|
458
|
+
const length = Number(r.readVarInt());
|
|
459
|
+
if (paramType === PARAM_AUTHORIZATION_INFO) {
|
|
460
|
+
const bytes = r.readBytes(length);
|
|
461
|
+
result.authorization_info = textDecoder.decode(bytes);
|
|
462
|
+
} else if (paramType === PARAM_DELIVERY_TIMEOUT) {
|
|
463
|
+
const blob = r.readBytes(length);
|
|
464
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(blob);
|
|
465
|
+
result.delivery_timeout = tmpReader.readVarInt();
|
|
466
|
+
} else if (paramType === PARAM_MAX_CACHE_DURATION) {
|
|
467
|
+
const blob = r.readBytes(length);
|
|
468
|
+
const tmpReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(blob);
|
|
469
|
+
result.max_cache_duration = tmpReader.readVarInt();
|
|
470
|
+
} else {
|
|
471
|
+
const bytes = r.readBytes(length);
|
|
472
|
+
unknown.push({
|
|
473
|
+
id: `0x${paramType.toString(16)}`,
|
|
474
|
+
length,
|
|
475
|
+
raw_hex: _chunkJL3NEW3Ocjs.bytesToHex.call(void 0, bytes)
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
if (unknown.length > 0) result.unknown = unknown;
|
|
480
|
+
return result;
|
|
481
|
+
}
|
|
482
|
+
function encodeClientSetupPayload(msg, writer) {
|
|
483
|
+
writer.writeVarInt(msg.supported_versions.length);
|
|
484
|
+
for (const version of msg.supported_versions) {
|
|
485
|
+
writer.writeVarInt(version);
|
|
486
|
+
}
|
|
487
|
+
encodeSetupParams(msg.parameters, writer);
|
|
488
|
+
}
|
|
489
|
+
function encodeServerSetupPayload(msg, writer) {
|
|
490
|
+
writer.writeVarInt(msg.selected_version);
|
|
491
|
+
encodeSetupParams(msg.parameters, writer);
|
|
492
|
+
}
|
|
493
|
+
function encodeSubscribePayload(msg, writer) {
|
|
494
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
495
|
+
writer.writeVarInt(msg.track_alias);
|
|
496
|
+
writer.writeTuple(msg.track_namespace);
|
|
497
|
+
writer.writeString(msg.track_name);
|
|
498
|
+
writer.writeUint8(msg.subscriber_priority);
|
|
499
|
+
writer.writeUint8(msg.group_order);
|
|
500
|
+
writer.writeVarInt(msg.filter_type);
|
|
501
|
+
if (msg.filter_type === 3n || msg.filter_type === 4n) {
|
|
502
|
+
writer.writeVarInt(msg.start_group);
|
|
503
|
+
writer.writeVarInt(msg.start_object);
|
|
504
|
+
}
|
|
505
|
+
if (msg.filter_type === 4n) {
|
|
506
|
+
writer.writeVarInt(msg.end_group);
|
|
507
|
+
writer.writeVarInt(msg.end_object);
|
|
508
|
+
}
|
|
509
|
+
encodeParams(msg.parameters, writer);
|
|
510
|
+
}
|
|
511
|
+
function encodeSubscribeOkPayload(msg, writer) {
|
|
512
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
513
|
+
writer.writeVarInt(msg.expires);
|
|
514
|
+
writer.writeUint8(msg.group_order);
|
|
515
|
+
writer.writeUint8(msg.content_exists);
|
|
516
|
+
if (msg.content_exists) {
|
|
517
|
+
writer.writeVarInt(msg.largest_group_id);
|
|
518
|
+
writer.writeVarInt(msg.largest_object_id);
|
|
519
|
+
}
|
|
520
|
+
encodeParams(msg.parameters, writer);
|
|
521
|
+
}
|
|
522
|
+
function encodeSubscribeErrorPayload(msg, writer) {
|
|
523
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
524
|
+
writer.writeVarInt(msg.error_code);
|
|
525
|
+
writer.writeString(msg.reason_phrase);
|
|
526
|
+
writer.writeVarInt(msg.track_alias);
|
|
527
|
+
}
|
|
528
|
+
function encodeSubscribeDonePayload(msg, writer) {
|
|
529
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
530
|
+
writer.writeVarInt(msg.status_code);
|
|
531
|
+
writer.writeString(msg.reason_phrase);
|
|
532
|
+
writer.writeUint8(msg.content_exists);
|
|
533
|
+
if (msg.content_exists) {
|
|
534
|
+
writer.writeVarInt(msg.final_group);
|
|
535
|
+
writer.writeVarInt(msg.final_object);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
function encodeSubscribeUpdatePayload(msg, writer) {
|
|
539
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
540
|
+
writer.writeVarInt(msg.start_group);
|
|
541
|
+
writer.writeVarInt(msg.start_object);
|
|
542
|
+
writer.writeVarInt(msg.end_group);
|
|
543
|
+
writer.writeVarInt(msg.end_object);
|
|
544
|
+
writer.writeUint8(msg.subscriber_priority);
|
|
545
|
+
encodeParams(msg.parameters, writer);
|
|
546
|
+
}
|
|
547
|
+
function encodeUnsubscribePayload(msg, writer) {
|
|
548
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
549
|
+
}
|
|
550
|
+
function encodeAnnouncePayload(msg, writer) {
|
|
551
|
+
writer.writeTuple(msg.track_namespace);
|
|
552
|
+
encodeParams(msg.parameters, writer);
|
|
553
|
+
}
|
|
554
|
+
function encodeAnnounceOkPayload(msg, writer) {
|
|
555
|
+
writer.writeTuple(msg.track_namespace);
|
|
556
|
+
}
|
|
557
|
+
function encodeAnnounceErrorPayload(msg, writer) {
|
|
558
|
+
writer.writeTuple(msg.track_namespace);
|
|
559
|
+
writer.writeVarInt(msg.error_code);
|
|
560
|
+
writer.writeString(msg.reason_phrase);
|
|
561
|
+
}
|
|
562
|
+
function encodeAnnounceCancelPayload(msg, writer) {
|
|
563
|
+
writer.writeTuple(msg.track_namespace);
|
|
564
|
+
writer.writeVarInt(msg.error_code);
|
|
565
|
+
writer.writeString(msg.reason_phrase);
|
|
566
|
+
}
|
|
567
|
+
function encodeUnannouncePayload(msg, writer) {
|
|
568
|
+
writer.writeTuple(msg.track_namespace);
|
|
569
|
+
}
|
|
570
|
+
function encodeTrackStatusRequestPayload(msg, writer) {
|
|
571
|
+
writer.writeTuple(msg.track_namespace);
|
|
572
|
+
writer.writeString(msg.track_name);
|
|
573
|
+
}
|
|
574
|
+
function encodeTrackStatusPayload(msg, writer) {
|
|
575
|
+
writer.writeTuple(msg.track_namespace);
|
|
576
|
+
writer.writeString(msg.track_name);
|
|
577
|
+
writer.writeVarInt(msg.status_code);
|
|
578
|
+
writer.writeVarInt(msg.last_group_id);
|
|
579
|
+
writer.writeVarInt(msg.last_object_id);
|
|
580
|
+
}
|
|
581
|
+
function encodeGoAwayPayload(msg, writer) {
|
|
582
|
+
writer.writeString(msg.new_session_uri);
|
|
583
|
+
}
|
|
584
|
+
function encodeSubscribeAnnouncesPayload(msg, writer) {
|
|
585
|
+
writer.writeTuple(msg.track_namespace_prefix);
|
|
586
|
+
encodeParams(msg.parameters, writer);
|
|
587
|
+
}
|
|
588
|
+
function encodeSubscribeAnnouncesOkPayload(msg, writer) {
|
|
589
|
+
writer.writeTuple(msg.track_namespace_prefix);
|
|
590
|
+
}
|
|
591
|
+
function encodeSubscribeAnnouncesErrorPayload(msg, writer) {
|
|
592
|
+
writer.writeTuple(msg.track_namespace_prefix);
|
|
593
|
+
writer.writeVarInt(msg.error_code);
|
|
594
|
+
writer.writeString(msg.reason_phrase);
|
|
595
|
+
}
|
|
596
|
+
function encodeUnsubscribeAnnouncesPayload(msg, writer) {
|
|
597
|
+
writer.writeTuple(msg.track_namespace_prefix);
|
|
598
|
+
}
|
|
599
|
+
function encodeMaxSubscribeIdPayload(msg, writer) {
|
|
600
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
601
|
+
}
|
|
602
|
+
function encodeFetchPayload(msg, writer) {
|
|
603
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
604
|
+
writer.writeTuple(msg.track_namespace);
|
|
605
|
+
writer.writeString(msg.track_name);
|
|
606
|
+
writer.writeUint8(msg.subscriber_priority);
|
|
607
|
+
writer.writeUint8(msg.group_order);
|
|
608
|
+
writer.writeVarInt(msg.start_group);
|
|
609
|
+
writer.writeVarInt(msg.start_object);
|
|
610
|
+
writer.writeVarInt(msg.end_group);
|
|
611
|
+
writer.writeVarInt(msg.end_object);
|
|
612
|
+
encodeParams(msg.parameters, writer);
|
|
613
|
+
}
|
|
614
|
+
function encodeFetchOkPayload(msg, writer) {
|
|
615
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
616
|
+
writer.writeUint8(msg.group_order);
|
|
617
|
+
writer.writeUint8(msg.end_of_track);
|
|
618
|
+
writer.writeVarInt(msg.largest_group_id);
|
|
619
|
+
writer.writeVarInt(msg.largest_object_id);
|
|
620
|
+
encodeParams(msg.parameters, writer);
|
|
621
|
+
}
|
|
622
|
+
function encodeFetchErrorPayload(msg, writer) {
|
|
623
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
624
|
+
writer.writeVarInt(msg.error_code);
|
|
625
|
+
writer.writeString(msg.reason_phrase);
|
|
626
|
+
}
|
|
627
|
+
function encodeFetchCancelPayload(msg, writer) {
|
|
628
|
+
writer.writeVarInt(msg.subscribe_id);
|
|
629
|
+
}
|
|
630
|
+
function encodeObjectPayload(msg, writer) {
|
|
631
|
+
if (msg.payload.byteLength === 0) {
|
|
632
|
+
writer.writeVarInt(0);
|
|
633
|
+
writer.writeVarInt(_nullishCoalesce(msg.object_status, () => ( 0)));
|
|
634
|
+
} else {
|
|
635
|
+
writer.writeVarInt(msg.payload.byteLength);
|
|
636
|
+
writer.writeBytes(msg.payload);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
function encodeObjectDatagram(msg, writer) {
|
|
640
|
+
writer.writeVarInt(MSG_OBJECT_DATAGRAM);
|
|
641
|
+
writer.writeVarInt(msg.track_alias);
|
|
642
|
+
writer.writeVarInt(msg.group_id);
|
|
643
|
+
writer.writeVarInt(msg.object_id);
|
|
644
|
+
writer.writeUint8(msg.publisher_priority);
|
|
645
|
+
encodeObjectPayload(msg, writer);
|
|
646
|
+
}
|
|
647
|
+
function encodePayload(msg, w) {
|
|
648
|
+
switch (msg.type) {
|
|
649
|
+
case "client_setup":
|
|
650
|
+
return encodeClientSetupPayload(msg, w);
|
|
651
|
+
case "server_setup":
|
|
652
|
+
return encodeServerSetupPayload(msg, w);
|
|
653
|
+
case "subscribe":
|
|
654
|
+
return encodeSubscribePayload(msg, w);
|
|
655
|
+
case "subscribe_ok":
|
|
656
|
+
return encodeSubscribeOkPayload(msg, w);
|
|
657
|
+
case "subscribe_error":
|
|
658
|
+
return encodeSubscribeErrorPayload(msg, w);
|
|
659
|
+
case "subscribe_update":
|
|
660
|
+
return encodeSubscribeUpdatePayload(msg, w);
|
|
661
|
+
case "subscribe_done":
|
|
662
|
+
return encodeSubscribeDonePayload(msg, w);
|
|
663
|
+
case "unsubscribe":
|
|
664
|
+
return encodeUnsubscribePayload(msg, w);
|
|
665
|
+
case "announce":
|
|
666
|
+
return encodeAnnouncePayload(msg, w);
|
|
667
|
+
case "announce_ok":
|
|
668
|
+
return encodeAnnounceOkPayload(msg, w);
|
|
669
|
+
case "announce_error":
|
|
670
|
+
return encodeAnnounceErrorPayload(msg, w);
|
|
671
|
+
case "unannounce":
|
|
672
|
+
return encodeUnannouncePayload(msg, w);
|
|
673
|
+
case "announce_cancel":
|
|
674
|
+
return encodeAnnounceCancelPayload(msg, w);
|
|
675
|
+
case "subscribe_announces":
|
|
676
|
+
return encodeSubscribeAnnouncesPayload(msg, w);
|
|
677
|
+
case "subscribe_announces_ok":
|
|
678
|
+
return encodeSubscribeAnnouncesOkPayload(msg, w);
|
|
679
|
+
case "subscribe_announces_error":
|
|
680
|
+
return encodeSubscribeAnnouncesErrorPayload(msg, w);
|
|
681
|
+
case "unsubscribe_announces":
|
|
682
|
+
return encodeUnsubscribeAnnouncesPayload(msg, w);
|
|
683
|
+
case "fetch":
|
|
684
|
+
return encodeFetchPayload(msg, w);
|
|
685
|
+
case "fetch_ok":
|
|
686
|
+
return encodeFetchOkPayload(msg, w);
|
|
687
|
+
case "fetch_error":
|
|
688
|
+
return encodeFetchErrorPayload(msg, w);
|
|
689
|
+
case "fetch_cancel":
|
|
690
|
+
return encodeFetchCancelPayload(msg, w);
|
|
691
|
+
case "track_status_request":
|
|
692
|
+
return encodeTrackStatusRequestPayload(msg, w);
|
|
693
|
+
case "track_status":
|
|
694
|
+
return encodeTrackStatusPayload(msg, w);
|
|
695
|
+
case "goaway":
|
|
696
|
+
return encodeGoAwayPayload(msg, w);
|
|
697
|
+
case "max_subscribe_id":
|
|
698
|
+
return encodeMaxSubscribeIdPayload(msg, w);
|
|
699
|
+
default:
|
|
700
|
+
throw new Error(`Unhandled message type: ${msg.type}`);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
function decodeClientSetupPayload(reader) {
|
|
704
|
+
const numVersions = reader.readVarInt();
|
|
705
|
+
if (numVersions === 0n) {
|
|
706
|
+
throw new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
707
|
+
"CONSTRAINT_VIOLATION",
|
|
708
|
+
"supported_versions must not be empty",
|
|
709
|
+
reader.offset
|
|
710
|
+
);
|
|
711
|
+
}
|
|
712
|
+
const supported_versions = [];
|
|
713
|
+
for (let i = 0n; i < numVersions; i++) {
|
|
714
|
+
supported_versions.push(reader.readVarInt());
|
|
715
|
+
}
|
|
716
|
+
const parameters = decodeSetupParams(reader);
|
|
717
|
+
return { type: "client_setup", supported_versions, parameters };
|
|
718
|
+
}
|
|
719
|
+
function decodeServerSetupPayload(reader) {
|
|
720
|
+
const selected_version = reader.readVarInt();
|
|
721
|
+
const parameters = decodeSetupParams(reader);
|
|
722
|
+
return { type: "server_setup", selected_version, parameters };
|
|
723
|
+
}
|
|
724
|
+
function decodeSubscribePayload(reader) {
|
|
725
|
+
const subscribe_id = reader.readVarInt();
|
|
726
|
+
const track_alias = reader.readVarInt();
|
|
727
|
+
const track_namespace = reader.readTuple();
|
|
728
|
+
const track_name = reader.readString();
|
|
729
|
+
const subscriber_priority = reader.readUint8();
|
|
730
|
+
const group_order = reader.readUint8();
|
|
731
|
+
const filter_type = reader.readVarInt();
|
|
732
|
+
if (filter_type < 1n || filter_type > 4n) {
|
|
733
|
+
throw new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
734
|
+
"CONSTRAINT_VIOLATION",
|
|
735
|
+
`Invalid filter type: ${filter_type}`,
|
|
736
|
+
reader.offset
|
|
737
|
+
);
|
|
738
|
+
}
|
|
739
|
+
const base = {
|
|
740
|
+
type: "subscribe",
|
|
741
|
+
subscribe_id,
|
|
742
|
+
track_alias,
|
|
743
|
+
track_namespace,
|
|
744
|
+
track_name,
|
|
745
|
+
subscriber_priority,
|
|
746
|
+
group_order,
|
|
747
|
+
filter_type,
|
|
748
|
+
parameters: void 0
|
|
749
|
+
};
|
|
750
|
+
if (filter_type === 3n) {
|
|
751
|
+
const start_group = reader.readVarInt();
|
|
752
|
+
const start_object = reader.readVarInt();
|
|
753
|
+
base.parameters = decodeParams(reader);
|
|
754
|
+
return { ...base, start_group, start_object };
|
|
755
|
+
}
|
|
756
|
+
if (filter_type === 4n) {
|
|
757
|
+
const start_group = reader.readVarInt();
|
|
758
|
+
const start_object = reader.readVarInt();
|
|
759
|
+
const end_group = reader.readVarInt();
|
|
760
|
+
const end_object = reader.readVarInt();
|
|
761
|
+
base.parameters = decodeParams(reader);
|
|
762
|
+
return { ...base, start_group, start_object, end_group, end_object };
|
|
763
|
+
}
|
|
764
|
+
base.parameters = decodeParams(reader);
|
|
765
|
+
return base;
|
|
766
|
+
}
|
|
767
|
+
function decodeSubscribeOkPayload(reader) {
|
|
768
|
+
const subscribe_id = reader.readVarInt();
|
|
769
|
+
const expires = reader.readVarInt();
|
|
770
|
+
const group_order = reader.readUint8();
|
|
771
|
+
const content_exists = reader.readUint8();
|
|
772
|
+
if (content_exists) {
|
|
773
|
+
const largest_group_id = reader.readVarInt();
|
|
774
|
+
const largest_object_id = reader.readVarInt();
|
|
775
|
+
const parameters2 = decodeParams(reader);
|
|
776
|
+
return {
|
|
777
|
+
type: "subscribe_ok",
|
|
778
|
+
subscribe_id,
|
|
779
|
+
expires,
|
|
780
|
+
group_order,
|
|
781
|
+
content_exists,
|
|
782
|
+
largest_group_id,
|
|
783
|
+
largest_object_id,
|
|
784
|
+
parameters: parameters2
|
|
785
|
+
};
|
|
786
|
+
}
|
|
787
|
+
const parameters = decodeParams(reader);
|
|
788
|
+
return {
|
|
789
|
+
type: "subscribe_ok",
|
|
790
|
+
subscribe_id,
|
|
791
|
+
expires,
|
|
792
|
+
group_order,
|
|
793
|
+
content_exists,
|
|
794
|
+
parameters
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
function decodeSubscribeErrorPayload(reader) {
|
|
798
|
+
const subscribe_id = reader.readVarInt();
|
|
799
|
+
const error_code = reader.readVarInt();
|
|
800
|
+
const reason_phrase = reader.readString();
|
|
801
|
+
const track_alias = reader.readVarInt();
|
|
802
|
+
return {
|
|
803
|
+
type: "subscribe_error",
|
|
804
|
+
subscribe_id,
|
|
805
|
+
error_code,
|
|
806
|
+
reason_phrase,
|
|
807
|
+
track_alias
|
|
808
|
+
};
|
|
809
|
+
}
|
|
810
|
+
function decodeSubscribeDonePayload(reader) {
|
|
811
|
+
const subscribe_id = reader.readVarInt();
|
|
812
|
+
const status_code = reader.readVarInt();
|
|
813
|
+
const reason_phrase = reader.readString();
|
|
814
|
+
const content_exists = reader.readUint8();
|
|
815
|
+
if (content_exists) {
|
|
816
|
+
const final_group = reader.readVarInt();
|
|
817
|
+
const final_object = reader.readVarInt();
|
|
818
|
+
return {
|
|
819
|
+
type: "subscribe_done",
|
|
820
|
+
subscribe_id,
|
|
821
|
+
status_code,
|
|
822
|
+
reason_phrase,
|
|
823
|
+
content_exists,
|
|
824
|
+
final_group,
|
|
825
|
+
final_object
|
|
826
|
+
};
|
|
827
|
+
}
|
|
828
|
+
return {
|
|
829
|
+
type: "subscribe_done",
|
|
830
|
+
subscribe_id,
|
|
831
|
+
status_code,
|
|
832
|
+
reason_phrase,
|
|
833
|
+
content_exists
|
|
834
|
+
};
|
|
835
|
+
}
|
|
836
|
+
function decodeSubscribeUpdatePayload(reader) {
|
|
837
|
+
const subscribe_id = reader.readVarInt();
|
|
838
|
+
const start_group = reader.readVarInt();
|
|
839
|
+
const start_object = reader.readVarInt();
|
|
840
|
+
const end_group = reader.readVarInt();
|
|
841
|
+
const end_object = reader.readVarInt();
|
|
842
|
+
const subscriber_priority = reader.readUint8();
|
|
843
|
+
const parameters = decodeParams(reader);
|
|
844
|
+
return {
|
|
845
|
+
type: "subscribe_update",
|
|
846
|
+
subscribe_id,
|
|
847
|
+
start_group,
|
|
848
|
+
start_object,
|
|
849
|
+
end_group,
|
|
850
|
+
end_object,
|
|
851
|
+
subscriber_priority,
|
|
852
|
+
parameters
|
|
853
|
+
};
|
|
854
|
+
}
|
|
855
|
+
function decodeUnsubscribePayload(reader) {
|
|
856
|
+
const subscribe_id = reader.readVarInt();
|
|
857
|
+
return { type: "unsubscribe", subscribe_id };
|
|
858
|
+
}
|
|
859
|
+
function decodeAnnouncePayload(reader) {
|
|
860
|
+
const track_namespace = reader.readTuple();
|
|
861
|
+
const parameters = decodeParams(reader);
|
|
862
|
+
return { type: "announce", track_namespace, parameters };
|
|
863
|
+
}
|
|
864
|
+
function decodeAnnounceOkPayload(reader) {
|
|
865
|
+
const track_namespace = reader.readTuple();
|
|
866
|
+
return { type: "announce_ok", track_namespace };
|
|
867
|
+
}
|
|
868
|
+
function decodeAnnounceErrorPayload(reader) {
|
|
869
|
+
const track_namespace = reader.readTuple();
|
|
870
|
+
const error_code = reader.readVarInt();
|
|
871
|
+
const reason_phrase = reader.readString();
|
|
872
|
+
return { type: "announce_error", track_namespace, error_code, reason_phrase };
|
|
873
|
+
}
|
|
874
|
+
function decodeAnnounceCancelPayload(reader) {
|
|
875
|
+
const track_namespace = reader.readTuple();
|
|
876
|
+
const error_code = reader.readVarInt();
|
|
877
|
+
const reason_phrase = reader.readString();
|
|
878
|
+
return { type: "announce_cancel", track_namespace, error_code, reason_phrase };
|
|
879
|
+
}
|
|
880
|
+
function decodeUnannouncePayload(reader) {
|
|
881
|
+
const track_namespace = reader.readTuple();
|
|
882
|
+
return { type: "unannounce", track_namespace };
|
|
883
|
+
}
|
|
884
|
+
function decodeTrackStatusRequestPayload(reader) {
|
|
885
|
+
const track_namespace = reader.readTuple();
|
|
886
|
+
const track_name = reader.readString();
|
|
887
|
+
return { type: "track_status_request", track_namespace, track_name };
|
|
888
|
+
}
|
|
889
|
+
function decodeTrackStatusPayload(reader) {
|
|
890
|
+
const track_namespace = reader.readTuple();
|
|
891
|
+
const track_name = reader.readString();
|
|
892
|
+
const status_code = reader.readVarInt();
|
|
893
|
+
const last_group_id = reader.readVarInt();
|
|
894
|
+
const last_object_id = reader.readVarInt();
|
|
895
|
+
return {
|
|
896
|
+
type: "track_status",
|
|
897
|
+
track_namespace,
|
|
898
|
+
track_name,
|
|
899
|
+
status_code,
|
|
900
|
+
last_group_id,
|
|
901
|
+
last_object_id
|
|
902
|
+
};
|
|
903
|
+
}
|
|
904
|
+
function decodeGoAwayPayload(reader) {
|
|
905
|
+
const new_session_uri = reader.readString();
|
|
906
|
+
return { type: "goaway", new_session_uri };
|
|
907
|
+
}
|
|
908
|
+
function decodeSubscribeAnnouncesPayload(reader) {
|
|
909
|
+
const track_namespace_prefix = reader.readTuple();
|
|
910
|
+
const parameters = decodeParams(reader);
|
|
911
|
+
return { type: "subscribe_announces", track_namespace_prefix, parameters };
|
|
912
|
+
}
|
|
913
|
+
function decodeSubscribeAnnouncesOkPayload(reader) {
|
|
914
|
+
const track_namespace_prefix = reader.readTuple();
|
|
915
|
+
return { type: "subscribe_announces_ok", track_namespace_prefix };
|
|
916
|
+
}
|
|
917
|
+
function decodeSubscribeAnnouncesErrorPayload(reader) {
|
|
918
|
+
const track_namespace_prefix = reader.readTuple();
|
|
919
|
+
const error_code = reader.readVarInt();
|
|
920
|
+
const reason_phrase = reader.readString();
|
|
921
|
+
return {
|
|
922
|
+
type: "subscribe_announces_error",
|
|
923
|
+
track_namespace_prefix,
|
|
924
|
+
error_code,
|
|
925
|
+
reason_phrase
|
|
926
|
+
};
|
|
927
|
+
}
|
|
928
|
+
function decodeUnsubscribeAnnouncesPayload(reader) {
|
|
929
|
+
const track_namespace_prefix = reader.readTuple();
|
|
930
|
+
return { type: "unsubscribe_announces", track_namespace_prefix };
|
|
931
|
+
}
|
|
932
|
+
function decodeMaxSubscribeIdPayload(reader) {
|
|
933
|
+
const subscribe_id = reader.readVarInt();
|
|
934
|
+
return { type: "max_subscribe_id", subscribe_id };
|
|
935
|
+
}
|
|
936
|
+
function decodeFetchPayload(reader) {
|
|
937
|
+
const subscribe_id = reader.readVarInt();
|
|
938
|
+
const track_namespace = reader.readTuple();
|
|
939
|
+
const track_name = reader.readString();
|
|
940
|
+
const subscriber_priority = reader.readUint8();
|
|
941
|
+
const group_order = reader.readUint8();
|
|
942
|
+
const start_group = reader.readVarInt();
|
|
943
|
+
const start_object = reader.readVarInt();
|
|
944
|
+
const end_group = reader.readVarInt();
|
|
945
|
+
const end_object = reader.readVarInt();
|
|
946
|
+
const parameters = decodeParams(reader);
|
|
947
|
+
return {
|
|
948
|
+
type: "fetch",
|
|
949
|
+
subscribe_id,
|
|
950
|
+
track_namespace,
|
|
951
|
+
track_name,
|
|
952
|
+
subscriber_priority,
|
|
953
|
+
group_order,
|
|
954
|
+
start_group,
|
|
955
|
+
start_object,
|
|
956
|
+
end_group,
|
|
957
|
+
end_object,
|
|
958
|
+
parameters
|
|
959
|
+
};
|
|
960
|
+
}
|
|
961
|
+
function decodeFetchOkPayload(reader) {
|
|
962
|
+
const subscribe_id = reader.readVarInt();
|
|
963
|
+
const group_order = reader.readUint8();
|
|
964
|
+
const end_of_track = reader.readUint8();
|
|
965
|
+
const largest_group_id = reader.readVarInt();
|
|
966
|
+
const largest_object_id = reader.readVarInt();
|
|
967
|
+
const parameters = decodeParams(reader);
|
|
968
|
+
return {
|
|
969
|
+
type: "fetch_ok",
|
|
970
|
+
subscribe_id,
|
|
971
|
+
group_order,
|
|
972
|
+
end_of_track,
|
|
973
|
+
largest_group_id,
|
|
974
|
+
largest_object_id,
|
|
975
|
+
parameters
|
|
976
|
+
};
|
|
977
|
+
}
|
|
978
|
+
function decodeFetchErrorPayload(reader) {
|
|
979
|
+
const subscribe_id = reader.readVarInt();
|
|
980
|
+
const error_code = reader.readVarInt();
|
|
981
|
+
const reason_phrase = reader.readString();
|
|
982
|
+
return { type: "fetch_error", subscribe_id, error_code, reason_phrase };
|
|
983
|
+
}
|
|
984
|
+
function decodeFetchCancelPayload(reader) {
|
|
985
|
+
const subscribe_id = reader.readVarInt();
|
|
986
|
+
return { type: "fetch_cancel", subscribe_id };
|
|
987
|
+
}
|
|
988
|
+
function decodeObjectDatagram(reader) {
|
|
989
|
+
const track_alias = reader.readVarInt();
|
|
990
|
+
const group_id = reader.readVarInt();
|
|
991
|
+
const object_id = reader.readVarInt();
|
|
992
|
+
const publisher_priority = reader.readUint8();
|
|
993
|
+
const payloadLength = Number(reader.readVarInt());
|
|
994
|
+
if (payloadLength === 0) {
|
|
995
|
+
const object_status = reader.remaining > 0 ? Number(reader.readVarInt()) : 0;
|
|
996
|
+
return {
|
|
997
|
+
type: "object_datagram",
|
|
998
|
+
track_alias,
|
|
999
|
+
group_id,
|
|
1000
|
+
object_id,
|
|
1001
|
+
publisher_priority,
|
|
1002
|
+
object_status,
|
|
1003
|
+
payload: new Uint8Array(0)
|
|
1004
|
+
};
|
|
1005
|
+
}
|
|
1006
|
+
const payload = reader.readBytesView(payloadLength);
|
|
1007
|
+
return {
|
|
1008
|
+
type: "object_datagram",
|
|
1009
|
+
track_alias,
|
|
1010
|
+
group_id,
|
|
1011
|
+
object_id,
|
|
1012
|
+
publisher_priority,
|
|
1013
|
+
payload
|
|
1014
|
+
};
|
|
1015
|
+
}
|
|
1016
|
+
var payloadDecoders = /* @__PURE__ */ new Map([
|
|
1017
|
+
[MSG_CLIENT_SETUP, decodeClientSetupPayload],
|
|
1018
|
+
[MSG_SERVER_SETUP, decodeServerSetupPayload],
|
|
1019
|
+
[MSG_SUBSCRIBE, decodeSubscribePayload],
|
|
1020
|
+
[MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
|
|
1021
|
+
[MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
|
|
1022
|
+
[MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
|
|
1023
|
+
[MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
|
|
1024
|
+
[MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
|
|
1025
|
+
[MSG_ANNOUNCE, decodeAnnouncePayload],
|
|
1026
|
+
[MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
|
|
1027
|
+
[MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
|
|
1028
|
+
[MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
|
|
1029
|
+
[MSG_UNANNOUNCE, decodeUnannouncePayload],
|
|
1030
|
+
[MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
|
|
1031
|
+
[MSG_TRACK_STATUS, decodeTrackStatusPayload],
|
|
1032
|
+
[MSG_GOAWAY, decodeGoAwayPayload],
|
|
1033
|
+
[MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
|
|
1034
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
|
|
1035
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
|
|
1036
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
|
|
1037
|
+
[MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
|
|
1038
|
+
[MSG_FETCH, decodeFetchPayload],
|
|
1039
|
+
[MSG_FETCH_OK, decodeFetchOkPayload],
|
|
1040
|
+
[MSG_FETCH_ERROR, decodeFetchErrorPayload],
|
|
1041
|
+
[MSG_FETCH_CANCEL, decodeFetchCancelPayload]
|
|
1042
|
+
]);
|
|
1043
|
+
var dataStreamDecoders = /* @__PURE__ */ new Map([[MSG_OBJECT_DATAGRAM, decodeObjectDatagram]]);
|
|
1044
|
+
function encodeMessage(message) {
|
|
1045
|
+
if (message.type === "object_datagram") {
|
|
1046
|
+
const writer2 = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
1047
|
+
encodeObjectDatagram(message, writer2);
|
|
1048
|
+
return writer2.finish();
|
|
1049
|
+
}
|
|
1050
|
+
const typeId = MESSAGE_ID_MAP.get(message.type);
|
|
1051
|
+
if (typeId === void 0) {
|
|
1052
|
+
throw new Error(`Unknown message type: ${message.type}`);
|
|
1053
|
+
}
|
|
1054
|
+
const payloadWriter = new (0, _chunkJL3NEW3Ocjs.BufferWriter)();
|
|
1055
|
+
encodePayload(message, payloadWriter);
|
|
1056
|
+
const payload = payloadWriter.finishView();
|
|
1057
|
+
const writer = new (0, _chunkJL3NEW3Ocjs.BufferWriter)(payload.byteLength + 16);
|
|
1058
|
+
writer.writeVarInt(typeId);
|
|
1059
|
+
writer.writeVarInt(payload.byteLength);
|
|
1060
|
+
writer.writeBytes(payload);
|
|
1061
|
+
return writer.finish();
|
|
1062
|
+
}
|
|
1063
|
+
function decodeMessage(bytes) {
|
|
1064
|
+
try {
|
|
1065
|
+
const reader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(bytes, 0);
|
|
1066
|
+
const typeId = reader.readVarInt();
|
|
1067
|
+
if (DATA_STREAM_TYPE_IDS.has(typeId)) {
|
|
1068
|
+
const decoder2 = dataStreamDecoders.get(typeId);
|
|
1069
|
+
if (!decoder2) {
|
|
1070
|
+
return {
|
|
1071
|
+
ok: false,
|
|
1072
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
1073
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1074
|
+
`Unknown data stream type ID: 0x${typeId.toString(16)}`,
|
|
1075
|
+
0
|
|
1076
|
+
)
|
|
1077
|
+
};
|
|
1078
|
+
}
|
|
1079
|
+
const message2 = decoder2(reader);
|
|
1080
|
+
return { ok: true, value: message2, bytesRead: reader.offset };
|
|
1081
|
+
}
|
|
1082
|
+
const payloadLength = Number(reader.readVarInt());
|
|
1083
|
+
if (reader.remaining < payloadLength) {
|
|
1084
|
+
return {
|
|
1085
|
+
ok: false,
|
|
1086
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
1087
|
+
"UNEXPECTED_END",
|
|
1088
|
+
`Not enough bytes for payload: need ${payloadLength}, have ${reader.remaining}`,
|
|
1089
|
+
reader.offset
|
|
1090
|
+
)
|
|
1091
|
+
};
|
|
1092
|
+
}
|
|
1093
|
+
const payloadBytes = reader.readBytes(payloadLength);
|
|
1094
|
+
const totalBytesRead = reader.offset;
|
|
1095
|
+
const decoder = payloadDecoders.get(typeId);
|
|
1096
|
+
if (!decoder) {
|
|
1097
|
+
return {
|
|
1098
|
+
ok: false,
|
|
1099
|
+
error: new (0, _chunkJL3NEW3Ocjs.DecodeError)(
|
|
1100
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
1101
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
1102
|
+
0
|
|
1103
|
+
)
|
|
1104
|
+
};
|
|
1105
|
+
}
|
|
1106
|
+
const payloadReader = new (0, _chunkJL3NEW3Ocjs.BufferReader)(payloadBytes, 0);
|
|
1107
|
+
const message = decoder(payloadReader);
|
|
1108
|
+
return { ok: true, value: message, bytesRead: totalBytesRead };
|
|
1109
|
+
} catch (e) {
|
|
1110
|
+
if (e instanceof _chunkJL3NEW3Ocjs.DecodeError) {
|
|
1111
|
+
return { ok: false, error: e };
|
|
1112
|
+
}
|
|
1113
|
+
throw e;
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
function createStreamDecoder() {
|
|
1117
|
+
let buffer = new Uint8Array(0);
|
|
1118
|
+
let offset = 0;
|
|
1119
|
+
return new TransformStream({
|
|
1120
|
+
transform(chunk, controller) {
|
|
1121
|
+
if (offset > 0) {
|
|
1122
|
+
buffer = buffer.subarray(offset);
|
|
1123
|
+
offset = 0;
|
|
1124
|
+
}
|
|
1125
|
+
const newBuffer = new Uint8Array(buffer.length + chunk.length);
|
|
1126
|
+
newBuffer.set(buffer, 0);
|
|
1127
|
+
newBuffer.set(chunk, buffer.length);
|
|
1128
|
+
buffer = newBuffer;
|
|
1129
|
+
while (offset < buffer.length) {
|
|
1130
|
+
const result = decodeMessage(buffer.subarray(offset));
|
|
1131
|
+
if (!result.ok) {
|
|
1132
|
+
if (result.error.code === "UNEXPECTED_END") break;
|
|
1133
|
+
controller.error(result.error);
|
|
1134
|
+
return;
|
|
1135
|
+
}
|
|
1136
|
+
controller.enqueue(result.value);
|
|
1137
|
+
offset += result.bytesRead;
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
flush(controller) {
|
|
1141
|
+
if (offset < buffer.length) {
|
|
1142
|
+
controller.error(
|
|
1143
|
+
new (0, _chunkJL3NEW3Ocjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
1144
|
+
);
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
});
|
|
1148
|
+
}
|
|
1149
|
+
function createDraft07Codec() {
|
|
1150
|
+
return {
|
|
1151
|
+
draft: "07",
|
|
1152
|
+
encodeMessage,
|
|
1153
|
+
decodeMessage,
|
|
1154
|
+
encodeVarInt,
|
|
1155
|
+
decodeVarInt,
|
|
1156
|
+
createStreamDecoder,
|
|
1157
|
+
encodeSubgroupStream,
|
|
1158
|
+
decodeSubgroupStream,
|
|
1159
|
+
encodeDatagram,
|
|
1160
|
+
decodeDatagram,
|
|
1161
|
+
encodeFetchStream,
|
|
1162
|
+
decodeFetchStream
|
|
1163
|
+
};
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
|
|
1174
|
+
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
|
|
1212
|
+
exports.MSG_SUBSCRIBE_UPDATE = MSG_SUBSCRIBE_UPDATE; exports.MSG_SUBSCRIBE = MSG_SUBSCRIBE; exports.MSG_SUBSCRIBE_OK = MSG_SUBSCRIBE_OK; exports.MSG_SUBSCRIBE_ERROR = MSG_SUBSCRIBE_ERROR; exports.MSG_ANNOUNCE = MSG_ANNOUNCE; exports.MSG_ANNOUNCE_OK = MSG_ANNOUNCE_OK; exports.MSG_ANNOUNCE_ERROR = MSG_ANNOUNCE_ERROR; exports.MSG_UNANNOUNCE = MSG_UNANNOUNCE; exports.MSG_UNSUBSCRIBE = MSG_UNSUBSCRIBE; exports.MSG_SUBSCRIBE_DONE = MSG_SUBSCRIBE_DONE; exports.MSG_ANNOUNCE_CANCEL = MSG_ANNOUNCE_CANCEL; exports.MSG_TRACK_STATUS_REQUEST = MSG_TRACK_STATUS_REQUEST; exports.MSG_TRACK_STATUS = MSG_TRACK_STATUS; exports.MSG_GOAWAY = MSG_GOAWAY; exports.MSG_SUBSCRIBE_ANNOUNCES = MSG_SUBSCRIBE_ANNOUNCES; exports.MSG_SUBSCRIBE_ANNOUNCES_OK = MSG_SUBSCRIBE_ANNOUNCES_OK; exports.MSG_SUBSCRIBE_ANNOUNCES_ERROR = MSG_SUBSCRIBE_ANNOUNCES_ERROR; exports.MSG_UNSUBSCRIBE_ANNOUNCES = MSG_UNSUBSCRIBE_ANNOUNCES; exports.MSG_MAX_SUBSCRIBE_ID = MSG_MAX_SUBSCRIBE_ID; exports.MSG_FETCH = MSG_FETCH; exports.MSG_FETCH_CANCEL = MSG_FETCH_CANCEL; exports.MSG_FETCH_OK = MSG_FETCH_OK; exports.MSG_FETCH_ERROR = MSG_FETCH_ERROR; exports.MSG_CLIENT_SETUP = MSG_CLIENT_SETUP; exports.MSG_SERVER_SETUP = MSG_SERVER_SETUP; exports.SETUP_PARAM_ROLE = SETUP_PARAM_ROLE; exports.SETUP_PARAM_PATH = SETUP_PARAM_PATH; exports.SETUP_PARAM_MAX_SUBSCRIBE_ID = SETUP_PARAM_MAX_SUBSCRIBE_ID; exports.PARAM_AUTHORIZATION_INFO = PARAM_AUTHORIZATION_INFO; exports.PARAM_DELIVERY_TIMEOUT = PARAM_DELIVERY_TIMEOUT; exports.PARAM_MAX_CACHE_DURATION = PARAM_MAX_CACHE_DURATION; exports.MSG_OBJECT_DATAGRAM = MSG_OBJECT_DATAGRAM; exports.MSG_STREAM_HEADER_SUBGROUP = MSG_STREAM_HEADER_SUBGROUP; exports.MSG_FETCH_HEADER = MSG_FETCH_HEADER; exports.MESSAGE_TYPE_MAP = MESSAGE_TYPE_MAP; exports.MESSAGE_ID_MAP = MESSAGE_ID_MAP; exports.encodeVarInt = encodeVarInt; exports.decodeVarInt = decodeVarInt; exports.encodeSubgroupStream = encodeSubgroupStream; exports.encodeDatagram = encodeDatagram; exports.encodeFetchStream = encodeFetchStream; exports.decodeSubgroupStream = decodeSubgroupStream; exports.decodeDatagram = decodeDatagram; exports.decodeFetchStream = decodeFetchStream; exports.createDraft07Codec = createDraft07Codec;
|