@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,114 +1,130 @@
1
- import { DecodeError } from "./types.js";
2
-
3
- export class BufferReader {
4
- private readonly view: DataView;
5
- private pos: number;
6
-
7
- constructor(
8
- readonly buffer: Uint8Array,
9
- offset = 0,
10
- ) {
11
- this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
12
- this.pos = offset;
13
- }
14
-
15
- get offset(): number {
16
- return this.pos;
17
- }
18
-
19
- get remaining(): number {
20
- return this.buffer.byteLength - this.pos;
21
- }
22
-
23
- readUint8(): number {
24
- if (this.remaining < 1) {
25
- throw new DecodeError("UNEXPECTED_END", "Not enough bytes to read uint8", this.pos);
26
- }
27
- const value = this.view.getUint8(this.pos);
28
- this.pos += 1;
29
- return value;
30
- }
31
-
32
- readBytes(length: number): Uint8Array<ArrayBuffer> {
33
- if (this.remaining < length) {
34
- throw new DecodeError(
35
- "UNEXPECTED_END",
36
- `Not enough bytes: need ${length}, have ${this.remaining}`,
37
- this.pos,
38
- );
39
- }
40
- const slice = this.buffer.slice(this.pos, this.pos + length);
41
- this.pos += length;
42
- return slice;
43
- }
44
-
45
- readVarInt(): bigint {
46
- if (this.remaining < 1) {
47
- throw new DecodeError("UNEXPECTED_END", "Not enough bytes for varint", this.pos);
48
- }
49
- const first = this.view.getUint8(this.pos);
50
- const prefix = first >> 6;
51
- let length: number;
52
- let value: bigint;
53
-
54
- switch (prefix) {
55
- case 0:
56
- length = 1;
57
- value = BigInt(first & 0x3f);
58
- break;
59
- case 1:
60
- length = 2;
61
- if (this.remaining < 2) {
62
- throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 2-byte varint", this.pos);
63
- }
64
- value = BigInt(this.view.getUint16(this.pos) & 0x3fff);
65
- break;
66
- case 2:
67
- length = 4;
68
- if (this.remaining < 4) {
69
- throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 4-byte varint", this.pos);
70
- }
71
- value = BigInt(this.view.getUint32(this.pos)) & 0x3fffffffn;
72
- break;
73
- case 3:
74
- length = 8;
75
- if (this.remaining < 8) {
76
- throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 8-byte varint", this.pos);
77
- }
78
- value = this.view.getBigUint64(this.pos) & 0x3fffffffffffffffn;
79
- break;
80
- default:
81
- throw new DecodeError("INVALID_VARINT", "Invalid varint prefix", this.pos);
82
- }
83
-
84
- this.pos += length;
85
- return value;
86
- }
87
-
88
- readString(): string {
89
- const length = Number(this.readVarInt());
90
- const bytes = this.readBytes(length);
91
- return new TextDecoder().decode(bytes);
92
- }
93
-
94
- readTuple(): string[] {
95
- const count = Number(this.readVarInt());
96
- const result: string[] = [];
97
- for (let i = 0; i < count; i++) {
98
- result.push(this.readString());
99
- }
100
- return result;
101
- }
102
-
103
- readParameters(): Map<bigint, Uint8Array> {
104
- const count = Number(this.readVarInt());
105
- const params = new Map<bigint, Uint8Array>();
106
- for (let i = 0; i < count; i++) {
107
- const key = this.readVarInt();
108
- const length = Number(this.readVarInt());
109
- const value = this.readBytes(length);
110
- params.set(key, value);
111
- }
112
- return params;
113
- }
114
- }
1
+ import { DecodeError } from "./types.js";
2
+
3
+ const textDecoder = /* @__PURE__ */ new TextDecoder();
4
+
5
+ export class BufferReader {
6
+ private readonly view: DataView;
7
+ private pos: number;
8
+
9
+ constructor(
10
+ readonly buffer: Uint8Array,
11
+ offset = 0,
12
+ ) {
13
+ this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
14
+ this.pos = offset;
15
+ }
16
+
17
+ get offset(): number {
18
+ return this.pos;
19
+ }
20
+
21
+ get remaining(): number {
22
+ return this.buffer.byteLength - this.pos;
23
+ }
24
+
25
+ readUint8(): number {
26
+ if (this.remaining < 1) {
27
+ throw new DecodeError("UNEXPECTED_END", "Not enough bytes to read uint8", this.pos);
28
+ }
29
+ const value = this.view.getUint8(this.pos);
30
+ this.pos += 1;
31
+ return value;
32
+ }
33
+
34
+ readBytes(length: number): Uint8Array<ArrayBuffer> {
35
+ if (this.remaining < length) {
36
+ throw new DecodeError(
37
+ "UNEXPECTED_END",
38
+ `Not enough bytes: need ${length}, have ${this.remaining}`,
39
+ this.pos,
40
+ );
41
+ }
42
+ const slice = this.buffer.slice(this.pos, this.pos + length);
43
+ this.pos += length;
44
+ return slice;
45
+ }
46
+
47
+ /** Zero-copy read: returns a view into the underlying buffer. */
48
+ readBytesView(length: number): Uint8Array<ArrayBuffer> {
49
+ if (this.remaining < length) {
50
+ throw new DecodeError(
51
+ "UNEXPECTED_END",
52
+ `Not enough bytes: need ${length}, have ${this.remaining}`,
53
+ this.pos,
54
+ );
55
+ }
56
+ const view = this.buffer.subarray(this.pos, this.pos + length);
57
+ this.pos += length;
58
+ return view as Uint8Array<ArrayBuffer>;
59
+ }
60
+
61
+ readVarInt(): bigint {
62
+ if (this.remaining < 1) {
63
+ throw new DecodeError("UNEXPECTED_END", "Not enough bytes for varint", this.pos);
64
+ }
65
+ const first = this.view.getUint8(this.pos);
66
+ const prefix = first >> 6;
67
+ let length: number;
68
+ let value: bigint;
69
+
70
+ switch (prefix) {
71
+ case 0:
72
+ length = 1;
73
+ value = BigInt(first & 0x3f);
74
+ break;
75
+ case 1:
76
+ length = 2;
77
+ if (this.remaining < 2) {
78
+ throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 2-byte varint", this.pos);
79
+ }
80
+ value = BigInt(this.view.getUint16(this.pos) & 0x3fff);
81
+ break;
82
+ case 2:
83
+ length = 4;
84
+ if (this.remaining < 4) {
85
+ throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 4-byte varint", this.pos);
86
+ }
87
+ value = BigInt(this.view.getUint32(this.pos)) & 0x3fffffffn;
88
+ break;
89
+ case 3:
90
+ length = 8;
91
+ if (this.remaining < 8) {
92
+ throw new DecodeError("UNEXPECTED_END", "Not enough bytes for 8-byte varint", this.pos);
93
+ }
94
+ value = this.view.getBigUint64(this.pos) & 0x3fffffffffffffffn;
95
+ break;
96
+ default:
97
+ throw new DecodeError("INVALID_VARINT", "Invalid varint prefix", this.pos);
98
+ }
99
+
100
+ this.pos += length;
101
+ return value;
102
+ }
103
+
104
+ readString(): string {
105
+ const length = Number(this.readVarInt());
106
+ const bytes = this.readBytesView(length);
107
+ return textDecoder.decode(bytes);
108
+ }
109
+
110
+ readTuple(): string[] {
111
+ const count = Number(this.readVarInt());
112
+ const result: string[] = [];
113
+ for (let i = 0; i < count; i++) {
114
+ result.push(this.readString());
115
+ }
116
+ return result;
117
+ }
118
+
119
+ readParameters(): Map<bigint, Uint8Array> {
120
+ const count = Number(this.readVarInt());
121
+ const params = new Map<bigint, Uint8Array>();
122
+ for (let i = 0; i < count; i++) {
123
+ const key = this.readVarInt();
124
+ const length = Number(this.readVarInt());
125
+ const value = this.readBytes(length);
126
+ params.set(key, value);
127
+ }
128
+ return params;
129
+ }
130
+ }
@@ -1,91 +1,100 @@
1
- export class BufferWriter {
2
- private buffer: Uint8Array;
3
- private view: DataView;
4
- private pos: number;
5
-
6
- constructor(initialSize = 256) {
7
- this.buffer = new Uint8Array(initialSize);
8
- this.view = new DataView(this.buffer.buffer);
9
- this.pos = 0;
10
- }
11
-
12
- get offset(): number {
13
- return this.pos;
14
- }
15
-
16
- private ensureCapacity(needed: number): void {
17
- const required = this.pos + needed;
18
- if (required <= this.buffer.byteLength) return;
19
-
20
- let newSize = this.buffer.byteLength * 2;
21
- while (newSize < required) newSize *= 2;
22
-
23
- const newBuffer = new Uint8Array(newSize);
24
- newBuffer.set(this.buffer);
25
- this.buffer = newBuffer;
26
- this.view = new DataView(this.buffer.buffer);
27
- }
28
-
29
- writeUint8(value: number): void {
30
- this.ensureCapacity(1);
31
- this.view.setUint8(this.pos, value);
32
- this.pos += 1;
33
- }
34
-
35
- writeBytes(bytes: Uint8Array): void {
36
- this.ensureCapacity(bytes.byteLength);
37
- this.buffer.set(bytes, this.pos);
38
- this.pos += bytes.byteLength;
39
- }
40
-
41
- writeVarInt(value: number | bigint): void {
42
- const v = BigInt(value);
43
- if (v < 0n) throw new Error("VarInt value must be non-negative");
44
-
45
- if (v < 0x40n) {
46
- this.ensureCapacity(1);
47
- this.view.setUint8(this.pos, Number(v));
48
- this.pos += 1;
49
- } else if (v < 0x4000n) {
50
- this.ensureCapacity(2);
51
- this.view.setUint16(this.pos, Number(v) | 0x4000);
52
- this.pos += 2;
53
- } else if (v < 0x40000000n) {
54
- this.ensureCapacity(4);
55
- this.view.setUint32(this.pos, Number(v) | 0x80000000);
56
- this.pos += 4;
57
- } else if (v < 0x4000000000000000n) {
58
- this.ensureCapacity(8);
59
- this.view.setBigUint64(this.pos, v | 0xc000000000000000n);
60
- this.pos += 8;
61
- } else {
62
- throw new Error("VarInt value exceeds 62-bit range");
63
- }
64
- }
65
-
66
- writeString(str: string): void {
67
- const encoded = new TextEncoder().encode(str);
68
- this.writeVarInt(encoded.byteLength);
69
- this.writeBytes(encoded);
70
- }
71
-
72
- writeTuple(values: string[]): void {
73
- this.writeVarInt(values.length);
74
- for (const v of values) {
75
- this.writeString(v);
76
- }
77
- }
78
-
79
- writeParameters(params: Map<bigint, Uint8Array>): void {
80
- this.writeVarInt(params.size);
81
- for (const [key, value] of params) {
82
- this.writeVarInt(key);
83
- this.writeVarInt(value.byteLength);
84
- this.writeBytes(value);
85
- }
86
- }
87
-
88
- finish(): Uint8Array {
89
- return this.buffer.slice(0, this.pos);
90
- }
91
- }
1
+ const textEncoder = /* @__PURE__ */ new TextEncoder();
2
+
3
+ export class BufferWriter {
4
+ private buffer: Uint8Array;
5
+ private view: DataView;
6
+ private pos: number;
7
+
8
+ constructor(initialSize = 256) {
9
+ this.buffer = new Uint8Array(initialSize);
10
+ this.view = new DataView(this.buffer.buffer);
11
+ this.pos = 0;
12
+ }
13
+
14
+ get offset(): number {
15
+ return this.pos;
16
+ }
17
+
18
+ private ensureCapacity(needed: number): void {
19
+ const required = this.pos + needed;
20
+ if (required <= this.buffer.byteLength) return;
21
+
22
+ let newSize = this.buffer.byteLength * 2;
23
+ while (newSize < required) newSize *= 2;
24
+
25
+ const newBuffer = new Uint8Array(newSize);
26
+ newBuffer.set(this.buffer);
27
+ this.buffer = newBuffer;
28
+ this.view = new DataView(this.buffer.buffer);
29
+ }
30
+
31
+ writeUint8(value: number): void {
32
+ this.ensureCapacity(1);
33
+ this.view.setUint8(this.pos, value);
34
+ this.pos += 1;
35
+ }
36
+
37
+ writeBytes(bytes: Uint8Array): void {
38
+ this.ensureCapacity(bytes.byteLength);
39
+ this.buffer.set(bytes, this.pos);
40
+ this.pos += bytes.byteLength;
41
+ }
42
+
43
+ writeVarInt(value: number | bigint): void {
44
+ const v = BigInt(value);
45
+ if (v < 0n) throw new Error("VarInt value must be non-negative");
46
+
47
+ if (v < 0x40n) {
48
+ this.ensureCapacity(1);
49
+ this.view.setUint8(this.pos, Number(v));
50
+ this.pos += 1;
51
+ } else if (v < 0x4000n) {
52
+ this.ensureCapacity(2);
53
+ this.view.setUint16(this.pos, Number(v) | 0x4000);
54
+ this.pos += 2;
55
+ } else if (v < 0x40000000n) {
56
+ this.ensureCapacity(4);
57
+ this.view.setUint32(this.pos, Number(v) | 0x80000000);
58
+ this.pos += 4;
59
+ } else if (v < 0x4000000000000000n) {
60
+ this.ensureCapacity(8);
61
+ this.view.setBigUint64(this.pos, v | 0xc000000000000000n);
62
+ this.pos += 8;
63
+ } else {
64
+ throw new Error("VarInt value exceeds 62-bit range");
65
+ }
66
+ }
67
+
68
+ writeString(str: string): void {
69
+ const encoded = textEncoder.encode(str);
70
+ this.writeVarInt(encoded.byteLength);
71
+ this.writeBytes(encoded);
72
+ }
73
+
74
+ writeTuple(values: string[]): void {
75
+ this.writeVarInt(values.length);
76
+ for (const v of values) {
77
+ this.writeString(v);
78
+ }
79
+ }
80
+
81
+ writeParameters(params: Map<bigint, Uint8Array>): void {
82
+ this.writeVarInt(params.size);
83
+ for (const [key, value] of params) {
84
+ this.writeVarInt(key);
85
+ this.writeVarInt(value.byteLength);
86
+ this.writeBytes(value);
87
+ }
88
+ }
89
+
90
+ /** Returns an owned copy of the written bytes. */
91
+ finish(): Uint8Array {
92
+ if (this.pos === this.buffer.byteLength) return this.buffer;
93
+ return this.buffer.slice(0, this.pos);
94
+ }
95
+
96
+ /** Returns a zero-copy view of the written bytes. Valid only until the next write. */
97
+ finishView(): Uint8Array {
98
+ return this.buffer.subarray(0, this.pos);
99
+ }
100
+ }
package/src/core/hex.ts CHANGED
@@ -1,10 +1,14 @@
1
+ const HEX_TABLE = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>
2
+ i.toString(16).padStart(2, "0"),
3
+ );
4
+
1
5
  /** Convert a Uint8Array to a lowercase hex string. */
2
6
  export function bytesToHex(bytes: Uint8Array): string {
3
- let hex = "";
7
+ const parts = new Array<string>(bytes.byteLength);
4
8
  for (let i = 0; i < bytes.byteLength; i++) {
5
- hex += (bytes[i] as number).toString(16).padStart(2, "0");
9
+ parts[i] = HEX_TABLE[bytes[i]!]!;
6
10
  }
7
- return hex;
11
+ return parts.join("");
8
12
  }
9
13
 
10
14
  /** Convert a hex string to a Uint8Array. */
@@ -670,7 +670,7 @@ function decodeObjectDatagram(reader: BufferReader): ObjectDatagram {
670
670
  payload: new Uint8Array(0),
671
671
  };
672
672
  }
673
- const payload = reader.readBytes(payloadLength);
673
+ const payload = reader.readBytesView(payloadLength);
674
674
  return {
675
675
  type: "object_datagram" as const,
676
676
  trackAlias,
@@ -768,10 +768,10 @@ function encodeMessageImpl(message: MoqtMessage): Uint8Array {
768
768
  // Encode payload first
769
769
  const payloadWriter = new BufferWriter();
770
770
  controlEncoder(message as never, payloadWriter);
771
- const payload = payloadWriter.finish();
771
+ const payload = payloadWriter.finishView();
772
772
 
773
773
  // Write type + length + payload
774
- const frameWriter = new BufferWriter();
774
+ const frameWriter = new BufferWriter(payload.byteLength + 16);
775
775
  frameWriter.writeVarInt(MESSAGE_TYPE_TO_WIRE[message.type as ControlMessageType]);
776
776
  frameWriter.writeVarInt(payload.byteLength);
777
777
  frameWriter.writeBytes(payload);
@@ -843,18 +843,23 @@ function decodeMessageImpl(bytes: Uint8Array): DecodeResult<MoqtMessage> {
843
843
 
844
844
  function createStreamDecoderImpl(): TransformStream<Uint8Array, MoqtMessage> {
845
845
  let buffer = new Uint8Array(0);
846
+ let offset = 0;
846
847
 
847
848
  return new TransformStream<Uint8Array, MoqtMessage>({
848
849
  transform(chunk, controller) {
849
- // Accumulate incoming data
850
+ // Compact before accumulating new data
851
+ if (offset > 0) {
852
+ buffer = buffer.subarray(offset);
853
+ offset = 0;
854
+ }
850
855
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
851
856
  newBuffer.set(buffer, 0);
852
857
  newBuffer.set(chunk, buffer.length);
853
858
  buffer = newBuffer;
854
859
 
855
860
  // Try to decode messages from the buffer
856
- while (buffer.length > 0) {
857
- const result = decodeMessageImpl(buffer);
861
+ while (offset < buffer.length) {
862
+ const result = decodeMessageImpl(buffer.subarray(offset));
858
863
  if (!result.ok) {
859
864
  if (result.error.code === "UNEXPECTED_END") {
860
865
  // Need more data -- wait for next chunk
@@ -865,14 +870,14 @@ function createStreamDecoderImpl(): TransformStream<Uint8Array, MoqtMessage> {
865
870
  return;
866
871
  }
867
872
  controller.enqueue(result.value);
868
- // Advance the buffer past the consumed bytes
869
- buffer = buffer.slice(result.bytesRead);
873
+ // Advance offset past the consumed bytes
874
+ offset += result.bytesRead;
870
875
  }
871
876
  },
872
877
 
873
878
  flush(controller) {
874
879
  // If there is remaining data in the buffer, it is a truncated message
875
- if (buffer.length > 0) {
880
+ if (offset < buffer.length) {
876
881
  controller.error(
877
882
  new DecodeError("UNEXPECTED_END", "Stream ended with incomplete message data", 0),
878
883
  );