@moqtap/codec 0.2.2 → 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 +192 -192
  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 +19 -10
  158. package/src/drafts/draft11/data-streams.ts +269 -269
  159. package/src/drafts/draft12/codec.ts +19 -10
  160. package/src/drafts/draft12/data-streams.ts +275 -275
  161. package/src/drafts/draft13/codec.ts +19 -10
  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,240 +1,240 @@
1
- import { BufferReader } from "../../core/buffer-reader.js";
2
- import { BufferWriter } from "../../core/buffer-writer.js";
3
- import type { DecodeResult } from "../../core/types.js";
4
- import { DecodeError } from "../../core/types.js";
5
- import type {
6
- DatagramObject as Draft07DatagramObject,
7
- FetchObjectPayload,
8
- FetchStream,
9
- ObjectPayload,
10
- SubgroupStream,
11
- } from "./types.js";
12
-
13
- // ─── Data Stream Encoding/Decoding ─────────────────────────────────────────────
14
-
15
- // Stream type IDs for draft-07
16
- const SUBGROUP_STREAM_TYPE = 0x04n;
17
- const FETCH_STREAM_TYPE = 0x05n;
18
- const DATAGRAM_TYPE = 0x01n;
19
-
20
- export function encodeSubgroupStream(stream: SubgroupStream): Uint8Array {
21
- const w = new BufferWriter();
22
- w.writeVarInt(SUBGROUP_STREAM_TYPE);
23
- w.writeVarInt(stream.trackAlias);
24
- w.writeVarInt(stream.groupId);
25
- w.writeVarInt(stream.subgroupId);
26
- w.writeUint8(stream.publisherPriority);
27
- for (const obj of stream.objects) {
28
- w.writeVarInt(obj.objectId);
29
- w.writeVarInt(obj.payloadLength);
30
- if (obj.payloadLength === 0 && obj.status !== undefined) {
31
- w.writeVarInt(obj.status);
32
- } else {
33
- w.writeBytes(obj.payload);
34
- }
35
- }
36
- return w.finish();
37
- }
38
-
39
- export function encodeDatagram(dg: Draft07DatagramObject): Uint8Array {
40
- const w = new BufferWriter();
41
- w.writeVarInt(DATAGRAM_TYPE);
42
- w.writeVarInt(dg.trackAlias);
43
- w.writeVarInt(dg.groupId);
44
- w.writeVarInt(dg.objectId);
45
- w.writeUint8(dg.publisherPriority);
46
- w.writeVarInt(dg.payloadLength);
47
- if (dg.payloadLength === 0 && dg.status !== undefined) {
48
- w.writeVarInt(dg.status);
49
- } else {
50
- w.writeBytes(dg.payload);
51
- }
52
- return w.finish();
53
- }
54
-
55
- export function encodeFetchStream(stream: FetchStream): Uint8Array {
56
- const w = new BufferWriter();
57
- w.writeVarInt(FETCH_STREAM_TYPE);
58
- w.writeVarInt(stream.subscribeId);
59
- for (const obj of stream.objects) {
60
- w.writeVarInt(obj.groupId);
61
- w.writeVarInt(obj.subgroupId);
62
- w.writeVarInt(obj.objectId);
63
- w.writeUint8(obj.publisherPriority);
64
- w.writeVarInt(obj.payloadLength);
65
- if (obj.payloadLength === 0 && obj.status !== undefined) {
66
- w.writeVarInt(obj.status);
67
- } else {
68
- w.writeBytes(obj.payload);
69
- }
70
- }
71
- return w.finish();
72
- }
73
-
74
- export function decodeSubgroupStream(bytes: Uint8Array): DecodeResult<SubgroupStream> {
75
- try {
76
- const r = new BufferReader(bytes);
77
- const streamType = Number(r.readVarInt());
78
- if (streamType !== 0x04) {
79
- return {
80
- ok: false,
81
- error: new DecodeError(
82
- "CONSTRAINT_VIOLATION",
83
- `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
84
- 0,
85
- ),
86
- };
87
- }
88
- const trackAlias = r.readVarInt();
89
- const groupId = r.readVarInt();
90
- const subgroupId = r.readVarInt();
91
- const publisherPriority = r.readUint8();
92
- const objects: ObjectPayload[] = [];
93
- while (r.remaining > 0) {
94
- const byteOffset = r.offset;
95
- const objectId = r.readVarInt();
96
- const payloadLength = Number(r.readVarInt());
97
- let payload: Uint8Array;
98
- let status: bigint | undefined;
99
- let payloadByteOffset: number;
100
- if (payloadLength === 0) {
101
- status = r.readVarInt();
102
- payloadByteOffset = r.offset;
103
- payload = new Uint8Array(0);
104
- } else {
105
- payloadByteOffset = r.offset;
106
- payload = r.readBytes(payloadLength);
107
- }
108
- const obj: ObjectPayload = {
109
- type: "object",
110
- objectId,
111
- payloadLength,
112
- payload,
113
- byteOffset,
114
- payloadByteOffset,
115
- };
116
- if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status;
117
- objects.push(obj);
118
- }
119
- return {
120
- ok: true,
121
- value: {
122
- type: "subgroup",
123
- streamTypeId: 0x04,
124
- trackAlias,
125
- groupId,
126
- subgroupId,
127
- publisherPriority,
128
- objects,
129
- },
130
- bytesRead: r.offset,
131
- };
132
- } catch (e) {
133
- if (e instanceof DecodeError) return { ok: false, error: e };
134
- throw e;
135
- }
136
- }
137
-
138
- export function decodeDatagram(bytes: Uint8Array): DecodeResult<Draft07DatagramObject> {
139
- try {
140
- const r = new BufferReader(bytes);
141
- const streamType = Number(r.readVarInt());
142
- if (streamType !== 0x01) {
143
- return {
144
- ok: false,
145
- error: new DecodeError(
146
- "CONSTRAINT_VIOLATION",
147
- `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
148
- 0,
149
- ),
150
- };
151
- }
152
- const trackAlias = r.readVarInt();
153
- const groupId = r.readVarInt();
154
- const objectId = r.readVarInt();
155
- const publisherPriority = r.readUint8();
156
- const payloadLength = Number(r.readVarInt());
157
- let status: bigint | undefined;
158
- let payload: Uint8Array;
159
- if (payloadLength === 0) {
160
- status = r.readVarInt();
161
- payload = new Uint8Array(0);
162
- } else {
163
- payload = r.readBytes(payloadLength);
164
- }
165
- const result: Draft07DatagramObject = {
166
- type: "datagram",
167
- streamTypeId: 0x01,
168
- trackAlias,
169
- groupId,
170
- objectId,
171
- publisherPriority,
172
- payloadLength,
173
- payload,
174
- };
175
- if (status !== undefined) (result as unknown as Record<string, unknown>).status = status;
176
- return { ok: true, value: result, bytesRead: r.offset };
177
- } catch (e) {
178
- if (e instanceof DecodeError) return { ok: false, error: e };
179
- throw e;
180
- }
181
- }
182
-
183
- export function decodeFetchStream(bytes: Uint8Array): DecodeResult<FetchStream> {
184
- try {
185
- const r = new BufferReader(bytes);
186
- const streamType = Number(r.readVarInt());
187
- if (streamType !== 0x05) {
188
- return {
189
- ok: false,
190
- error: new DecodeError(
191
- "CONSTRAINT_VIOLATION",
192
- `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
193
- 0,
194
- ),
195
- };
196
- }
197
- const subscribeId = r.readVarInt();
198
- const objects: FetchObjectPayload[] = [];
199
- while (r.remaining > 0) {
200
- const byteOffset = r.offset;
201
- const groupId = r.readVarInt();
202
- const subgroupId = r.readVarInt();
203
- const objectId = r.readVarInt();
204
- const publisherPriority = r.readUint8();
205
- const payloadLength = Number(r.readVarInt());
206
- let payload: Uint8Array;
207
- let status: bigint | undefined;
208
- let payloadByteOffset: number;
209
- if (payloadLength === 0) {
210
- status = r.readVarInt();
211
- payloadByteOffset = r.offset;
212
- payload = new Uint8Array(0);
213
- } else {
214
- payloadByteOffset = r.offset;
215
- payload = r.readBytes(payloadLength);
216
- }
217
- const obj: FetchObjectPayload = {
218
- type: "object",
219
- groupId,
220
- subgroupId,
221
- objectId,
222
- publisherPriority,
223
- payloadLength,
224
- payload,
225
- byteOffset,
226
- payloadByteOffset,
227
- };
228
- if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status;
229
- objects.push(obj);
230
- }
231
- return {
232
- ok: true,
233
- value: { type: "fetch", subscribeId, objects },
234
- bytesRead: r.offset,
235
- };
236
- } catch (e) {
237
- if (e instanceof DecodeError) return { ok: false, error: e };
238
- throw e;
239
- }
240
- }
1
+ import { BufferReader } from "../../core/buffer-reader.js";
2
+ import { BufferWriter } from "../../core/buffer-writer.js";
3
+ import type { DecodeResult } from "../../core/types.js";
4
+ import { DecodeError } from "../../core/types.js";
5
+ import type {
6
+ DatagramObject as Draft07DatagramObject,
7
+ FetchObjectPayload,
8
+ FetchStream,
9
+ ObjectPayload,
10
+ SubgroupStream,
11
+ } from "./types.js";
12
+
13
+ // ─── Data Stream Encoding/Decoding ─────────────────────────────────────────────
14
+
15
+ // Stream type IDs for draft-07
16
+ const SUBGROUP_STREAM_TYPE = 0x04n;
17
+ const FETCH_STREAM_TYPE = 0x05n;
18
+ const DATAGRAM_TYPE = 0x01n;
19
+
20
+ export function encodeSubgroupStream(stream: SubgroupStream): Uint8Array {
21
+ const w = new BufferWriter();
22
+ w.writeVarInt(SUBGROUP_STREAM_TYPE);
23
+ w.writeVarInt(stream.trackAlias);
24
+ w.writeVarInt(stream.groupId);
25
+ w.writeVarInt(stream.subgroupId);
26
+ w.writeUint8(stream.publisherPriority);
27
+ for (const obj of stream.objects) {
28
+ w.writeVarInt(obj.objectId);
29
+ w.writeVarInt(obj.payloadLength);
30
+ if (obj.payloadLength === 0 && obj.status !== undefined) {
31
+ w.writeVarInt(obj.status);
32
+ } else {
33
+ w.writeBytes(obj.payload);
34
+ }
35
+ }
36
+ return w.finish();
37
+ }
38
+
39
+ export function encodeDatagram(dg: Draft07DatagramObject): Uint8Array {
40
+ const w = new BufferWriter();
41
+ w.writeVarInt(DATAGRAM_TYPE);
42
+ w.writeVarInt(dg.trackAlias);
43
+ w.writeVarInt(dg.groupId);
44
+ w.writeVarInt(dg.objectId);
45
+ w.writeUint8(dg.publisherPriority);
46
+ w.writeVarInt(dg.payloadLength);
47
+ if (dg.payloadLength === 0 && dg.status !== undefined) {
48
+ w.writeVarInt(dg.status);
49
+ } else {
50
+ w.writeBytes(dg.payload);
51
+ }
52
+ return w.finish();
53
+ }
54
+
55
+ export function encodeFetchStream(stream: FetchStream): Uint8Array {
56
+ const w = new BufferWriter();
57
+ w.writeVarInt(FETCH_STREAM_TYPE);
58
+ w.writeVarInt(stream.subscribeId);
59
+ for (const obj of stream.objects) {
60
+ w.writeVarInt(obj.groupId);
61
+ w.writeVarInt(obj.subgroupId);
62
+ w.writeVarInt(obj.objectId);
63
+ w.writeUint8(obj.publisherPriority);
64
+ w.writeVarInt(obj.payloadLength);
65
+ if (obj.payloadLength === 0 && obj.status !== undefined) {
66
+ w.writeVarInt(obj.status);
67
+ } else {
68
+ w.writeBytes(obj.payload);
69
+ }
70
+ }
71
+ return w.finish();
72
+ }
73
+
74
+ export function decodeSubgroupStream(bytes: Uint8Array): DecodeResult<SubgroupStream> {
75
+ try {
76
+ const r = new BufferReader(bytes);
77
+ const streamType = Number(r.readVarInt());
78
+ if (streamType !== 0x04) {
79
+ return {
80
+ ok: false,
81
+ error: new DecodeError(
82
+ "CONSTRAINT_VIOLATION",
83
+ `Expected subgroup type 0x04, got 0x${streamType.toString(16)}`,
84
+ 0,
85
+ ),
86
+ };
87
+ }
88
+ const trackAlias = r.readVarInt();
89
+ const groupId = r.readVarInt();
90
+ const subgroupId = r.readVarInt();
91
+ const publisherPriority = r.readUint8();
92
+ const objects: ObjectPayload[] = [];
93
+ while (r.remaining > 0) {
94
+ const byteOffset = r.offset;
95
+ const objectId = r.readVarInt();
96
+ const payloadLength = Number(r.readVarInt());
97
+ let payload: Uint8Array;
98
+ let status: bigint | undefined;
99
+ let payloadByteOffset: number;
100
+ if (payloadLength === 0) {
101
+ status = r.readVarInt();
102
+ payloadByteOffset = r.offset;
103
+ payload = new Uint8Array(0);
104
+ } else {
105
+ payloadByteOffset = r.offset;
106
+ payload = r.readBytesView(payloadLength);
107
+ }
108
+ const obj: ObjectPayload = {
109
+ type: "object",
110
+ objectId,
111
+ payloadLength,
112
+ payload,
113
+ byteOffset,
114
+ payloadByteOffset,
115
+ };
116
+ if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status;
117
+ objects.push(obj);
118
+ }
119
+ return {
120
+ ok: true,
121
+ value: {
122
+ type: "subgroup",
123
+ streamTypeId: 0x04,
124
+ trackAlias,
125
+ groupId,
126
+ subgroupId,
127
+ publisherPriority,
128
+ objects,
129
+ },
130
+ bytesRead: r.offset,
131
+ };
132
+ } catch (e) {
133
+ if (e instanceof DecodeError) return { ok: false, error: e };
134
+ throw e;
135
+ }
136
+ }
137
+
138
+ export function decodeDatagram(bytes: Uint8Array): DecodeResult<Draft07DatagramObject> {
139
+ try {
140
+ const r = new BufferReader(bytes);
141
+ const streamType = Number(r.readVarInt());
142
+ if (streamType !== 0x01) {
143
+ return {
144
+ ok: false,
145
+ error: new DecodeError(
146
+ "CONSTRAINT_VIOLATION",
147
+ `Expected datagram type 0x01, got 0x${streamType.toString(16)}`,
148
+ 0,
149
+ ),
150
+ };
151
+ }
152
+ const trackAlias = r.readVarInt();
153
+ const groupId = r.readVarInt();
154
+ const objectId = r.readVarInt();
155
+ const publisherPriority = r.readUint8();
156
+ const payloadLength = Number(r.readVarInt());
157
+ let status: bigint | undefined;
158
+ let payload: Uint8Array;
159
+ if (payloadLength === 0) {
160
+ status = r.readVarInt();
161
+ payload = new Uint8Array(0);
162
+ } else {
163
+ payload = r.readBytesView(payloadLength);
164
+ }
165
+ const result: Draft07DatagramObject = {
166
+ type: "datagram",
167
+ streamTypeId: 0x01,
168
+ trackAlias,
169
+ groupId,
170
+ objectId,
171
+ publisherPriority,
172
+ payloadLength,
173
+ payload,
174
+ };
175
+ if (status !== undefined) (result as unknown as Record<string, unknown>).status = status;
176
+ return { ok: true, value: result, bytesRead: r.offset };
177
+ } catch (e) {
178
+ if (e instanceof DecodeError) return { ok: false, error: e };
179
+ throw e;
180
+ }
181
+ }
182
+
183
+ export function decodeFetchStream(bytes: Uint8Array): DecodeResult<FetchStream> {
184
+ try {
185
+ const r = new BufferReader(bytes);
186
+ const streamType = Number(r.readVarInt());
187
+ if (streamType !== 0x05) {
188
+ return {
189
+ ok: false,
190
+ error: new DecodeError(
191
+ "CONSTRAINT_VIOLATION",
192
+ `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
193
+ 0,
194
+ ),
195
+ };
196
+ }
197
+ const subscribeId = r.readVarInt();
198
+ const objects: FetchObjectPayload[] = [];
199
+ while (r.remaining > 0) {
200
+ const byteOffset = r.offset;
201
+ const groupId = r.readVarInt();
202
+ const subgroupId = r.readVarInt();
203
+ const objectId = r.readVarInt();
204
+ const publisherPriority = r.readUint8();
205
+ const payloadLength = Number(r.readVarInt());
206
+ let payload: Uint8Array;
207
+ let status: bigint | undefined;
208
+ let payloadByteOffset: number;
209
+ if (payloadLength === 0) {
210
+ status = r.readVarInt();
211
+ payloadByteOffset = r.offset;
212
+ payload = new Uint8Array(0);
213
+ } else {
214
+ payloadByteOffset = r.offset;
215
+ payload = r.readBytesView(payloadLength);
216
+ }
217
+ const obj: FetchObjectPayload = {
218
+ type: "object",
219
+ groupId,
220
+ subgroupId,
221
+ objectId,
222
+ publisherPriority,
223
+ payloadLength,
224
+ payload,
225
+ byteOffset,
226
+ payloadByteOffset,
227
+ };
228
+ if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status;
229
+ objects.push(obj);
230
+ }
231
+ return {
232
+ ok: true,
233
+ value: { type: "fetch", subscribeId, objects },
234
+ bytesRead: r.offset,
235
+ };
236
+ } catch (e) {
237
+ if (e instanceof DecodeError) return { ok: false, error: e };
238
+ throw e;
239
+ }
240
+ }
@@ -1,23 +1,51 @@
1
- import { BufferReader } from "../../core/buffer-reader.js";
2
- import { BufferWriter } from "../../core/buffer-writer.js";
3
- import type { DecodeResult } from "../../core/types.js";
4
- import { DecodeError } from "../../core/types.js";
5
-
6
- export function encodeVarInt(value: number | bigint): Uint8Array {
7
- const writer = new BufferWriter(8);
8
- writer.writeVarInt(value);
9
- return writer.finish();
10
- }
11
-
12
- export function decodeVarInt(bytes: Uint8Array, offset = 0): DecodeResult<bigint> {
13
- try {
14
- const reader = new BufferReader(bytes, offset);
15
- const value = reader.readVarInt();
16
- return { ok: true, value, bytesRead: reader.offset - offset };
17
- } catch (e) {
18
- if (e instanceof DecodeError) {
19
- return { ok: false, error: e };
20
- }
21
- throw e;
22
- }
23
- }
1
+ import { BufferReader } from "../../core/buffer-reader.js";
2
+ import type { DecodeResult } from "../../core/types.js";
3
+ import { DecodeError } from "../../core/types.js";
4
+
5
+ export function encodeVarInt(value: number | bigint): Uint8Array {
6
+ const v = BigInt(value);
7
+ if (v < 0n) throw new Error("VarInt value must be non-negative");
8
+
9
+ if (v < 0x40n) {
10
+ const buf = new Uint8Array(1);
11
+ buf[0] = Number(v);
12
+ return buf;
13
+ }
14
+ if (v < 0x4000n) {
15
+ const buf = new Uint8Array(2);
16
+ const n = Number(v) | 0x4000;
17
+ buf[0] = n >> 8;
18
+ buf[1] = n & 0xff;
19
+ return buf;
20
+ }
21
+ if (v < 0x40000000n) {
22
+ const buf = new Uint8Array(4);
23
+ const n = Number(v) | 0x80000000;
24
+ buf[0] = (n >>> 24) & 0xff;
25
+ buf[1] = (n >>> 16) & 0xff;
26
+ buf[2] = (n >>> 8) & 0xff;
27
+ buf[3] = n & 0xff;
28
+ return buf;
29
+ }
30
+ if (v < 0x4000000000000000n) {
31
+ const buf = new Uint8Array(8);
32
+ const tagged = v | 0xc000000000000000n;
33
+ const view = new DataView(buf.buffer);
34
+ view.setBigUint64(0, tagged);
35
+ return buf;
36
+ }
37
+ throw new Error("VarInt value exceeds 62-bit range");
38
+ }
39
+
40
+ export function decodeVarInt(bytes: Uint8Array, offset = 0): DecodeResult<bigint> {
41
+ try {
42
+ const reader = new BufferReader(bytes, offset);
43
+ const value = reader.readVarInt();
44
+ return { ok: true, value, bytesRead: reader.offset - offset };
45
+ } catch (e) {
46
+ if (e instanceof DecodeError) {
47
+ return { ok: false, error: e };
48
+ }
49
+ throw e;
50
+ }
51
+ }
@@ -51,6 +51,10 @@ import type {
51
51
  SubgroupStream,
52
52
  UnknownParam,
53
53
  } from "./types.js";
54
+
55
+ const textEncoder = /* @__PURE__ */ new TextEncoder();
56
+ const textDecoder = /* @__PURE__ */ new TextDecoder();
57
+
54
58
  // ─── Setup Parameter Encoding/Decoding (all type+length+value) ──────────────
55
59
 
56
60
  function encodeSetupParams(params: Draft08SetupParams, w: BufferWriter): void {
@@ -63,7 +67,7 @@ function encodeSetupParams(params: Draft08SetupParams, w: BufferWriter): void {
63
67
 
64
68
  if (params.path !== undefined) {
65
69
  w.writeVarInt(SETUP_PARAM_PATH);
66
- const encoded = new TextEncoder().encode(params.path);
70
+ const encoded = textEncoder.encode(params.path);
67
71
  w.writeVarInt(encoded.byteLength);
68
72
  w.writeBytes(encoded);
69
73
  }
@@ -97,7 +101,7 @@ function decodeSetupParams(r: BufferReader): Draft08SetupParams {
97
101
 
98
102
  if (paramType === SETUP_PARAM_PATH) {
99
103
  const bytes = r.readBytes(length);
100
- result.path = new TextDecoder().decode(bytes);
104
+ result.path = textDecoder.decode(bytes);
101
105
  } else if (paramType === SETUP_PARAM_MAX_SUBSCRIBE_ID) {
102
106
  const blob = r.readBytes(length);
103
107
  const tmpReader = new BufferReader(blob);
@@ -123,7 +127,7 @@ function encodeParams(params: Draft08Params, w: BufferWriter): void {
123
127
 
124
128
  if (params.authorization_info !== undefined) {
125
129
  w.writeVarInt(PARAM_AUTHORIZATION_INFO);
126
- const encoded = new TextEncoder().encode(params.authorization_info);
130
+ const encoded = textEncoder.encode(params.authorization_info);
127
131
  w.writeVarInt(encoded.byteLength);
128
132
  w.writeBytes(encoded);
129
133
  }
@@ -164,7 +168,7 @@ function decodeParams(r: BufferReader): Draft08Params {
164
168
 
165
169
  if (paramType === PARAM_AUTHORIZATION_INFO) {
166
170
  const bytes = r.readBytes(length);
167
- result.authorization_info = new TextDecoder().decode(bytes);
171
+ result.authorization_info = textDecoder.decode(bytes);
168
172
  } else if (paramType === PARAM_DELIVERY_TIMEOUT) {
169
173
  const blob = r.readBytes(length);
170
174
  const tmpReader = new BufferReader(blob);
@@ -755,9 +759,9 @@ export function encodeMessage(message: Draft08Message): Uint8Array {
755
759
 
756
760
  const payloadWriter = new BufferWriter();
757
761
  encodePayload(message, payloadWriter);
758
- const payload = payloadWriter.finish();
762
+ const payload = payloadWriter.finishView();
759
763
 
760
- const writer = new BufferWriter();
764
+ const writer = new BufferWriter(payload.byteLength + 16);
761
765
  writer.writeVarInt(typeId);
762
766
  writer.writeVarInt(payload.byteLength);
763
767
  writer.writeBytes(payload);
@@ -882,25 +886,30 @@ import {
882
886
 
883
887
  export function createStreamDecoder(): TransformStream<Uint8Array, Draft08Message> {
884
888
  let buffer = new Uint8Array(0);
889
+ let offset = 0;
885
890
  return new TransformStream<Uint8Array, Draft08Message>({
886
891
  transform(chunk, controller) {
892
+ if (offset > 0) {
893
+ buffer = buffer.subarray(offset);
894
+ offset = 0;
895
+ }
887
896
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
888
897
  newBuffer.set(buffer, 0);
889
898
  newBuffer.set(chunk, buffer.length);
890
899
  buffer = newBuffer;
891
- while (buffer.length > 0) {
892
- const result = decodeMessage(buffer);
900
+ while (offset < buffer.length) {
901
+ const result = decodeMessage(buffer.subarray(offset));
893
902
  if (!result.ok) {
894
903
  if (result.error.code === "UNEXPECTED_END") break;
895
904
  controller.error(result.error);
896
905
  return;
897
906
  }
898
907
  controller.enqueue(result.value);
899
- buffer = buffer.slice(result.bytesRead);
908
+ offset += result.bytesRead;
900
909
  }
901
910
  },
902
911
  flush(controller) {
903
- if (buffer.length > 0)
912
+ if (offset < buffer.length)
904
913
  controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
905
914
  },
906
915
  });