@moqtap/codec 0.2.3 → 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.
Files changed (299) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +100 -99
  3. package/dist/{chunk-RZHAPEXO.js → chunk-2A57DRXV.js} +36 -10
  4. package/dist/{chunk-73MWUKSJ.js → chunk-2UTVXWFF.js} +190 -102
  5. package/dist/{chunk-JTVCOMBI.cjs → chunk-3XKO6PCR.cjs} +290 -183
  6. package/dist/{chunk-ACQ4CUJP.cjs → chunk-4BDEU3D4.cjs} +237 -158
  7. package/dist/{chunk-4N4INRE7.cjs → chunk-4HBKHNU2.cjs} +144 -110
  8. package/dist/{chunk-2ZT6CVSE.js → chunk-4IVZZOY3.js} +269 -162
  9. package/dist/{chunk-GLBQDG4L.cjs → chunk-5O764MBD.cjs} +508 -117
  10. package/dist/chunk-7KBAWOBA.js +1212 -0
  11. package/dist/{chunk-JSQM2MG3.js → chunk-7QOPNSDF.js} +44 -12
  12. package/dist/{chunk-SYHW3FLI.cjs → chunk-7RE6KSIY.cjs} +28 -8
  13. package/dist/{chunk-YG5KJESI.js → chunk-AY6IAHUM.js} +28 -8
  14. package/dist/{chunk-EFM5T7OM.js → chunk-BLQDWOSG.js} +36 -10
  15. package/dist/{chunk-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
  16. package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
  17. package/dist/{chunk-PZBPH2D7.js → chunk-GCBFHZW6.js} +216 -137
  18. package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
  19. package/dist/chunk-HZHSO7EW.cjs +1212 -0
  20. package/dist/{chunk-KZCYQ7ED.cjs → chunk-IILNSDEQ.cjs} +69 -41
  21. package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
  22. package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
  23. package/dist/{chunk-RUPCJTC3.cjs → chunk-JL3NEW3O.cjs} +23 -1
  24. package/dist/{chunk-G7GI7LJA.js → chunk-LORZMJJB.js} +36 -10
  25. package/dist/{chunk-DUBCL3WF.cjs → chunk-LV5C6MEC.cjs} +36 -10
  26. package/dist/{chunk-ENURAVHI.cjs → chunk-MYXAD5JC.cjs} +44 -12
  27. package/dist/{chunk-FXZ2MYKJ.js → chunk-MZ7HUCGJ.js} +20 -12
  28. package/dist/{chunk-S74DWJE2.cjs → chunk-OKG2HT25.cjs} +277 -88
  29. package/dist/{chunk-BGWGVINJ.cjs → chunk-PKEOQSSZ.cjs} +144 -110
  30. package/dist/{chunk-2GODRVT5.js → chunk-Q46ZURKX.js} +325 -48
  31. package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
  32. package/dist/{chunk-XSNX2IUJ.js → chunk-RW4UG7CN.js} +121 -87
  33. package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
  34. package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
  35. package/dist/{chunk-YIG2C3LF.cjs → chunk-SDWRXXOO.cjs} +214 -126
  36. package/dist/{chunk-CEH7ESNC.js → chunk-SHMA4PBY.js} +121 -87
  37. package/dist/{chunk-MC7W6PMI.js → chunk-U3ZVLT5L.js} +483 -135
  38. package/dist/{chunk-VJUUZ4W2.cjs → chunk-UJU63EFY.cjs} +374 -97
  39. package/dist/{chunk-7L43FE6P.js → chunk-VOU7PNHI.js} +23 -1
  40. package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
  41. package/dist/{chunk-FPISPJ5N.cjs → chunk-XNWYLVGU.cjs} +529 -181
  42. package/dist/{chunk-U3IPZYPX.js → chunk-XS77RBY7.js} +228 -39
  43. package/dist/{chunk-JGG7CMSZ.cjs → chunk-XZE5R57R.cjs} +144 -110
  44. package/dist/{chunk-77MNXX3M.js → chunk-Y6KCSM3V.js} +121 -87
  45. package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
  46. package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
  47. package/dist/{chunk-MRJWLGYH.js → chunk-Z3VKP3PJ.js} +69 -41
  48. package/dist/{chunk-E6P74GDT.js → chunk-Z6U26IRI.js} +464 -73
  49. package/dist/{codec-FvGCxIhr.d.ts → codec-25u4_1HS.d.ts} +4 -4
  50. package/dist/{codec-DRcsBCsb.d.ts → codec-3Ppy_5Gd.d.ts} +4 -4
  51. package/dist/{codec-BdVMRMOI.d.ts → codec-BB0U8MF2.d.cts} +4 -4
  52. package/dist/{codec-B2cH-f5V.d.cts → codec-BHHfBTnV.d.ts} +4 -4
  53. package/dist/{codec-B5K73Bdj.d.ts → codec-BN6jk0Td.d.cts} +4 -4
  54. package/dist/{codec-R8GrCPt2.d.ts → codec-BU0gaSZm.d.ts} +4 -4
  55. package/dist/{codec-Bq-tLtfP.d.ts → codec-C-Yk2RNa.d.ts} +4 -4
  56. package/dist/codec-CFWQY9Lj.d.cts +18 -0
  57. package/dist/{codec-CPlK3Pi5.d.ts → codec-COy4uuPO.d.cts} +4 -4
  58. package/dist/codec-CewFCsEy.d.ts +18 -0
  59. package/dist/{codec-KXHvXZVb.d.cts → codec-Ck7ZwFF1.d.cts} +4 -4
  60. package/dist/{codec-DZhZSIii.d.cts → codec-D2QVSH9D.d.ts} +4 -4
  61. package/dist/{codec-BwFgpeQu.d.ts → codec-DDUBJGn0.d.cts} +4 -4
  62. package/dist/{codec-BFeliJFc.d.ts → codec-DNfml-se.d.ts} +4 -4
  63. package/dist/{codec-C4n1PS09.d.cts → codec-DoOGjjDq.d.cts} +4 -4
  64. package/dist/{codec-Bap882Fh.d.cts → codec-J7ekOSMc.d.ts} +4 -4
  65. package/dist/{codec-SKBeHQk7.d.ts → codec-R9TJCq-E.d.cts} +4 -4
  66. package/dist/{codec-DNUIgLqc.d.cts → codec-ZwV-Njt6.d.ts} +4 -4
  67. package/dist/{codec-HgBgHkFI.d.cts → codec-j819z_hL.d.cts} +4 -4
  68. package/dist/{codec-DY4QH364.d.cts → codec-w8z2j_uo.d.cts} +4 -4
  69. package/dist/{codec-CPvPq0sb.d.cts → codec-wtt6WF1K.d.ts} +4 -4
  70. package/dist/{codec-BUMjz0J4.d.cts → codec-z6_2PSzi.d.cts} +4 -4
  71. package/dist/draft10-session.cjs +2 -2
  72. package/dist/draft10-session.d.cts +6 -6
  73. package/dist/draft10-session.d.ts +6 -6
  74. package/dist/draft10-session.js +1 -1
  75. package/dist/draft10.cjs +8 -5
  76. package/dist/draft10.d.cts +14 -12
  77. package/dist/draft10.d.ts +14 -12
  78. package/dist/draft10.js +16 -13
  79. package/dist/draft11-session.cjs +2 -2
  80. package/dist/draft11-session.d.cts +6 -6
  81. package/dist/draft11-session.d.ts +6 -6
  82. package/dist/draft11-session.js +1 -1
  83. package/dist/draft11.cjs +8 -5
  84. package/dist/draft11.d.cts +14 -12
  85. package/dist/draft11.d.ts +14 -12
  86. package/dist/draft11.js +16 -13
  87. package/dist/draft12-session.cjs +2 -2
  88. package/dist/draft12-session.d.cts +6 -6
  89. package/dist/draft12-session.d.ts +6 -6
  90. package/dist/draft12-session.js +1 -1
  91. package/dist/draft12.cjs +8 -5
  92. package/dist/draft12.d.cts +16 -14
  93. package/dist/draft12.d.ts +16 -14
  94. package/dist/draft12.js +16 -13
  95. package/dist/draft13-session.cjs +2 -2
  96. package/dist/draft13-session.d.cts +6 -6
  97. package/dist/draft13-session.d.ts +6 -6
  98. package/dist/draft13-session.js +1 -1
  99. package/dist/draft13.cjs +8 -5
  100. package/dist/draft13.d.cts +16 -14
  101. package/dist/draft13.d.ts +16 -14
  102. package/dist/draft13.js +16 -13
  103. package/dist/draft14-session.cjs +2 -2
  104. package/dist/draft14-session.d.cts +6 -6
  105. package/dist/draft14-session.d.ts +6 -6
  106. package/dist/draft14-session.js +1 -1
  107. package/dist/draft14.cjs +14 -5
  108. package/dist/draft14.d.cts +14 -12
  109. package/dist/draft14.d.ts +14 -12
  110. package/dist/draft14.js +13 -4
  111. package/dist/draft15-session.cjs +2 -2
  112. package/dist/draft15-session.d.cts +6 -6
  113. package/dist/draft15-session.d.ts +6 -6
  114. package/dist/draft15-session.js +1 -1
  115. package/dist/draft15.cjs +8 -5
  116. package/dist/draft15.d.cts +14 -12
  117. package/dist/draft15.d.ts +14 -12
  118. package/dist/draft15.js +16 -13
  119. package/dist/draft16-session.cjs +2 -2
  120. package/dist/draft16-session.d.cts +6 -6
  121. package/dist/draft16-session.d.ts +6 -6
  122. package/dist/draft16-session.js +1 -1
  123. package/dist/draft16.cjs +8 -5
  124. package/dist/draft16.d.cts +14 -12
  125. package/dist/draft16.d.ts +14 -12
  126. package/dist/draft16.js +16 -13
  127. package/dist/draft17-session.cjs +2 -2
  128. package/dist/draft17-session.d.cts +7 -7
  129. package/dist/draft17-session.d.ts +7 -7
  130. package/dist/draft17-session.js +1 -1
  131. package/dist/draft17.cjs +8 -5
  132. package/dist/draft17.d.cts +11 -9
  133. package/dist/draft17.d.ts +11 -9
  134. package/dist/draft17.js +16 -13
  135. package/dist/draft7-session.cjs +2 -2
  136. package/dist/draft7-session.d.cts +6 -5
  137. package/dist/draft7-session.d.ts +6 -5
  138. package/dist/draft7-session.js +1 -1
  139. package/dist/draft7.cjs +71 -14
  140. package/dist/draft7.d.cts +53 -134
  141. package/dist/draft7.d.ts +53 -134
  142. package/dist/draft7.js +76 -19
  143. package/dist/draft8-session.cjs +2 -2
  144. package/dist/draft8-session.d.cts +6 -6
  145. package/dist/draft8-session.d.ts +6 -6
  146. package/dist/draft8-session.js +1 -1
  147. package/dist/draft8.cjs +8 -5
  148. package/dist/draft8.d.cts +14 -12
  149. package/dist/draft8.d.ts +14 -12
  150. package/dist/draft8.js +7 -4
  151. package/dist/draft9-session.cjs +2 -2
  152. package/dist/draft9-session.d.cts +6 -6
  153. package/dist/draft9-session.d.ts +6 -6
  154. package/dist/draft9-session.js +1 -1
  155. package/dist/draft9.cjs +8 -5
  156. package/dist/draft9.d.cts +14 -12
  157. package/dist/draft9.d.ts +14 -12
  158. package/dist/draft9.js +7 -4
  159. package/dist/index.cjs +52 -74
  160. package/dist/index.d.cts +41 -60
  161. package/dist/index.d.ts +41 -60
  162. package/dist/index.js +40 -62
  163. package/dist/{session-types-CJIFbTPd.d.ts → session-types-C7UONex5.d.cts} +28 -27
  164. package/dist/{session-types-Cbq8IGCP.d.cts → session-types-X-IYEGoG.d.ts} +28 -27
  165. package/dist/session.cjs +46 -13
  166. package/dist/session.d.cts +28 -9
  167. package/dist/session.d.ts +28 -9
  168. package/dist/session.js +46 -13
  169. package/dist/{types-DxSFvL2b.d.cts → types--Q7_DcvP.d.cts} +43 -39
  170. package/dist/{types-DxSFvL2b.d.ts → types--Q7_DcvP.d.ts} +43 -39
  171. package/dist/{types-B0FT5Qs2.d.ts → types-0IWbU9Z_.d.cts} +36 -36
  172. package/dist/{types-B0FT5Qs2.d.cts → types-0IWbU9Z_.d.ts} +36 -36
  173. package/dist/{types-gQsr0AAA.d.cts → types-B3g5G9KP.d.cts} +36 -36
  174. package/dist/{types-gQsr0AAA.d.ts → types-B3g5G9KP.d.ts} +36 -36
  175. package/dist/{types-Pme7sua0.d.cts → types-BFpFNM_m.d.cts} +57 -32
  176. package/dist/{types-Pme7sua0.d.ts → types-BFpFNM_m.d.ts} +57 -32
  177. package/dist/{types-8gUGeMgs.d.ts → types-Br7fm2mf.d.cts} +48 -26
  178. package/dist/{types-8gUGeMgs.d.cts → types-Br7fm2mf.d.ts} +48 -26
  179. package/dist/{types-BeAVNU-F.d.cts → types-C2qKTRR_.d.cts} +50 -45
  180. package/dist/{types-BeAVNU-F.d.ts → types-C2qKTRR_.d.ts} +50 -45
  181. package/dist/{types-DKpsfD3i.d.cts → types-DEaypVsD.d.cts} +115 -55
  182. package/dist/{types-DKpsfD3i.d.ts → types-DEaypVsD.d.ts} +115 -55
  183. package/dist/types-Dl4IaAHR.d.cts +282 -0
  184. package/dist/types-Dl4IaAHR.d.ts +282 -0
  185. package/dist/{types-CDa7F5ct.d.cts → types-DrQpTW1G.d.cts} +58 -50
  186. package/dist/{types-CDa7F5ct.d.ts → types-DrQpTW1G.d.ts} +58 -50
  187. package/dist/types-DuIO7cWK.d.cts +25 -0
  188. package/dist/types-DuIO7cWK.d.ts +25 -0
  189. package/dist/{types-B9A2g05r.d.cts → types-DuxfOYiO.d.cts} +47 -31
  190. package/dist/{types-B9A2g05r.d.ts → types-DuxfOYiO.d.ts} +47 -31
  191. package/dist/{types-D1dI_oTX.d.cts → types-jV1yDDBA.d.cts} +36 -36
  192. package/dist/{types-D1dI_oTX.d.ts → types-jV1yDDBA.d.ts} +36 -36
  193. package/package.json +192 -192
  194. package/src/core/buffer-reader.ts +130 -130
  195. package/src/core/buffer-writer.ts +100 -100
  196. package/src/core/errors.ts +1 -1
  197. package/src/core/hex.ts +21 -21
  198. package/src/core/session-types.ts +61 -59
  199. package/src/core/types.ts +18 -361
  200. package/src/drafts/draft07/codec.ts +1058 -938
  201. package/src/drafts/draft07/data-streams.ts +240 -240
  202. package/src/drafts/draft07/index.ts +124 -89
  203. package/src/drafts/draft07/messages.ts +76 -42
  204. package/src/drafts/draft07/rules.ts +107 -101
  205. package/src/drafts/draft07/session-fsm.ts +315 -287
  206. package/src/drafts/draft07/session.ts +8 -6
  207. package/src/drafts/draft07/types.ts +406 -72
  208. package/src/drafts/draft07/varint.ts +51 -51
  209. package/src/drafts/draft08/codec.ts +985 -953
  210. package/src/drafts/draft08/data-streams.ts +363 -359
  211. package/src/drafts/draft08/index.ts +10 -9
  212. package/src/drafts/draft08/messages.ts +59 -59
  213. package/src/drafts/draft08/rules.ts +73 -73
  214. package/src/drafts/draft08/session-fsm.ts +335 -303
  215. package/src/drafts/draft08/session.ts +6 -7
  216. package/src/drafts/draft08/types.ts +380 -384
  217. package/src/drafts/draft09/codec.ts +977 -945
  218. package/src/drafts/draft09/data-streams.ts +336 -332
  219. package/src/drafts/draft09/index.ts +10 -9
  220. package/src/drafts/draft09/messages.ts +59 -59
  221. package/src/drafts/draft09/rules.ts +73 -73
  222. package/src/drafts/draft09/session-fsm.ts +335 -303
  223. package/src/drafts/draft09/session.ts +6 -7
  224. package/src/drafts/draft09/types.ts +380 -384
  225. package/src/drafts/draft10/codec.ts +977 -945
  226. package/src/drafts/draft10/data-streams.ts +336 -332
  227. package/src/drafts/draft10/index.ts +10 -9
  228. package/src/drafts/draft10/messages.ts +59 -59
  229. package/src/drafts/draft10/rules.ts +73 -73
  230. package/src/drafts/draft10/session-fsm.ts +335 -303
  231. package/src/drafts/draft10/session.ts +6 -7
  232. package/src/drafts/draft10/types.ts +380 -384
  233. package/src/drafts/draft11/codec.ts +1054 -988
  234. package/src/drafts/draft11/data-streams.ts +316 -269
  235. package/src/drafts/draft11/index.ts +10 -9
  236. package/src/drafts/draft11/messages.ts +60 -59
  237. package/src/drafts/draft11/rules.ts +73 -73
  238. package/src/drafts/draft11/session-fsm.ts +359 -333
  239. package/src/drafts/draft11/session.ts +6 -7
  240. package/src/drafts/draft11/types.ts +385 -381
  241. package/src/drafts/draft12/codec.ts +1178 -1122
  242. package/src/drafts/draft12/data-streams.ts +324 -275
  243. package/src/drafts/draft12/index.ts +10 -9
  244. package/src/drafts/draft12/messages.ts +67 -66
  245. package/src/drafts/draft12/rules.ts +79 -79
  246. package/src/drafts/draft12/session-fsm.ts +384 -358
  247. package/src/drafts/draft12/session.ts +6 -7
  248. package/src/drafts/draft12/types.ts +424 -419
  249. package/src/drafts/draft13/codec.ts +1296 -1206
  250. package/src/drafts/draft13/data-streams.ts +326 -275
  251. package/src/drafts/draft13/index.ts +10 -9
  252. package/src/drafts/draft13/messages.ts +73 -68
  253. package/src/drafts/draft13/rules.ts +81 -81
  254. package/src/drafts/draft13/session-fsm.ts +392 -366
  255. package/src/drafts/draft13/session.ts +6 -7
  256. package/src/drafts/draft13/types.ts +447 -438
  257. package/src/drafts/draft14/codec.ts +1347 -1043
  258. package/src/drafts/draft14/data-streams.ts +831 -813
  259. package/src/drafts/draft14/index.ts +17 -9
  260. package/src/drafts/draft14/messages.ts +65 -65
  261. package/src/drafts/draft14/rules.ts +81 -81
  262. package/src/drafts/draft14/session-fsm.ts +415 -405
  263. package/src/drafts/draft14/session.ts +6 -7
  264. package/src/drafts/draft14/types.ts +451 -381
  265. package/src/drafts/draft15/codec.ts +1138 -978
  266. package/src/drafts/draft15/data-streams.ts +842 -794
  267. package/src/drafts/draft15/index.ts +10 -9
  268. package/src/drafts/draft15/messages.ts +54 -53
  269. package/src/drafts/draft15/rules.ts +67 -67
  270. package/src/drafts/draft15/session-fsm.ts +319 -299
  271. package/src/drafts/draft15/session.ts +6 -7
  272. package/src/drafts/draft15/types.ts +357 -339
  273. package/src/drafts/draft16/codec.ts +1242 -966
  274. package/src/drafts/draft16/data-streams.ts +835 -789
  275. package/src/drafts/draft16/index.ts +10 -9
  276. package/src/drafts/draft16/messages.ts +56 -55
  277. package/src/drafts/draft16/rules.ts +69 -69
  278. package/src/drafts/draft16/session-fsm.ts +319 -299
  279. package/src/drafts/draft16/session.ts +6 -7
  280. package/src/drafts/draft16/types.ts +386 -357
  281. package/src/drafts/draft17/codec.ts +1209 -971
  282. package/src/drafts/draft17/data-streams.ts +969 -758
  283. package/src/drafts/draft17/index.ts +9 -7
  284. package/src/drafts/draft17/messages.ts +43 -42
  285. package/src/drafts/draft17/rules.ts +58 -58
  286. package/src/drafts/draft17/session-fsm.ts +248 -216
  287. package/src/drafts/draft17/session.ts +5 -5
  288. package/src/drafts/draft17/types.ts +337 -313
  289. package/src/index.ts +85 -274
  290. package/src/session.ts +62 -23
  291. package/dist/chunk-FZDIEHQL.cjs +0 -1042
  292. package/dist/chunk-HDWJ2GDE.js +0 -24
  293. package/dist/chunk-KNDYS3DK.cjs +0 -24
  294. package/dist/chunk-N2KBF5Q2.js +0 -1042
  295. package/dist/types-QNXoxC9Y.d.cts +0 -236
  296. package/dist/types-QNXoxC9Y.d.ts +0 -236
  297. package/src/drafts/draft07/announce-fsm.ts +0 -2
  298. package/src/drafts/draft07/parameters.ts +0 -12
  299. package/src/drafts/draft07/subscription-fsm.ts +0 -3
@@ -1,1042 +0,0 @@
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
- var _chunkRUPCJTC3cjs = require('./chunk-RUPCJTC3.cjs');
6
-
7
- // src/drafts/draft07/messages.ts
8
- var MESSAGE_TYPE_IDS = {
9
- // Control messages (on control stream)
10
- subscribe_update: 0x02n,
11
- subscribe: 0x03n,
12
- subscribe_ok: 0x04n,
13
- subscribe_error: 0x05n,
14
- announce: 0x06n,
15
- announce_ok: 0x07n,
16
- announce_error: 0x08n,
17
- unannounce: 0x09n,
18
- unsubscribe: 0x0an,
19
- subscribe_done: 0x0bn,
20
- announce_cancel: 0x0cn,
21
- track_status_request: 0x0dn,
22
- track_status: 0x0en,
23
- goaway: 0x10n,
24
- subscribe_announces: 0x11n,
25
- subscribe_announces_ok: 0x12n,
26
- subscribe_announces_error: 0x13n,
27
- unsubscribe_announces: 0x14n,
28
- max_subscribe_id: 0x15n,
29
- fetch: 0x16n,
30
- fetch_cancel: 0x17n,
31
- fetch_ok: 0x18n,
32
- fetch_error: 0x19n,
33
- client_setup: 0x40n,
34
- server_setup: 0x41n,
35
- // Data stream messages (Section 7, Table 5)
36
- object_datagram: 0x01n,
37
- stream_header_subgroup: 0x04n,
38
- // Note: same ID as subscribe_ok but used on data streams, context disambiguates
39
- fetch_header: 0x05n
40
- // Note: same ID as subscribe_error but used on data streams, context disambiguates
41
- };
42
- var MESSAGE_ID_TO_TYPE = /* @__PURE__ */ new Map();
43
- for (const [name, id] of Object.entries(MESSAGE_TYPE_IDS)) {
44
- if (!MESSAGE_ID_TO_TYPE.has(id) || name !== "stream_header_subgroup") {
45
- MESSAGE_ID_TO_TYPE.set(id, name);
46
- }
47
- }
48
-
49
- // src/drafts/draft07/varint.ts
50
- function encodeVarInt(value) {
51
- const v = BigInt(value);
52
- if (v < 0n) throw new Error("VarInt value must be non-negative");
53
- if (v < 0x40n) {
54
- const buf = new Uint8Array(1);
55
- buf[0] = Number(v);
56
- return buf;
57
- }
58
- if (v < 0x4000n) {
59
- const buf = new Uint8Array(2);
60
- const n = Number(v) | 16384;
61
- buf[0] = n >> 8;
62
- buf[1] = n & 255;
63
- return buf;
64
- }
65
- if (v < 0x40000000n) {
66
- const buf = new Uint8Array(4);
67
- const n = Number(v) | 2147483648;
68
- buf[0] = n >>> 24 & 255;
69
- buf[1] = n >>> 16 & 255;
70
- buf[2] = n >>> 8 & 255;
71
- buf[3] = n & 255;
72
- return buf;
73
- }
74
- if (v < 0x4000000000000000n) {
75
- const buf = new Uint8Array(8);
76
- const tagged = v | 0xc000000000000000n;
77
- const view = new DataView(buf.buffer);
78
- view.setBigUint64(0, tagged);
79
- return buf;
80
- }
81
- throw new Error("VarInt value exceeds 62-bit range");
82
- }
83
- function decodeVarInt(bytes, offset = 0) {
84
- try {
85
- const reader = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes, offset);
86
- const value = reader.readVarInt();
87
- return { ok: true, value, bytesRead: reader.offset - offset };
88
- } catch (e) {
89
- if (e instanceof _chunkRUPCJTC3cjs.DecodeError) {
90
- return { ok: false, error: e };
91
- }
92
- throw e;
93
- }
94
- }
95
-
96
- // src/drafts/draft07/data-streams.ts
97
- var SUBGROUP_STREAM_TYPE = 0x04n;
98
- var FETCH_STREAM_TYPE = 0x05n;
99
- var DATAGRAM_TYPE = 0x01n;
100
- function encodeSubgroupStream(stream) {
101
- const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
102
- w.writeVarInt(SUBGROUP_STREAM_TYPE);
103
- w.writeVarInt(stream.trackAlias);
104
- w.writeVarInt(stream.groupId);
105
- w.writeVarInt(stream.subgroupId);
106
- w.writeUint8(stream.publisherPriority);
107
- for (const obj of stream.objects) {
108
- w.writeVarInt(obj.objectId);
109
- w.writeVarInt(obj.payloadLength);
110
- if (obj.payloadLength === 0 && obj.status !== void 0) {
111
- w.writeVarInt(obj.status);
112
- } else {
113
- w.writeBytes(obj.payload);
114
- }
115
- }
116
- return w.finish();
117
- }
118
- function encodeDatagram(dg) {
119
- const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
120
- w.writeVarInt(DATAGRAM_TYPE);
121
- w.writeVarInt(dg.trackAlias);
122
- w.writeVarInt(dg.groupId);
123
- w.writeVarInt(dg.objectId);
124
- w.writeUint8(dg.publisherPriority);
125
- w.writeVarInt(dg.payloadLength);
126
- if (dg.payloadLength === 0 && dg.status !== void 0) {
127
- w.writeVarInt(dg.status);
128
- } else {
129
- w.writeBytes(dg.payload);
130
- }
131
- return w.finish();
132
- }
133
- function encodeFetchStream(stream) {
134
- const w = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
135
- w.writeVarInt(FETCH_STREAM_TYPE);
136
- w.writeVarInt(stream.subscribeId);
137
- for (const obj of stream.objects) {
138
- w.writeVarInt(obj.groupId);
139
- w.writeVarInt(obj.subgroupId);
140
- w.writeVarInt(obj.objectId);
141
- w.writeUint8(obj.publisherPriority);
142
- w.writeVarInt(obj.payloadLength);
143
- if (obj.payloadLength === 0 && obj.status !== void 0) {
144
- w.writeVarInt(obj.status);
145
- } else {
146
- w.writeBytes(obj.payload);
147
- }
148
- }
149
- return w.finish();
150
- }
151
- function decodeSubgroupStream(bytes) {
152
- try {
153
- const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
154
- const streamType = Number(r.readVarInt());
155
- if (streamType !== 4) {
156
- return {
157
- ok: false,
158
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
159
- "CONSTRAINT_VIOLATION",
160
- `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
161
- 0
162
- )
163
- };
164
- }
165
- const trackAlias = r.readVarInt();
166
- const groupId = r.readVarInt();
167
- const subgroupId = r.readVarInt();
168
- const publisherPriority = r.readUint8();
169
- const objects = [];
170
- while (r.remaining > 0) {
171
- const byteOffset = r.offset;
172
- const objectId = r.readVarInt();
173
- const payloadLength = Number(r.readVarInt());
174
- let payload;
175
- let status;
176
- let payloadByteOffset;
177
- if (payloadLength === 0) {
178
- status = r.readVarInt();
179
- payloadByteOffset = r.offset;
180
- payload = new Uint8Array(0);
181
- } else {
182
- payloadByteOffset = r.offset;
183
- payload = r.readBytesView(payloadLength);
184
- }
185
- const obj = {
186
- type: "object",
187
- objectId,
188
- payloadLength,
189
- payload,
190
- byteOffset,
191
- payloadByteOffset
192
- };
193
- if (status !== void 0) obj.status = status;
194
- objects.push(obj);
195
- }
196
- return {
197
- ok: true,
198
- value: {
199
- type: "subgroup",
200
- streamTypeId: 4,
201
- trackAlias,
202
- groupId,
203
- subgroupId,
204
- publisherPriority,
205
- objects
206
- },
207
- bytesRead: r.offset
208
- };
209
- } catch (e) {
210
- if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
211
- throw e;
212
- }
213
- }
214
- function decodeDatagram(bytes) {
215
- try {
216
- const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
217
- const streamType = Number(r.readVarInt());
218
- if (streamType !== 1) {
219
- return {
220
- ok: false,
221
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
222
- "CONSTRAINT_VIOLATION",
223
- `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
224
- 0
225
- )
226
- };
227
- }
228
- const trackAlias = r.readVarInt();
229
- const groupId = r.readVarInt();
230
- const objectId = r.readVarInt();
231
- const publisherPriority = r.readUint8();
232
- const payloadLength = Number(r.readVarInt());
233
- let status;
234
- let payload;
235
- if (payloadLength === 0) {
236
- status = r.readVarInt();
237
- payload = new Uint8Array(0);
238
- } else {
239
- payload = r.readBytesView(payloadLength);
240
- }
241
- const result = {
242
- type: "datagram",
243
- streamTypeId: 1,
244
- trackAlias,
245
- groupId,
246
- objectId,
247
- publisherPriority,
248
- payloadLength,
249
- payload
250
- };
251
- if (status !== void 0) result.status = status;
252
- return { ok: true, value: result, bytesRead: r.offset };
253
- } catch (e) {
254
- if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
255
- throw e;
256
- }
257
- }
258
- function decodeFetchStream(bytes) {
259
- try {
260
- const r = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes);
261
- const streamType = Number(r.readVarInt());
262
- if (streamType !== 5) {
263
- return {
264
- ok: false,
265
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
266
- "CONSTRAINT_VIOLATION",
267
- `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
268
- 0
269
- )
270
- };
271
- }
272
- const subscribeId = r.readVarInt();
273
- const objects = [];
274
- while (r.remaining > 0) {
275
- const byteOffset = r.offset;
276
- const groupId = r.readVarInt();
277
- const subgroupId = r.readVarInt();
278
- const objectId = r.readVarInt();
279
- const publisherPriority = r.readUint8();
280
- const payloadLength = Number(r.readVarInt());
281
- let payload;
282
- let status;
283
- let payloadByteOffset;
284
- if (payloadLength === 0) {
285
- status = r.readVarInt();
286
- payloadByteOffset = r.offset;
287
- payload = new Uint8Array(0);
288
- } else {
289
- payloadByteOffset = r.offset;
290
- payload = r.readBytesView(payloadLength);
291
- }
292
- const obj = {
293
- type: "object",
294
- groupId,
295
- subgroupId,
296
- objectId,
297
- publisherPriority,
298
- payloadLength,
299
- payload,
300
- byteOffset,
301
- payloadByteOffset
302
- };
303
- if (status !== void 0) obj.status = status;
304
- objects.push(obj);
305
- }
306
- return {
307
- ok: true,
308
- value: { type: "fetch", subscribeId, objects },
309
- bytesRead: r.offset
310
- };
311
- } catch (e) {
312
- if (e instanceof _chunkRUPCJTC3cjs.DecodeError) return { ok: false, error: e };
313
- throw e;
314
- }
315
- }
316
-
317
- // src/drafts/draft07/codec.ts
318
- var FILTER_TYPE_TO_WIRE = {
319
- latest_group: 1n,
320
- latest_object: 2n,
321
- absolute_start: 3n,
322
- absolute_range: 4n
323
- };
324
- var WIRE_TO_FILTER_TYPE = /* @__PURE__ */ new Map([
325
- [1n, "latest_group"],
326
- [2n, "latest_object"],
327
- [3n, "absolute_start"],
328
- [4n, "absolute_range"]
329
- ]);
330
- var GROUP_ORDER_TO_WIRE = {
331
- original: 0,
332
- ascending: 1,
333
- descending: 2
334
- };
335
- var WIRE_TO_GROUP_ORDER = /* @__PURE__ */ new Map([
336
- [0, "original"],
337
- [1, "ascending"],
338
- [2, "descending"]
339
- ]);
340
- function writeGroupOrder(writer, value) {
341
- const wire = GROUP_ORDER_TO_WIRE[value];
342
- writer.writeUint8(wire);
343
- }
344
- function readGroupOrder(reader) {
345
- const wire = reader.readUint8();
346
- const value = WIRE_TO_GROUP_ORDER.get(wire);
347
- if (value === void 0) {
348
- throw new (0, _chunkRUPCJTC3cjs.DecodeError)(
349
- "CONSTRAINT_VIOLATION",
350
- `Invalid group order value: ${wire}`,
351
- reader.offset - 1
352
- );
353
- }
354
- return value;
355
- }
356
- var DATA_STREAM_TYPE_IDS = /* @__PURE__ */ new Set([
357
- MESSAGE_TYPE_IDS.object_datagram
358
- ]);
359
- function encodeClientSetup(msg, writer) {
360
- writer.writeVarInt(msg.supportedVersions.length);
361
- for (const version of msg.supportedVersions) {
362
- writer.writeVarInt(version);
363
- }
364
- writer.writeParameters(msg.parameters);
365
- }
366
- function encodeServerSetup(msg, writer) {
367
- writer.writeVarInt(msg.selectedVersion);
368
- writer.writeParameters(msg.parameters);
369
- }
370
- function encodeSubscribe(msg, writer) {
371
- writer.writeVarInt(msg.subscribeId);
372
- writer.writeVarInt(msg.trackAlias);
373
- writer.writeTuple(msg.trackNamespace);
374
- writer.writeString(msg.trackName);
375
- writer.writeUint8(msg.subscriberPriority);
376
- writeGroupOrder(writer, msg.groupOrder);
377
- writer.writeVarInt(FILTER_TYPE_TO_WIRE[msg.filterType]);
378
- if (msg.filterType === "absolute_start" || msg.filterType === "absolute_range") {
379
- writer.writeVarInt(msg.startGroup);
380
- writer.writeVarInt(msg.startObject);
381
- }
382
- if (msg.filterType === "absolute_range") {
383
- writer.writeVarInt(msg.endGroup);
384
- writer.writeVarInt(msg.endObject);
385
- }
386
- writer.writeParameters(msg.parameters);
387
- }
388
- function encodeSubscribeOk(msg, writer) {
389
- writer.writeVarInt(msg.subscribeId);
390
- writer.writeVarInt(msg.expires);
391
- writeGroupOrder(writer, msg.groupOrder);
392
- writer.writeUint8(msg.contentExists ? 1 : 0);
393
- if (msg.contentExists) {
394
- writer.writeVarInt(msg.largestGroupId);
395
- writer.writeVarInt(msg.largestObjectId);
396
- }
397
- writer.writeParameters(msg.parameters);
398
- }
399
- function encodeSubscribeError(msg, writer) {
400
- writer.writeVarInt(msg.subscribeId);
401
- writer.writeVarInt(msg.errorCode);
402
- writer.writeString(msg.reasonPhrase);
403
- writer.writeVarInt(msg.trackAlias);
404
- }
405
- function encodeSubscribeDone(msg, writer) {
406
- writer.writeVarInt(msg.subscribeId);
407
- writer.writeVarInt(msg.statusCode);
408
- writer.writeString(msg.reasonPhrase);
409
- writer.writeUint8(msg.contentExists ? 1 : 0);
410
- if (msg.contentExists) {
411
- writer.writeVarInt(msg.finalGroupId);
412
- writer.writeVarInt(msg.finalObjectId);
413
- }
414
- }
415
- function encodeSubscribeUpdate(msg, writer) {
416
- writer.writeVarInt(msg.subscribeId);
417
- writer.writeVarInt(msg.startGroup);
418
- writer.writeVarInt(msg.startObject);
419
- writer.writeVarInt(msg.endGroup);
420
- writer.writeVarInt(msg.endObject);
421
- writer.writeUint8(msg.subscriberPriority);
422
- writer.writeParameters(msg.parameters);
423
- }
424
- function encodeUnsubscribe(msg, writer) {
425
- writer.writeVarInt(msg.subscribeId);
426
- }
427
- function encodeAnnounce(msg, writer) {
428
- writer.writeTuple(msg.trackNamespace);
429
- writer.writeParameters(msg.parameters);
430
- }
431
- function encodeAnnounceOk(msg, writer) {
432
- writer.writeTuple(msg.trackNamespace);
433
- }
434
- function encodeAnnounceError(msg, writer) {
435
- writer.writeTuple(msg.trackNamespace);
436
- writer.writeVarInt(msg.errorCode);
437
- writer.writeString(msg.reasonPhrase);
438
- }
439
- function encodeAnnounceCancel(msg, writer) {
440
- writer.writeTuple(msg.trackNamespace);
441
- writer.writeVarInt(msg.errorCode);
442
- writer.writeString(msg.reasonPhrase);
443
- }
444
- function encodeUnannounce(msg, writer) {
445
- writer.writeTuple(msg.trackNamespace);
446
- }
447
- function encodeTrackStatusRequest(msg, writer) {
448
- writer.writeTuple(msg.trackNamespace);
449
- writer.writeString(msg.trackName);
450
- }
451
- function encodeTrackStatus(msg, writer) {
452
- writer.writeTuple(msg.trackNamespace);
453
- writer.writeString(msg.trackName);
454
- writer.writeVarInt(msg.statusCode);
455
- writer.writeVarInt(msg.lastGroupId);
456
- writer.writeVarInt(msg.lastObjectId);
457
- }
458
- function encodeGoAway(msg, writer) {
459
- writer.writeString(msg.newSessionUri);
460
- }
461
- function encodeSubscribeAnnounces(msg, writer) {
462
- writer.writeTuple(msg.trackNamespace);
463
- writer.writeParameters(msg.parameters);
464
- }
465
- function encodeSubscribeAnnouncesOk(msg, writer) {
466
- writer.writeTuple(msg.trackNamespace);
467
- }
468
- function encodeSubscribeAnnouncesError(msg, writer) {
469
- writer.writeTuple(msg.trackNamespace);
470
- writer.writeVarInt(msg.errorCode);
471
- writer.writeString(msg.reasonPhrase);
472
- }
473
- function encodeUnsubscribeAnnounces(msg, writer) {
474
- writer.writeTuple(msg.trackNamespace);
475
- }
476
- function encodeMaxSubscribeId(msg, writer) {
477
- writer.writeVarInt(msg.subscribeId);
478
- }
479
- function encodeFetch(msg, writer) {
480
- writer.writeVarInt(msg.subscribeId);
481
- writer.writeTuple(msg.trackNamespace);
482
- writer.writeString(msg.trackName);
483
- writer.writeUint8(msg.subscriberPriority);
484
- writeGroupOrder(writer, msg.groupOrder);
485
- writer.writeVarInt(msg.startGroup);
486
- writer.writeVarInt(msg.startObject);
487
- writer.writeVarInt(msg.endGroup);
488
- writer.writeVarInt(msg.endObject);
489
- writer.writeParameters(msg.parameters);
490
- }
491
- function encodeFetchOk(msg, writer) {
492
- writer.writeVarInt(msg.subscribeId);
493
- writeGroupOrder(writer, msg.groupOrder);
494
- writer.writeUint8(msg.endOfTrack ? 1 : 0);
495
- writer.writeVarInt(msg.largestGroupId);
496
- writer.writeVarInt(msg.largestObjectId);
497
- writer.writeParameters(msg.parameters);
498
- }
499
- function encodeFetchError(msg, writer) {
500
- writer.writeVarInt(msg.subscribeId);
501
- writer.writeVarInt(msg.errorCode);
502
- writer.writeString(msg.reasonPhrase);
503
- }
504
- function encodeFetchCancel(msg, writer) {
505
- writer.writeVarInt(msg.subscribeId);
506
- }
507
- function encodeObjectPayload(msg, writer) {
508
- if (msg.payload.byteLength === 0) {
509
- writer.writeVarInt(0);
510
- writer.writeVarInt(_nullishCoalesce(msg.objectStatus, () => ( 0)));
511
- } else {
512
- writer.writeVarInt(msg.payload.byteLength);
513
- writer.writeBytes(msg.payload);
514
- }
515
- }
516
- function encodeObjectDatagram(msg, writer) {
517
- writer.writeVarInt(MESSAGE_TYPE_IDS.object_datagram);
518
- writer.writeVarInt(msg.trackAlias);
519
- writer.writeVarInt(msg.groupId);
520
- writer.writeVarInt(msg.objectId);
521
- writer.writeUint8(msg.publisherPriority);
522
- encodeObjectPayload(msg, writer);
523
- }
524
- var controlEncoders = {
525
- client_setup: encodeClientSetup,
526
- server_setup: encodeServerSetup,
527
- subscribe: encodeSubscribe,
528
- subscribe_ok: encodeSubscribeOk,
529
- subscribe_error: encodeSubscribeError,
530
- subscribe_done: encodeSubscribeDone,
531
- subscribe_update: encodeSubscribeUpdate,
532
- unsubscribe: encodeUnsubscribe,
533
- announce: encodeAnnounce,
534
- announce_ok: encodeAnnounceOk,
535
- announce_error: encodeAnnounceError,
536
- announce_cancel: encodeAnnounceCancel,
537
- unannounce: encodeUnannounce,
538
- track_status_request: encodeTrackStatusRequest,
539
- track_status: encodeTrackStatus,
540
- goaway: encodeGoAway,
541
- subscribe_announces: encodeSubscribeAnnounces,
542
- subscribe_announces_ok: encodeSubscribeAnnouncesOk,
543
- subscribe_announces_error: encodeSubscribeAnnouncesError,
544
- unsubscribe_announces: encodeUnsubscribeAnnounces,
545
- max_subscribe_id: encodeMaxSubscribeId,
546
- fetch: encodeFetch,
547
- fetch_ok: encodeFetchOk,
548
- fetch_error: encodeFetchError,
549
- fetch_cancel: encodeFetchCancel
550
- };
551
- var dataStreamEncoders = {
552
- object_datagram: encodeObjectDatagram
553
- };
554
- function decodeClientSetup(reader) {
555
- const numVersions = reader.readVarInt();
556
- if (numVersions === 0n) {
557
- throw new (0, _chunkRUPCJTC3cjs.DecodeError)(
558
- "CONSTRAINT_VIOLATION",
559
- "supported_versions must not be empty",
560
- reader.offset
561
- );
562
- }
563
- const supportedVersions = [];
564
- for (let i = 0n; i < numVersions; i++) {
565
- supportedVersions.push(reader.readVarInt());
566
- }
567
- const parameters = reader.readParameters();
568
- return { type: "client_setup", supportedVersions, parameters };
569
- }
570
- function decodeServerSetup(reader) {
571
- const selectedVersion = reader.readVarInt();
572
- const parameters = reader.readParameters();
573
- return { type: "server_setup", selectedVersion, parameters };
574
- }
575
- function decodeSubscribe(reader) {
576
- const subscribeId = reader.readVarInt();
577
- const trackAlias = reader.readVarInt();
578
- const trackNamespace = reader.readTuple();
579
- const trackName = reader.readString();
580
- const subscriberPriority = reader.readUint8();
581
- const groupOrder = readGroupOrder(reader);
582
- const filterTypeWire = reader.readVarInt();
583
- const filterType = WIRE_TO_FILTER_TYPE.get(filterTypeWire);
584
- if (filterType === void 0) {
585
- throw new (0, _chunkRUPCJTC3cjs.DecodeError)(
586
- "CONSTRAINT_VIOLATION",
587
- `Invalid filter type: ${filterTypeWire}`,
588
- reader.offset
589
- );
590
- }
591
- const base = {
592
- type: "subscribe",
593
- subscribeId,
594
- trackAlias,
595
- trackNamespace,
596
- trackName,
597
- subscriberPriority,
598
- groupOrder,
599
- filterType,
600
- parameters: void 0
601
- };
602
- if (filterType === "absolute_start") {
603
- const startGroup = reader.readVarInt();
604
- const startObject = reader.readVarInt();
605
- base.parameters = reader.readParameters();
606
- return { ...base, startGroup, startObject };
607
- }
608
- if (filterType === "absolute_range") {
609
- const startGroup = reader.readVarInt();
610
- const startObject = reader.readVarInt();
611
- const endGroup = reader.readVarInt();
612
- const endObject = reader.readVarInt();
613
- base.parameters = reader.readParameters();
614
- return { ...base, startGroup, startObject, endGroup, endObject };
615
- }
616
- base.parameters = reader.readParameters();
617
- return base;
618
- }
619
- function decodeSubscribeOk(reader) {
620
- const subscribeId = reader.readVarInt();
621
- const expires = reader.readVarInt();
622
- const groupOrder = readGroupOrder(reader);
623
- const contentExistsWire = reader.readUint8();
624
- const contentExists = contentExistsWire !== 0;
625
- if (contentExists) {
626
- const largestGroupId = reader.readVarInt();
627
- const largestObjectId = reader.readVarInt();
628
- const parameters2 = reader.readParameters();
629
- return {
630
- type: "subscribe_ok",
631
- subscribeId,
632
- expires,
633
- groupOrder,
634
- contentExists,
635
- largestGroupId,
636
- largestObjectId,
637
- parameters: parameters2
638
- };
639
- }
640
- const parameters = reader.readParameters();
641
- return {
642
- type: "subscribe_ok",
643
- subscribeId,
644
- expires,
645
- groupOrder,
646
- contentExists,
647
- parameters
648
- };
649
- }
650
- function decodeSubscribeError(reader) {
651
- const subscribeId = reader.readVarInt();
652
- const errorCode = reader.readVarInt();
653
- const reasonPhrase = reader.readString();
654
- const trackAlias = reader.readVarInt();
655
- return { type: "subscribe_error", subscribeId, errorCode, reasonPhrase, trackAlias };
656
- }
657
- function decodeSubscribeDone(reader) {
658
- const subscribeId = reader.readVarInt();
659
- const statusCode = reader.readVarInt();
660
- const reasonPhrase = reader.readString();
661
- const contentExistsWire = reader.readUint8();
662
- const contentExists = contentExistsWire !== 0;
663
- if (contentExists) {
664
- const finalGroupId = reader.readVarInt();
665
- const finalObjectId = reader.readVarInt();
666
- return {
667
- type: "subscribe_done",
668
- subscribeId,
669
- statusCode,
670
- reasonPhrase,
671
- contentExists,
672
- finalGroupId,
673
- finalObjectId
674
- };
675
- }
676
- return { type: "subscribe_done", subscribeId, statusCode, reasonPhrase, contentExists };
677
- }
678
- function decodeSubscribeUpdate(reader) {
679
- const subscribeId = reader.readVarInt();
680
- const startGroup = reader.readVarInt();
681
- const startObject = reader.readVarInt();
682
- const endGroup = reader.readVarInt();
683
- const endObject = reader.readVarInt();
684
- const subscriberPriority = reader.readUint8();
685
- const parameters = reader.readParameters();
686
- return {
687
- type: "subscribe_update",
688
- subscribeId,
689
- startGroup,
690
- startObject,
691
- endGroup,
692
- endObject,
693
- subscriberPriority,
694
- parameters
695
- };
696
- }
697
- function decodeUnsubscribe(reader) {
698
- const subscribeId = reader.readVarInt();
699
- return { type: "unsubscribe", subscribeId };
700
- }
701
- function decodeAnnounce(reader) {
702
- const trackNamespace = reader.readTuple();
703
- const parameters = reader.readParameters();
704
- return { type: "announce", trackNamespace, parameters };
705
- }
706
- function decodeAnnounceOk(reader) {
707
- const trackNamespace = reader.readTuple();
708
- return { type: "announce_ok", trackNamespace };
709
- }
710
- function decodeAnnounceError(reader) {
711
- const trackNamespace = reader.readTuple();
712
- const errorCode = reader.readVarInt();
713
- const reasonPhrase = reader.readString();
714
- return { type: "announce_error", trackNamespace, errorCode, reasonPhrase };
715
- }
716
- function decodeAnnounceCancel(reader) {
717
- const trackNamespace = reader.readTuple();
718
- const errorCode = reader.readVarInt();
719
- const reasonPhrase = reader.readString();
720
- return { type: "announce_cancel", trackNamespace, errorCode, reasonPhrase };
721
- }
722
- function decodeUnannounce(reader) {
723
- const trackNamespace = reader.readTuple();
724
- return { type: "unannounce", trackNamespace };
725
- }
726
- function decodeTrackStatusRequest(reader) {
727
- const trackNamespace = reader.readTuple();
728
- const trackName = reader.readString();
729
- return { type: "track_status_request", trackNamespace, trackName };
730
- }
731
- function decodeTrackStatus(reader) {
732
- const trackNamespace = reader.readTuple();
733
- const trackName = reader.readString();
734
- const statusCode = reader.readVarInt();
735
- const lastGroupId = reader.readVarInt();
736
- const lastObjectId = reader.readVarInt();
737
- return { type: "track_status", trackNamespace, trackName, statusCode, lastGroupId, lastObjectId };
738
- }
739
- function decodeGoAway(reader) {
740
- const newSessionUri = reader.readString();
741
- return { type: "goaway", newSessionUri };
742
- }
743
- function decodeSubscribeAnnounces(reader) {
744
- const trackNamespace = reader.readTuple();
745
- const parameters = reader.readParameters();
746
- return { type: "subscribe_announces", trackNamespace, parameters };
747
- }
748
- function decodeSubscribeAnnouncesOk(reader) {
749
- const trackNamespace = reader.readTuple();
750
- return { type: "subscribe_announces_ok", trackNamespace };
751
- }
752
- function decodeSubscribeAnnouncesError(reader) {
753
- const trackNamespace = reader.readTuple();
754
- const errorCode = reader.readVarInt();
755
- const reasonPhrase = reader.readString();
756
- return { type: "subscribe_announces_error", trackNamespace, errorCode, reasonPhrase };
757
- }
758
- function decodeUnsubscribeAnnounces(reader) {
759
- const trackNamespace = reader.readTuple();
760
- return { type: "unsubscribe_announces", trackNamespace };
761
- }
762
- function decodeMaxSubscribeId(reader) {
763
- const subscribeId = reader.readVarInt();
764
- return { type: "max_subscribe_id", subscribeId };
765
- }
766
- function decodeFetch(reader) {
767
- const subscribeId = reader.readVarInt();
768
- const trackNamespace = reader.readTuple();
769
- const trackName = reader.readString();
770
- const subscriberPriority = reader.readUint8();
771
- const groupOrder = readGroupOrder(reader);
772
- const startGroup = reader.readVarInt();
773
- const startObject = reader.readVarInt();
774
- const endGroup = reader.readVarInt();
775
- const endObject = reader.readVarInt();
776
- const parameters = reader.readParameters();
777
- return {
778
- type: "fetch",
779
- subscribeId,
780
- trackNamespace,
781
- trackName,
782
- subscriberPriority,
783
- groupOrder,
784
- startGroup,
785
- startObject,
786
- endGroup,
787
- endObject,
788
- parameters
789
- };
790
- }
791
- function decodeFetchOk(reader) {
792
- const subscribeId = reader.readVarInt();
793
- const groupOrder = readGroupOrder(reader);
794
- const endOfTrackWire = reader.readUint8();
795
- const endOfTrack = endOfTrackWire !== 0;
796
- const largestGroupId = reader.readVarInt();
797
- const largestObjectId = reader.readVarInt();
798
- const parameters = reader.readParameters();
799
- return {
800
- type: "fetch_ok",
801
- subscribeId,
802
- groupOrder,
803
- endOfTrack,
804
- largestGroupId,
805
- largestObjectId,
806
- parameters
807
- };
808
- }
809
- function decodeFetchError(reader) {
810
- const subscribeId = reader.readVarInt();
811
- const errorCode = reader.readVarInt();
812
- const reasonPhrase = reader.readString();
813
- return { type: "fetch_error", subscribeId, errorCode, reasonPhrase };
814
- }
815
- function decodeFetchCancel(reader) {
816
- const subscribeId = reader.readVarInt();
817
- return { type: "fetch_cancel", subscribeId };
818
- }
819
- function decodeObjectDatagram(reader) {
820
- const trackAlias = reader.readVarInt();
821
- const groupId = reader.readVarInt();
822
- const objectId = reader.readVarInt();
823
- const publisherPriority = reader.readUint8();
824
- const payloadLength = Number(reader.readVarInt());
825
- if (payloadLength === 0) {
826
- const objectStatus = reader.remaining > 0 ? Number(reader.readVarInt()) : 0;
827
- return {
828
- type: "object_datagram",
829
- trackAlias,
830
- groupId,
831
- objectId,
832
- publisherPriority,
833
- objectStatus,
834
- payload: new Uint8Array(0)
835
- };
836
- }
837
- const payload = reader.readBytesView(payloadLength);
838
- return {
839
- type: "object_datagram",
840
- trackAlias,
841
- groupId,
842
- objectId,
843
- publisherPriority,
844
- payload
845
- };
846
- }
847
- var controlDecoders = /* @__PURE__ */ new Map([
848
- [MESSAGE_TYPE_IDS.client_setup, decodeClientSetup],
849
- [MESSAGE_TYPE_IDS.server_setup, decodeServerSetup],
850
- [MESSAGE_TYPE_IDS.subscribe, decodeSubscribe],
851
- [MESSAGE_TYPE_IDS.subscribe_ok, decodeSubscribeOk],
852
- [MESSAGE_TYPE_IDS.subscribe_error, decodeSubscribeError],
853
- [MESSAGE_TYPE_IDS.subscribe_done, decodeSubscribeDone],
854
- [MESSAGE_TYPE_IDS.subscribe_update, decodeSubscribeUpdate],
855
- [MESSAGE_TYPE_IDS.unsubscribe, decodeUnsubscribe],
856
- [MESSAGE_TYPE_IDS.announce, decodeAnnounce],
857
- [MESSAGE_TYPE_IDS.announce_ok, decodeAnnounceOk],
858
- [MESSAGE_TYPE_IDS.announce_error, decodeAnnounceError],
859
- [MESSAGE_TYPE_IDS.announce_cancel, decodeAnnounceCancel],
860
- [MESSAGE_TYPE_IDS.unannounce, decodeUnannounce],
861
- [MESSAGE_TYPE_IDS.track_status_request, decodeTrackStatusRequest],
862
- [MESSAGE_TYPE_IDS.track_status, decodeTrackStatus],
863
- [MESSAGE_TYPE_IDS.goaway, decodeGoAway],
864
- [MESSAGE_TYPE_IDS.subscribe_announces, decodeSubscribeAnnounces],
865
- [MESSAGE_TYPE_IDS.subscribe_announces_ok, decodeSubscribeAnnouncesOk],
866
- [MESSAGE_TYPE_IDS.subscribe_announces_error, decodeSubscribeAnnouncesError],
867
- [MESSAGE_TYPE_IDS.unsubscribe_announces, decodeUnsubscribeAnnounces],
868
- [MESSAGE_TYPE_IDS.max_subscribe_id, decodeMaxSubscribeId],
869
- [MESSAGE_TYPE_IDS.fetch, decodeFetch],
870
- [MESSAGE_TYPE_IDS.fetch_ok, decodeFetchOk],
871
- [MESSAGE_TYPE_IDS.fetch_error, decodeFetchError],
872
- [MESSAGE_TYPE_IDS.fetch_cancel, decodeFetchCancel]
873
- ]);
874
- var dataStreamDecoders = /* @__PURE__ */ new Map([
875
- [MESSAGE_TYPE_IDS.object_datagram, decodeObjectDatagram]
876
- ]);
877
- var MESSAGE_TYPE_TO_WIRE = {
878
- client_setup: MESSAGE_TYPE_IDS.client_setup,
879
- server_setup: MESSAGE_TYPE_IDS.server_setup,
880
- subscribe: MESSAGE_TYPE_IDS.subscribe,
881
- subscribe_ok: MESSAGE_TYPE_IDS.subscribe_ok,
882
- subscribe_error: MESSAGE_TYPE_IDS.subscribe_error,
883
- subscribe_done: MESSAGE_TYPE_IDS.subscribe_done,
884
- subscribe_update: MESSAGE_TYPE_IDS.subscribe_update,
885
- unsubscribe: MESSAGE_TYPE_IDS.unsubscribe,
886
- announce: MESSAGE_TYPE_IDS.announce,
887
- announce_ok: MESSAGE_TYPE_IDS.announce_ok,
888
- announce_error: MESSAGE_TYPE_IDS.announce_error,
889
- announce_cancel: MESSAGE_TYPE_IDS.announce_cancel,
890
- unannounce: MESSAGE_TYPE_IDS.unannounce,
891
- track_status_request: MESSAGE_TYPE_IDS.track_status_request,
892
- track_status: MESSAGE_TYPE_IDS.track_status,
893
- goaway: MESSAGE_TYPE_IDS.goaway,
894
- subscribe_announces: MESSAGE_TYPE_IDS.subscribe_announces,
895
- subscribe_announces_ok: MESSAGE_TYPE_IDS.subscribe_announces_ok,
896
- subscribe_announces_error: MESSAGE_TYPE_IDS.subscribe_announces_error,
897
- unsubscribe_announces: MESSAGE_TYPE_IDS.unsubscribe_announces,
898
- max_subscribe_id: MESSAGE_TYPE_IDS.max_subscribe_id,
899
- fetch: MESSAGE_TYPE_IDS.fetch,
900
- fetch_ok: MESSAGE_TYPE_IDS.fetch_ok,
901
- fetch_error: MESSAGE_TYPE_IDS.fetch_error,
902
- fetch_cancel: MESSAGE_TYPE_IDS.fetch_cancel
903
- };
904
- function encodeMessageImpl(message) {
905
- const dataEncoder = dataStreamEncoders[message.type];
906
- if (dataEncoder) {
907
- const writer = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
908
- dataEncoder(message, writer);
909
- return writer.finish();
910
- }
911
- const controlEncoder = controlEncoders[message.type];
912
- if (!controlEncoder) {
913
- throw new Error(`Unknown message type: ${message.type}`);
914
- }
915
- const payloadWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)();
916
- controlEncoder(message, payloadWriter);
917
- const payload = payloadWriter.finishView();
918
- const frameWriter = new (0, _chunkRUPCJTC3cjs.BufferWriter)(payload.byteLength + 16);
919
- frameWriter.writeVarInt(MESSAGE_TYPE_TO_WIRE[message.type]);
920
- frameWriter.writeVarInt(payload.byteLength);
921
- frameWriter.writeBytes(payload);
922
- return frameWriter.finish();
923
- }
924
- function decodeMessageImpl(bytes) {
925
- try {
926
- const reader = new (0, _chunkRUPCJTC3cjs.BufferReader)(bytes, 0);
927
- const typeId = reader.readVarInt();
928
- if (DATA_STREAM_TYPE_IDS.has(typeId)) {
929
- const decoder2 = dataStreamDecoders.get(typeId);
930
- if (!decoder2) {
931
- return {
932
- ok: false,
933
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
934
- "UNKNOWN_MESSAGE_TYPE",
935
- `Unknown data stream type ID: 0x${typeId.toString(16)}`,
936
- 0
937
- )
938
- };
939
- }
940
- const message2 = decoder2(reader);
941
- return { ok: true, value: message2, bytesRead: reader.offset };
942
- }
943
- const payloadLength = Number(reader.readVarInt());
944
- const _headerBytes = reader.offset;
945
- if (reader.remaining < payloadLength) {
946
- return {
947
- ok: false,
948
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
949
- "UNEXPECTED_END",
950
- `Not enough bytes for payload: need ${payloadLength}, have ${reader.remaining}`,
951
- reader.offset
952
- )
953
- };
954
- }
955
- const payloadBytes = reader.readBytes(payloadLength);
956
- const totalBytesRead = reader.offset;
957
- const decoder = controlDecoders.get(typeId);
958
- if (!decoder) {
959
- return {
960
- ok: false,
961
- error: new (0, _chunkRUPCJTC3cjs.DecodeError)(
962
- "UNKNOWN_MESSAGE_TYPE",
963
- `Unknown message type ID: 0x${typeId.toString(16)}`,
964
- 0
965
- )
966
- };
967
- }
968
- const payloadReader = new (0, _chunkRUPCJTC3cjs.BufferReader)(payloadBytes, 0);
969
- const message = decoder(payloadReader);
970
- return { ok: true, value: message, bytesRead: totalBytesRead };
971
- } catch (e) {
972
- if (e instanceof _chunkRUPCJTC3cjs.DecodeError) {
973
- return { ok: false, error: e };
974
- }
975
- throw e;
976
- }
977
- }
978
- function createStreamDecoderImpl() {
979
- let buffer = new Uint8Array(0);
980
- let offset = 0;
981
- return new TransformStream({
982
- transform(chunk, controller) {
983
- if (offset > 0) {
984
- buffer = buffer.subarray(offset);
985
- offset = 0;
986
- }
987
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
988
- newBuffer.set(buffer, 0);
989
- newBuffer.set(chunk, buffer.length);
990
- buffer = newBuffer;
991
- while (offset < buffer.length) {
992
- const result = decodeMessageImpl(buffer.subarray(offset));
993
- if (!result.ok) {
994
- if (result.error.code === "UNEXPECTED_END") {
995
- break;
996
- }
997
- controller.error(result.error);
998
- return;
999
- }
1000
- controller.enqueue(result.value);
1001
- offset += result.bytesRead;
1002
- }
1003
- },
1004
- flush(controller) {
1005
- if (offset < buffer.length) {
1006
- controller.error(
1007
- new (0, _chunkRUPCJTC3cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
1008
- );
1009
- }
1010
- }
1011
- });
1012
- }
1013
- function createDraft07Codec() {
1014
- return {
1015
- draft: "draft-ietf-moq-transport-07",
1016
- encodeMessage: encodeMessageImpl,
1017
- decodeMessage: decodeMessageImpl,
1018
- encodeVarInt,
1019
- decodeVarInt,
1020
- createStreamDecoder: createStreamDecoderImpl,
1021
- encodeSubgroupStream,
1022
- decodeSubgroupStream,
1023
- encodeDatagram,
1024
- decodeDatagram,
1025
- encodeFetchStream,
1026
- decodeFetchStream
1027
- };
1028
- }
1029
-
1030
-
1031
-
1032
-
1033
-
1034
-
1035
-
1036
-
1037
-
1038
-
1039
-
1040
-
1041
-
1042
- exports.MESSAGE_TYPE_IDS = MESSAGE_TYPE_IDS; exports.MESSAGE_ID_TO_TYPE = MESSAGE_ID_TO_TYPE; 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;