@moqtap/codec 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/dist/{chunk-LH4NTURO.js → chunk-2GODRVT5.js} +699 -589
  2. package/dist/{chunk-4RIXXEII.js → chunk-2ZT6CVSE.js} +274 -242
  3. package/dist/{chunk-XUUCOLWU.cjs → chunk-4N4INRE7.cjs} +332 -321
  4. package/dist/{chunk-PJRA2TQ5.js → chunk-73MWUKSJ.js} +274 -228
  5. package/dist/{chunk-NGVE2RZT.js → chunk-77MNXX3M.js} +549 -538
  6. package/dist/{chunk-A27S7HW7.js → chunk-7L43FE6P.js} +24 -3
  7. package/dist/{chunk-RVJAGE4S.cjs → chunk-ACQ4CUJP.cjs} +297 -265
  8. package/dist/{chunk-IBVM4DMJ.cjs → chunk-BGWGVINJ.cjs} +332 -321
  9. package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
  10. package/dist/{chunk-CXDHOMHG.js → chunk-CEH7ESNC.js} +549 -538
  11. package/dist/{chunk-ZBKE2QRQ.js → chunk-E6P74GDT.js} +686 -599
  12. package/dist/{chunk-FUFTMAQD.cjs → chunk-FPISPJ5N.cjs} +785 -497
  13. package/dist/{chunk-7IVGHMKJ.cjs → chunk-FZDIEHQL.cjs} +300 -124
  14. package/dist/{chunk-ZSPO2GF2.cjs → chunk-GLBQDG4L.cjs} +971 -884
  15. package/dist/chunk-HDWJ2GDE.js +24 -0
  16. package/dist/{chunk-4YJANAXU.cjs → chunk-JGG7CMSZ.cjs} +469 -434
  17. package/dist/{chunk-IV2H5CFI.cjs → chunk-JTVCOMBI.cjs} +298 -266
  18. package/dist/chunk-KNDYS3DK.cjs +24 -0
  19. package/dist/{chunk-BPNL5YFQ.cjs → chunk-KZCYQ7ED.cjs} +5 -5
  20. package/dist/{chunk-U2B3B42P.js → chunk-MC7W6PMI.js} +709 -421
  21. package/dist/{chunk-MFAP7R6L.js → chunk-MRJWLGYH.js} +1 -1
  22. package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
  23. package/dist/{chunk-TMNGRIPL.js → chunk-N2KBF5Q2.js} +285 -109
  24. package/dist/{chunk-IV2HRJVT.js → chunk-PZBPH2D7.js} +274 -242
  25. package/dist/{chunk-FWISIR26.cjs → chunk-RUPCJTC3.cjs} +24 -3
  26. package/dist/{chunk-G26SJ6XS.cjs → chunk-S74DWJE2.cjs} +1001 -925
  27. package/dist/{chunk-NUX5BHWO.js → chunk-U3IPZYPX.js} +1113 -1037
  28. package/dist/{chunk-HSVYF6XX.cjs → chunk-VJUUZ4W2.cjs} +1106 -996
  29. package/dist/{chunk-ST24APEO.js → chunk-XSNX2IUJ.js} +574 -539
  30. package/dist/{chunk-K4OLITS2.cjs → chunk-YIG2C3LF.cjs} +295 -249
  31. package/dist/{drafts/draft15/codec.d.ts → codec-B2cH-f5V.d.cts} +11 -10
  32. package/dist/codec-B5K73Bdj.d.ts +30 -0
  33. package/dist/{codec-C_HMXNK_.d.ts → codec-BFeliJFc.d.ts} +4 -10
  34. package/dist/codec-BUMjz0J4.d.cts +30 -0
  35. package/dist/{codec-D0x8-SCw.d.cts → codec-Bap882Fh.d.cts} +3 -9
  36. package/dist/codec-BdVMRMOI.d.ts +34 -0
  37. package/dist/codec-Bq-tLtfP.d.ts +30 -0
  38. package/dist/codec-BwFgpeQu.d.ts +23 -0
  39. package/dist/{codec-95k8CAu5.d.cts → codec-C4n1PS09.d.cts} +3 -9
  40. package/dist/{codec-BECYPfY8.d.ts → codec-CPlK3Pi5.d.ts} +3 -9
  41. package/dist/{drafts/draft08/codec.d.ts → codec-CPvPq0sb.d.cts} +11 -9
  42. package/dist/codec-DNUIgLqc.d.cts +23 -0
  43. package/dist/codec-DRcsBCsb.d.ts +23 -0
  44. package/dist/{codec-CAevkgf5.d.cts → codec-DY4QH364.d.cts} +4 -10
  45. package/dist/codec-DZhZSIii.d.cts +30 -0
  46. package/dist/{drafts/draft14/codec.d.ts → codec-FvGCxIhr.d.ts} +11 -10
  47. package/dist/codec-HgBgHkFI.d.cts +23 -0
  48. package/dist/codec-KXHvXZVb.d.cts +35 -0
  49. package/dist/{codec-BC5jfvMb.d.ts → codec-R8GrCPt2.d.ts} +3 -9
  50. package/dist/{codec-BsPU1vNC.d.ts → codec-SKBeHQk7.d.ts} +3 -11
  51. package/dist/draft10-session.d.cts +1 -1
  52. package/dist/draft10-session.d.ts +1 -1
  53. package/dist/draft10.cjs +4 -3
  54. package/dist/draft10.d.cts +15 -5
  55. package/dist/draft10.d.ts +15 -5
  56. package/dist/draft10.js +3 -2
  57. package/dist/draft11-session.d.cts +1 -1
  58. package/dist/draft11-session.d.ts +1 -1
  59. package/dist/draft11.cjs +4 -3
  60. package/dist/draft11.d.cts +13 -5
  61. package/dist/draft11.d.ts +13 -5
  62. package/dist/draft11.js +3 -2
  63. package/dist/draft12-session.d.cts +1 -1
  64. package/dist/draft12-session.d.ts +1 -1
  65. package/dist/draft12.cjs +4 -3
  66. package/dist/draft12.d.cts +13 -5
  67. package/dist/draft12.d.ts +13 -5
  68. package/dist/draft12.js +3 -2
  69. package/dist/draft13-session.d.cts +1 -1
  70. package/dist/draft13-session.d.ts +1 -1
  71. package/dist/draft13.cjs +4 -3
  72. package/dist/draft13.d.cts +13 -5
  73. package/dist/draft13.d.ts +13 -5
  74. package/dist/draft13.js +3 -2
  75. package/dist/draft14-session.d.cts +1 -1
  76. package/dist/draft14-session.d.ts +1 -1
  77. package/dist/draft14.cjs +4 -3
  78. package/dist/draft14.d.cts +59 -5
  79. package/dist/draft14.d.ts +59 -5
  80. package/dist/draft14.js +3 -2
  81. package/dist/draft15-session.d.cts +1 -1
  82. package/dist/draft15-session.d.ts +1 -1
  83. package/dist/draft15.cjs +4 -3
  84. package/dist/draft15.d.cts +48 -5
  85. package/dist/draft15.d.ts +48 -5
  86. package/dist/draft15.js +3 -2
  87. package/dist/draft16-session.d.cts +1 -1
  88. package/dist/draft16-session.d.ts +1 -1
  89. package/dist/draft16.cjs +4 -3
  90. package/dist/draft16.d.cts +37 -5
  91. package/dist/draft16.d.ts +37 -5
  92. package/dist/draft16.js +3 -2
  93. package/dist/draft17-session.d.cts +1 -1
  94. package/dist/draft17-session.d.ts +1 -1
  95. package/dist/draft17.cjs +4 -3
  96. package/dist/draft17.d.cts +16 -5
  97. package/dist/draft17.d.ts +16 -5
  98. package/dist/draft17.js +3 -2
  99. package/dist/draft7-session.cjs +3 -3
  100. package/dist/draft7-session.js +2 -2
  101. package/dist/draft7.cjs +18 -6
  102. package/dist/draft7.d.cts +84 -8
  103. package/dist/draft7.d.ts +84 -8
  104. package/dist/draft7.js +15 -3
  105. package/dist/draft8-session.d.cts +1 -1
  106. package/dist/draft8-session.d.ts +1 -1
  107. package/dist/draft8.cjs +4 -3
  108. package/dist/draft8.d.cts +15 -5
  109. package/dist/draft8.d.ts +15 -5
  110. package/dist/draft8.js +3 -2
  111. package/dist/draft9-session.d.cts +1 -1
  112. package/dist/draft9-session.d.ts +1 -1
  113. package/dist/draft9.cjs +4 -3
  114. package/dist/draft9.d.cts +15 -5
  115. package/dist/draft9.d.ts +15 -5
  116. package/dist/draft9.js +3 -2
  117. package/dist/index.cjs +25 -24
  118. package/dist/index.d.cts +20 -20
  119. package/dist/index.d.ts +38 -46
  120. package/dist/index.js +111 -93
  121. package/dist/session.cjs +3 -3
  122. package/dist/session.d.ts +8 -4
  123. package/dist/session.js +26 -32
  124. package/dist/{types-ERexTpT8.d.cts → types-8gUGeMgs.d.cts} +4 -1
  125. package/dist/{types-ERexTpT8.d.ts → types-8gUGeMgs.d.ts} +4 -1
  126. package/dist/{types-Cw4WE9dh.d.ts → types-B0FT5Qs2.d.cts} +9 -1
  127. package/dist/{types-Cw4WE9dh.d.cts → types-B0FT5Qs2.d.ts} +9 -1
  128. package/dist/{types-DqCDFqgB.d.cts → types-B9A2g05r.d.cts} +4 -1
  129. package/dist/{types-DqCDFqgB.d.ts → types-B9A2g05r.d.ts} +4 -1
  130. package/dist/{types-Bg6QYNVt.d.cts → types-BeAVNU-F.d.cts} +7 -2
  131. package/dist/{types-Bg6QYNVt.d.ts → types-BeAVNU-F.d.ts} +7 -2
  132. package/dist/{types-C_1HrqBl.d.ts → types-CDa7F5ct.d.cts} +7 -2
  133. package/dist/{types-C_1HrqBl.d.cts → types-CDa7F5ct.d.ts} +7 -2
  134. package/dist/{types-r-CasCf1.d.cts → types-D1dI_oTX.d.cts} +8 -1
  135. package/dist/{types-r-CasCf1.d.ts → types-D1dI_oTX.d.ts} +8 -1
  136. package/dist/{types-BTFeKYCb.d.ts → types-DKpsfD3i.d.cts} +19 -4
  137. package/dist/{types-BTFeKYCb.d.cts → types-DKpsfD3i.d.ts} +19 -4
  138. package/dist/{types-4VxSL2Ho.d.ts → types-DxSFvL2b.d.cts} +7 -1
  139. package/dist/{types-4VxSL2Ho.d.cts → types-DxSFvL2b.d.ts} +7 -1
  140. package/dist/{types-B2afJZM-.d.ts → types-Pme7sua0.d.cts} +4 -1
  141. package/dist/{types-B2afJZM-.d.cts → types-Pme7sua0.d.ts} +4 -1
  142. package/dist/{types-D5gNQiDj.d.ts → types-gQsr0AAA.d.cts} +9 -1
  143. package/dist/{types-D5gNQiDj.d.cts → types-gQsr0AAA.d.ts} +9 -1
  144. package/package.json +2 -2
  145. package/src/core/buffer-reader.ts +130 -114
  146. package/src/core/buffer-writer.ts +100 -91
  147. package/src/core/hex.ts +7 -3
  148. package/src/drafts/draft07/codec.ts +14 -9
  149. package/src/drafts/draft07/data-streams.ts +240 -240
  150. package/src/drafts/draft07/varint.ts +51 -23
  151. package/src/drafts/draft08/codec.ts +19 -10
  152. package/src/drafts/draft08/data-streams.ts +359 -359
  153. package/src/drafts/draft09/codec.ts +19 -10
  154. package/src/drafts/draft09/data-streams.ts +332 -332
  155. package/src/drafts/draft10/codec.ts +19 -10
  156. package/src/drafts/draft10/data-streams.ts +332 -332
  157. package/src/drafts/draft11/codec.ts +33 -14
  158. package/src/drafts/draft11/data-streams.ts +269 -269
  159. package/src/drafts/draft12/codec.ts +27 -31
  160. package/src/drafts/draft12/data-streams.ts +275 -275
  161. package/src/drafts/draft13/codec.ts +27 -31
  162. package/src/drafts/draft13/data-streams.ts +275 -275
  163. package/src/drafts/draft14/codec.ts +19 -10
  164. package/src/drafts/draft14/data-streams.ts +813 -798
  165. package/src/drafts/draft15/codec.ts +21 -12
  166. package/src/drafts/draft15/data-streams.ts +794 -778
  167. package/src/drafts/draft16/codec.ts +21 -12
  168. package/src/drafts/draft16/data-streams.ts +789 -773
  169. package/src/drafts/draft17/codec.ts +21 -12
  170. package/src/drafts/draft17/data-streams.ts +758 -742
  171. package/dist/codec-AFuOxfsO.d.ts +0 -60
  172. package/dist/codec-B-UJ5Iow.d.cts +0 -75
  173. package/dist/codec-BvpuF-6u.d.cts +0 -39
  174. package/dist/codec-C8jZI5Cx.d.cts +0 -39
  175. package/dist/codec-CSUqCrRs.d.ts +0 -39
  176. package/dist/codec-CpuvYTSV.d.cts +0 -86
  177. package/dist/codec-D7ARhpG1.d.ts +0 -75
  178. package/dist/codec-DNAUGshO.d.cts +0 -60
  179. package/dist/codec-DPx_QNn0.d.ts +0 -31
  180. package/dist/codec-DRhCx_hw.d.ts +0 -86
  181. package/dist/codec-Db7YPe3l.d.ts +0 -31
  182. package/dist/codec-axkJpb7D.d.cts +0 -31
  183. package/dist/codec-ujAbFaep.d.cts +0 -31
  184. package/dist/core/buffer-reader.d.ts +0 -15
  185. package/dist/core/buffer-reader.d.ts.map +0 -1
  186. package/dist/core/buffer-reader.js +0 -98
  187. package/dist/core/buffer-reader.js.map +0 -1
  188. package/dist/core/buffer-writer.d.ts +0 -16
  189. package/dist/core/buffer-writer.d.ts.map +0 -1
  190. package/dist/core/buffer-writer.js +0 -86
  191. package/dist/core/buffer-writer.js.map +0 -1
  192. package/dist/core/errors.d.ts +0 -2
  193. package/dist/core/errors.d.ts.map +0 -1
  194. package/dist/core/errors.js +0 -2
  195. package/dist/core/errors.js.map +0 -1
  196. package/dist/core/hex.d.ts +0 -5
  197. package/dist/core/hex.d.ts.map +0 -1
  198. package/dist/core/hex.js +0 -17
  199. package/dist/core/hex.js.map +0 -1
  200. package/dist/core/session-types.d.ts +0 -99
  201. package/dist/core/session-types.d.ts.map +0 -1
  202. package/dist/core/session-types.js +0 -2
  203. package/dist/core/session-types.js.map +0 -1
  204. package/dist/core/types.d.ts +0 -235
  205. package/dist/core/types.d.ts.map +0 -1
  206. package/dist/core/types.js +0 -11
  207. package/dist/core/types.js.map +0 -1
  208. package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
  209. package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
  210. package/dist/drafts/draft07/announce-fsm.js +0 -2
  211. package/dist/drafts/draft07/announce-fsm.js.map +0 -1
  212. package/dist/drafts/draft07/codec.d.ts +0 -17
  213. package/dist/drafts/draft07/codec.d.ts.map +0 -1
  214. package/dist/drafts/draft07/codec.js +0 -722
  215. package/dist/drafts/draft07/codec.js.map +0 -1
  216. package/dist/drafts/draft07/data-streams.d.ts +0 -9
  217. package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
  218. package/dist/drafts/draft07/data-streams.js +0 -228
  219. package/dist/drafts/draft07/data-streams.js.map +0 -1
  220. package/dist/drafts/draft07/index.d.ts +0 -14
  221. package/dist/drafts/draft07/index.d.ts.map +0 -1
  222. package/dist/drafts/draft07/index.js +0 -18
  223. package/dist/drafts/draft07/index.js.map +0 -1
  224. package/dist/drafts/draft07/messages.d.ts +0 -32
  225. package/dist/drafts/draft07/messages.d.ts.map +0 -1
  226. package/dist/drafts/draft07/messages.js +0 -42
  227. package/dist/drafts/draft07/messages.js.map +0 -1
  228. package/dist/drafts/draft07/parameters.d.ts +0 -4
  229. package/dist/drafts/draft07/parameters.d.ts.map +0 -1
  230. package/dist/drafts/draft07/parameters.js +0 -10
  231. package/dist/drafts/draft07/parameters.js.map +0 -1
  232. package/dist/drafts/draft07/rules.d.ts +0 -8
  233. package/dist/drafts/draft07/rules.d.ts.map +0 -1
  234. package/dist/drafts/draft07/rules.js +0 -95
  235. package/dist/drafts/draft07/rules.js.map +0 -1
  236. package/dist/drafts/draft07/session-fsm.d.ts +0 -38
  237. package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
  238. package/dist/drafts/draft07/session-fsm.js +0 -354
  239. package/dist/drafts/draft07/session-fsm.js.map +0 -1
  240. package/dist/drafts/draft07/session.d.ts +0 -4
  241. package/dist/drafts/draft07/session.d.ts.map +0 -1
  242. package/dist/drafts/draft07/session.js +0 -5
  243. package/dist/drafts/draft07/session.js.map +0 -1
  244. package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
  245. package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
  246. package/dist/drafts/draft07/subscription-fsm.js +0 -2
  247. package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
  248. package/dist/drafts/draft07/types.d.ts +0 -61
  249. package/dist/drafts/draft07/types.d.ts.map +0 -1
  250. package/dist/drafts/draft07/types.js +0 -4
  251. package/dist/drafts/draft07/types.js.map +0 -1
  252. package/dist/drafts/draft07/varint.d.ts +0 -4
  253. package/dist/drafts/draft07/varint.d.ts.map +0 -1
  254. package/dist/drafts/draft07/varint.js +0 -22
  255. package/dist/drafts/draft07/varint.js.map +0 -1
  256. package/dist/drafts/draft08/codec.d.ts.map +0 -1
  257. package/dist/drafts/draft08/codec.js +0 -729
  258. package/dist/drafts/draft08/codec.js.map +0 -1
  259. package/dist/drafts/draft08/data-streams.d.ts +0 -12
  260. package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
  261. package/dist/drafts/draft08/data-streams.js +0 -345
  262. package/dist/drafts/draft08/data-streams.js.map +0 -1
  263. package/dist/drafts/draft08/index.d.ts +0 -9
  264. package/dist/drafts/draft08/index.d.ts.map +0 -1
  265. package/dist/drafts/draft08/index.js +0 -7
  266. package/dist/drafts/draft08/index.js.map +0 -1
  267. package/dist/drafts/draft08/messages.d.ts +0 -34
  268. package/dist/drafts/draft08/messages.d.ts.map +0 -1
  269. package/dist/drafts/draft08/messages.js +0 -66
  270. package/dist/drafts/draft08/messages.js.map +0 -1
  271. package/dist/drafts/draft08/rules.d.ts +0 -8
  272. package/dist/drafts/draft08/rules.d.ts.map +0 -1
  273. package/dist/drafts/draft08/rules.js +0 -83
  274. package/dist/drafts/draft08/rules.js.map +0 -1
  275. package/dist/drafts/draft08/session-fsm.d.ts +0 -47
  276. package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
  277. package/dist/drafts/draft08/session-fsm.js +0 -483
  278. package/dist/drafts/draft08/session-fsm.js.map +0 -1
  279. package/dist/drafts/draft08/session.d.ts +0 -5
  280. package/dist/drafts/draft08/session.d.ts.map +0 -1
  281. package/dist/drafts/draft08/session.js +0 -5
  282. package/dist/drafts/draft08/session.js.map +0 -1
  283. package/dist/drafts/draft08/types.d.ts +0 -268
  284. package/dist/drafts/draft08/types.d.ts.map +0 -1
  285. package/dist/drafts/draft08/types.js +0 -4
  286. package/dist/drafts/draft08/types.js.map +0 -1
  287. package/dist/drafts/draft09/codec.d.ts +0 -21
  288. package/dist/drafts/draft09/codec.d.ts.map +0 -1
  289. package/dist/drafts/draft09/codec.js +0 -721
  290. package/dist/drafts/draft09/codec.js.map +0 -1
  291. package/dist/drafts/draft09/data-streams.d.ts +0 -12
  292. package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
  293. package/dist/drafts/draft09/data-streams.js +0 -307
  294. package/dist/drafts/draft09/data-streams.js.map +0 -1
  295. package/dist/drafts/draft09/index.d.ts +0 -9
  296. package/dist/drafts/draft09/index.d.ts.map +0 -1
  297. package/dist/drafts/draft09/index.js +0 -7
  298. package/dist/drafts/draft09/index.js.map +0 -1
  299. package/dist/drafts/draft09/messages.d.ts +0 -34
  300. package/dist/drafts/draft09/messages.d.ts.map +0 -1
  301. package/dist/drafts/draft09/messages.js +0 -66
  302. package/dist/drafts/draft09/messages.js.map +0 -1
  303. package/dist/drafts/draft09/rules.d.ts +0 -8
  304. package/dist/drafts/draft09/rules.d.ts.map +0 -1
  305. package/dist/drafts/draft09/rules.js +0 -83
  306. package/dist/drafts/draft09/rules.js.map +0 -1
  307. package/dist/drafts/draft09/session-fsm.d.ts +0 -47
  308. package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
  309. package/dist/drafts/draft09/session-fsm.js +0 -483
  310. package/dist/drafts/draft09/session-fsm.js.map +0 -1
  311. package/dist/drafts/draft09/session.d.ts +0 -5
  312. package/dist/drafts/draft09/session.d.ts.map +0 -1
  313. package/dist/drafts/draft09/session.js +0 -5
  314. package/dist/drafts/draft09/session.js.map +0 -1
  315. package/dist/drafts/draft09/types.d.ts +0 -268
  316. package/dist/drafts/draft09/types.d.ts.map +0 -1
  317. package/dist/drafts/draft09/types.js +0 -4
  318. package/dist/drafts/draft09/types.js.map +0 -1
  319. package/dist/drafts/draft10/codec.d.ts +0 -21
  320. package/dist/drafts/draft10/codec.d.ts.map +0 -1
  321. package/dist/drafts/draft10/codec.js +0 -721
  322. package/dist/drafts/draft10/codec.js.map +0 -1
  323. package/dist/drafts/draft10/data-streams.d.ts +0 -12
  324. package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
  325. package/dist/drafts/draft10/data-streams.js +0 -307
  326. package/dist/drafts/draft10/data-streams.js.map +0 -1
  327. package/dist/drafts/draft10/index.d.ts +0 -9
  328. package/dist/drafts/draft10/index.d.ts.map +0 -1
  329. package/dist/drafts/draft10/index.js +0 -7
  330. package/dist/drafts/draft10/index.js.map +0 -1
  331. package/dist/drafts/draft10/messages.d.ts +0 -34
  332. package/dist/drafts/draft10/messages.d.ts.map +0 -1
  333. package/dist/drafts/draft10/messages.js +0 -66
  334. package/dist/drafts/draft10/messages.js.map +0 -1
  335. package/dist/drafts/draft10/rules.d.ts +0 -8
  336. package/dist/drafts/draft10/rules.d.ts.map +0 -1
  337. package/dist/drafts/draft10/rules.js +0 -83
  338. package/dist/drafts/draft10/rules.js.map +0 -1
  339. package/dist/drafts/draft10/session-fsm.d.ts +0 -47
  340. package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
  341. package/dist/drafts/draft10/session-fsm.js +0 -483
  342. package/dist/drafts/draft10/session-fsm.js.map +0 -1
  343. package/dist/drafts/draft10/session.d.ts +0 -5
  344. package/dist/drafts/draft10/session.d.ts.map +0 -1
  345. package/dist/drafts/draft10/session.js +0 -5
  346. package/dist/drafts/draft10/session.js.map +0 -1
  347. package/dist/drafts/draft10/types.d.ts +0 -268
  348. package/dist/drafts/draft10/types.d.ts.map +0 -1
  349. package/dist/drafts/draft10/types.js +0 -4
  350. package/dist/drafts/draft10/types.js.map +0 -1
  351. package/dist/drafts/draft11/codec.d.ts +0 -25
  352. package/dist/drafts/draft11/codec.d.ts.map +0 -1
  353. package/dist/drafts/draft11/codec.js +0 -775
  354. package/dist/drafts/draft11/codec.js.map +0 -1
  355. package/dist/drafts/draft11/data-streams.d.ts +0 -10
  356. package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
  357. package/dist/drafts/draft11/data-streams.js +0 -253
  358. package/dist/drafts/draft11/data-streams.js.map +0 -1
  359. package/dist/drafts/draft11/index.d.ts +0 -9
  360. package/dist/drafts/draft11/index.d.ts.map +0 -1
  361. package/dist/drafts/draft11/index.js +0 -7
  362. package/dist/drafts/draft11/index.js.map +0 -1
  363. package/dist/drafts/draft11/messages.d.ts +0 -33
  364. package/dist/drafts/draft11/messages.d.ts.map +0 -1
  365. package/dist/drafts/draft11/messages.js +0 -65
  366. package/dist/drafts/draft11/messages.js.map +0 -1
  367. package/dist/drafts/draft11/rules.d.ts +0 -8
  368. package/dist/drafts/draft11/rules.d.ts.map +0 -1
  369. package/dist/drafts/draft11/rules.js +0 -88
  370. package/dist/drafts/draft11/rules.js.map +0 -1
  371. package/dist/drafts/draft11/session-fsm.d.ts +0 -52
  372. package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
  373. package/dist/drafts/draft11/session-fsm.js +0 -530
  374. package/dist/drafts/draft11/session-fsm.js.map +0 -1
  375. package/dist/drafts/draft11/session.d.ts +0 -5
  376. package/dist/drafts/draft11/session.d.ts.map +0 -1
  377. package/dist/drafts/draft11/session.js +0 -5
  378. package/dist/drafts/draft11/session.js.map +0 -1
  379. package/dist/drafts/draft11/types.d.ts +0 -266
  380. package/dist/drafts/draft11/types.d.ts.map +0 -1
  381. package/dist/drafts/draft11/types.js +0 -4
  382. package/dist/drafts/draft11/types.js.map +0 -1
  383. package/dist/drafts/draft12/codec.d.ts +0 -27
  384. package/dist/drafts/draft12/codec.d.ts.map +0 -1
  385. package/dist/drafts/draft12/codec.js +0 -918
  386. package/dist/drafts/draft12/codec.js.map +0 -1
  387. package/dist/drafts/draft12/data-streams.d.ts +0 -10
  388. package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
  389. package/dist/drafts/draft12/data-streams.js +0 -254
  390. package/dist/drafts/draft12/data-streams.js.map +0 -1
  391. package/dist/drafts/draft12/index.d.ts +0 -9
  392. package/dist/drafts/draft12/index.d.ts.map +0 -1
  393. package/dist/drafts/draft12/index.js +0 -7
  394. package/dist/drafts/draft12/index.js.map +0 -1
  395. package/dist/drafts/draft12/messages.d.ts +0 -37
  396. package/dist/drafts/draft12/messages.d.ts.map +0 -1
  397. package/dist/drafts/draft12/messages.js +0 -77
  398. package/dist/drafts/draft12/messages.js.map +0 -1
  399. package/dist/drafts/draft12/rules.d.ts +0 -8
  400. package/dist/drafts/draft12/rules.d.ts.map +0 -1
  401. package/dist/drafts/draft12/rules.js +0 -94
  402. package/dist/drafts/draft12/rules.js.map +0 -1
  403. package/dist/drafts/draft12/session-fsm.d.ts +0 -55
  404. package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
  405. package/dist/drafts/draft12/session-fsm.js +0 -569
  406. package/dist/drafts/draft12/session-fsm.js.map +0 -1
  407. package/dist/drafts/draft12/session.d.ts +0 -5
  408. package/dist/drafts/draft12/session.d.ts.map +0 -1
  409. package/dist/drafts/draft12/session.js +0 -5
  410. package/dist/drafts/draft12/session.js.map +0 -1
  411. package/dist/drafts/draft12/types.d.ts +0 -294
  412. package/dist/drafts/draft12/types.d.ts.map +0 -1
  413. package/dist/drafts/draft12/types.js +0 -4
  414. package/dist/drafts/draft12/types.js.map +0 -1
  415. package/dist/drafts/draft13/codec.d.ts +0 -27
  416. package/dist/drafts/draft13/codec.d.ts.map +0 -1
  417. package/dist/drafts/draft13/codec.js +0 -1000
  418. package/dist/drafts/draft13/codec.js.map +0 -1
  419. package/dist/drafts/draft13/data-streams.d.ts +0 -10
  420. package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
  421. package/dist/drafts/draft13/data-streams.js +0 -254
  422. package/dist/drafts/draft13/data-streams.js.map +0 -1
  423. package/dist/drafts/draft13/index.d.ts +0 -9
  424. package/dist/drafts/draft13/index.d.ts.map +0 -1
  425. package/dist/drafts/draft13/index.js +0 -7
  426. package/dist/drafts/draft13/index.js.map +0 -1
  427. package/dist/drafts/draft13/messages.d.ts +0 -38
  428. package/dist/drafts/draft13/messages.d.ts.map +0 -1
  429. package/dist/drafts/draft13/messages.js +0 -79
  430. package/dist/drafts/draft13/messages.js.map +0 -1
  431. package/dist/drafts/draft13/rules.d.ts +0 -8
  432. package/dist/drafts/draft13/rules.d.ts.map +0 -1
  433. package/dist/drafts/draft13/rules.js +0 -96
  434. package/dist/drafts/draft13/rules.js.map +0 -1
  435. package/dist/drafts/draft13/session-fsm.d.ts +0 -56
  436. package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
  437. package/dist/drafts/draft13/session-fsm.js +0 -581
  438. package/dist/drafts/draft13/session-fsm.js.map +0 -1
  439. package/dist/drafts/draft13/session.d.ts +0 -5
  440. package/dist/drafts/draft13/session.d.ts.map +0 -1
  441. package/dist/drafts/draft13/session.js +0 -5
  442. package/dist/drafts/draft13/session.js.map +0 -1
  443. package/dist/drafts/draft13/types.d.ts +0 -310
  444. package/dist/drafts/draft13/types.d.ts.map +0 -1
  445. package/dist/drafts/draft13/types.js +0 -4
  446. package/dist/drafts/draft13/types.js.map +0 -1
  447. package/dist/drafts/draft14/codec.d.ts.map +0 -1
  448. package/dist/drafts/draft14/codec.js +0 -752
  449. package/dist/drafts/draft14/codec.js.map +0 -1
  450. package/dist/drafts/draft14/data-streams.d.ts +0 -56
  451. package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
  452. package/dist/drafts/draft14/data-streams.js +0 -729
  453. package/dist/drafts/draft14/data-streams.js.map +0 -1
  454. package/dist/drafts/draft14/index.d.ts +0 -9
  455. package/dist/drafts/draft14/index.d.ts.map +0 -1
  456. package/dist/drafts/draft14/index.js +0 -7
  457. package/dist/drafts/draft14/index.js.map +0 -1
  458. package/dist/drafts/draft14/messages.d.ts +0 -36
  459. package/dist/drafts/draft14/messages.d.ts.map +0 -1
  460. package/dist/drafts/draft14/messages.js +0 -71
  461. package/dist/drafts/draft14/messages.js.map +0 -1
  462. package/dist/drafts/draft14/rules.d.ts +0 -8
  463. package/dist/drafts/draft14/rules.d.ts.map +0 -1
  464. package/dist/drafts/draft14/rules.js +0 -101
  465. package/dist/drafts/draft14/rules.js.map +0 -1
  466. package/dist/drafts/draft14/session-fsm.d.ts +0 -58
  467. package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
  468. package/dist/drafts/draft14/session-fsm.js +0 -648
  469. package/dist/drafts/draft14/session-fsm.js.map +0 -1
  470. package/dist/drafts/draft14/session.d.ts +0 -5
  471. package/dist/drafts/draft14/session.d.ts.map +0 -1
  472. package/dist/drafts/draft14/session.js +0 -5
  473. package/dist/drafts/draft14/session.js.map +0 -1
  474. package/dist/drafts/draft14/types.d.ts +0 -263
  475. package/dist/drafts/draft14/types.d.ts.map +0 -1
  476. package/dist/drafts/draft14/types.js +0 -4
  477. package/dist/drafts/draft14/types.js.map +0 -1
  478. package/dist/drafts/draft15/codec.d.ts.map +0 -1
  479. package/dist/drafts/draft15/codec.js +0 -742
  480. package/dist/drafts/draft15/codec.js.map +0 -1
  481. package/dist/drafts/draft15/data-streams.d.ts +0 -45
  482. package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
  483. package/dist/drafts/draft15/data-streams.js +0 -675
  484. package/dist/drafts/draft15/data-streams.js.map +0 -1
  485. package/dist/drafts/draft15/index.d.ts +0 -9
  486. package/dist/drafts/draft15/index.d.ts.map +0 -1
  487. package/dist/drafts/draft15/index.js +0 -7
  488. package/dist/drafts/draft15/index.js.map +0 -1
  489. package/dist/drafts/draft15/messages.d.ts +0 -31
  490. package/dist/drafts/draft15/messages.d.ts.map +0 -1
  491. package/dist/drafts/draft15/messages.js +0 -59
  492. package/dist/drafts/draft15/messages.js.map +0 -1
  493. package/dist/drafts/draft15/rules.d.ts +0 -8
  494. package/dist/drafts/draft15/rules.d.ts.map +0 -1
  495. package/dist/drafts/draft15/rules.js +0 -83
  496. package/dist/drafts/draft15/rules.js.map +0 -1
  497. package/dist/drafts/draft15/session-fsm.d.ts +0 -48
  498. package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
  499. package/dist/drafts/draft15/session-fsm.js +0 -479
  500. package/dist/drafts/draft15/session-fsm.js.map +0 -1
  501. package/dist/drafts/draft15/session.d.ts +0 -5
  502. package/dist/drafts/draft15/session.d.ts.map +0 -1
  503. package/dist/drafts/draft15/session.js +0 -5
  504. package/dist/drafts/draft15/session.js.map +0 -1
  505. package/dist/drafts/draft15/types.d.ts +0 -232
  506. package/dist/drafts/draft15/types.d.ts.map +0 -1
  507. package/dist/drafts/draft15/types.js +0 -4
  508. package/dist/drafts/draft15/types.js.map +0 -1
  509. package/dist/drafts/draft16/codec.d.ts +0 -29
  510. package/dist/drafts/draft16/codec.d.ts.map +0 -1
  511. package/dist/drafts/draft16/codec.js +0 -747
  512. package/dist/drafts/draft16/codec.js.map +0 -1
  513. package/dist/drafts/draft16/data-streams.d.ts +0 -34
  514. package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
  515. package/dist/drafts/draft16/data-streams.js +0 -667
  516. package/dist/drafts/draft16/data-streams.js.map +0 -1
  517. package/dist/drafts/draft16/index.d.ts +0 -9
  518. package/dist/drafts/draft16/index.d.ts.map +0 -1
  519. package/dist/drafts/draft16/index.js +0 -7
  520. package/dist/drafts/draft16/index.js.map +0 -1
  521. package/dist/drafts/draft16/messages.d.ts +0 -32
  522. package/dist/drafts/draft16/messages.d.ts.map +0 -1
  523. package/dist/drafts/draft16/messages.js +0 -62
  524. package/dist/drafts/draft16/messages.js.map +0 -1
  525. package/dist/drafts/draft16/rules.d.ts +0 -8
  526. package/dist/drafts/draft16/rules.d.ts.map +0 -1
  527. package/dist/drafts/draft16/rules.js +0 -84
  528. package/dist/drafts/draft16/rules.js.map +0 -1
  529. package/dist/drafts/draft16/session-fsm.d.ts +0 -48
  530. package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
  531. package/dist/drafts/draft16/session-fsm.js +0 -474
  532. package/dist/drafts/draft16/session-fsm.js.map +0 -1
  533. package/dist/drafts/draft16/session.d.ts +0 -5
  534. package/dist/drafts/draft16/session.d.ts.map +0 -1
  535. package/dist/drafts/draft16/session.js +0 -5
  536. package/dist/drafts/draft16/session.js.map +0 -1
  537. package/dist/drafts/draft16/types.d.ts +0 -238
  538. package/dist/drafts/draft16/types.d.ts.map +0 -1
  539. package/dist/drafts/draft16/types.js +0 -4
  540. package/dist/drafts/draft16/types.js.map +0 -1
  541. package/dist/drafts/draft17/codec.d.ts +0 -29
  542. package/dist/drafts/draft17/codec.d.ts.map +0 -1
  543. package/dist/drafts/draft17/codec.js +0 -799
  544. package/dist/drafts/draft17/codec.js.map +0 -1
  545. package/dist/drafts/draft17/data-streams.d.ts +0 -13
  546. package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
  547. package/dist/drafts/draft17/data-streams.js +0 -633
  548. package/dist/drafts/draft17/data-streams.js.map +0 -1
  549. package/dist/drafts/draft17/index.d.ts +0 -8
  550. package/dist/drafts/draft17/index.d.ts.map +0 -1
  551. package/dist/drafts/draft17/index.js +0 -6
  552. package/dist/drafts/draft17/index.js.map +0 -1
  553. package/dist/drafts/draft17/messages.d.ts +0 -25
  554. package/dist/drafts/draft17/messages.d.ts.map +0 -1
  555. package/dist/drafts/draft17/messages.js +0 -48
  556. package/dist/drafts/draft17/messages.js.map +0 -1
  557. package/dist/drafts/draft17/rules.d.ts +0 -8
  558. package/dist/drafts/draft17/rules.d.ts.map +0 -1
  559. package/dist/drafts/draft17/rules.js +0 -71
  560. package/dist/drafts/draft17/rules.js.map +0 -1
  561. package/dist/drafts/draft17/session-fsm.d.ts +0 -45
  562. package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
  563. package/dist/drafts/draft17/session-fsm.js +0 -328
  564. package/dist/drafts/draft17/session-fsm.js.map +0 -1
  565. package/dist/drafts/draft17/session.d.ts +0 -5
  566. package/dist/drafts/draft17/session.d.ts.map +0 -1
  567. package/dist/drafts/draft17/session.js +0 -6
  568. package/dist/drafts/draft17/session.js.map +0 -1
  569. package/dist/drafts/draft17/types.d.ts +0 -219
  570. package/dist/drafts/draft17/types.d.ts.map +0 -1
  571. package/dist/drafts/draft17/types.js +0 -3
  572. package/dist/drafts/draft17/types.js.map +0 -1
  573. package/dist/index.d.ts.map +0 -1
  574. package/dist/index.js.map +0 -1
  575. package/dist/session.d.ts.map +0 -1
  576. package/dist/session.js.map +0 -1
@@ -1,8 +1,12 @@
1
+ import {
2
+ bytesToHex,
3
+ hexToBytes
4
+ } from "./chunk-HDWJ2GDE.js";
1
5
  import {
2
6
  BufferReader,
3
7
  BufferWriter,
4
8
  DecodeError
5
- } from "./chunk-A27S7HW7.js";
9
+ } from "./chunk-7L43FE6P.js";
6
10
 
7
11
  // src/drafts/draft10/messages.ts
8
12
  var MSG_SUBSCRIBE_UPDATE = 0x02n;
@@ -68,147 +72,428 @@ var MESSAGE_ID_MAP = new Map(
68
72
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
69
73
  );
70
74
 
71
- // src/drafts/draft10/codec.ts
72
- function bytesToHex(bytes) {
73
- let hex = "";
74
- for (let i = 0; i < bytes.byteLength; i++) {
75
- hex += bytes[i].toString(16).padStart(2, "0");
75
+ // src/drafts/draft10/data-streams.ts
76
+ var SUBGROUP_STREAM_TYPE = 0x04n;
77
+ var DATAGRAM_TYPE = 0x01n;
78
+ var DATAGRAM_STATUS_TYPE = 0x02n;
79
+ var FETCH_STREAM_TYPE = 0x05n;
80
+ function encodeSubgroupStream(stream) {
81
+ const w = new BufferWriter();
82
+ w.writeVarInt(SUBGROUP_STREAM_TYPE);
83
+ w.writeVarInt(stream.trackAlias);
84
+ w.writeVarInt(stream.groupId);
85
+ w.writeVarInt(stream.subgroupId);
86
+ w.writeUint8(stream.publisherPriority);
87
+ for (const obj of stream.objects) {
88
+ w.writeVarInt(obj.objectId);
89
+ w.writeVarInt(obj.extensionHeadersLength);
90
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
91
+ w.writeVarInt(obj.payloadLength);
92
+ if (obj.payloadLength === 0 && obj.status !== void 0) {
93
+ w.writeVarInt(obj.status);
94
+ } else {
95
+ w.writeBytes(obj.payload);
96
+ }
76
97
  }
77
- return hex;
98
+ return w.finish();
78
99
  }
79
- function hexToBytes(hex) {
80
- const bytes = new Uint8Array(hex.length / 2);
81
- for (let i = 0; i < hex.length; i += 2) {
82
- bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
83
- }
84
- return bytes;
100
+ function encodeDatagram(dg) {
101
+ const w = new BufferWriter();
102
+ w.writeVarInt(DATAGRAM_TYPE);
103
+ w.writeVarInt(dg.trackAlias);
104
+ w.writeVarInt(dg.groupId);
105
+ w.writeVarInt(dg.objectId);
106
+ w.writeUint8(dg.publisherPriority);
107
+ w.writeVarInt(dg.extensionHeadersLength);
108
+ if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
109
+ w.writeBytes(dg.payload);
110
+ return w.finish();
85
111
  }
86
- function encodeSetupParams(params, w) {
87
- let count = 0;
88
- if (params.path !== void 0) count++;
89
- if (params.max_subscribe_id !== void 0) count++;
90
- if (params.unknown) count += params.unknown.length;
91
- w.writeVarInt(count);
92
- if (params.path !== void 0) {
93
- w.writeVarInt(SETUP_PARAM_PATH);
94
- const encoded = new TextEncoder().encode(params.path);
95
- w.writeVarInt(encoded.byteLength);
96
- w.writeBytes(encoded);
97
- }
98
- if (params.max_subscribe_id !== void 0) {
99
- w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
100
- const tmpW = new BufferWriter(16);
101
- tmpW.writeVarInt(params.max_subscribe_id);
102
- const raw = tmpW.finish();
103
- w.writeVarInt(raw.byteLength);
104
- w.writeBytes(raw);
105
- }
106
- if (params.unknown) {
107
- for (const u of params.unknown) {
108
- w.writeVarInt(BigInt(u.id));
109
- const raw = hexToBytes(u.raw_hex);
110
- w.writeVarInt(raw.byteLength);
111
- w.writeBytes(raw);
112
- }
113
- }
112
+ function encodeDatagramStatus(dg) {
113
+ const w = new BufferWriter();
114
+ w.writeVarInt(DATAGRAM_STATUS_TYPE);
115
+ w.writeVarInt(dg.trackAlias);
116
+ w.writeVarInt(dg.groupId);
117
+ w.writeVarInt(dg.objectId);
118
+ w.writeUint8(dg.publisherPriority);
119
+ w.writeVarInt(dg.extensionHeadersLength);
120
+ if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
121
+ w.writeVarInt(dg.objectStatus);
122
+ return w.finish();
114
123
  }
115
- function decodeSetupParams(r) {
116
- const count = Number(r.readVarInt());
117
- const result = {};
118
- const unknown = [];
119
- for (let i = 0; i < count; i++) {
120
- const paramType = r.readVarInt();
121
- const length = Number(r.readVarInt());
122
- if (paramType === SETUP_PARAM_PATH) {
123
- const bytes = r.readBytes(length);
124
- result.path = new TextDecoder().decode(bytes);
125
- } else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
126
- const blob = r.readBytes(length);
127
- const tmpReader = new BufferReader(blob);
128
- result.max_subscribe_id = tmpReader.readVarInt();
124
+ function encodeFetchStream(stream) {
125
+ const w = new BufferWriter();
126
+ w.writeVarInt(FETCH_STREAM_TYPE);
127
+ w.writeVarInt(stream.subscribeId);
128
+ for (const obj of stream.objects) {
129
+ w.writeVarInt(obj.groupId);
130
+ w.writeVarInt(obj.subgroupId);
131
+ w.writeVarInt(obj.objectId);
132
+ w.writeUint8(obj.publisherPriority);
133
+ w.writeVarInt(obj.extensionHeadersLength);
134
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
135
+ w.writeVarInt(obj.payloadLength);
136
+ if (obj.payloadLength === 0 && obj.status !== void 0) {
137
+ w.writeVarInt(obj.status);
129
138
  } else {
130
- const bytes = r.readBytes(length);
131
- unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
139
+ w.writeBytes(obj.payload);
132
140
  }
133
141
  }
134
- if (unknown.length > 0) result.unknown = unknown;
135
- return result;
142
+ return w.finish();
136
143
  }
137
- function encodeParams(params, w) {
138
- let count = params.unknown ? params.unknown.length : 0;
139
- if (params.authorization_info !== void 0) count++;
140
- if (params.delivery_timeout !== void 0) count++;
141
- if (params.max_cache_duration !== void 0) count++;
142
- w.writeVarInt(count);
143
- if (params.authorization_info !== void 0) {
144
- w.writeVarInt(PARAM_AUTHORIZATION_INFO);
145
- const encoded = new TextEncoder().encode(params.authorization_info);
146
- w.writeVarInt(encoded.byteLength);
147
- w.writeBytes(encoded);
148
- }
149
- if (params.delivery_timeout !== void 0) {
150
- w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
151
- const tmpW = new BufferWriter(16);
152
- tmpW.writeVarInt(params.delivery_timeout);
153
- const raw = tmpW.finish();
154
- w.writeVarInt(raw.byteLength);
155
- w.writeBytes(raw);
156
- }
157
- if (params.max_cache_duration !== void 0) {
158
- w.writeVarInt(PARAM_MAX_CACHE_DURATION);
159
- const tmpW = new BufferWriter(16);
160
- tmpW.writeVarInt(params.max_cache_duration);
161
- const raw = tmpW.finish();
162
- w.writeVarInt(raw.byteLength);
163
- w.writeBytes(raw);
164
- }
165
- if (params.unknown) {
166
- for (const u of params.unknown) {
167
- w.writeVarInt(BigInt(u.id));
168
- const raw = hexToBytes(u.raw_hex);
169
- w.writeVarInt(raw.byteLength);
170
- w.writeBytes(raw);
144
+ function decodeSubgroupStream(bytes) {
145
+ try {
146
+ const r = new BufferReader(bytes);
147
+ const streamType = Number(r.readVarInt());
148
+ if (streamType !== 4) {
149
+ return {
150
+ ok: false,
151
+ error: new DecodeError(
152
+ "CONSTRAINT_VIOLATION",
153
+ `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
154
+ 0
155
+ )
156
+ };
157
+ }
158
+ const trackAlias = r.readVarInt();
159
+ const groupId = r.readVarInt();
160
+ const subgroupId = r.readVarInt();
161
+ const publisherPriority = r.readUint8();
162
+ const objects = [];
163
+ while (r.remaining > 0) {
164
+ const byteOffset = r.offset;
165
+ const objectId = r.readVarInt();
166
+ const extensionHeadersLength = r.readVarInt();
167
+ const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
168
+ const payloadLength = Number(r.readVarInt());
169
+ let payload;
170
+ let status;
171
+ let payloadByteOffset;
172
+ if (payloadLength === 0) {
173
+ status = r.readVarInt();
174
+ payloadByteOffset = r.offset;
175
+ payload = new Uint8Array(0);
176
+ } else {
177
+ payloadByteOffset = r.offset;
178
+ payload = r.readBytesView(payloadLength);
179
+ }
180
+ const obj = {
181
+ type: "object",
182
+ byteOffset,
183
+ payloadByteOffset,
184
+ objectId,
185
+ extensionHeadersLength,
186
+ extensionData,
187
+ payloadLength,
188
+ payload
189
+ };
190
+ if (status !== void 0) obj.status = status;
191
+ objects.push(obj);
171
192
  }
193
+ return {
194
+ ok: true,
195
+ value: {
196
+ type: "subgroup",
197
+ streamTypeId: 4,
198
+ trackAlias,
199
+ groupId,
200
+ subgroupId,
201
+ publisherPriority,
202
+ objects
203
+ },
204
+ bytesRead: r.offset
205
+ };
206
+ } catch (e) {
207
+ if (e instanceof DecodeError) return { ok: false, error: e };
208
+ throw e;
172
209
  }
173
210
  }
174
- function decodeParams(r) {
175
- const count = Number(r.readVarInt());
176
- const result = {};
177
- const unknown = [];
178
- for (let i = 0; i < count; i++) {
179
- const paramType = r.readVarInt();
180
- const length = Number(r.readVarInt());
181
- if (paramType === PARAM_AUTHORIZATION_INFO) {
182
- const bytes = r.readBytes(length);
183
- result.authorization_info = new TextDecoder().decode(bytes);
184
- } else if (paramType === PARAM_DELIVERY_TIMEOUT) {
185
- const blob = r.readBytes(length);
186
- const tmpReader = new BufferReader(blob);
187
- result.delivery_timeout = tmpReader.readVarInt();
188
- } else if (paramType === PARAM_MAX_CACHE_DURATION) {
189
- const blob = r.readBytes(length);
190
- const tmpReader = new BufferReader(blob);
191
- result.max_cache_duration = tmpReader.readVarInt();
192
- } else {
193
- const bytes = r.readBytes(length);
194
- unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
211
+ function decodeDatagram(bytes) {
212
+ try {
213
+ const r = new BufferReader(bytes);
214
+ const streamType = Number(r.readVarInt());
215
+ if (streamType !== 1) {
216
+ return {
217
+ ok: false,
218
+ error: new DecodeError(
219
+ "CONSTRAINT_VIOLATION",
220
+ `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
221
+ 0
222
+ )
223
+ };
195
224
  }
225
+ const trackAlias = r.readVarInt();
226
+ const groupId = r.readVarInt();
227
+ const objectId = r.readVarInt();
228
+ const publisherPriority = r.readUint8();
229
+ const extensionHeadersLength = r.readVarInt();
230
+ const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
231
+ const payload = r.remaining > 0 ? r.readBytesView(r.remaining) : new Uint8Array(0);
232
+ return {
233
+ ok: true,
234
+ value: {
235
+ type: "datagram",
236
+ streamTypeId: 1,
237
+ trackAlias,
238
+ groupId,
239
+ objectId,
240
+ publisherPriority,
241
+ extensionHeadersLength,
242
+ extensionData,
243
+ payload
244
+ },
245
+ bytesRead: r.offset
246
+ };
247
+ } catch (e) {
248
+ if (e instanceof DecodeError) return { ok: false, error: e };
249
+ throw e;
196
250
  }
197
- if (unknown.length > 0) result.unknown = unknown;
198
- return result;
199
- }
200
- function encodeClientSetupPayload(msg, w) {
201
- w.writeVarInt(msg.supported_versions.length);
202
- for (const v of msg.supported_versions) w.writeVarInt(v);
203
- encodeSetupParams(msg.parameters, w);
204
- }
205
- function encodeServerSetupPayload(msg, w) {
206
- w.writeVarInt(msg.selected_version);
207
- encodeSetupParams(msg.parameters, w);
208
251
  }
209
- function encodeSubscribePayload(msg, w) {
210
- w.writeVarInt(msg.subscribe_id);
211
- w.writeVarInt(msg.track_alias);
252
+ function decodeDatagramStatus(bytes) {
253
+ try {
254
+ const r = new BufferReader(bytes);
255
+ const streamType = Number(r.readVarInt());
256
+ if (streamType !== 2) {
257
+ return {
258
+ ok: false,
259
+ error: new DecodeError(
260
+ "CONSTRAINT_VIOLATION",
261
+ `Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
262
+ 0
263
+ )
264
+ };
265
+ }
266
+ const trackAlias = r.readVarInt();
267
+ const groupId = r.readVarInt();
268
+ const objectId = r.readVarInt();
269
+ const publisherPriority = r.readUint8();
270
+ const extensionHeadersLength = r.readVarInt();
271
+ const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
272
+ const objectStatus = r.readVarInt();
273
+ return {
274
+ ok: true,
275
+ value: {
276
+ type: "datagram_status",
277
+ streamTypeId: 2,
278
+ trackAlias,
279
+ groupId,
280
+ objectId,
281
+ publisherPriority,
282
+ extensionHeadersLength,
283
+ extensionData,
284
+ objectStatus
285
+ },
286
+ bytesRead: r.offset
287
+ };
288
+ } catch (e) {
289
+ if (e instanceof DecodeError) return { ok: false, error: e };
290
+ throw e;
291
+ }
292
+ }
293
+ function decodeFetchStream(bytes) {
294
+ try {
295
+ const r = new BufferReader(bytes);
296
+ const streamType = r.readVarInt();
297
+ if (streamType !== FETCH_STREAM_TYPE) {
298
+ return {
299
+ ok: false,
300
+ error: new DecodeError(
301
+ "CONSTRAINT_VIOLATION",
302
+ `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
303
+ 0
304
+ )
305
+ };
306
+ }
307
+ const subscribeId = r.readVarInt();
308
+ const objects = [];
309
+ while (r.remaining > 0) {
310
+ const byteOffset = r.offset;
311
+ const groupId = r.readVarInt();
312
+ const subgroupId = r.readVarInt();
313
+ const objectId = r.readVarInt();
314
+ const publisherPriority = r.readUint8();
315
+ const extensionHeadersLength = r.readVarInt();
316
+ const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
317
+ const payloadLength = Number(r.readVarInt());
318
+ let payload;
319
+ let status;
320
+ let payloadByteOffset;
321
+ if (payloadLength === 0) {
322
+ status = r.readVarInt();
323
+ payloadByteOffset = r.offset;
324
+ payload = new Uint8Array(0);
325
+ } else {
326
+ payloadByteOffset = r.offset;
327
+ payload = r.readBytesView(payloadLength);
328
+ }
329
+ const obj = {
330
+ type: "object",
331
+ byteOffset,
332
+ payloadByteOffset,
333
+ groupId,
334
+ subgroupId,
335
+ objectId,
336
+ publisherPriority,
337
+ extensionHeadersLength,
338
+ extensionData,
339
+ payloadLength,
340
+ payload
341
+ };
342
+ if (status !== void 0) obj.status = status;
343
+ objects.push(obj);
344
+ }
345
+ return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
346
+ } catch (e) {
347
+ if (e instanceof DecodeError) return { ok: false, error: e };
348
+ throw e;
349
+ }
350
+ }
351
+ function decodeDataStream(streamType, bytes) {
352
+ switch (streamType) {
353
+ case "subgroup":
354
+ return decodeSubgroupStream(bytes);
355
+ case "datagram":
356
+ return decodeDatagram(bytes);
357
+ case "datagram_status":
358
+ return decodeDatagramStatus(bytes);
359
+ case "fetch":
360
+ return decodeFetchStream(bytes);
361
+ default: {
362
+ const _ = streamType;
363
+ throw new Error(`Unknown: ${_}`);
364
+ }
365
+ }
366
+ }
367
+
368
+ // src/drafts/draft10/codec.ts
369
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
370
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
371
+ function encodeSetupParams(params, w) {
372
+ let count = 0;
373
+ if (params.path !== void 0) count++;
374
+ if (params.max_subscribe_id !== void 0) count++;
375
+ if (params.unknown) count += params.unknown.length;
376
+ w.writeVarInt(count);
377
+ if (params.path !== void 0) {
378
+ w.writeVarInt(SETUP_PARAM_PATH);
379
+ const encoded = textEncoder.encode(params.path);
380
+ w.writeVarInt(encoded.byteLength);
381
+ w.writeBytes(encoded);
382
+ }
383
+ if (params.max_subscribe_id !== void 0) {
384
+ w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
385
+ const tmpW = new BufferWriter(16);
386
+ tmpW.writeVarInt(params.max_subscribe_id);
387
+ const raw = tmpW.finish();
388
+ w.writeVarInt(raw.byteLength);
389
+ w.writeBytes(raw);
390
+ }
391
+ if (params.unknown) {
392
+ for (const u of params.unknown) {
393
+ w.writeVarInt(BigInt(u.id));
394
+ const raw = hexToBytes(u.raw_hex);
395
+ w.writeVarInt(raw.byteLength);
396
+ w.writeBytes(raw);
397
+ }
398
+ }
399
+ }
400
+ function decodeSetupParams(r) {
401
+ const count = Number(r.readVarInt());
402
+ const result = {};
403
+ const unknown = [];
404
+ for (let i = 0; i < count; i++) {
405
+ const paramType = r.readVarInt();
406
+ const length = Number(r.readVarInt());
407
+ if (paramType === SETUP_PARAM_PATH) {
408
+ const bytes = r.readBytes(length);
409
+ result.path = textDecoder.decode(bytes);
410
+ } else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
411
+ const blob = r.readBytes(length);
412
+ const tmpReader = new BufferReader(blob);
413
+ result.max_subscribe_id = tmpReader.readVarInt();
414
+ } else {
415
+ const bytes = r.readBytes(length);
416
+ unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
417
+ }
418
+ }
419
+ if (unknown.length > 0) result.unknown = unknown;
420
+ return result;
421
+ }
422
+ function encodeParams(params, w) {
423
+ let count = params.unknown ? params.unknown.length : 0;
424
+ if (params.authorization_info !== void 0) count++;
425
+ if (params.delivery_timeout !== void 0) count++;
426
+ if (params.max_cache_duration !== void 0) count++;
427
+ w.writeVarInt(count);
428
+ if (params.authorization_info !== void 0) {
429
+ w.writeVarInt(PARAM_AUTHORIZATION_INFO);
430
+ const encoded = textEncoder.encode(params.authorization_info);
431
+ w.writeVarInt(encoded.byteLength);
432
+ w.writeBytes(encoded);
433
+ }
434
+ if (params.delivery_timeout !== void 0) {
435
+ w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
436
+ const tmpW = new BufferWriter(16);
437
+ tmpW.writeVarInt(params.delivery_timeout);
438
+ const raw = tmpW.finish();
439
+ w.writeVarInt(raw.byteLength);
440
+ w.writeBytes(raw);
441
+ }
442
+ if (params.max_cache_duration !== void 0) {
443
+ w.writeVarInt(PARAM_MAX_CACHE_DURATION);
444
+ const tmpW = new BufferWriter(16);
445
+ tmpW.writeVarInt(params.max_cache_duration);
446
+ const raw = tmpW.finish();
447
+ w.writeVarInt(raw.byteLength);
448
+ w.writeBytes(raw);
449
+ }
450
+ if (params.unknown) {
451
+ for (const u of params.unknown) {
452
+ w.writeVarInt(BigInt(u.id));
453
+ const raw = hexToBytes(u.raw_hex);
454
+ w.writeVarInt(raw.byteLength);
455
+ w.writeBytes(raw);
456
+ }
457
+ }
458
+ }
459
+ function decodeParams(r) {
460
+ const count = Number(r.readVarInt());
461
+ const result = {};
462
+ const unknown = [];
463
+ for (let i = 0; i < count; i++) {
464
+ const paramType = r.readVarInt();
465
+ const length = Number(r.readVarInt());
466
+ if (paramType === PARAM_AUTHORIZATION_INFO) {
467
+ const bytes = r.readBytes(length);
468
+ result.authorization_info = textDecoder.decode(bytes);
469
+ } else if (paramType === PARAM_DELIVERY_TIMEOUT) {
470
+ const blob = r.readBytes(length);
471
+ const tmpReader = new BufferReader(blob);
472
+ result.delivery_timeout = tmpReader.readVarInt();
473
+ } else if (paramType === PARAM_MAX_CACHE_DURATION) {
474
+ const blob = r.readBytes(length);
475
+ const tmpReader = new BufferReader(blob);
476
+ result.max_cache_duration = tmpReader.readVarInt();
477
+ } else {
478
+ const bytes = r.readBytes(length);
479
+ unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
480
+ }
481
+ }
482
+ if (unknown.length > 0) result.unknown = unknown;
483
+ return result;
484
+ }
485
+ function encodeClientSetupPayload(msg, w) {
486
+ w.writeVarInt(msg.supported_versions.length);
487
+ for (const v of msg.supported_versions) w.writeVarInt(v);
488
+ encodeSetupParams(msg.parameters, w);
489
+ }
490
+ function encodeServerSetupPayload(msg, w) {
491
+ w.writeVarInt(msg.selected_version);
492
+ encodeSetupParams(msg.parameters, w);
493
+ }
494
+ function encodeSubscribePayload(msg, w) {
495
+ w.writeVarInt(msg.subscribe_id);
496
+ w.writeVarInt(msg.track_alias);
212
497
  w.writeTuple(msg.track_namespace);
213
498
  w.writeString(msg.track_name);
214
499
  w.writeUint8(msg.subscriber_priority);
@@ -582,449 +867,175 @@ function decodeTrackStatusPayload(r) {
582
867
  return {
583
868
  type: "track_status",
584
869
  track_namespace,
585
- track_name,
586
- status_code,
587
- last_group_id,
588
- last_object_id
589
- };
590
- }
591
- function decodeGoAwayPayload(r) {
592
- const new_session_uri = r.readString();
593
- return { type: "goaway", new_session_uri };
594
- }
595
- function decodeMaxSubscribeIdPayload(r) {
596
- const subscribe_id = r.readVarInt();
597
- return { type: "max_subscribe_id", subscribe_id };
598
- }
599
- function decodeSubscribesBlockedPayload(r) {
600
- const maximum_subscribe_id = r.readVarInt();
601
- return { type: "subscribes_blocked", maximum_subscribe_id };
602
- }
603
- var payloadDecoders = /* @__PURE__ */ new Map([
604
- [MSG_CLIENT_SETUP, decodeClientSetupPayload],
605
- [MSG_SERVER_SETUP, decodeServerSetupPayload],
606
- [MSG_SUBSCRIBE, decodeSubscribePayload],
607
- [MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
608
- [MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
609
- [MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
610
- [MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
611
- [MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
612
- [MSG_ANNOUNCE, decodeAnnouncePayload],
613
- [MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
614
- [MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
615
- [MSG_UNANNOUNCE, decodeUnannouncePayload],
616
- [MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
617
- [MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
618
- [MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
619
- [MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
620
- [MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
621
- [MSG_FETCH, decodeFetchPayload],
622
- [MSG_FETCH_OK, decodeFetchOkPayload],
623
- [MSG_FETCH_ERROR, decodeFetchErrorPayload],
624
- [MSG_FETCH_CANCEL, decodeFetchCancelPayload],
625
- [MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
626
- [MSG_TRACK_STATUS, decodeTrackStatusPayload],
627
- [MSG_GOAWAY, decodeGoAwayPayload],
628
- [MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
629
- [MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
630
- ]);
631
- function encodeMessage(message) {
632
- const typeId = MESSAGE_ID_MAP.get(message.type);
633
- if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
634
- const payloadWriter = new BufferWriter();
635
- encodePayload(message, payloadWriter);
636
- const payload = payloadWriter.finish();
637
- const writer = new BufferWriter();
638
- writer.writeVarInt(typeId);
639
- writer.writeVarInt(payload.byteLength);
640
- writer.writeBytes(payload);
641
- return writer.finish();
642
- }
643
- function encodePayload(msg, w) {
644
- switch (msg.type) {
645
- case "client_setup":
646
- return encodeClientSetupPayload(msg, w);
647
- case "server_setup":
648
- return encodeServerSetupPayload(msg, w);
649
- case "subscribe":
650
- return encodeSubscribePayload(msg, w);
651
- case "subscribe_ok":
652
- return encodeSubscribeOkPayload(msg, w);
653
- case "subscribe_error":
654
- return encodeSubscribeErrorPayload(msg, w);
655
- case "subscribe_update":
656
- return encodeSubscribeUpdatePayload(msg, w);
657
- case "subscribe_done":
658
- return encodeSubscribeDonePayload(msg, w);
659
- case "unsubscribe":
660
- return encodeUnsubscribePayload(msg, w);
661
- case "announce":
662
- return encodeAnnouncePayload(msg, w);
663
- case "announce_ok":
664
- return encodeAnnounceOkPayload(msg, w);
665
- case "announce_error":
666
- return encodeAnnounceErrorPayload(msg, w);
667
- case "unannounce":
668
- return encodeUnannouncePayload(msg, w);
669
- case "announce_cancel":
670
- return encodeAnnounceCancelPayload(msg, w);
671
- case "subscribe_announces":
672
- return encodeSubscribeAnnouncesPayload(msg, w);
673
- case "subscribe_announces_ok":
674
- return encodeSubscribeAnnouncesOkPayload(msg, w);
675
- case "subscribe_announces_error":
676
- return encodeSubscribeAnnouncesErrorPayload(msg, w);
677
- case "unsubscribe_announces":
678
- return encodeUnsubscribeAnnouncesPayload(msg, w);
679
- case "fetch":
680
- return encodeFetchPayload(msg, w);
681
- case "fetch_ok":
682
- return encodeFetchOkPayload(msg, w);
683
- case "fetch_error":
684
- return encodeFetchErrorPayload(msg, w);
685
- case "fetch_cancel":
686
- return encodeFetchCancelPayload(msg, w);
687
- case "track_status_request":
688
- return encodeTrackStatusRequestPayload(msg, w);
689
- case "track_status":
690
- return encodeTrackStatusPayload(msg, w);
691
- case "goaway":
692
- return encodeGoAwayPayload(msg, w);
693
- case "max_subscribe_id":
694
- return encodeMaxSubscribeIdPayload(msg, w);
695
- case "subscribes_blocked":
696
- return encodeSubscribesBlockedPayload(msg, w);
697
- default: {
698
- const _exhaustive = msg;
699
- throw new Error(`Unhandled message type: ${_exhaustive.type}`);
700
- }
701
- }
702
- }
703
- function decodeMessage(bytes) {
704
- try {
705
- const reader = new BufferReader(bytes);
706
- const typeId = reader.readVarInt();
707
- const payloadLength = Number(reader.readVarInt());
708
- const payloadBytes = reader.readBytes(payloadLength);
709
- const payloadReader = new BufferReader(payloadBytes);
710
- const decoder = payloadDecoders.get(typeId);
711
- if (!decoder) {
712
- return {
713
- ok: false,
714
- error: new DecodeError(
715
- "UNKNOWN_MESSAGE_TYPE",
716
- `Unknown message type ID: 0x${typeId.toString(16)}`,
717
- 0
718
- )
719
- };
720
- }
721
- const message = decoder(payloadReader);
722
- return { ok: true, value: message, bytesRead: reader.offset };
723
- } catch (e) {
724
- if (e instanceof DecodeError) return { ok: false, error: e };
725
- throw e;
726
- }
727
- }
728
- var SUBGROUP_STREAM_TYPE = 0x04n;
729
- var DATAGRAM_TYPE = 0x01n;
730
- var DATAGRAM_STATUS_TYPE = 0x02n;
731
- var FETCH_STREAM_TYPE = 0x05n;
732
- function encodeSubgroupStream(stream) {
733
- const w = new BufferWriter();
734
- w.writeVarInt(SUBGROUP_STREAM_TYPE);
735
- w.writeVarInt(stream.trackAlias);
736
- w.writeVarInt(stream.groupId);
737
- w.writeVarInt(stream.subgroupId);
738
- w.writeUint8(stream.publisherPriority);
739
- for (const obj of stream.objects) {
740
- w.writeVarInt(obj.objectId);
741
- w.writeVarInt(0n);
742
- w.writeVarInt(obj.payloadLength);
743
- if (obj.payloadLength === 0 && obj.status !== void 0) {
744
- w.writeVarInt(obj.status);
745
- } else {
746
- w.writeBytes(obj.payload);
747
- }
748
- }
749
- return w.finish();
750
- }
751
- function encodeDatagram(dg) {
752
- const w = new BufferWriter();
753
- w.writeVarInt(DATAGRAM_TYPE);
754
- w.writeVarInt(dg.trackAlias);
755
- w.writeVarInt(dg.groupId);
756
- w.writeVarInt(dg.objectId);
757
- w.writeUint8(dg.publisherPriority);
758
- w.writeVarInt(0n);
759
- w.writeBytes(dg.payload);
760
- return w.finish();
761
- }
762
- function encodeDatagramStatus(dg) {
763
- const w = new BufferWriter();
764
- w.writeVarInt(DATAGRAM_STATUS_TYPE);
765
- w.writeVarInt(dg.trackAlias);
766
- w.writeVarInt(dg.groupId);
767
- w.writeVarInt(dg.objectId);
768
- w.writeUint8(dg.publisherPriority);
769
- w.writeVarInt(0n);
770
- w.writeVarInt(dg.objectStatus);
771
- return w.finish();
772
- }
773
- function encodeFetchStream(stream) {
774
- const w = new BufferWriter();
775
- w.writeVarInt(FETCH_STREAM_TYPE);
776
- w.writeVarInt(stream.subscribeId);
777
- for (const obj of stream.objects) {
778
- w.writeVarInt(obj.groupId);
779
- w.writeVarInt(obj.subgroupId);
780
- w.writeVarInt(obj.objectId);
781
- w.writeUint8(obj.publisherPriority);
782
- w.writeVarInt(0n);
783
- w.writeVarInt(obj.payloadLength);
784
- if (obj.payloadLength === 0 && obj.status !== void 0) {
785
- w.writeVarInt(obj.status);
786
- } else {
787
- w.writeBytes(obj.payload);
788
- }
789
- }
790
- return w.finish();
791
- }
792
- function decodeSubgroupStream(bytes) {
793
- try {
794
- const r = new BufferReader(bytes);
795
- const streamType = Number(r.readVarInt());
796
- if (streamType !== 4) {
797
- return {
798
- ok: false,
799
- error: new DecodeError(
800
- "CONSTRAINT_VIOLATION",
801
- `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
802
- 0
803
- )
804
- };
805
- }
806
- const trackAlias = r.readVarInt();
807
- const groupId = r.readVarInt();
808
- const subgroupId = r.readVarInt();
809
- const publisherPriority = r.readUint8();
810
- const objects = [];
811
- while (r.remaining > 0) {
812
- const objectId = r.readVarInt();
813
- const extensionHeadersLength = r.readVarInt();
814
- if (extensionHeadersLength > 0n) {
815
- r.readBytes(Number(extensionHeadersLength));
816
- }
817
- const payloadLength = Number(r.readVarInt());
818
- let payload;
819
- let status;
820
- if (payloadLength === 0) {
821
- status = r.readVarInt();
822
- payload = new Uint8Array(0);
823
- } else {
824
- payload = r.readBytes(payloadLength);
825
- }
826
- const obj = {
827
- type: "object",
828
- objectId,
829
- extensionHeadersLength,
830
- payloadLength,
831
- payload
832
- };
833
- if (status !== void 0) obj.status = status;
834
- objects.push(obj);
835
- }
836
- return {
837
- ok: true,
838
- value: {
839
- type: "subgroup",
840
- streamTypeId: 4,
841
- trackAlias,
842
- groupId,
843
- subgroupId,
844
- publisherPriority,
845
- objects
846
- },
847
- bytesRead: r.offset
848
- };
849
- } catch (e) {
850
- if (e instanceof DecodeError) return { ok: false, error: e };
851
- throw e;
852
- }
870
+ track_name,
871
+ status_code,
872
+ last_group_id,
873
+ last_object_id
874
+ };
853
875
  }
854
- function decodeDatagram(bytes) {
855
- try {
856
- const r = new BufferReader(bytes);
857
- const streamType = Number(r.readVarInt());
858
- if (streamType !== 1) {
859
- return {
860
- ok: false,
861
- error: new DecodeError(
862
- "CONSTRAINT_VIOLATION",
863
- `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
864
- 0
865
- )
866
- };
867
- }
868
- const trackAlias = r.readVarInt();
869
- const groupId = r.readVarInt();
870
- const objectId = r.readVarInt();
871
- const publisherPriority = r.readUint8();
872
- const extensionHeadersLength = r.readVarInt();
873
- if (extensionHeadersLength > 0n) {
874
- r.readBytes(Number(extensionHeadersLength));
875
- }
876
- const payload = r.remaining > 0 ? r.readBytes(r.remaining) : new Uint8Array(0);
877
- return {
878
- ok: true,
879
- value: {
880
- type: "datagram",
881
- streamTypeId: 1,
882
- trackAlias,
883
- groupId,
884
- objectId,
885
- publisherPriority,
886
- extensionHeadersLength,
887
- payload
888
- },
889
- bytesRead: r.offset
890
- };
891
- } catch (e) {
892
- if (e instanceof DecodeError) return { ok: false, error: e };
893
- throw e;
894
- }
876
+ function decodeGoAwayPayload(r) {
877
+ const new_session_uri = r.readString();
878
+ return { type: "goaway", new_session_uri };
895
879
  }
896
- function decodeDatagramStatus(bytes) {
897
- try {
898
- const r = new BufferReader(bytes);
899
- const streamType = Number(r.readVarInt());
900
- if (streamType !== 2) {
901
- return {
902
- ok: false,
903
- error: new DecodeError(
904
- "CONSTRAINT_VIOLATION",
905
- `Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
906
- 0
907
- )
908
- };
909
- }
910
- const trackAlias = r.readVarInt();
911
- const groupId = r.readVarInt();
912
- const objectId = r.readVarInt();
913
- const publisherPriority = r.readUint8();
914
- const extensionHeadersLength = r.readVarInt();
915
- if (extensionHeadersLength > 0n) {
916
- r.readBytes(Number(extensionHeadersLength));
880
+ function decodeMaxSubscribeIdPayload(r) {
881
+ const subscribe_id = r.readVarInt();
882
+ return { type: "max_subscribe_id", subscribe_id };
883
+ }
884
+ function decodeSubscribesBlockedPayload(r) {
885
+ const maximum_subscribe_id = r.readVarInt();
886
+ return { type: "subscribes_blocked", maximum_subscribe_id };
887
+ }
888
+ var payloadDecoders = /* @__PURE__ */ new Map([
889
+ [MSG_CLIENT_SETUP, decodeClientSetupPayload],
890
+ [MSG_SERVER_SETUP, decodeServerSetupPayload],
891
+ [MSG_SUBSCRIBE, decodeSubscribePayload],
892
+ [MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
893
+ [MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
894
+ [MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
895
+ [MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
896
+ [MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
897
+ [MSG_ANNOUNCE, decodeAnnouncePayload],
898
+ [MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
899
+ [MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
900
+ [MSG_UNANNOUNCE, decodeUnannouncePayload],
901
+ [MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
902
+ [MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
903
+ [MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
904
+ [MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
905
+ [MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
906
+ [MSG_FETCH, decodeFetchPayload],
907
+ [MSG_FETCH_OK, decodeFetchOkPayload],
908
+ [MSG_FETCH_ERROR, decodeFetchErrorPayload],
909
+ [MSG_FETCH_CANCEL, decodeFetchCancelPayload],
910
+ [MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
911
+ [MSG_TRACK_STATUS, decodeTrackStatusPayload],
912
+ [MSG_GOAWAY, decodeGoAwayPayload],
913
+ [MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
914
+ [MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
915
+ ]);
916
+ function encodeMessage(message) {
917
+ const typeId = MESSAGE_ID_MAP.get(message.type);
918
+ if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
919
+ const payloadWriter = new BufferWriter();
920
+ encodePayload(message, payloadWriter);
921
+ const payload = payloadWriter.finishView();
922
+ const writer = new BufferWriter(payload.byteLength + 16);
923
+ writer.writeVarInt(typeId);
924
+ writer.writeVarInt(payload.byteLength);
925
+ writer.writeBytes(payload);
926
+ return writer.finish();
927
+ }
928
+ function encodePayload(msg, w) {
929
+ switch (msg.type) {
930
+ case "client_setup":
931
+ return encodeClientSetupPayload(msg, w);
932
+ case "server_setup":
933
+ return encodeServerSetupPayload(msg, w);
934
+ case "subscribe":
935
+ return encodeSubscribePayload(msg, w);
936
+ case "subscribe_ok":
937
+ return encodeSubscribeOkPayload(msg, w);
938
+ case "subscribe_error":
939
+ return encodeSubscribeErrorPayload(msg, w);
940
+ case "subscribe_update":
941
+ return encodeSubscribeUpdatePayload(msg, w);
942
+ case "subscribe_done":
943
+ return encodeSubscribeDonePayload(msg, w);
944
+ case "unsubscribe":
945
+ return encodeUnsubscribePayload(msg, w);
946
+ case "announce":
947
+ return encodeAnnouncePayload(msg, w);
948
+ case "announce_ok":
949
+ return encodeAnnounceOkPayload(msg, w);
950
+ case "announce_error":
951
+ return encodeAnnounceErrorPayload(msg, w);
952
+ case "unannounce":
953
+ return encodeUnannouncePayload(msg, w);
954
+ case "announce_cancel":
955
+ return encodeAnnounceCancelPayload(msg, w);
956
+ case "subscribe_announces":
957
+ return encodeSubscribeAnnouncesPayload(msg, w);
958
+ case "subscribe_announces_ok":
959
+ return encodeSubscribeAnnouncesOkPayload(msg, w);
960
+ case "subscribe_announces_error":
961
+ return encodeSubscribeAnnouncesErrorPayload(msg, w);
962
+ case "unsubscribe_announces":
963
+ return encodeUnsubscribeAnnouncesPayload(msg, w);
964
+ case "fetch":
965
+ return encodeFetchPayload(msg, w);
966
+ case "fetch_ok":
967
+ return encodeFetchOkPayload(msg, w);
968
+ case "fetch_error":
969
+ return encodeFetchErrorPayload(msg, w);
970
+ case "fetch_cancel":
971
+ return encodeFetchCancelPayload(msg, w);
972
+ case "track_status_request":
973
+ return encodeTrackStatusRequestPayload(msg, w);
974
+ case "track_status":
975
+ return encodeTrackStatusPayload(msg, w);
976
+ case "goaway":
977
+ return encodeGoAwayPayload(msg, w);
978
+ case "max_subscribe_id":
979
+ return encodeMaxSubscribeIdPayload(msg, w);
980
+ case "subscribes_blocked":
981
+ return encodeSubscribesBlockedPayload(msg, w);
982
+ default: {
983
+ const _exhaustive = msg;
984
+ throw new Error(`Unhandled message type: ${_exhaustive.type}`);
917
985
  }
918
- const objectStatus = r.readVarInt();
919
- return {
920
- ok: true,
921
- value: {
922
- type: "datagram_status",
923
- streamTypeId: 2,
924
- trackAlias,
925
- groupId,
926
- objectId,
927
- publisherPriority,
928
- extensionHeadersLength,
929
- objectStatus
930
- },
931
- bytesRead: r.offset
932
- };
933
- } catch (e) {
934
- if (e instanceof DecodeError) return { ok: false, error: e };
935
- throw e;
936
986
  }
937
987
  }
938
- function decodeFetchStream(bytes) {
988
+ function decodeMessage(bytes) {
939
989
  try {
940
- const r = new BufferReader(bytes);
941
- const streamType = r.readVarInt();
942
- if (streamType !== FETCH_STREAM_TYPE) {
990
+ const reader = new BufferReader(bytes);
991
+ const typeId = reader.readVarInt();
992
+ const payloadLength = Number(reader.readVarInt());
993
+ const payloadBytes = reader.readBytes(payloadLength);
994
+ const payloadReader = new BufferReader(payloadBytes);
995
+ const decoder = payloadDecoders.get(typeId);
996
+ if (!decoder) {
943
997
  return {
944
998
  ok: false,
945
999
  error: new DecodeError(
946
- "CONSTRAINT_VIOLATION",
947
- `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
1000
+ "UNKNOWN_MESSAGE_TYPE",
1001
+ `Unknown message type ID: 0x${typeId.toString(16)}`,
948
1002
  0
949
1003
  )
950
1004
  };
951
1005
  }
952
- const subscribeId = r.readVarInt();
953
- const objects = [];
954
- while (r.remaining > 0) {
955
- const groupId = r.readVarInt();
956
- const subgroupId = r.readVarInt();
957
- const objectId = r.readVarInt();
958
- const publisherPriority = r.readUint8();
959
- const extensionHeadersLength = r.readVarInt();
960
- if (extensionHeadersLength > 0n) {
961
- r.readBytes(Number(extensionHeadersLength));
962
- }
963
- const payloadLength = Number(r.readVarInt());
964
- let payload;
965
- let status;
966
- if (payloadLength === 0) {
967
- status = r.readVarInt();
968
- payload = new Uint8Array(0);
969
- } else {
970
- payload = r.readBytes(payloadLength);
971
- }
972
- const obj = {
973
- type: "object",
974
- groupId,
975
- subgroupId,
976
- objectId,
977
- publisherPriority,
978
- extensionHeadersLength,
979
- payloadLength,
980
- payload
981
- };
982
- if (status !== void 0) obj.status = status;
983
- objects.push(obj);
984
- }
985
- return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
1006
+ const message = decoder(payloadReader);
1007
+ return { ok: true, value: message, bytesRead: reader.offset };
986
1008
  } catch (e) {
987
1009
  if (e instanceof DecodeError) return { ok: false, error: e };
988
1010
  throw e;
989
1011
  }
990
1012
  }
991
- function decodeDataStream(streamType, bytes) {
992
- switch (streamType) {
993
- case "subgroup":
994
- return decodeSubgroupStream(bytes);
995
- case "datagram":
996
- return decodeDatagram(bytes);
997
- case "datagram_status":
998
- return decodeDatagramStatus(bytes);
999
- case "fetch":
1000
- return decodeFetchStream(bytes);
1001
- default: {
1002
- const _ = streamType;
1003
- throw new Error(`Unknown: ${_}`);
1004
- }
1005
- }
1006
- }
1007
1013
  function createStreamDecoder() {
1008
1014
  let buffer = new Uint8Array(0);
1015
+ let offset = 0;
1009
1016
  return new TransformStream({
1010
1017
  transform(chunk, controller) {
1018
+ if (offset > 0) {
1019
+ buffer = buffer.subarray(offset);
1020
+ offset = 0;
1021
+ }
1011
1022
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
1012
1023
  newBuffer.set(buffer, 0);
1013
1024
  newBuffer.set(chunk, buffer.length);
1014
1025
  buffer = newBuffer;
1015
- while (buffer.length > 0) {
1016
- const result = decodeMessage(buffer);
1026
+ while (offset < buffer.length) {
1027
+ const result = decodeMessage(buffer.subarray(offset));
1017
1028
  if (!result.ok) {
1018
1029
  if (result.error.code === "UNEXPECTED_END") break;
1019
1030
  controller.error(result.error);
1020
1031
  return;
1021
1032
  }
1022
1033
  controller.enqueue(result.value);
1023
- buffer = buffer.slice(result.bytesRead);
1034
+ offset += result.bytesRead;
1024
1035
  }
1025
1036
  },
1026
1037
  flush(controller) {
1027
- if (buffer.length > 0)
1038
+ if (offset < buffer.length)
1028
1039
  controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1029
1040
  }
1030
1041
  });
@@ -1081,8 +1092,6 @@ export {
1081
1092
  PARAM_MAX_CACHE_DURATION,
1082
1093
  MESSAGE_TYPE_MAP,
1083
1094
  MESSAGE_ID_MAP,
1084
- encodeMessage,
1085
- decodeMessage,
1086
1095
  encodeSubgroupStream,
1087
1096
  encodeDatagram,
1088
1097
  encodeDatagramStatus,
@@ -1092,6 +1101,8 @@ export {
1092
1101
  decodeDatagramStatus,
1093
1102
  decodeFetchStream,
1094
1103
  decodeDataStream,
1104
+ encodeMessage,
1105
+ decodeMessage,
1095
1106
  createStreamDecoder,
1096
1107
  createDraft10Codec
1097
1108
  };