@moqtap/codec 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/dist/{chunk-LH4NTURO.js → chunk-2GODRVT5.js} +699 -589
  2. package/dist/{chunk-4RIXXEII.js → chunk-2ZT6CVSE.js} +274 -242
  3. package/dist/{chunk-XUUCOLWU.cjs → chunk-4N4INRE7.cjs} +332 -321
  4. package/dist/{chunk-PJRA2TQ5.js → chunk-73MWUKSJ.js} +274 -228
  5. package/dist/{chunk-NGVE2RZT.js → chunk-77MNXX3M.js} +549 -538
  6. package/dist/{chunk-A27S7HW7.js → chunk-7L43FE6P.js} +24 -3
  7. package/dist/{chunk-RVJAGE4S.cjs → chunk-ACQ4CUJP.cjs} +297 -265
  8. package/dist/{chunk-IBVM4DMJ.cjs → chunk-BGWGVINJ.cjs} +332 -321
  9. package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
  10. package/dist/{chunk-CXDHOMHG.js → chunk-CEH7ESNC.js} +549 -538
  11. package/dist/{chunk-ZBKE2QRQ.js → chunk-E6P74GDT.js} +686 -599
  12. package/dist/{chunk-FUFTMAQD.cjs → chunk-FPISPJ5N.cjs} +785 -497
  13. package/dist/{chunk-7IVGHMKJ.cjs → chunk-FZDIEHQL.cjs} +300 -124
  14. package/dist/{chunk-ZSPO2GF2.cjs → chunk-GLBQDG4L.cjs} +971 -884
  15. package/dist/chunk-HDWJ2GDE.js +24 -0
  16. package/dist/{chunk-4YJANAXU.cjs → chunk-JGG7CMSZ.cjs} +469 -434
  17. package/dist/{chunk-IV2H5CFI.cjs → chunk-JTVCOMBI.cjs} +298 -266
  18. package/dist/chunk-KNDYS3DK.cjs +24 -0
  19. package/dist/{chunk-BPNL5YFQ.cjs → chunk-KZCYQ7ED.cjs} +5 -5
  20. package/dist/{chunk-U2B3B42P.js → chunk-MC7W6PMI.js} +709 -421
  21. package/dist/{chunk-MFAP7R6L.js → chunk-MRJWLGYH.js} +1 -1
  22. package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
  23. package/dist/{chunk-TMNGRIPL.js → chunk-N2KBF5Q2.js} +285 -109
  24. package/dist/{chunk-IV2HRJVT.js → chunk-PZBPH2D7.js} +274 -242
  25. package/dist/{chunk-FWISIR26.cjs → chunk-RUPCJTC3.cjs} +24 -3
  26. package/dist/{chunk-G26SJ6XS.cjs → chunk-S74DWJE2.cjs} +1001 -925
  27. package/dist/{chunk-NUX5BHWO.js → chunk-U3IPZYPX.js} +1113 -1037
  28. package/dist/{chunk-HSVYF6XX.cjs → chunk-VJUUZ4W2.cjs} +1106 -996
  29. package/dist/{chunk-ST24APEO.js → chunk-XSNX2IUJ.js} +574 -539
  30. package/dist/{chunk-K4OLITS2.cjs → chunk-YIG2C3LF.cjs} +295 -249
  31. package/dist/{drafts/draft15/codec.d.ts → codec-B2cH-f5V.d.cts} +11 -10
  32. package/dist/codec-B5K73Bdj.d.ts +30 -0
  33. package/dist/{codec-C_HMXNK_.d.ts → codec-BFeliJFc.d.ts} +4 -10
  34. package/dist/codec-BUMjz0J4.d.cts +30 -0
  35. package/dist/{codec-D0x8-SCw.d.cts → codec-Bap882Fh.d.cts} +3 -9
  36. package/dist/codec-BdVMRMOI.d.ts +34 -0
  37. package/dist/codec-Bq-tLtfP.d.ts +30 -0
  38. package/dist/codec-BwFgpeQu.d.ts +23 -0
  39. package/dist/{codec-95k8CAu5.d.cts → codec-C4n1PS09.d.cts} +3 -9
  40. package/dist/{codec-BECYPfY8.d.ts → codec-CPlK3Pi5.d.ts} +3 -9
  41. package/dist/{drafts/draft08/codec.d.ts → codec-CPvPq0sb.d.cts} +11 -9
  42. package/dist/codec-DNUIgLqc.d.cts +23 -0
  43. package/dist/codec-DRcsBCsb.d.ts +23 -0
  44. package/dist/{codec-CAevkgf5.d.cts → codec-DY4QH364.d.cts} +4 -10
  45. package/dist/codec-DZhZSIii.d.cts +30 -0
  46. package/dist/{drafts/draft14/codec.d.ts → codec-FvGCxIhr.d.ts} +11 -10
  47. package/dist/codec-HgBgHkFI.d.cts +23 -0
  48. package/dist/codec-KXHvXZVb.d.cts +35 -0
  49. package/dist/{codec-BC5jfvMb.d.ts → codec-R8GrCPt2.d.ts} +3 -9
  50. package/dist/{codec-BsPU1vNC.d.ts → codec-SKBeHQk7.d.ts} +3 -11
  51. package/dist/draft10-session.d.cts +1 -1
  52. package/dist/draft10-session.d.ts +1 -1
  53. package/dist/draft10.cjs +4 -3
  54. package/dist/draft10.d.cts +15 -5
  55. package/dist/draft10.d.ts +15 -5
  56. package/dist/draft10.js +3 -2
  57. package/dist/draft11-session.d.cts +1 -1
  58. package/dist/draft11-session.d.ts +1 -1
  59. package/dist/draft11.cjs +4 -3
  60. package/dist/draft11.d.cts +13 -5
  61. package/dist/draft11.d.ts +13 -5
  62. package/dist/draft11.js +3 -2
  63. package/dist/draft12-session.d.cts +1 -1
  64. package/dist/draft12-session.d.ts +1 -1
  65. package/dist/draft12.cjs +4 -3
  66. package/dist/draft12.d.cts +13 -5
  67. package/dist/draft12.d.ts +13 -5
  68. package/dist/draft12.js +3 -2
  69. package/dist/draft13-session.d.cts +1 -1
  70. package/dist/draft13-session.d.ts +1 -1
  71. package/dist/draft13.cjs +4 -3
  72. package/dist/draft13.d.cts +13 -5
  73. package/dist/draft13.d.ts +13 -5
  74. package/dist/draft13.js +3 -2
  75. package/dist/draft14-session.d.cts +1 -1
  76. package/dist/draft14-session.d.ts +1 -1
  77. package/dist/draft14.cjs +4 -3
  78. package/dist/draft14.d.cts +59 -5
  79. package/dist/draft14.d.ts +59 -5
  80. package/dist/draft14.js +3 -2
  81. package/dist/draft15-session.d.cts +1 -1
  82. package/dist/draft15-session.d.ts +1 -1
  83. package/dist/draft15.cjs +4 -3
  84. package/dist/draft15.d.cts +48 -5
  85. package/dist/draft15.d.ts +48 -5
  86. package/dist/draft15.js +3 -2
  87. package/dist/draft16-session.d.cts +1 -1
  88. package/dist/draft16-session.d.ts +1 -1
  89. package/dist/draft16.cjs +4 -3
  90. package/dist/draft16.d.cts +37 -5
  91. package/dist/draft16.d.ts +37 -5
  92. package/dist/draft16.js +3 -2
  93. package/dist/draft17-session.d.cts +1 -1
  94. package/dist/draft17-session.d.ts +1 -1
  95. package/dist/draft17.cjs +4 -3
  96. package/dist/draft17.d.cts +16 -5
  97. package/dist/draft17.d.ts +16 -5
  98. package/dist/draft17.js +3 -2
  99. package/dist/draft7-session.cjs +3 -3
  100. package/dist/draft7-session.js +2 -2
  101. package/dist/draft7.cjs +18 -6
  102. package/dist/draft7.d.cts +84 -8
  103. package/dist/draft7.d.ts +84 -8
  104. package/dist/draft7.js +15 -3
  105. package/dist/draft8-session.d.cts +1 -1
  106. package/dist/draft8-session.d.ts +1 -1
  107. package/dist/draft8.cjs +4 -3
  108. package/dist/draft8.d.cts +15 -5
  109. package/dist/draft8.d.ts +15 -5
  110. package/dist/draft8.js +3 -2
  111. package/dist/draft9-session.d.cts +1 -1
  112. package/dist/draft9-session.d.ts +1 -1
  113. package/dist/draft9.cjs +4 -3
  114. package/dist/draft9.d.cts +15 -5
  115. package/dist/draft9.d.ts +15 -5
  116. package/dist/draft9.js +3 -2
  117. package/dist/index.cjs +25 -24
  118. package/dist/index.d.cts +20 -20
  119. package/dist/index.d.ts +38 -46
  120. package/dist/index.js +111 -93
  121. package/dist/session.cjs +3 -3
  122. package/dist/session.d.ts +8 -4
  123. package/dist/session.js +26 -32
  124. package/dist/{types-ERexTpT8.d.cts → types-8gUGeMgs.d.cts} +4 -1
  125. package/dist/{types-ERexTpT8.d.ts → types-8gUGeMgs.d.ts} +4 -1
  126. package/dist/{types-Cw4WE9dh.d.ts → types-B0FT5Qs2.d.cts} +9 -1
  127. package/dist/{types-Cw4WE9dh.d.cts → types-B0FT5Qs2.d.ts} +9 -1
  128. package/dist/{types-DqCDFqgB.d.cts → types-B9A2g05r.d.cts} +4 -1
  129. package/dist/{types-DqCDFqgB.d.ts → types-B9A2g05r.d.ts} +4 -1
  130. package/dist/{types-Bg6QYNVt.d.cts → types-BeAVNU-F.d.cts} +7 -2
  131. package/dist/{types-Bg6QYNVt.d.ts → types-BeAVNU-F.d.ts} +7 -2
  132. package/dist/{types-C_1HrqBl.d.ts → types-CDa7F5ct.d.cts} +7 -2
  133. package/dist/{types-C_1HrqBl.d.cts → types-CDa7F5ct.d.ts} +7 -2
  134. package/dist/{types-r-CasCf1.d.cts → types-D1dI_oTX.d.cts} +8 -1
  135. package/dist/{types-r-CasCf1.d.ts → types-D1dI_oTX.d.ts} +8 -1
  136. package/dist/{types-BTFeKYCb.d.ts → types-DKpsfD3i.d.cts} +19 -4
  137. package/dist/{types-BTFeKYCb.d.cts → types-DKpsfD3i.d.ts} +19 -4
  138. package/dist/{types-4VxSL2Ho.d.ts → types-DxSFvL2b.d.cts} +7 -1
  139. package/dist/{types-4VxSL2Ho.d.cts → types-DxSFvL2b.d.ts} +7 -1
  140. package/dist/{types-B2afJZM-.d.ts → types-Pme7sua0.d.cts} +4 -1
  141. package/dist/{types-B2afJZM-.d.cts → types-Pme7sua0.d.ts} +4 -1
  142. package/dist/{types-D5gNQiDj.d.ts → types-gQsr0AAA.d.cts} +9 -1
  143. package/dist/{types-D5gNQiDj.d.cts → types-gQsr0AAA.d.ts} +9 -1
  144. package/package.json +2 -2
  145. package/src/core/buffer-reader.ts +130 -114
  146. package/src/core/buffer-writer.ts +100 -91
  147. package/src/core/hex.ts +7 -3
  148. package/src/drafts/draft07/codec.ts +14 -9
  149. package/src/drafts/draft07/data-streams.ts +240 -240
  150. package/src/drafts/draft07/varint.ts +51 -23
  151. package/src/drafts/draft08/codec.ts +19 -10
  152. package/src/drafts/draft08/data-streams.ts +359 -359
  153. package/src/drafts/draft09/codec.ts +19 -10
  154. package/src/drafts/draft09/data-streams.ts +332 -332
  155. package/src/drafts/draft10/codec.ts +19 -10
  156. package/src/drafts/draft10/data-streams.ts +332 -332
  157. package/src/drafts/draft11/codec.ts +33 -14
  158. package/src/drafts/draft11/data-streams.ts +269 -269
  159. package/src/drafts/draft12/codec.ts +27 -31
  160. package/src/drafts/draft12/data-streams.ts +275 -275
  161. package/src/drafts/draft13/codec.ts +27 -31
  162. package/src/drafts/draft13/data-streams.ts +275 -275
  163. package/src/drafts/draft14/codec.ts +19 -10
  164. package/src/drafts/draft14/data-streams.ts +813 -798
  165. package/src/drafts/draft15/codec.ts +21 -12
  166. package/src/drafts/draft15/data-streams.ts +794 -778
  167. package/src/drafts/draft16/codec.ts +21 -12
  168. package/src/drafts/draft16/data-streams.ts +789 -773
  169. package/src/drafts/draft17/codec.ts +21 -12
  170. package/src/drafts/draft17/data-streams.ts +758 -742
  171. package/dist/codec-AFuOxfsO.d.ts +0 -60
  172. package/dist/codec-B-UJ5Iow.d.cts +0 -75
  173. package/dist/codec-BvpuF-6u.d.cts +0 -39
  174. package/dist/codec-C8jZI5Cx.d.cts +0 -39
  175. package/dist/codec-CSUqCrRs.d.ts +0 -39
  176. package/dist/codec-CpuvYTSV.d.cts +0 -86
  177. package/dist/codec-D7ARhpG1.d.ts +0 -75
  178. package/dist/codec-DNAUGshO.d.cts +0 -60
  179. package/dist/codec-DPx_QNn0.d.ts +0 -31
  180. package/dist/codec-DRhCx_hw.d.ts +0 -86
  181. package/dist/codec-Db7YPe3l.d.ts +0 -31
  182. package/dist/codec-axkJpb7D.d.cts +0 -31
  183. package/dist/codec-ujAbFaep.d.cts +0 -31
  184. package/dist/core/buffer-reader.d.ts +0 -15
  185. package/dist/core/buffer-reader.d.ts.map +0 -1
  186. package/dist/core/buffer-reader.js +0 -98
  187. package/dist/core/buffer-reader.js.map +0 -1
  188. package/dist/core/buffer-writer.d.ts +0 -16
  189. package/dist/core/buffer-writer.d.ts.map +0 -1
  190. package/dist/core/buffer-writer.js +0 -86
  191. package/dist/core/buffer-writer.js.map +0 -1
  192. package/dist/core/errors.d.ts +0 -2
  193. package/dist/core/errors.d.ts.map +0 -1
  194. package/dist/core/errors.js +0 -2
  195. package/dist/core/errors.js.map +0 -1
  196. package/dist/core/hex.d.ts +0 -5
  197. package/dist/core/hex.d.ts.map +0 -1
  198. package/dist/core/hex.js +0 -17
  199. package/dist/core/hex.js.map +0 -1
  200. package/dist/core/session-types.d.ts +0 -99
  201. package/dist/core/session-types.d.ts.map +0 -1
  202. package/dist/core/session-types.js +0 -2
  203. package/dist/core/session-types.js.map +0 -1
  204. package/dist/core/types.d.ts +0 -235
  205. package/dist/core/types.d.ts.map +0 -1
  206. package/dist/core/types.js +0 -11
  207. package/dist/core/types.js.map +0 -1
  208. package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
  209. package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
  210. package/dist/drafts/draft07/announce-fsm.js +0 -2
  211. package/dist/drafts/draft07/announce-fsm.js.map +0 -1
  212. package/dist/drafts/draft07/codec.d.ts +0 -17
  213. package/dist/drafts/draft07/codec.d.ts.map +0 -1
  214. package/dist/drafts/draft07/codec.js +0 -722
  215. package/dist/drafts/draft07/codec.js.map +0 -1
  216. package/dist/drafts/draft07/data-streams.d.ts +0 -9
  217. package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
  218. package/dist/drafts/draft07/data-streams.js +0 -228
  219. package/dist/drafts/draft07/data-streams.js.map +0 -1
  220. package/dist/drafts/draft07/index.d.ts +0 -14
  221. package/dist/drafts/draft07/index.d.ts.map +0 -1
  222. package/dist/drafts/draft07/index.js +0 -18
  223. package/dist/drafts/draft07/index.js.map +0 -1
  224. package/dist/drafts/draft07/messages.d.ts +0 -32
  225. package/dist/drafts/draft07/messages.d.ts.map +0 -1
  226. package/dist/drafts/draft07/messages.js +0 -42
  227. package/dist/drafts/draft07/messages.js.map +0 -1
  228. package/dist/drafts/draft07/parameters.d.ts +0 -4
  229. package/dist/drafts/draft07/parameters.d.ts.map +0 -1
  230. package/dist/drafts/draft07/parameters.js +0 -10
  231. package/dist/drafts/draft07/parameters.js.map +0 -1
  232. package/dist/drafts/draft07/rules.d.ts +0 -8
  233. package/dist/drafts/draft07/rules.d.ts.map +0 -1
  234. package/dist/drafts/draft07/rules.js +0 -95
  235. package/dist/drafts/draft07/rules.js.map +0 -1
  236. package/dist/drafts/draft07/session-fsm.d.ts +0 -38
  237. package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
  238. package/dist/drafts/draft07/session-fsm.js +0 -354
  239. package/dist/drafts/draft07/session-fsm.js.map +0 -1
  240. package/dist/drafts/draft07/session.d.ts +0 -4
  241. package/dist/drafts/draft07/session.d.ts.map +0 -1
  242. package/dist/drafts/draft07/session.js +0 -5
  243. package/dist/drafts/draft07/session.js.map +0 -1
  244. package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
  245. package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
  246. package/dist/drafts/draft07/subscription-fsm.js +0 -2
  247. package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
  248. package/dist/drafts/draft07/types.d.ts +0 -61
  249. package/dist/drafts/draft07/types.d.ts.map +0 -1
  250. package/dist/drafts/draft07/types.js +0 -4
  251. package/dist/drafts/draft07/types.js.map +0 -1
  252. package/dist/drafts/draft07/varint.d.ts +0 -4
  253. package/dist/drafts/draft07/varint.d.ts.map +0 -1
  254. package/dist/drafts/draft07/varint.js +0 -22
  255. package/dist/drafts/draft07/varint.js.map +0 -1
  256. package/dist/drafts/draft08/codec.d.ts.map +0 -1
  257. package/dist/drafts/draft08/codec.js +0 -729
  258. package/dist/drafts/draft08/codec.js.map +0 -1
  259. package/dist/drafts/draft08/data-streams.d.ts +0 -12
  260. package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
  261. package/dist/drafts/draft08/data-streams.js +0 -345
  262. package/dist/drafts/draft08/data-streams.js.map +0 -1
  263. package/dist/drafts/draft08/index.d.ts +0 -9
  264. package/dist/drafts/draft08/index.d.ts.map +0 -1
  265. package/dist/drafts/draft08/index.js +0 -7
  266. package/dist/drafts/draft08/index.js.map +0 -1
  267. package/dist/drafts/draft08/messages.d.ts +0 -34
  268. package/dist/drafts/draft08/messages.d.ts.map +0 -1
  269. package/dist/drafts/draft08/messages.js +0 -66
  270. package/dist/drafts/draft08/messages.js.map +0 -1
  271. package/dist/drafts/draft08/rules.d.ts +0 -8
  272. package/dist/drafts/draft08/rules.d.ts.map +0 -1
  273. package/dist/drafts/draft08/rules.js +0 -83
  274. package/dist/drafts/draft08/rules.js.map +0 -1
  275. package/dist/drafts/draft08/session-fsm.d.ts +0 -47
  276. package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
  277. package/dist/drafts/draft08/session-fsm.js +0 -483
  278. package/dist/drafts/draft08/session-fsm.js.map +0 -1
  279. package/dist/drafts/draft08/session.d.ts +0 -5
  280. package/dist/drafts/draft08/session.d.ts.map +0 -1
  281. package/dist/drafts/draft08/session.js +0 -5
  282. package/dist/drafts/draft08/session.js.map +0 -1
  283. package/dist/drafts/draft08/types.d.ts +0 -268
  284. package/dist/drafts/draft08/types.d.ts.map +0 -1
  285. package/dist/drafts/draft08/types.js +0 -4
  286. package/dist/drafts/draft08/types.js.map +0 -1
  287. package/dist/drafts/draft09/codec.d.ts +0 -21
  288. package/dist/drafts/draft09/codec.d.ts.map +0 -1
  289. package/dist/drafts/draft09/codec.js +0 -721
  290. package/dist/drafts/draft09/codec.js.map +0 -1
  291. package/dist/drafts/draft09/data-streams.d.ts +0 -12
  292. package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
  293. package/dist/drafts/draft09/data-streams.js +0 -307
  294. package/dist/drafts/draft09/data-streams.js.map +0 -1
  295. package/dist/drafts/draft09/index.d.ts +0 -9
  296. package/dist/drafts/draft09/index.d.ts.map +0 -1
  297. package/dist/drafts/draft09/index.js +0 -7
  298. package/dist/drafts/draft09/index.js.map +0 -1
  299. package/dist/drafts/draft09/messages.d.ts +0 -34
  300. package/dist/drafts/draft09/messages.d.ts.map +0 -1
  301. package/dist/drafts/draft09/messages.js +0 -66
  302. package/dist/drafts/draft09/messages.js.map +0 -1
  303. package/dist/drafts/draft09/rules.d.ts +0 -8
  304. package/dist/drafts/draft09/rules.d.ts.map +0 -1
  305. package/dist/drafts/draft09/rules.js +0 -83
  306. package/dist/drafts/draft09/rules.js.map +0 -1
  307. package/dist/drafts/draft09/session-fsm.d.ts +0 -47
  308. package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
  309. package/dist/drafts/draft09/session-fsm.js +0 -483
  310. package/dist/drafts/draft09/session-fsm.js.map +0 -1
  311. package/dist/drafts/draft09/session.d.ts +0 -5
  312. package/dist/drafts/draft09/session.d.ts.map +0 -1
  313. package/dist/drafts/draft09/session.js +0 -5
  314. package/dist/drafts/draft09/session.js.map +0 -1
  315. package/dist/drafts/draft09/types.d.ts +0 -268
  316. package/dist/drafts/draft09/types.d.ts.map +0 -1
  317. package/dist/drafts/draft09/types.js +0 -4
  318. package/dist/drafts/draft09/types.js.map +0 -1
  319. package/dist/drafts/draft10/codec.d.ts +0 -21
  320. package/dist/drafts/draft10/codec.d.ts.map +0 -1
  321. package/dist/drafts/draft10/codec.js +0 -721
  322. package/dist/drafts/draft10/codec.js.map +0 -1
  323. package/dist/drafts/draft10/data-streams.d.ts +0 -12
  324. package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
  325. package/dist/drafts/draft10/data-streams.js +0 -307
  326. package/dist/drafts/draft10/data-streams.js.map +0 -1
  327. package/dist/drafts/draft10/index.d.ts +0 -9
  328. package/dist/drafts/draft10/index.d.ts.map +0 -1
  329. package/dist/drafts/draft10/index.js +0 -7
  330. package/dist/drafts/draft10/index.js.map +0 -1
  331. package/dist/drafts/draft10/messages.d.ts +0 -34
  332. package/dist/drafts/draft10/messages.d.ts.map +0 -1
  333. package/dist/drafts/draft10/messages.js +0 -66
  334. package/dist/drafts/draft10/messages.js.map +0 -1
  335. package/dist/drafts/draft10/rules.d.ts +0 -8
  336. package/dist/drafts/draft10/rules.d.ts.map +0 -1
  337. package/dist/drafts/draft10/rules.js +0 -83
  338. package/dist/drafts/draft10/rules.js.map +0 -1
  339. package/dist/drafts/draft10/session-fsm.d.ts +0 -47
  340. package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
  341. package/dist/drafts/draft10/session-fsm.js +0 -483
  342. package/dist/drafts/draft10/session-fsm.js.map +0 -1
  343. package/dist/drafts/draft10/session.d.ts +0 -5
  344. package/dist/drafts/draft10/session.d.ts.map +0 -1
  345. package/dist/drafts/draft10/session.js +0 -5
  346. package/dist/drafts/draft10/session.js.map +0 -1
  347. package/dist/drafts/draft10/types.d.ts +0 -268
  348. package/dist/drafts/draft10/types.d.ts.map +0 -1
  349. package/dist/drafts/draft10/types.js +0 -4
  350. package/dist/drafts/draft10/types.js.map +0 -1
  351. package/dist/drafts/draft11/codec.d.ts +0 -25
  352. package/dist/drafts/draft11/codec.d.ts.map +0 -1
  353. package/dist/drafts/draft11/codec.js +0 -775
  354. package/dist/drafts/draft11/codec.js.map +0 -1
  355. package/dist/drafts/draft11/data-streams.d.ts +0 -10
  356. package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
  357. package/dist/drafts/draft11/data-streams.js +0 -253
  358. package/dist/drafts/draft11/data-streams.js.map +0 -1
  359. package/dist/drafts/draft11/index.d.ts +0 -9
  360. package/dist/drafts/draft11/index.d.ts.map +0 -1
  361. package/dist/drafts/draft11/index.js +0 -7
  362. package/dist/drafts/draft11/index.js.map +0 -1
  363. package/dist/drafts/draft11/messages.d.ts +0 -33
  364. package/dist/drafts/draft11/messages.d.ts.map +0 -1
  365. package/dist/drafts/draft11/messages.js +0 -65
  366. package/dist/drafts/draft11/messages.js.map +0 -1
  367. package/dist/drafts/draft11/rules.d.ts +0 -8
  368. package/dist/drafts/draft11/rules.d.ts.map +0 -1
  369. package/dist/drafts/draft11/rules.js +0 -88
  370. package/dist/drafts/draft11/rules.js.map +0 -1
  371. package/dist/drafts/draft11/session-fsm.d.ts +0 -52
  372. package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
  373. package/dist/drafts/draft11/session-fsm.js +0 -530
  374. package/dist/drafts/draft11/session-fsm.js.map +0 -1
  375. package/dist/drafts/draft11/session.d.ts +0 -5
  376. package/dist/drafts/draft11/session.d.ts.map +0 -1
  377. package/dist/drafts/draft11/session.js +0 -5
  378. package/dist/drafts/draft11/session.js.map +0 -1
  379. package/dist/drafts/draft11/types.d.ts +0 -266
  380. package/dist/drafts/draft11/types.d.ts.map +0 -1
  381. package/dist/drafts/draft11/types.js +0 -4
  382. package/dist/drafts/draft11/types.js.map +0 -1
  383. package/dist/drafts/draft12/codec.d.ts +0 -27
  384. package/dist/drafts/draft12/codec.d.ts.map +0 -1
  385. package/dist/drafts/draft12/codec.js +0 -918
  386. package/dist/drafts/draft12/codec.js.map +0 -1
  387. package/dist/drafts/draft12/data-streams.d.ts +0 -10
  388. package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
  389. package/dist/drafts/draft12/data-streams.js +0 -254
  390. package/dist/drafts/draft12/data-streams.js.map +0 -1
  391. package/dist/drafts/draft12/index.d.ts +0 -9
  392. package/dist/drafts/draft12/index.d.ts.map +0 -1
  393. package/dist/drafts/draft12/index.js +0 -7
  394. package/dist/drafts/draft12/index.js.map +0 -1
  395. package/dist/drafts/draft12/messages.d.ts +0 -37
  396. package/dist/drafts/draft12/messages.d.ts.map +0 -1
  397. package/dist/drafts/draft12/messages.js +0 -77
  398. package/dist/drafts/draft12/messages.js.map +0 -1
  399. package/dist/drafts/draft12/rules.d.ts +0 -8
  400. package/dist/drafts/draft12/rules.d.ts.map +0 -1
  401. package/dist/drafts/draft12/rules.js +0 -94
  402. package/dist/drafts/draft12/rules.js.map +0 -1
  403. package/dist/drafts/draft12/session-fsm.d.ts +0 -55
  404. package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
  405. package/dist/drafts/draft12/session-fsm.js +0 -569
  406. package/dist/drafts/draft12/session-fsm.js.map +0 -1
  407. package/dist/drafts/draft12/session.d.ts +0 -5
  408. package/dist/drafts/draft12/session.d.ts.map +0 -1
  409. package/dist/drafts/draft12/session.js +0 -5
  410. package/dist/drafts/draft12/session.js.map +0 -1
  411. package/dist/drafts/draft12/types.d.ts +0 -294
  412. package/dist/drafts/draft12/types.d.ts.map +0 -1
  413. package/dist/drafts/draft12/types.js +0 -4
  414. package/dist/drafts/draft12/types.js.map +0 -1
  415. package/dist/drafts/draft13/codec.d.ts +0 -27
  416. package/dist/drafts/draft13/codec.d.ts.map +0 -1
  417. package/dist/drafts/draft13/codec.js +0 -1000
  418. package/dist/drafts/draft13/codec.js.map +0 -1
  419. package/dist/drafts/draft13/data-streams.d.ts +0 -10
  420. package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
  421. package/dist/drafts/draft13/data-streams.js +0 -254
  422. package/dist/drafts/draft13/data-streams.js.map +0 -1
  423. package/dist/drafts/draft13/index.d.ts +0 -9
  424. package/dist/drafts/draft13/index.d.ts.map +0 -1
  425. package/dist/drafts/draft13/index.js +0 -7
  426. package/dist/drafts/draft13/index.js.map +0 -1
  427. package/dist/drafts/draft13/messages.d.ts +0 -38
  428. package/dist/drafts/draft13/messages.d.ts.map +0 -1
  429. package/dist/drafts/draft13/messages.js +0 -79
  430. package/dist/drafts/draft13/messages.js.map +0 -1
  431. package/dist/drafts/draft13/rules.d.ts +0 -8
  432. package/dist/drafts/draft13/rules.d.ts.map +0 -1
  433. package/dist/drafts/draft13/rules.js +0 -96
  434. package/dist/drafts/draft13/rules.js.map +0 -1
  435. package/dist/drafts/draft13/session-fsm.d.ts +0 -56
  436. package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
  437. package/dist/drafts/draft13/session-fsm.js +0 -581
  438. package/dist/drafts/draft13/session-fsm.js.map +0 -1
  439. package/dist/drafts/draft13/session.d.ts +0 -5
  440. package/dist/drafts/draft13/session.d.ts.map +0 -1
  441. package/dist/drafts/draft13/session.js +0 -5
  442. package/dist/drafts/draft13/session.js.map +0 -1
  443. package/dist/drafts/draft13/types.d.ts +0 -310
  444. package/dist/drafts/draft13/types.d.ts.map +0 -1
  445. package/dist/drafts/draft13/types.js +0 -4
  446. package/dist/drafts/draft13/types.js.map +0 -1
  447. package/dist/drafts/draft14/codec.d.ts.map +0 -1
  448. package/dist/drafts/draft14/codec.js +0 -752
  449. package/dist/drafts/draft14/codec.js.map +0 -1
  450. package/dist/drafts/draft14/data-streams.d.ts +0 -56
  451. package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
  452. package/dist/drafts/draft14/data-streams.js +0 -729
  453. package/dist/drafts/draft14/data-streams.js.map +0 -1
  454. package/dist/drafts/draft14/index.d.ts +0 -9
  455. package/dist/drafts/draft14/index.d.ts.map +0 -1
  456. package/dist/drafts/draft14/index.js +0 -7
  457. package/dist/drafts/draft14/index.js.map +0 -1
  458. package/dist/drafts/draft14/messages.d.ts +0 -36
  459. package/dist/drafts/draft14/messages.d.ts.map +0 -1
  460. package/dist/drafts/draft14/messages.js +0 -71
  461. package/dist/drafts/draft14/messages.js.map +0 -1
  462. package/dist/drafts/draft14/rules.d.ts +0 -8
  463. package/dist/drafts/draft14/rules.d.ts.map +0 -1
  464. package/dist/drafts/draft14/rules.js +0 -101
  465. package/dist/drafts/draft14/rules.js.map +0 -1
  466. package/dist/drafts/draft14/session-fsm.d.ts +0 -58
  467. package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
  468. package/dist/drafts/draft14/session-fsm.js +0 -648
  469. package/dist/drafts/draft14/session-fsm.js.map +0 -1
  470. package/dist/drafts/draft14/session.d.ts +0 -5
  471. package/dist/drafts/draft14/session.d.ts.map +0 -1
  472. package/dist/drafts/draft14/session.js +0 -5
  473. package/dist/drafts/draft14/session.js.map +0 -1
  474. package/dist/drafts/draft14/types.d.ts +0 -263
  475. package/dist/drafts/draft14/types.d.ts.map +0 -1
  476. package/dist/drafts/draft14/types.js +0 -4
  477. package/dist/drafts/draft14/types.js.map +0 -1
  478. package/dist/drafts/draft15/codec.d.ts.map +0 -1
  479. package/dist/drafts/draft15/codec.js +0 -742
  480. package/dist/drafts/draft15/codec.js.map +0 -1
  481. package/dist/drafts/draft15/data-streams.d.ts +0 -45
  482. package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
  483. package/dist/drafts/draft15/data-streams.js +0 -675
  484. package/dist/drafts/draft15/data-streams.js.map +0 -1
  485. package/dist/drafts/draft15/index.d.ts +0 -9
  486. package/dist/drafts/draft15/index.d.ts.map +0 -1
  487. package/dist/drafts/draft15/index.js +0 -7
  488. package/dist/drafts/draft15/index.js.map +0 -1
  489. package/dist/drafts/draft15/messages.d.ts +0 -31
  490. package/dist/drafts/draft15/messages.d.ts.map +0 -1
  491. package/dist/drafts/draft15/messages.js +0 -59
  492. package/dist/drafts/draft15/messages.js.map +0 -1
  493. package/dist/drafts/draft15/rules.d.ts +0 -8
  494. package/dist/drafts/draft15/rules.d.ts.map +0 -1
  495. package/dist/drafts/draft15/rules.js +0 -83
  496. package/dist/drafts/draft15/rules.js.map +0 -1
  497. package/dist/drafts/draft15/session-fsm.d.ts +0 -48
  498. package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
  499. package/dist/drafts/draft15/session-fsm.js +0 -479
  500. package/dist/drafts/draft15/session-fsm.js.map +0 -1
  501. package/dist/drafts/draft15/session.d.ts +0 -5
  502. package/dist/drafts/draft15/session.d.ts.map +0 -1
  503. package/dist/drafts/draft15/session.js +0 -5
  504. package/dist/drafts/draft15/session.js.map +0 -1
  505. package/dist/drafts/draft15/types.d.ts +0 -232
  506. package/dist/drafts/draft15/types.d.ts.map +0 -1
  507. package/dist/drafts/draft15/types.js +0 -4
  508. package/dist/drafts/draft15/types.js.map +0 -1
  509. package/dist/drafts/draft16/codec.d.ts +0 -29
  510. package/dist/drafts/draft16/codec.d.ts.map +0 -1
  511. package/dist/drafts/draft16/codec.js +0 -747
  512. package/dist/drafts/draft16/codec.js.map +0 -1
  513. package/dist/drafts/draft16/data-streams.d.ts +0 -34
  514. package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
  515. package/dist/drafts/draft16/data-streams.js +0 -667
  516. package/dist/drafts/draft16/data-streams.js.map +0 -1
  517. package/dist/drafts/draft16/index.d.ts +0 -9
  518. package/dist/drafts/draft16/index.d.ts.map +0 -1
  519. package/dist/drafts/draft16/index.js +0 -7
  520. package/dist/drafts/draft16/index.js.map +0 -1
  521. package/dist/drafts/draft16/messages.d.ts +0 -32
  522. package/dist/drafts/draft16/messages.d.ts.map +0 -1
  523. package/dist/drafts/draft16/messages.js +0 -62
  524. package/dist/drafts/draft16/messages.js.map +0 -1
  525. package/dist/drafts/draft16/rules.d.ts +0 -8
  526. package/dist/drafts/draft16/rules.d.ts.map +0 -1
  527. package/dist/drafts/draft16/rules.js +0 -84
  528. package/dist/drafts/draft16/rules.js.map +0 -1
  529. package/dist/drafts/draft16/session-fsm.d.ts +0 -48
  530. package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
  531. package/dist/drafts/draft16/session-fsm.js +0 -474
  532. package/dist/drafts/draft16/session-fsm.js.map +0 -1
  533. package/dist/drafts/draft16/session.d.ts +0 -5
  534. package/dist/drafts/draft16/session.d.ts.map +0 -1
  535. package/dist/drafts/draft16/session.js +0 -5
  536. package/dist/drafts/draft16/session.js.map +0 -1
  537. package/dist/drafts/draft16/types.d.ts +0 -238
  538. package/dist/drafts/draft16/types.d.ts.map +0 -1
  539. package/dist/drafts/draft16/types.js +0 -4
  540. package/dist/drafts/draft16/types.js.map +0 -1
  541. package/dist/drafts/draft17/codec.d.ts +0 -29
  542. package/dist/drafts/draft17/codec.d.ts.map +0 -1
  543. package/dist/drafts/draft17/codec.js +0 -799
  544. package/dist/drafts/draft17/codec.js.map +0 -1
  545. package/dist/drafts/draft17/data-streams.d.ts +0 -13
  546. package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
  547. package/dist/drafts/draft17/data-streams.js +0 -633
  548. package/dist/drafts/draft17/data-streams.js.map +0 -1
  549. package/dist/drafts/draft17/index.d.ts +0 -8
  550. package/dist/drafts/draft17/index.d.ts.map +0 -1
  551. package/dist/drafts/draft17/index.js +0 -6
  552. package/dist/drafts/draft17/index.js.map +0 -1
  553. package/dist/drafts/draft17/messages.d.ts +0 -25
  554. package/dist/drafts/draft17/messages.d.ts.map +0 -1
  555. package/dist/drafts/draft17/messages.js +0 -48
  556. package/dist/drafts/draft17/messages.js.map +0 -1
  557. package/dist/drafts/draft17/rules.d.ts +0 -8
  558. package/dist/drafts/draft17/rules.d.ts.map +0 -1
  559. package/dist/drafts/draft17/rules.js +0 -71
  560. package/dist/drafts/draft17/rules.js.map +0 -1
  561. package/dist/drafts/draft17/session-fsm.d.ts +0 -45
  562. package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
  563. package/dist/drafts/draft17/session-fsm.js +0 -328
  564. package/dist/drafts/draft17/session-fsm.js.map +0 -1
  565. package/dist/drafts/draft17/session.d.ts +0 -5
  566. package/dist/drafts/draft17/session.d.ts.map +0 -1
  567. package/dist/drafts/draft17/session.js +0 -6
  568. package/dist/drafts/draft17/session.js.map +0 -1
  569. package/dist/drafts/draft17/types.d.ts +0 -219
  570. package/dist/drafts/draft17/types.d.ts.map +0 -1
  571. package/dist/drafts/draft17/types.js +0 -3
  572. package/dist/drafts/draft17/types.js.map +0 -1
  573. package/dist/index.d.ts.map +0 -1
  574. package/dist/index.js.map +0 -1
  575. package/dist/session.d.ts.map +0 -1
  576. package/dist/session.js.map +0 -1
@@ -1,8 +1,12 @@
1
+ import {
2
+ bytesToHex,
3
+ hexToBytes
4
+ } from "./chunk-HDWJ2GDE.js";
1
5
  import {
2
6
  BufferReader,
3
7
  BufferWriter,
4
8
  DecodeError
5
- } from "./chunk-A27S7HW7.js";
9
+ } from "./chunk-7L43FE6P.js";
6
10
 
7
11
  // src/drafts/draft12/messages.ts
8
12
  var MSG_SUBSCRIBE_UPDATE = 0x02n;
@@ -78,21 +82,255 @@ var MESSAGE_ID_MAP = new Map(
78
82
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
79
83
  );
80
84
 
81
- // src/drafts/draft12/codec.ts
82
- function bytesToHex(bytes) {
83
- let hex = "";
84
- for (let i = 0; i < bytes.byteLength; i++) {
85
- hex += bytes[i].toString(16).padStart(2, "0");
85
+ // src/drafts/draft12/data-streams.ts
86
+ var FETCH_STREAM_TYPE = 0x05n;
87
+ function encodeSubgroupStream(stream) {
88
+ const w = new BufferWriter();
89
+ const typeId = stream.streamTypeId;
90
+ w.writeVarInt(BigInt(typeId));
91
+ const extensionsPresent = (typeId & 1) !== 0;
92
+ const hasSubgroupField = (typeId & 4) !== 0;
93
+ w.writeVarInt(stream.trackAlias);
94
+ w.writeVarInt(stream.groupId);
95
+ if (hasSubgroupField) w.writeVarInt(stream.subgroupId);
96
+ w.writeUint8(stream.publisherPriority);
97
+ for (const obj of stream.objects) {
98
+ w.writeVarInt(obj.objectId);
99
+ if (extensionsPresent) {
100
+ w.writeVarInt(BigInt(obj.extensionData.length));
101
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
102
+ }
103
+ w.writeVarInt(obj.payloadLength);
104
+ if (obj.payloadLength === 0) {
105
+ w.writeVarInt(obj.status ?? 0n);
106
+ } else {
107
+ w.writeBytes(obj.payload);
108
+ }
109
+ }
110
+ return w.finish();
111
+ }
112
+ function encodeDatagram(dg) {
113
+ const w = new BufferWriter();
114
+ w.writeVarInt(BigInt(dg.streamTypeId));
115
+ w.writeVarInt(dg.trackAlias);
116
+ w.writeVarInt(dg.groupId);
117
+ w.writeVarInt(dg.objectId);
118
+ w.writeUint8(dg.publisherPriority);
119
+ if (dg.streamTypeId === 2) {
120
+ w.writeVarInt(dg.objectStatus ?? 0n);
121
+ } else {
122
+ w.writeBytes(dg.payload);
86
123
  }
87
- return hex;
124
+ return w.finish();
88
125
  }
89
- function hexToBytes(hex) {
90
- const bytes = new Uint8Array(hex.length / 2);
91
- for (let i = 0; i < hex.length; i += 2) {
92
- bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
126
+ function encodeFetchStream(stream) {
127
+ const w = new BufferWriter();
128
+ w.writeVarInt(FETCH_STREAM_TYPE);
129
+ w.writeVarInt(stream.requestId);
130
+ for (const obj of stream.objects) {
131
+ w.writeVarInt(obj.groupId);
132
+ w.writeVarInt(obj.subgroupId);
133
+ w.writeVarInt(obj.objectId);
134
+ w.writeUint8(obj.publisherPriority);
135
+ w.writeVarInt(BigInt(obj.extensionData.length));
136
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
137
+ w.writeVarInt(obj.payloadLength);
138
+ w.writeBytes(obj.payload);
93
139
  }
94
- return bytes;
140
+ return w.finish();
95
141
  }
142
+ function decodeSubgroupStream(bytes) {
143
+ try {
144
+ const r = new BufferReader(bytes);
145
+ const streamTypeId = Number(r.readVarInt());
146
+ const validRange1 = streamTypeId >= 16 && streamTypeId <= 21;
147
+ const validRange2 = streamTypeId >= 24 && streamTypeId <= 29;
148
+ if (!validRange1 && !validRange2) {
149
+ return {
150
+ ok: false,
151
+ error: new DecodeError(
152
+ "CONSTRAINT_VIOLATION",
153
+ `Expected subgroup type 0x10-0x15 or 0x18-0x1D, got 0x${streamTypeId.toString(16)}`,
154
+ 0
155
+ )
156
+ };
157
+ }
158
+ const extensionsPresent = (streamTypeId & 1) !== 0;
159
+ const hasSubgroupField = (streamTypeId & 4) !== 0;
160
+ const subgroupIsFirstObjId = (streamTypeId & 2) !== 0 && !hasSubgroupField;
161
+ const trackAlias = r.readVarInt();
162
+ const groupId = r.readVarInt();
163
+ let subgroupId = 0n;
164
+ if (hasSubgroupField) subgroupId = r.readVarInt();
165
+ const publisherPriority = r.readUint8();
166
+ const objects = [];
167
+ let firstObject = true;
168
+ while (r.remaining > 0) {
169
+ const byteOffset = r.offset;
170
+ const objectId = r.readVarInt();
171
+ if (subgroupIsFirstObjId && firstObject) {
172
+ subgroupId = objectId;
173
+ }
174
+ firstObject = false;
175
+ let extensionData = new Uint8Array(0);
176
+ if (extensionsPresent) {
177
+ const extLen = Number(r.readVarInt());
178
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
179
+ }
180
+ const payloadLength = Number(r.readVarInt());
181
+ let payload;
182
+ let status;
183
+ let payloadByteOffset;
184
+ if (payloadLength === 0) {
185
+ status = r.readVarInt();
186
+ payloadByteOffset = r.offset;
187
+ payload = new Uint8Array(0);
188
+ } else {
189
+ payloadByteOffset = r.offset;
190
+ payload = r.readBytesView(payloadLength);
191
+ }
192
+ const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, extensionData, payload };
193
+ if (status !== void 0) obj.status = status;
194
+ objects.push(obj);
195
+ }
196
+ return {
197
+ ok: true,
198
+ value: {
199
+ type: "subgroup",
200
+ streamTypeId,
201
+ trackAlias,
202
+ groupId,
203
+ subgroupId,
204
+ publisherPriority,
205
+ objects
206
+ },
207
+ bytesRead: r.offset
208
+ };
209
+ } catch (e) {
210
+ if (e instanceof DecodeError) return { ok: false, error: e };
211
+ throw e;
212
+ }
213
+ }
214
+ function decodeDatagram(bytes) {
215
+ try {
216
+ const r = new BufferReader(bytes);
217
+ const streamTypeId = Number(r.readVarInt());
218
+ if (streamTypeId !== 0 && streamTypeId !== 2) {
219
+ return {
220
+ ok: false,
221
+ error: new DecodeError(
222
+ "CONSTRAINT_VIOLATION",
223
+ `Expected datagram type 0x00 or 0x02, got 0x${streamTypeId.toString(16)}`,
224
+ 0
225
+ )
226
+ };
227
+ }
228
+ const trackAlias = r.readVarInt();
229
+ const groupId = r.readVarInt();
230
+ const objectId = r.readVarInt();
231
+ const publisherPriority = r.readUint8();
232
+ let objectStatus;
233
+ let payload;
234
+ if (streamTypeId === 2) {
235
+ objectStatus = r.readVarInt();
236
+ payload = new Uint8Array(0);
237
+ } else {
238
+ payload = r.readBytesView(r.remaining);
239
+ }
240
+ const result = {
241
+ type: "datagram",
242
+ streamTypeId,
243
+ trackAlias,
244
+ groupId,
245
+ objectId,
246
+ publisherPriority,
247
+ payloadLength: payload.byteLength,
248
+ payload
249
+ };
250
+ if (objectStatus !== void 0)
251
+ result.objectStatus = objectStatus;
252
+ return { ok: true, value: result, bytesRead: r.offset };
253
+ } catch (e) {
254
+ if (e instanceof DecodeError) return { ok: false, error: e };
255
+ throw e;
256
+ }
257
+ }
258
+ function decodeFetchStream(bytes) {
259
+ try {
260
+ const r = new BufferReader(bytes);
261
+ const streamType = r.readVarInt();
262
+ if (streamType !== FETCH_STREAM_TYPE) {
263
+ return {
264
+ ok: false,
265
+ error: new DecodeError(
266
+ "CONSTRAINT_VIOLATION",
267
+ `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
268
+ 0
269
+ )
270
+ };
271
+ }
272
+ const requestId = r.readVarInt();
273
+ const objects = [];
274
+ while (r.remaining > 0) {
275
+ const byteOffset = r.offset;
276
+ const groupId = r.readVarInt();
277
+ const subgroupId = r.readVarInt();
278
+ const objectId = r.readVarInt();
279
+ const publisherPriority = r.readUint8();
280
+ const extensionHeadersLength = r.readVarInt();
281
+ const extensionData = extensionHeadersLength > 0n ? r.readBytesView(Number(extensionHeadersLength)) : new Uint8Array(0);
282
+ const payloadLength = Number(r.readVarInt());
283
+ let payload;
284
+ let objectStatus;
285
+ let payloadByteOffset;
286
+ if (payloadLength === 0) {
287
+ objectStatus = r.readVarInt();
288
+ payloadByteOffset = r.offset;
289
+ payload = new Uint8Array(0);
290
+ } else {
291
+ payloadByteOffset = r.offset;
292
+ payload = r.readBytesView(payloadLength);
293
+ }
294
+ const obj = {
295
+ type: "object",
296
+ byteOffset,
297
+ payloadByteOffset,
298
+ groupId,
299
+ subgroupId,
300
+ objectId,
301
+ publisherPriority,
302
+ extensionData,
303
+ payloadLength,
304
+ payload
305
+ };
306
+ if (objectStatus !== void 0)
307
+ obj.objectStatus = objectStatus;
308
+ objects.push(obj);
309
+ }
310
+ return { ok: true, value: { type: "fetch", requestId, objects }, bytesRead: r.offset };
311
+ } catch (e) {
312
+ if (e instanceof DecodeError) return { ok: false, error: e };
313
+ throw e;
314
+ }
315
+ }
316
+ function decodeDataStream(streamType, bytes) {
317
+ switch (streamType) {
318
+ case "subgroup":
319
+ return decodeSubgroupStream(bytes);
320
+ case "datagram":
321
+ return decodeDatagram(bytes);
322
+ case "fetch":
323
+ return decodeFetchStream(bytes);
324
+ default: {
325
+ const _ = streamType;
326
+ throw new Error(`Unknown: ${_}`);
327
+ }
328
+ }
329
+ }
330
+
331
+ // src/drafts/draft12/codec.ts
332
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
333
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
96
334
  function encodeSetupParams(params, w) {
97
335
  let count = 0;
98
336
  if (params.path !== void 0) count++;
@@ -101,7 +339,7 @@ function encodeSetupParams(params, w) {
101
339
  w.writeVarInt(count);
102
340
  if (params.path !== void 0) {
103
341
  w.writeVarInt(SETUP_PARAM_PATH);
104
- const encoded = new TextEncoder().encode(params.path);
342
+ const encoded = textEncoder.encode(params.path);
105
343
  w.writeVarInt(encoded.byteLength);
106
344
  w.writeBytes(encoded);
107
345
  }
@@ -149,7 +387,7 @@ function decodeSetupParams(r) {
149
387
  const length = Number(r.readVarInt());
150
388
  const bytes = r.readBytes(length);
151
389
  if (paramType === SETUP_PARAM_PATH) {
152
- result.path = new TextDecoder().decode(bytes);
390
+ result.path = textDecoder.decode(bytes);
153
391
  } else {
154
392
  unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
155
393
  }
@@ -169,7 +407,7 @@ function encodeParams(params, w) {
169
407
  const tmpW = new BufferWriter(64);
170
408
  tmpW.writeVarInt(at.alias_type);
171
409
  tmpW.writeVarInt(at.token_type);
172
- const tokenBytes = new TextEncoder().encode(at.token_value);
410
+ const tokenBytes = textEncoder.encode(at.token_value);
173
411
  tmpW.writeBytes(tokenBytes);
174
412
  const raw = tmpW.finish();
175
413
  w.writeVarInt(raw.byteLength);
@@ -226,7 +464,7 @@ function decodeParams(r) {
226
464
  result.authorization_token = {
227
465
  alias_type,
228
466
  token_type,
229
- token_value: new TextDecoder().decode(tokenBytes)
467
+ token_value: textDecoder.decode(tokenBytes)
230
468
  };
231
469
  } else if (paramType === PARAM_DELIVERY_TIMEOUT) {
232
470
  const blob = r.readBytes(length);
@@ -791,18 +1029,14 @@ function encodeMessage(message) {
791
1029
  if (typeId === void 0) throw new Error(`Unknown message type: ${message.type}`);
792
1030
  const payloadWriter = new BufferWriter();
793
1031
  encodePayload(message, payloadWriter);
794
- const payload = payloadWriter.finish();
795
- const writer = new BufferWriter();
1032
+ const payload = payloadWriter.finishView();
1033
+ const writer = new BufferWriter(payload.byteLength + 16);
796
1034
  writer.writeVarInt(typeId);
797
- if (VARINT_FRAMED_MESSAGES.has(typeId)) {
798
- writer.writeVarInt(payload.byteLength);
799
- } else {
800
- if (payload.byteLength > 65535) {
801
- throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
802
- }
803
- writer.writeUint8(payload.byteLength >> 8 & 255);
804
- writer.writeUint8(payload.byteLength & 255);
1035
+ if (payload.byteLength > 65535) {
1036
+ throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
805
1037
  }
1038
+ writer.writeUint8(payload.byteLength >> 8 & 255);
1039
+ writer.writeUint8(payload.byteLength & 255);
806
1040
  writer.writeBytes(payload);
807
1041
  return writer.finish();
808
1042
  }
@@ -876,14 +1110,9 @@ function decodeMessage(bytes) {
876
1110
  try {
877
1111
  const reader = new BufferReader(bytes);
878
1112
  const typeId = reader.readVarInt();
879
- let payloadLength;
880
- if (VARINT_FRAMED_MESSAGES.has(typeId)) {
881
- payloadLength = Number(reader.readVarInt());
882
- } else {
883
- const lenHi = reader.readUint8();
884
- const lenLo = reader.readUint8();
885
- payloadLength = lenHi << 8 | lenLo;
886
- }
1113
+ const lenHi = reader.readUint8();
1114
+ const lenLo = reader.readUint8();
1115
+ const payloadLength = lenHi << 8 | lenLo;
887
1116
  const payloadBytes = reader.readBytes(payloadLength);
888
1117
  const payloadReader = new BufferReader(payloadBytes);
889
1118
  const decoder = payloadDecoders.get(typeId);
@@ -904,229 +1133,32 @@ function decodeMessage(bytes) {
904
1133
  throw e;
905
1134
  }
906
1135
  }
907
- var FETCH_STREAM_TYPE = 0x05n;
908
- function encodeSubgroupStream(stream) {
909
- const w = new BufferWriter();
910
- const typeId = stream.streamTypeId;
911
- w.writeVarInt(BigInt(typeId));
912
- w.writeVarInt(stream.trackAlias);
913
- w.writeVarInt(stream.groupId);
914
- if (typeId === 12) w.writeVarInt(stream.subgroupId);
915
- w.writeUint8(stream.publisherPriority);
916
- for (const obj of stream.objects) {
917
- w.writeVarInt(obj.objectId);
918
- w.writeVarInt(obj.payloadLength);
919
- if (obj.payloadLength === 0 && obj.status !== void 0) {
920
- w.writeVarInt(obj.status);
921
- } else {
922
- w.writeBytes(obj.payload);
923
- }
924
- }
925
- return w.finish();
926
- }
927
- function encodeDatagram(dg) {
928
- const w = new BufferWriter();
929
- w.writeVarInt(BigInt(dg.streamTypeId));
930
- w.writeVarInt(dg.trackAlias);
931
- w.writeVarInt(dg.groupId);
932
- w.writeVarInt(dg.objectId);
933
- w.writeUint8(dg.publisherPriority);
934
- if (dg.streamTypeId === 2) {
935
- w.writeVarInt(dg.objectStatus ?? 0n);
936
- } else {
937
- w.writeBytes(dg.payload);
938
- }
939
- return w.finish();
940
- }
941
- function encodeFetchStream(stream) {
942
- const w = new BufferWriter();
943
- w.writeVarInt(FETCH_STREAM_TYPE);
944
- w.writeVarInt(stream.requestId);
945
- for (const obj of stream.objects) {
946
- w.writeVarInt(obj.groupId);
947
- w.writeVarInt(obj.subgroupId);
948
- w.writeVarInt(obj.objectId);
949
- w.writeUint8(obj.publisherPriority);
950
- w.writeVarInt(obj.extensionHeadersLength);
951
- w.writeVarInt(obj.payloadLength);
952
- w.writeBytes(obj.payload);
953
- }
954
- return w.finish();
955
- }
956
- function decodeSubgroupStream(bytes) {
957
- try {
958
- const r = new BufferReader(bytes);
959
- const streamTypeId = Number(r.readVarInt());
960
- if (streamTypeId !== 8 && streamTypeId !== 12) {
961
- return {
962
- ok: false,
963
- error: new DecodeError(
964
- "CONSTRAINT_VIOLATION",
965
- `Expected subgroup type 0x08 or 0x0C, got 0x${streamTypeId.toString(16)}`,
966
- 0
967
- )
968
- };
969
- }
970
- const trackAlias = r.readVarInt();
971
- const groupId = r.readVarInt();
972
- let subgroupId = 0n;
973
- if (streamTypeId === 12) subgroupId = r.readVarInt();
974
- const publisherPriority = r.readUint8();
975
- const objects = [];
976
- while (r.remaining > 0) {
977
- const objectId = r.readVarInt();
978
- const payloadLength = Number(r.readVarInt());
979
- let payload;
980
- let status;
981
- if (payloadLength === 0) {
982
- status = r.readVarInt();
983
- payload = new Uint8Array(0);
984
- } else {
985
- payload = r.readBytes(payloadLength);
986
- }
987
- const obj = { type: "object", objectId, payloadLength, payload };
988
- if (status !== void 0) obj.status = status;
989
- objects.push(obj);
990
- }
991
- return {
992
- ok: true,
993
- value: {
994
- type: "subgroup",
995
- streamTypeId,
996
- trackAlias,
997
- groupId,
998
- subgroupId,
999
- publisherPriority,
1000
- objects
1001
- },
1002
- bytesRead: r.offset
1003
- };
1004
- } catch (e) {
1005
- if (e instanceof DecodeError) return { ok: false, error: e };
1006
- throw e;
1007
- }
1008
- }
1009
- function decodeDatagram(bytes) {
1010
- try {
1011
- const r = new BufferReader(bytes);
1012
- const streamTypeId = Number(r.readVarInt());
1013
- if (streamTypeId !== 0 && streamTypeId !== 2) {
1014
- return {
1015
- ok: false,
1016
- error: new DecodeError(
1017
- "CONSTRAINT_VIOLATION",
1018
- `Expected datagram type 0x00 or 0x02, got 0x${streamTypeId.toString(16)}`,
1019
- 0
1020
- )
1021
- };
1022
- }
1023
- const trackAlias = r.readVarInt();
1024
- const groupId = r.readVarInt();
1025
- const objectId = r.readVarInt();
1026
- const publisherPriority = r.readUint8();
1027
- let objectStatus;
1028
- let payload;
1029
- if (streamTypeId === 2) {
1030
- objectStatus = r.readVarInt();
1031
- payload = new Uint8Array(0);
1032
- } else {
1033
- payload = r.readBytes(r.remaining);
1034
- }
1035
- const result = {
1036
- type: "datagram",
1037
- streamTypeId,
1038
- trackAlias,
1039
- groupId,
1040
- objectId,
1041
- publisherPriority,
1042
- payloadLength: payload.byteLength,
1043
- payload
1044
- };
1045
- if (objectStatus !== void 0)
1046
- result.objectStatus = objectStatus;
1047
- return { ok: true, value: result, bytesRead: r.offset };
1048
- } catch (e) {
1049
- if (e instanceof DecodeError) return { ok: false, error: e };
1050
- throw e;
1051
- }
1052
- }
1053
- function decodeFetchStream(bytes) {
1054
- try {
1055
- const r = new BufferReader(bytes);
1056
- const streamType = r.readVarInt();
1057
- if (streamType !== FETCH_STREAM_TYPE) {
1058
- return {
1059
- ok: false,
1060
- error: new DecodeError(
1061
- "CONSTRAINT_VIOLATION",
1062
- `Expected fetch type 0x05, got 0x${streamType.toString(16)}`,
1063
- 0
1064
- )
1065
- };
1066
- }
1067
- const requestId = r.readVarInt();
1068
- const objects = [];
1069
- while (r.remaining > 0) {
1070
- const groupId = r.readVarInt();
1071
- const subgroupId = r.readVarInt();
1072
- const objectId = r.readVarInt();
1073
- const publisherPriority = r.readUint8();
1074
- const extensionHeadersLength = r.readVarInt();
1075
- if (extensionHeadersLength > 0n) r.readBytes(Number(extensionHeadersLength));
1076
- const payloadLength = Number(r.readVarInt());
1077
- const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
1078
- objects.push({
1079
- type: "object",
1080
- groupId,
1081
- subgroupId,
1082
- objectId,
1083
- publisherPriority,
1084
- extensionHeadersLength,
1085
- payloadLength,
1086
- payload
1087
- });
1088
- }
1089
- return { ok: true, value: { type: "fetch", requestId, objects }, bytesRead: r.offset };
1090
- } catch (e) {
1091
- if (e instanceof DecodeError) return { ok: false, error: e };
1092
- throw e;
1093
- }
1094
- }
1095
- function decodeDataStream(streamType, bytes) {
1096
- switch (streamType) {
1097
- case "subgroup":
1098
- return decodeSubgroupStream(bytes);
1099
- case "datagram":
1100
- return decodeDatagram(bytes);
1101
- case "fetch":
1102
- return decodeFetchStream(bytes);
1103
- default: {
1104
- const _ = streamType;
1105
- throw new Error(`Unknown: ${_}`);
1106
- }
1107
- }
1108
- }
1109
1136
  function createStreamDecoder() {
1110
1137
  let buffer = new Uint8Array(0);
1138
+ let offset = 0;
1111
1139
  return new TransformStream({
1112
1140
  transform(chunk, controller) {
1141
+ if (offset > 0) {
1142
+ buffer = buffer.subarray(offset);
1143
+ offset = 0;
1144
+ }
1113
1145
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
1114
1146
  newBuffer.set(buffer, 0);
1115
1147
  newBuffer.set(chunk, buffer.length);
1116
1148
  buffer = newBuffer;
1117
- while (buffer.length > 0) {
1118
- const result = decodeMessage(buffer);
1149
+ while (offset < buffer.length) {
1150
+ const result = decodeMessage(buffer.subarray(offset));
1119
1151
  if (!result.ok) {
1120
1152
  if (result.error.code === "UNEXPECTED_END") break;
1121
1153
  controller.error(result.error);
1122
1154
  return;
1123
1155
  }
1124
1156
  controller.enqueue(result.value);
1125
- buffer = buffer.slice(result.bytesRead);
1157
+ offset += result.bytesRead;
1126
1158
  }
1127
1159
  },
1128
1160
  flush(controller) {
1129
- if (buffer.length > 0)
1161
+ if (offset < buffer.length)
1130
1162
  controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1131
1163
  }
1132
1164
  });
@@ -1184,8 +1216,6 @@ export {
1184
1216
  VARINT_FRAMED_MESSAGES,
1185
1217
  MESSAGE_TYPE_MAP,
1186
1218
  MESSAGE_ID_MAP,
1187
- encodeMessage,
1188
- decodeMessage,
1189
1219
  encodeSubgroupStream,
1190
1220
  encodeDatagram,
1191
1221
  encodeFetchStream,
@@ -1193,6 +1223,8 @@ export {
1193
1223
  decodeDatagram,
1194
1224
  decodeFetchStream,
1195
1225
  decodeDataStream,
1226
+ encodeMessage,
1227
+ decodeMessage,
1196
1228
  createStreamDecoder,
1197
1229
  createDraft12Codec
1198
1230
  };
@@ -11,6 +11,7 @@ var DecodeError = class extends Error {
11
11
  };
12
12
 
13
13
  // src/core/buffer-reader.ts
14
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
14
15
  var BufferReader = class {
15
16
  constructor(buffer, offset = 0) {
16
17
  this.buffer = buffer;
@@ -45,6 +46,19 @@ var BufferReader = class {
45
46
  this.pos += length;
46
47
  return slice;
47
48
  }
49
+ /** Zero-copy read: returns a view into the underlying buffer. */
50
+ readBytesView(length) {
51
+ if (this.remaining < length) {
52
+ throw new DecodeError(
53
+ "UNEXPECTED_END",
54
+ `Not enough bytes: need ${length}, have ${this.remaining}`,
55
+ this.pos
56
+ );
57
+ }
58
+ const view = this.buffer.subarray(this.pos, this.pos + length);
59
+ this.pos += length;
60
+ return view;
61
+ }
48
62
  readVarInt() {
49
63
  if (this.remaining < 1) {
50
64
  throw new DecodeError("UNEXPECTED_END", "Not enough bytes for varint", this.pos);
@@ -87,8 +101,8 @@ var BufferReader = class {
87
101
  }
88
102
  readString() {
89
103
  const length = Number(this.readVarInt());
90
- const bytes = this.readBytes(length);
91
- return new TextDecoder().decode(bytes);
104
+ const bytes = this.readBytesView(length);
105
+ return textDecoder.decode(bytes);
92
106
  }
93
107
  readTuple() {
94
108
  const count = Number(this.readVarInt());
@@ -112,6 +126,7 @@ var BufferReader = class {
112
126
  };
113
127
 
114
128
  // src/core/buffer-writer.ts
129
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
115
130
  var BufferWriter = class {
116
131
 
117
132
 
@@ -168,7 +183,7 @@ var BufferWriter = class {
168
183
  }
169
184
  }
170
185
  writeString(str) {
171
- const encoded = new TextEncoder().encode(str);
186
+ const encoded = textEncoder.encode(str);
172
187
  this.writeVarInt(encoded.byteLength);
173
188
  this.writeBytes(encoded);
174
189
  }
@@ -186,9 +201,15 @@ var BufferWriter = class {
186
201
  this.writeBytes(value);
187
202
  }
188
203
  }
204
+ /** Returns an owned copy of the written bytes. */
189
205
  finish() {
206
+ if (this.pos === this.buffer.byteLength) return this.buffer;
190
207
  return this.buffer.slice(0, this.pos);
191
208
  }
209
+ /** Returns a zero-copy view of the written bytes. Valid only until the next write. */
210
+ finishView() {
211
+ return this.buffer.subarray(0, this.pos);
212
+ }
192
213
  };
193
214
 
194
215