@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/draft08/messages.ts
8
12
  var MSG_SUBSCRIBE_UPDATE = 0x02n;
@@ -68,144 +72,461 @@ var MESSAGE_ID_MAP = new Map(
68
72
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
69
73
  );
70
74
 
71
- // src/drafts/draft08/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/draft08/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.extensionCount);
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);
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.extensionCount);
108
+ if (dg.extensionData.length > 0) w.writeBytes(dg.extensionData);
109
+ w.writeVarInt(dg.payloadLength);
110
+ if (dg.payloadLength === 0 && dg.objectStatus !== void 0) {
111
+ w.writeVarInt(dg.objectStatus);
112
+ } else {
113
+ w.writeBytes(dg.payload);
83
114
  }
84
- return bytes;
115
+ return w.finish();
85
116
  }
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
- }
117
+ function encodeDatagramStatus(dg) {
118
+ const w = new BufferWriter();
119
+ w.writeVarInt(DATAGRAM_STATUS_TYPE);
120
+ w.writeVarInt(dg.trackAlias);
121
+ w.writeVarInt(dg.groupId);
122
+ w.writeVarInt(dg.objectId);
123
+ w.writeUint8(dg.publisherPriority);
124
+ w.writeVarInt(dg.objectStatus);
125
+ return w.finish();
114
126
  }
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();
127
+ function encodeFetchStream(stream) {
128
+ const w = new BufferWriter();
129
+ w.writeVarInt(FETCH_STREAM_TYPE);
130
+ w.writeVarInt(stream.subscribeId);
131
+ for (const obj of stream.objects) {
132
+ w.writeVarInt(obj.groupId);
133
+ w.writeVarInt(obj.subgroupId);
134
+ w.writeVarInt(obj.objectId);
135
+ w.writeUint8(obj.publisherPriority);
136
+ w.writeVarInt(obj.extensionCount);
137
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
138
+ w.writeVarInt(obj.payloadLength);
139
+ if (obj.payloadLength === 0 && obj.status !== void 0) {
140
+ w.writeVarInt(obj.status);
129
141
  } else {
130
- const bytes = r.readBytes(length);
131
- unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
142
+ w.writeBytes(obj.payload);
132
143
  }
133
144
  }
134
- if (unknown.length > 0) result.unknown = unknown;
135
- return result;
145
+ return w.finish();
136
146
  }
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);
147
+ function decodeSubgroupStream(bytes) {
148
+ try {
149
+ const r = new BufferReader(bytes);
150
+ const streamType = Number(r.readVarInt());
151
+ if (streamType !== 4) {
152
+ return {
153
+ ok: false,
154
+ error: new DecodeError(
155
+ "CONSTRAINT_VIOLATION",
156
+ `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
157
+ 0
158
+ )
159
+ };
160
+ }
161
+ const trackAlias = r.readVarInt();
162
+ const groupId = r.readVarInt();
163
+ const subgroupId = r.readVarInt();
164
+ const publisherPriority = r.readUint8();
165
+ const objects = [];
166
+ while (r.remaining > 0) {
167
+ const byteOffset = r.offset;
168
+ const objectId = r.readVarInt();
169
+ const extensionCount = Number(r.readVarInt());
170
+ const extStart = r.offset;
171
+ for (let i = 0; i < extensionCount; i++) {
172
+ const extType = Number(r.readVarInt());
173
+ if (extType % 2 === 0) {
174
+ r.readVarInt();
175
+ } else {
176
+ const extLen = Number(r.readVarInt());
177
+ if (extLen > 0) r.readBytesView(extLen);
178
+ }
179
+ }
180
+ const extensionData = r.buffer.slice(extStart, r.offset);
181
+ const payloadLength = Number(r.readVarInt());
182
+ let payload;
183
+ let status;
184
+ let payloadByteOffset;
185
+ if (payloadLength === 0) {
186
+ status = r.readVarInt();
187
+ payloadByteOffset = r.offset;
188
+ payload = new Uint8Array(0);
189
+ } else {
190
+ payloadByteOffset = r.offset;
191
+ payload = r.readBytesView(payloadLength);
192
+ }
193
+ const obj = {
194
+ type: "object",
195
+ byteOffset,
196
+ payloadByteOffset,
197
+ objectId,
198
+ extensionCount: BigInt(extensionCount),
199
+ extensionData,
200
+ payloadLength,
201
+ payload
202
+ };
203
+ if (status !== void 0) obj.status = status;
204
+ objects.push(obj);
171
205
  }
206
+ return {
207
+ ok: true,
208
+ value: {
209
+ type: "subgroup",
210
+ streamTypeId: 4,
211
+ trackAlias,
212
+ groupId,
213
+ subgroupId,
214
+ publisherPriority,
215
+ objects
216
+ },
217
+ bytesRead: r.offset
218
+ };
219
+ } catch (e) {
220
+ if (e instanceof DecodeError) return { ok: false, error: e };
221
+ throw e;
172
222
  }
173
223
  }
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();
224
+ function decodeDatagram(bytes) {
225
+ try {
226
+ const r = new BufferReader(bytes);
227
+ const streamType = Number(r.readVarInt());
228
+ if (streamType !== 1) {
229
+ return {
230
+ ok: false,
231
+ error: new DecodeError(
232
+ "CONSTRAINT_VIOLATION",
233
+ `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
234
+ 0
235
+ )
236
+ };
237
+ }
238
+ const trackAlias = r.readVarInt();
239
+ const groupId = r.readVarInt();
240
+ const objectId = r.readVarInt();
241
+ const publisherPriority = r.readUint8();
242
+ const extensionCount = Number(r.readVarInt());
243
+ const extStart = r.offset;
244
+ for (let i = 0; i < extensionCount; i++) {
245
+ const extType = Number(r.readVarInt());
246
+ if (extType % 2 === 0) {
247
+ r.readVarInt();
248
+ } else {
249
+ const extLen = Number(r.readVarInt());
250
+ if (extLen > 0) r.readBytesView(extLen);
251
+ }
252
+ }
253
+ const extensionData = r.buffer.slice(extStart, r.offset);
254
+ const payloadLength = Number(r.readVarInt());
255
+ let objectStatus;
256
+ let payload;
257
+ if (payloadLength === 0) {
258
+ objectStatus = r.readVarInt();
259
+ payload = new Uint8Array(0);
192
260
  } else {
193
- const bytes = r.readBytes(length);
194
- unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
261
+ payload = r.readBytesView(payloadLength);
195
262
  }
196
- }
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
- }
263
+ const result = {
264
+ type: "datagram",
265
+ streamTypeId: 1,
266
+ trackAlias,
267
+ groupId,
268
+ objectId,
269
+ publisherPriority,
270
+ extensionCount: BigInt(extensionCount),
271
+ extensionData,
272
+ objectStatus: objectStatus ?? 0n,
273
+ payloadLength,
274
+ payload
275
+ };
276
+ return { ok: true, value: result, bytesRead: r.offset };
277
+ } catch (e) {
278
+ if (e instanceof DecodeError) return { ok: false, error: e };
279
+ throw e;
280
+ }
281
+ }
282
+ function decodeDatagramStatus(bytes) {
283
+ try {
284
+ const r = new BufferReader(bytes);
285
+ const streamType = Number(r.readVarInt());
286
+ if (streamType !== 2) {
287
+ return {
288
+ ok: false,
289
+ error: new DecodeError(
290
+ "CONSTRAINT_VIOLATION",
291
+ `Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
292
+ 0
293
+ )
294
+ };
295
+ }
296
+ const trackAlias = r.readVarInt();
297
+ const groupId = r.readVarInt();
298
+ const objectId = r.readVarInt();
299
+ const publisherPriority = r.readUint8();
300
+ const objectStatus = r.readVarInt();
301
+ return {
302
+ ok: true,
303
+ value: {
304
+ type: "datagram_status",
305
+ streamTypeId: 2,
306
+ trackAlias,
307
+ groupId,
308
+ objectId,
309
+ publisherPriority,
310
+ objectStatus
311
+ },
312
+ bytesRead: r.offset
313
+ };
314
+ } catch (e) {
315
+ if (e instanceof DecodeError) return { ok: false, error: e };
316
+ throw e;
317
+ }
318
+ }
319
+ function decodeFetchStream(bytes) {
320
+ try {
321
+ const r = new BufferReader(bytes);
322
+ const streamType = r.readVarInt();
323
+ if (streamType !== FETCH_STREAM_TYPE) {
324
+ return {
325
+ ok: false,
326
+ error: new DecodeError(
327
+ "CONSTRAINT_VIOLATION",
328
+ `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
329
+ 0
330
+ )
331
+ };
332
+ }
333
+ const subscribeId = r.readVarInt();
334
+ const objects = [];
335
+ while (r.remaining > 0) {
336
+ const byteOffset = r.offset;
337
+ const groupId = r.readVarInt();
338
+ const subgroupId = r.readVarInt();
339
+ const objectId = r.readVarInt();
340
+ const publisherPriority = r.readUint8();
341
+ const extensionCount = Number(r.readVarInt());
342
+ const extStart = r.offset;
343
+ for (let i = 0; i < extensionCount; i++) {
344
+ const extType = Number(r.readVarInt());
345
+ if (extType % 2 === 0) {
346
+ r.readVarInt();
347
+ } else {
348
+ const extLen = Number(r.readVarInt());
349
+ if (extLen > 0) r.readBytesView(extLen);
350
+ }
351
+ }
352
+ const extensionData = r.buffer.slice(extStart, r.offset);
353
+ const payloadLength = Number(r.readVarInt());
354
+ let payload;
355
+ let status;
356
+ let payloadByteOffset;
357
+ if (payloadLength === 0) {
358
+ status = r.readVarInt();
359
+ payloadByteOffset = r.offset;
360
+ payload = new Uint8Array(0);
361
+ } else {
362
+ payloadByteOffset = r.offset;
363
+ payload = r.readBytesView(payloadLength);
364
+ }
365
+ const obj = {
366
+ type: "object",
367
+ byteOffset,
368
+ payloadByteOffset,
369
+ groupId,
370
+ subgroupId,
371
+ objectId,
372
+ publisherPriority,
373
+ extensionCount: BigInt(extensionCount),
374
+ extensionData,
375
+ payloadLength,
376
+ payload
377
+ };
378
+ if (status !== void 0) obj.status = status;
379
+ objects.push(obj);
380
+ }
381
+ return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
382
+ } catch (e) {
383
+ if (e instanceof DecodeError) return { ok: false, error: e };
384
+ throw e;
385
+ }
386
+ }
387
+ function decodeDataStream(streamType, bytes) {
388
+ switch (streamType) {
389
+ case "subgroup":
390
+ return decodeSubgroupStream(bytes);
391
+ case "datagram":
392
+ return decodeDatagram(bytes);
393
+ case "datagram_status":
394
+ return decodeDatagramStatus(bytes);
395
+ case "fetch":
396
+ return decodeFetchStream(bytes);
397
+ default: {
398
+ const _ = streamType;
399
+ throw new Error(`Unknown: ${_}`);
400
+ }
401
+ }
402
+ }
403
+
404
+ // src/drafts/draft08/codec.ts
405
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
406
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
407
+ function encodeSetupParams(params, w) {
408
+ let count = 0;
409
+ if (params.path !== void 0) count++;
410
+ if (params.max_subscribe_id !== void 0) count++;
411
+ if (params.unknown) count += params.unknown.length;
412
+ w.writeVarInt(count);
413
+ if (params.path !== void 0) {
414
+ w.writeVarInt(SETUP_PARAM_PATH);
415
+ const encoded = textEncoder.encode(params.path);
416
+ w.writeVarInt(encoded.byteLength);
417
+ w.writeBytes(encoded);
418
+ }
419
+ if (params.max_subscribe_id !== void 0) {
420
+ w.writeVarInt(SETUP_PARAM_MAX_SUBSCRIBE_ID);
421
+ const tmpW = new BufferWriter(16);
422
+ tmpW.writeVarInt(params.max_subscribe_id);
423
+ const raw = tmpW.finish();
424
+ w.writeVarInt(raw.byteLength);
425
+ w.writeBytes(raw);
426
+ }
427
+ if (params.unknown) {
428
+ for (const u of params.unknown) {
429
+ w.writeVarInt(BigInt(u.id));
430
+ const raw = hexToBytes(u.raw_hex);
431
+ w.writeVarInt(raw.byteLength);
432
+ w.writeBytes(raw);
433
+ }
434
+ }
435
+ }
436
+ function decodeSetupParams(r) {
437
+ const count = Number(r.readVarInt());
438
+ const result = {};
439
+ const unknown = [];
440
+ for (let i = 0; i < count; i++) {
441
+ const paramType = r.readVarInt();
442
+ const length = Number(r.readVarInt());
443
+ if (paramType === SETUP_PARAM_PATH) {
444
+ const bytes = r.readBytes(length);
445
+ result.path = textDecoder.decode(bytes);
446
+ } else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
447
+ const blob = r.readBytes(length);
448
+ const tmpReader = new BufferReader(blob);
449
+ result.max_subscribe_id = tmpReader.readVarInt();
450
+ } else {
451
+ const bytes = r.readBytes(length);
452
+ unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
453
+ }
454
+ }
455
+ if (unknown.length > 0) result.unknown = unknown;
456
+ return result;
457
+ }
458
+ function encodeParams(params, w) {
459
+ let count = params.unknown ? params.unknown.length : 0;
460
+ if (params.authorization_info !== void 0) count++;
461
+ if (params.delivery_timeout !== void 0) count++;
462
+ if (params.max_cache_duration !== void 0) count++;
463
+ w.writeVarInt(count);
464
+ if (params.authorization_info !== void 0) {
465
+ w.writeVarInt(PARAM_AUTHORIZATION_INFO);
466
+ const encoded = textEncoder.encode(params.authorization_info);
467
+ w.writeVarInt(encoded.byteLength);
468
+ w.writeBytes(encoded);
469
+ }
470
+ if (params.delivery_timeout !== void 0) {
471
+ w.writeVarInt(PARAM_DELIVERY_TIMEOUT);
472
+ const tmpW = new BufferWriter(16);
473
+ tmpW.writeVarInt(params.delivery_timeout);
474
+ const raw = tmpW.finish();
475
+ w.writeVarInt(raw.byteLength);
476
+ w.writeBytes(raw);
477
+ }
478
+ if (params.max_cache_duration !== void 0) {
479
+ w.writeVarInt(PARAM_MAX_CACHE_DURATION);
480
+ const tmpW = new BufferWriter(16);
481
+ tmpW.writeVarInt(params.max_cache_duration);
482
+ const raw = tmpW.finish();
483
+ w.writeVarInt(raw.byteLength);
484
+ w.writeBytes(raw);
485
+ }
486
+ if (params.unknown) {
487
+ for (const u of params.unknown) {
488
+ w.writeVarInt(BigInt(u.id));
489
+ const raw = hexToBytes(u.raw_hex);
490
+ w.writeVarInt(raw.byteLength);
491
+ w.writeBytes(raw);
492
+ }
493
+ }
494
+ }
495
+ function decodeParams(r) {
496
+ const count = Number(r.readVarInt());
497
+ const result = {};
498
+ const unknown = [];
499
+ for (let i = 0; i < count; i++) {
500
+ const paramType = r.readVarInt();
501
+ const length = Number(r.readVarInt());
502
+ if (paramType === PARAM_AUTHORIZATION_INFO) {
503
+ const bytes = r.readBytes(length);
504
+ result.authorization_info = textDecoder.decode(bytes);
505
+ } else if (paramType === PARAM_DELIVERY_TIMEOUT) {
506
+ const blob = r.readBytes(length);
507
+ const tmpReader = new BufferReader(blob);
508
+ result.delivery_timeout = tmpReader.readVarInt();
509
+ } else if (paramType === PARAM_MAX_CACHE_DURATION) {
510
+ const blob = r.readBytes(length);
511
+ const tmpReader = new BufferReader(blob);
512
+ result.max_cache_duration = tmpReader.readVarInt();
513
+ } else {
514
+ const bytes = r.readBytes(length);
515
+ unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
516
+ }
517
+ }
518
+ if (unknown.length > 0) result.unknown = unknown;
519
+ return result;
520
+ }
521
+ function encodeClientSetupPayload(msg, w) {
522
+ w.writeVarInt(msg.supported_versions.length);
523
+ for (const v of msg.supported_versions) w.writeVarInt(v);
524
+ encodeSetupParams(msg.parameters, w);
525
+ }
526
+ function encodeServerSetupPayload(msg, w) {
527
+ w.writeVarInt(msg.selected_version);
528
+ encodeSetupParams(msg.parameters, w);
529
+ }
209
530
  function encodeSubscribePayload(msg, w) {
210
531
  w.writeVarInt(msg.subscribe_id);
211
532
  w.writeVarInt(msg.track_alias);
@@ -590,453 +911,167 @@ function decodeTrackStatusPayload(r) {
590
911
  }
591
912
  function decodeGoAwayPayload(r) {
592
913
  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(0);
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(0);
759
- w.writeVarInt(dg.payloadLength);
760
- if (dg.payloadLength === 0 && dg.objectStatus !== void 0) {
761
- w.writeVarInt(dg.objectStatus);
762
- } else {
763
- w.writeBytes(dg.payload);
764
- }
765
- return w.finish();
766
- }
767
- function encodeDatagramStatus(dg) {
768
- const w = new BufferWriter();
769
- w.writeVarInt(DATAGRAM_STATUS_TYPE);
770
- w.writeVarInt(dg.trackAlias);
771
- w.writeVarInt(dg.groupId);
772
- w.writeVarInt(dg.objectId);
773
- w.writeUint8(dg.publisherPriority);
774
- w.writeVarInt(dg.objectStatus);
775
- return w.finish();
776
- }
777
- function encodeFetchStream(stream) {
778
- const w = new BufferWriter();
779
- w.writeVarInt(FETCH_STREAM_TYPE);
780
- w.writeVarInt(stream.subscribeId);
781
- for (const obj of stream.objects) {
782
- w.writeVarInt(obj.groupId);
783
- w.writeVarInt(obj.subgroupId);
784
- w.writeVarInt(obj.objectId);
785
- w.writeUint8(obj.publisherPriority);
786
- w.writeVarInt(0);
787
- w.writeVarInt(obj.payloadLength);
788
- if (obj.payloadLength === 0 && obj.status !== void 0) {
789
- w.writeVarInt(obj.status);
790
- } else {
791
- w.writeBytes(obj.payload);
792
- }
793
- }
794
- return w.finish();
795
- }
796
- function decodeSubgroupStream(bytes) {
797
- try {
798
- const r = new BufferReader(bytes);
799
- const streamType = Number(r.readVarInt());
800
- if (streamType !== 4) {
801
- return {
802
- ok: false,
803
- error: new DecodeError(
804
- "CONSTRAINT_VIOLATION",
805
- `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
806
- 0
807
- )
808
- };
809
- }
810
- const trackAlias = r.readVarInt();
811
- const groupId = r.readVarInt();
812
- const subgroupId = r.readVarInt();
813
- const publisherPriority = r.readUint8();
814
- const objects = [];
815
- while (r.remaining > 0) {
816
- const objectId = r.readVarInt();
817
- const extensionCount = Number(r.readVarInt());
818
- for (let i = 0; i < extensionCount; i++) {
819
- r.readVarInt();
820
- const extLen = Number(r.readVarInt());
821
- r.readBytes(extLen);
822
- }
823
- const payloadLength = Number(r.readVarInt());
824
- let payload;
825
- let status;
826
- if (payloadLength === 0) {
827
- status = r.readVarInt();
828
- payload = new Uint8Array(0);
829
- } else {
830
- payload = r.readBytes(payloadLength);
831
- }
832
- const obj = {
833
- type: "object",
834
- objectId,
835
- extensionCount: BigInt(extensionCount),
836
- payloadLength,
837
- payload
838
- };
839
- if (status !== void 0) obj.status = status;
840
- objects.push(obj);
841
- }
842
- return {
843
- ok: true,
844
- value: {
845
- type: "subgroup",
846
- streamTypeId: 4,
847
- trackAlias,
848
- groupId,
849
- subgroupId,
850
- publisherPriority,
851
- objects
852
- },
853
- bytesRead: r.offset
854
- };
855
- } catch (e) {
856
- if (e instanceof DecodeError) return { ok: false, error: e };
857
- throw e;
858
- }
914
+ return { type: "goaway", new_session_uri };
859
915
  }
860
- function decodeDatagram(bytes) {
861
- try {
862
- const r = new BufferReader(bytes);
863
- const streamType = Number(r.readVarInt());
864
- if (streamType !== 1) {
865
- return {
866
- ok: false,
867
- error: new DecodeError(
868
- "CONSTRAINT_VIOLATION",
869
- `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
870
- 0
871
- )
872
- };
873
- }
874
- const trackAlias = r.readVarInt();
875
- const groupId = r.readVarInt();
876
- const objectId = r.readVarInt();
877
- const publisherPriority = r.readUint8();
878
- const extensionCount = Number(r.readVarInt());
879
- for (let i = 0; i < extensionCount; i++) {
880
- r.readVarInt();
881
- const extLen = Number(r.readVarInt());
882
- r.readBytes(extLen);
883
- }
884
- const payloadLength = Number(r.readVarInt());
885
- let objectStatus;
886
- let payload;
887
- if (payloadLength === 0) {
888
- objectStatus = r.readVarInt();
889
- payload = new Uint8Array(0);
890
- } else {
891
- payload = r.readBytes(payloadLength);
892
- }
893
- const result = {
894
- type: "datagram",
895
- streamTypeId: 1,
896
- trackAlias,
897
- groupId,
898
- objectId,
899
- publisherPriority,
900
- extensionCount: BigInt(extensionCount),
901
- objectStatus: objectStatus ?? 0n,
902
- payloadLength,
903
- payload
904
- };
905
- return { ok: true, value: result, bytesRead: r.offset };
906
- } catch (e) {
907
- if (e instanceof DecodeError) return { ok: false, error: e };
908
- throw e;
909
- }
916
+ function decodeMaxSubscribeIdPayload(r) {
917
+ const subscribe_id = r.readVarInt();
918
+ return { type: "max_subscribe_id", subscribe_id };
910
919
  }
911
- function decodeDatagramStatus(bytes) {
912
- try {
913
- const r = new BufferReader(bytes);
914
- const streamType = Number(r.readVarInt());
915
- if (streamType !== 2) {
916
- return {
917
- ok: false,
918
- error: new DecodeError(
919
- "CONSTRAINT_VIOLATION",
920
- `Expected datagram_status type 0x02, got 0x${streamType.toString(16)}`,
921
- 0
922
- )
923
- };
920
+ function decodeSubscribesBlockedPayload(r) {
921
+ const maximum_subscribe_id = r.readVarInt();
922
+ return { type: "subscribes_blocked", maximum_subscribe_id };
923
+ }
924
+ var payloadDecoders = /* @__PURE__ */ new Map([
925
+ [MSG_CLIENT_SETUP, decodeClientSetupPayload],
926
+ [MSG_SERVER_SETUP, decodeServerSetupPayload],
927
+ [MSG_SUBSCRIBE, decodeSubscribePayload],
928
+ [MSG_SUBSCRIBE_OK, decodeSubscribeOkPayload],
929
+ [MSG_SUBSCRIBE_ERROR, decodeSubscribeErrorPayload],
930
+ [MSG_SUBSCRIBE_UPDATE, decodeSubscribeUpdatePayload],
931
+ [MSG_SUBSCRIBE_DONE, decodeSubscribeDonePayload],
932
+ [MSG_UNSUBSCRIBE, decodeUnsubscribePayload],
933
+ [MSG_ANNOUNCE, decodeAnnouncePayload],
934
+ [MSG_ANNOUNCE_OK, decodeAnnounceOkPayload],
935
+ [MSG_ANNOUNCE_ERROR, decodeAnnounceErrorPayload],
936
+ [MSG_UNANNOUNCE, decodeUnannouncePayload],
937
+ [MSG_ANNOUNCE_CANCEL, decodeAnnounceCancelPayload],
938
+ [MSG_SUBSCRIBE_ANNOUNCES, decodeSubscribeAnnouncesPayload],
939
+ [MSG_SUBSCRIBE_ANNOUNCES_OK, decodeSubscribeAnnouncesOkPayload],
940
+ [MSG_SUBSCRIBE_ANNOUNCES_ERROR, decodeSubscribeAnnouncesErrorPayload],
941
+ [MSG_UNSUBSCRIBE_ANNOUNCES, decodeUnsubscribeAnnouncesPayload],
942
+ [MSG_FETCH, decodeFetchPayload],
943
+ [MSG_FETCH_OK, decodeFetchOkPayload],
944
+ [MSG_FETCH_ERROR, decodeFetchErrorPayload],
945
+ [MSG_FETCH_CANCEL, decodeFetchCancelPayload],
946
+ [MSG_TRACK_STATUS_REQUEST, decodeTrackStatusRequestPayload],
947
+ [MSG_TRACK_STATUS, decodeTrackStatusPayload],
948
+ [MSG_GOAWAY, decodeGoAwayPayload],
949
+ [MSG_MAX_SUBSCRIBE_ID, decodeMaxSubscribeIdPayload],
950
+ [MSG_SUBSCRIBES_BLOCKED, decodeSubscribesBlockedPayload]
951
+ ]);
952
+ function encodeMessage(message) {
953
+ const typeId = MESSAGE_ID_MAP.get(message.type);
954
+ if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
955
+ const payloadWriter = new BufferWriter();
956
+ encodePayload(message, payloadWriter);
957
+ const payload = payloadWriter.finishView();
958
+ const writer = new BufferWriter(payload.byteLength + 16);
959
+ writer.writeVarInt(typeId);
960
+ writer.writeVarInt(payload.byteLength);
961
+ writer.writeBytes(payload);
962
+ return writer.finish();
963
+ }
964
+ function encodePayload(msg, w) {
965
+ switch (msg.type) {
966
+ case "client_setup":
967
+ return encodeClientSetupPayload(msg, w);
968
+ case "server_setup":
969
+ return encodeServerSetupPayload(msg, w);
970
+ case "subscribe":
971
+ return encodeSubscribePayload(msg, w);
972
+ case "subscribe_ok":
973
+ return encodeSubscribeOkPayload(msg, w);
974
+ case "subscribe_error":
975
+ return encodeSubscribeErrorPayload(msg, w);
976
+ case "subscribe_update":
977
+ return encodeSubscribeUpdatePayload(msg, w);
978
+ case "subscribe_done":
979
+ return encodeSubscribeDonePayload(msg, w);
980
+ case "unsubscribe":
981
+ return encodeUnsubscribePayload(msg, w);
982
+ case "announce":
983
+ return encodeAnnouncePayload(msg, w);
984
+ case "announce_ok":
985
+ return encodeAnnounceOkPayload(msg, w);
986
+ case "announce_error":
987
+ return encodeAnnounceErrorPayload(msg, w);
988
+ case "unannounce":
989
+ return encodeUnannouncePayload(msg, w);
990
+ case "announce_cancel":
991
+ return encodeAnnounceCancelPayload(msg, w);
992
+ case "subscribe_announces":
993
+ return encodeSubscribeAnnouncesPayload(msg, w);
994
+ case "subscribe_announces_ok":
995
+ return encodeSubscribeAnnouncesOkPayload(msg, w);
996
+ case "subscribe_announces_error":
997
+ return encodeSubscribeAnnouncesErrorPayload(msg, w);
998
+ case "unsubscribe_announces":
999
+ return encodeUnsubscribeAnnouncesPayload(msg, w);
1000
+ case "fetch":
1001
+ return encodeFetchPayload(msg, w);
1002
+ case "fetch_ok":
1003
+ return encodeFetchOkPayload(msg, w);
1004
+ case "fetch_error":
1005
+ return encodeFetchErrorPayload(msg, w);
1006
+ case "fetch_cancel":
1007
+ return encodeFetchCancelPayload(msg, w);
1008
+ case "track_status_request":
1009
+ return encodeTrackStatusRequestPayload(msg, w);
1010
+ case "track_status":
1011
+ return encodeTrackStatusPayload(msg, w);
1012
+ case "goaway":
1013
+ return encodeGoAwayPayload(msg, w);
1014
+ case "max_subscribe_id":
1015
+ return encodeMaxSubscribeIdPayload(msg, w);
1016
+ case "subscribes_blocked":
1017
+ return encodeSubscribesBlockedPayload(msg, w);
1018
+ default: {
1019
+ const _exhaustive = msg;
1020
+ throw new Error(`Unhandled message type: ${_exhaustive.type}`);
924
1021
  }
925
- const trackAlias = r.readVarInt();
926
- const groupId = r.readVarInt();
927
- const objectId = r.readVarInt();
928
- const publisherPriority = r.readUint8();
929
- const objectStatus = r.readVarInt();
930
- return {
931
- ok: true,
932
- value: {
933
- type: "datagram_status",
934
- streamTypeId: 2,
935
- trackAlias,
936
- groupId,
937
- objectId,
938
- publisherPriority,
939
- objectStatus
940
- },
941
- bytesRead: r.offset
942
- };
943
- } catch (e) {
944
- if (e instanceof DecodeError) return { ok: false, error: e };
945
- throw e;
946
1022
  }
947
1023
  }
948
- function decodeFetchStream(bytes) {
1024
+ function decodeMessage(bytes) {
949
1025
  try {
950
- const r = new BufferReader(bytes);
951
- const streamType = r.readVarInt();
952
- if (streamType !== FETCH_STREAM_TYPE) {
1026
+ const reader = new BufferReader(bytes);
1027
+ const typeId = reader.readVarInt();
1028
+ const payloadLength = Number(reader.readVarInt());
1029
+ const payloadBytes = reader.readBytes(payloadLength);
1030
+ const payloadReader = new BufferReader(payloadBytes);
1031
+ const decoder = payloadDecoders.get(typeId);
1032
+ if (!decoder) {
953
1033
  return {
954
1034
  ok: false,
955
1035
  error: new DecodeError(
956
- "CONSTRAINT_VIOLATION",
957
- `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
1036
+ "UNKNOWN_MESSAGE_TYPE",
1037
+ `Unknown message type ID: 0x${typeId.toString(16)}`,
958
1038
  0
959
1039
  )
960
1040
  };
961
1041
  }
962
- const subscribeId = r.readVarInt();
963
- const objects = [];
964
- while (r.remaining > 0) {
965
- const groupId = r.readVarInt();
966
- const subgroupId = r.readVarInt();
967
- const objectId = r.readVarInt();
968
- const publisherPriority = r.readUint8();
969
- const extensionCount = Number(r.readVarInt());
970
- for (let i = 0; i < extensionCount; i++) {
971
- r.readVarInt();
972
- const extLen = Number(r.readVarInt());
973
- r.readBytes(extLen);
974
- }
975
- const payloadLength = Number(r.readVarInt());
976
- let payload;
977
- let status;
978
- if (payloadLength === 0) {
979
- status = r.readVarInt();
980
- payload = new Uint8Array(0);
981
- } else {
982
- payload = r.readBytes(payloadLength);
983
- }
984
- const obj = {
985
- type: "object",
986
- groupId,
987
- subgroupId,
988
- objectId,
989
- publisherPriority,
990
- extensionCount: BigInt(extensionCount),
991
- payloadLength,
992
- payload
993
- };
994
- if (status !== void 0) obj.status = status;
995
- objects.push(obj);
996
- }
997
- return { ok: true, value: { type: "fetch", subscribeId, objects }, bytesRead: r.offset };
1042
+ const message = decoder(payloadReader);
1043
+ return { ok: true, value: message, bytesRead: reader.offset };
998
1044
  } catch (e) {
999
1045
  if (e instanceof DecodeError) return { ok: false, error: e };
1000
1046
  throw e;
1001
1047
  }
1002
1048
  }
1003
- function decodeDataStream(streamType, bytes) {
1004
- switch (streamType) {
1005
- case "subgroup":
1006
- return decodeSubgroupStream(bytes);
1007
- case "datagram":
1008
- return decodeDatagram(bytes);
1009
- case "datagram_status":
1010
- return decodeDatagramStatus(bytes);
1011
- case "fetch":
1012
- return decodeFetchStream(bytes);
1013
- default: {
1014
- const _ = streamType;
1015
- throw new Error(`Unknown: ${_}`);
1016
- }
1017
- }
1018
- }
1019
1049
  function createStreamDecoder() {
1020
1050
  let buffer = new Uint8Array(0);
1051
+ let offset = 0;
1021
1052
  return new TransformStream({
1022
1053
  transform(chunk, controller) {
1054
+ if (offset > 0) {
1055
+ buffer = buffer.subarray(offset);
1056
+ offset = 0;
1057
+ }
1023
1058
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
1024
1059
  newBuffer.set(buffer, 0);
1025
1060
  newBuffer.set(chunk, buffer.length);
1026
1061
  buffer = newBuffer;
1027
- while (buffer.length > 0) {
1028
- const result = decodeMessage(buffer);
1062
+ while (offset < buffer.length) {
1063
+ const result = decodeMessage(buffer.subarray(offset));
1029
1064
  if (!result.ok) {
1030
1065
  if (result.error.code === "UNEXPECTED_END") break;
1031
1066
  controller.error(result.error);
1032
1067
  return;
1033
1068
  }
1034
1069
  controller.enqueue(result.value);
1035
- buffer = buffer.slice(result.bytesRead);
1070
+ offset += result.bytesRead;
1036
1071
  }
1037
1072
  },
1038
1073
  flush(controller) {
1039
- if (buffer.length > 0)
1074
+ if (offset < buffer.length)
1040
1075
  controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1041
1076
  }
1042
1077
  });
@@ -1093,8 +1128,6 @@ export {
1093
1128
  PARAM_MAX_CACHE_DURATION,
1094
1129
  MESSAGE_TYPE_MAP,
1095
1130
  MESSAGE_ID_MAP,
1096
- encodeMessage,
1097
- decodeMessage,
1098
1131
  encodeSubgroupStream,
1099
1132
  encodeDatagram,
1100
1133
  encodeDatagramStatus,
@@ -1104,6 +1137,8 @@ export {
1104
1137
  decodeDatagramStatus,
1105
1138
  decodeFetchStream,
1106
1139
  decodeDataStream,
1140
+ encodeMessage,
1141
+ decodeMessage,
1107
1142
  createStreamDecoder,
1108
1143
  createDraft08Codec
1109
1144
  };